Integracja LCN/Domiq w NodeRed + MQTT

Mogę to etapami przy wspólpracy ogarnąć w NR przez mqtt.

Super ! :slight_smile:
W takim razie czekam na instrukcje.

Na początek jak rozumiem musimy zainstalować ten dodatek z Githuba (domiqtt), który tłumaczy komendy z LCN/Domiq na komendy zrozumiałe dla MQTT, tak ?

Potrzebowal bym trochę danych, na priv.
Ip modułu i ha.
Zrobę to w dogodnym czasie, bez poganiania.
Moze okazać się,że będę potrzebowal zdalny dostęp.
Dobrze też abyś dal kilka próbek z odczytów w formie tekstowej, najlepiej ten raport

Potrzebowal bym trochę danych, na priv.
Ip modułu i ha.
Zrobę to w dogodnym czasie, bez poganiania.
Moze okazać się,że będę potrzebowal zdalny dostęp.

Ok. żaden problem

Nie bedziemy używać tego z githabs, zrobimy to w NR

Podporządkuję się oczywiście

Importuj ten proces do NR, ustaw ip domiq w nodzie LCN-TCP i sprawdź co pokazuje się w
oknie debug. Czuje że będzie orka bo nie nasz NR.
flows (67).json (1,7 KB)


Najpierw kliknij raz na strzałkę - powinien przyjść cały raport, później już tulko od zmiany stany.

… druga wersja - teraz powinieneś mieć wszystkie dane zapisane w brokerze mqtt.
Węzeł mqtt wymaga konfiguracji dla twojego brokera.
W zasadzie po tym możesz dodawać stany do HA za pomocą integracji mqtt.
Na dziś wystarczy… opanuj to co jest dotychczas . Zainstaluj i uruchom sobie na kompie MQTTExplorer - będzie potrzebny do sprawdzenie czy poprawnie zapisują się dane

flows (68).json (3,6 KB)

… w zasadzie finish


Testowe nody można usunąć - powinny z poziomu NR sterować światłem w kuchni

domiq3
Taka będzie struktura tematów w mqtt widziana w MqttExplorer.
Temat value zawiera aktualny stan.
set jest tematem do którego wpisujemy komendy (oczekiwane wartości).

Teraz tylko trochę rzemieślniczej roboty aby to dodać do HA - switsh do sterowania światłem w kuchni.

mqtt:
   switch: 
    - unique_id: kuchnia_1
      name: "Kuchnia"
      state_topic: "LCN/output/0/12/2"
      command_topic: "LCN/output/0/12/2/set"
      payload_on: "100"
      payload_off: "0"
      state_on: "100"
      state_off: "0"
      #availability_topic: "/Sprinkler_1/status"
      #payload_available: "Online"
      #payload_not_available: "Offline"
      icon: mdi:sprinkler-variant
      optimistic: false
      qos: 0
      retain: true

Powinno działać ! :slight_smile:

flows (65).json (6,4 KB)

Po 2 sek od startu proces powinien zaciągnąć aktuale stany automatycznie.

Cześć,
Tak to wygląda u mnie:


Podejrzewam że jest OK ?

Coś nie tak. Usuń cały temat LCN - nie powinno być tych kropkowanych relay.0 itd
…albo zostały śmieci z poprzedniej wersji. Zamknij i ponownie otwórz explorer

Kliknij jeszcze na “?” aby zaciągnął wszystkie, bo automat działa raz po “deploy”.

Zrobione:

Jest OK :slight_smile: Teraz to już tylko Ty wiesz jakie urządzenie kryje się pod tymi numerkami.
Z dokumentacji HA-MQTT teraz musisz dodać to co Cię interesuje.

Jest OK :slight_smile: Teraz to już tylko Ty wiesz jakie urządzenie kryje się pod tymi numerkami.
Z dokumentacji HA-MQTT teraz musisz dodać to co Cię interesuje.

Tak, mniej więcej się orientuję.

  • Output - obwody świateł ściemniane
  • Relay - obwody świateł on/off i rolety
  • Value - sensory (temperatura w pomieszczeniach)

Właśnie włączałem rolety oraz światło w kuchni i wartości przy Relay i Output ładnie się zmieniały w MQTT Explorerze.

Dodałem też do HA ten switch “Kuchnia”, który przygotowałeś. Jest on widoczny, tak że w Dashbordzie bez problemu dodałem przełącznik z encją “switch.kuchnia”. Kiedy przełączam światło kuchni fizycznym przyciskiem na ścianie, to stan tego switcha w Dashbordzie się zmienia z on na off i odwrotnie. Ale w drugą stronę nie wywołuje żadnego skutku… tzn. przełączanie switchem kuchnia w Dashbordzie nie powoduje włączania ani wyłączania światła w kuchni.

A testowe z NR działa?

A testowe z NR działa?

w MQTT Explorerze tak - widać zmiany w set=
natomiast świateł nie przełącza fizycznie…
zmienna 1=100 lub 0 tylko w przypadku fizycznego przełączania włącznikiem na ścianie

Przełącz proces w taki sposób
domiq4
… i funkcję Prepare

msg.topic = msg.topic.replace('/set', '');
msg.topic = msg.topic.replaceAll('/', '.');
msg.payload = msg.topic + '=' + msg.payload +"\r\n";
return msg;

No teraz działa pięknie :+1:

… te urządzenia to definiuj jako dimmer, a nie jako switsh.
Ta konfiguracja krórą podałem pasuje do typu Relay

a dla dimmer co tam trzeba dodać lub zmienić ?

Musisz kopać po przykładach, ja nie mam nawet w głowie :slight_smile:

Ok, zaczynam się pochylać nad dokumentacją. Będę próbował dodawać kolejne elementy z LCN.

Na pierwszy ogień idzie czujnik temperatury w salonie, ale chyba muszę coś poprawić:

sensor:
    - unique_id: temperatura_salon
      name: "Temperatura Salon"
      state_topic: "LCN/value/0/33/r1"
      icon: mdi:thermometer
      unit_of_measurement: °C

Przede wszystkim sposób wstawiania kodu :slight_smile: i takiej formie jest nie do poprawienia
Ctrl+e

# Example configuration.yaml entry
mqtt:
  sensor:
    - unique_id: temperatura_salon
      name: "Temperatura Salon"
      state_topic: "LCN/value/0/33/r1"
      icon: mdi:thermometer
      unit_of_measurement: °C
      value_template: "{{ value_json  * 0.1 }}

Sekcja mqtt: może być tylko raz - zwracaną wartość trzeba pomnożyć przez przez stosowany mnożnik - jeśli jest taka potrzeba.

Wszystkie klasy urządzeń mqtt zapisywaną są ciągiem:

mqtt:
   sensor:
..............
.............
   switch:
..............
.............
   climate:
   itd..