Sterowanie po MQTT

Cześć, ostatnio miałem jakiś problem z HA - restartował mi się w najmiej oczekiwanym momencie i wiadomo nie działały mi automatyzacje.
Mosquitto, zigbee2mqtt i Node-Reda mam w kontenerach na Synology i wymyśliłem sobie, że kluczowe automatyzacje będe uruchamiał bez HA tylko pobiore dane z mosquitto do NR i wyślę do mosquitto.

Stan czujnika już mi się udało pobrać i mam true i false, ale nie wiem jak opublikować np stan przełącznika, czy żarówki.
Chce na podstawie czujnika ruchu sonoff zigbee właczyć i wyłączyć światło.

[{"id":"72dd2a3.98314d4","type":"mqtt in","z":"88750188.fc5d1","name":"czujnik dół","topic":"zigbee2mqtt/czujnik ruchu dol","qos":"2","datatype":"json","broker":"c79c1679.df63e8","x":960,"y":340,"wires":[["7f149437.2b254c"]]},{"id":"7f149437.2b254c","type":"switch","z":"88750188.fc5d1","name":"","property":"payload.occupancy","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1130,"y":340,"wires":[["611c5d65.37bf24"],["4f2ec3c0.b2e3dc"]]},{"id":"c79c1679.df63e8","type":"mqtt-broker","name":"broker","broker":"http://192.168.1.80","port":"1883","clientid":"Node-Red","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

Jak mam opublikować ON na
zigbee2mqtt/gniazdo IKEA/set

Wg mnie to zły pomysł, lepiej skupić się na rozwiązaniu problemu z HA niż na robieniu takich “obejść”, które w dłuższej perspektywie czasu będą tylko ograniczeniem, to myślenie typu “oni robią źle, ja zrobię lepiej” :grin:.

Tak może nie do końca te restarty HA są przyczyną przejścia automatyzacji na mqtt, ale np podczas aktualizacji HA itd to będzie dalej działało. Chyba już zrobiłem

1 Like

Dokładnie,
ja również tak robię, że newralgiczne elementy jak np. ogrzewanie, czy światło są bez HA, bo jak padnie HA czy się zwiesi, to wszystko dalej działa, a zawsze staram się robić najkrótszą drogą jaką się da, np.zamiast z2m>mqtt>ha>mqtt>z2m robię z2m>z2m wydaje mi się że również szybciej wszystko działa.
np.

1 Like

Raczej z2m > mqqt > Node-RED > mqtt > z2m czyli tak samo jak “z2m>mqtt>ha>mqtt>z2m” :wink:.

1 Like

No tak, masz racje źle to napisałem,
jak mam automatyzacje w NR to jest z2m>mqtt>HA>NR>HA>mqtt>z2m, a zdarza sie czasem ze ha sie wysypie, albo restaruje itp, a tak omijając ha nadal automatyzacja dziala, stawiając na bezawaryjność logika mówi żeby skracać proces i angażować jak najmniej punktów w łańcuchu,
a jak sie HA wysypie to siedź Panie w nocy jak sa goście na kolacji, a piec się nie włącza i światła się nie zapalają i naprawiaj (tak właśnie miałem :slight_smile: , a NR, mqtt, z2m co najwyżej zrestartować trzeba i działa bo tam sie nie ma co popsuć

@bartik22 no to mnie uspokoiłeś, bo już myślałem że może faktycznie głupotę wymyśliłem. Mam czujkę na schodach i bez HA minimalnie szybciej mi się zapala światło. Jak omine mqtt to może jeszcze zyskam z ćwierć sekundy :slight_smile:
No instaluje dodatek do NR i pewnie się odezwę po wsparcie jak wyciągnąć stan i jak przesłać. @bartik22 a możesz podesłać jakiegoś gotowca na wzór?

Mqtt nie omijamy, źle napisałem, z2m i mqtt musi być
Jak jest coś z2m to używam paczki: node-red-contrib-zigbee2mqtt (node) - Node-RED
fajne ma to że zmiana któregoś atrybutu, a nie całego stanu urządzenia może być wyzwalaczem.
a resztę co mam na tasmocie to przez mqtt in/out robię
Jak przez mqtt in, to leci to do switcha wstawiam np. contains: true / false i wtedy leci dalej
Mogę podesłać ale powiedz co byś chciał przykładowo, gdzie czegoś nie rozumiesz

Nie miałem jeszcze przypadku żeby tracić noc na analizę problemy z HA, w normalnej pracy tam nie ma co się zepsuć, “najgorsze” może są update’y ale teraz to już “pan Pikuś” bo jest to coraz bardziej idiotoodporne. Zakładam, że jeszcze kilka miesięcy i problemy po upgrade’ach “znikną”.
Pamiętaj, że wszelkie dodatki do Node-REDa typu node-red-contrib-zigbee2mqtt to też open source, piszą go ludzie albo pojedyncze osoby i rządzą sie tymi samymi prawami co w przypadku HA, ryzyko jest więc takie same.

To masz inne doświadczenia,
jak na forum pisze ktoś, że przestało działać, nie można się zalogować, restaruje się, wysypało się, integracja nawaliła itd to o HA piszą, a nie o NR więc nie tylko mi się zdarzyło mieć z nim problemy.

1 Like

Wiekszość problemów tego typu to brak wiedzy jak to wszystko działa, konfigurowanie na “czuja” itd :slight_smile: - takie są moje przemyślenia po kilku miesiącach na forum.

1 Like

No dokładnie, większość taka jest, nie jestem alfą i omegą i czasem coś sknoce, to wole bezpieczniejszą metodę :slight_smile: A zamiast siedzieć i godzinami coś szukać i się doszkalać żeby zrobić coś trudniej to ja już za leniwy jestem, wole w ten czas grilla odpalić, a nie rozmyślać jak to super zrobiłem i nic nie zepsułem :slight_smile: masz czas i chęć chłonąć wiedzę… to się chwali! :slight_smile: Mój dom ma być smart, a nie ja mam być smart dla mój dom… :slight_smile:
i na tym skończymy :slight_smile:

Np jak włączyć gniazdo zigbee Ikea po naruszeniu czujnika ruchu zigbee sonoff. Stan czujnika już wyciagnalem i teraz change node żeby zmienić z true na ON i to wszystko? Jestem w robocie to nie nie mam jak sprawdzić.

No jak zrobisz tymi nodami co Ci wysłałem to tylko tak robisz i działa:

jjjjjjjk

Też mozesz sobie inne atrybuty zmieniać jak o żarówce mówisz:
hgjhgjjj

1 Like

Ojaaa jakie to super i jakie proste. Dzięki.
Szkoda, ze do mqtt nie ma takich prostych nodów, tylko trzeba konwertować.

do mqtt niestety nic nie znalazłem podobnego…
ale nie ma tragedii, przez mqttexplorera patrzysz ścieżkę, w dokumentacji urządzenia szukasz czy dać /set, czy jakieś /cmnd i działa elegancko

Dokładnie. Tak też robiłem:)

No i utknąłem. Mam te 2 czujniki, które po naruszeniu trzymają stan wysoki przez 60s. jak ustawić, aby gniazdo IKEA nie wyłączało się gdy przynajmniej jeden czujnik ma stan wysoki?

Używając nodów z HA załatwiał mi to current state
image

Hej
no też tutaj sprawdzasz przez current state, nod się nazywa “get”
mam dokładnie tą samą sytuację, dwie czujki i żeby nie gasło jak ta druga ma niższy stan, u mnie jest trochę bardziej rozbudowane bo czujniki są sprawdzane przez occupancy_since czyli czas od ostatniego ruchu, a u Ciebie wystarczy że sprawdzisz czy drugi ma stan wysoki.
Zobacz:

[{"id":"ecea299a.f8b2a8","type":"zigbee2mqtt-in","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu biuro","device_id":"0x00158d00054be508","state":"no_occupancy_since","outputAtStartup":true,"x":270,"y":480,"wires":[["46a7a313.6aa88c"]]},{"id":"46a7a313.6aa88c","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"30","vt":"str"},{"t":"eq","v":"60","vt":"str"},{"t":"eq","v":"90","vt":"str"},{"t":"eq","v":"120","vt":"str"},{"t":"eq","v":"180","vt":"str"}],"checkall":"false","repair":false,"outputs":6,"x":550,"y":480,"wires":[["75422ebc.21357"],["40b5663c.145958"],["e0d41a64.65b2a8"],["85c99a2b.ee7788"],[],["88684efb.f43e1"]]},{"id":"47fef6d6.61bf88","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"90","vt":"num"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":950,"y":500,"wires":[[],["3a83109c.996a7"]]},{"id":"1ae13901.846ef7","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"60","vt":"num"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":950,"y":460,"wires":[[],["29c2d26e.a1717e"]]},{"id":"40b5663c.145958","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu korytarz2","device_id":"0x00158d00054d155e","state":"0","x":770,"y":420,"wires":[["bdd971cf.5c2e2"]]},{"id":"bdd971cf.5c2e2","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"30","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":950,"y":420,"wires":[[],["70486b.57a76794"]]},{"id":"e0d41a64.65b2a8","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu korytarz2","device_id":"0x00158d00054d155e","state":"0","x":770,"y":460,"wires":[["1ae13901.846ef7"]]},{"id":"85c99a2b.ee7788","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu korytarz2","device_id":"0x00158d00054d155e","state":"no_occupancy_since","x":770,"y":500,"wires":[["47fef6d6.61bf88"]]},{"id":"d5dc0484.e53bf8","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"180","vt":"num"},{"t":"eq","v":"ok","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":960,"y":540,"wires":[["3a83109c.996a7"],["3a83109c.996a7"]]},{"id":"88684efb.f43e1","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu korytarz2","device_id":"0x00158d00054d155e","state":"0","x":770,"y":540,"wires":[["d5dc0484.e53bf8"]]},{"id":"fd4e20f0.8c609","type":"zigbee2mqtt-in","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu korytarz2","device_id":"0x00158d00054d155e","state":"no_occupancy_since","outputAtStartup":true,"x":270,"y":640,"wires":[["255ee8e9.65a068"]]},{"id":"255ee8e9.65a068","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"30","vt":"str"},{"t":"eq","v":"60","vt":"str"},{"t":"eq","v":"90","vt":"str"},{"t":"eq","v":"120","vt":"str"},{"t":"eq","v":"180","vt":"str"}],"checkall":"false","repair":false,"outputs":6,"x":550,"y":640,"wires":[["d174401b.62fc1"],["7f343596.1cc42c"],["12306cb2.cbf353"],["a257650b.769878"],[],["a638aa03.9426b8"]]},{"id":"2cedac16.1e9324","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"90","vt":"num"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":940,"y":720,"wires":[[],["c4b11dbb.73cbd"]]},{"id":"99143f6e.45123","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"60","vt":"num"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":940,"y":680,"wires":[[],["aaf6ef1c.a99f6"]]},{"id":"7f343596.1cc42c","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu biuro","device_id":"0x00158d00054be508","state":"no_occupancy_since","x":750,"y":640,"wires":[["35eb6da8.603d32"]]},{"id":"35eb6da8.603d32","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"30","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":940,"y":640,"wires":[[],["123923ed.afc7fc"]]},{"id":"12306cb2.cbf353","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu biuro","device_id":"0x00158d00054be508","state":"no_occupancy_since","x":750,"y":680,"wires":[["99143f6e.45123"]]},{"id":"a257650b.769878","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu biuro","device_id":"0x00158d00054be508","state":"no_occupancy_since","x":750,"y":720,"wires":[["2cedac16.1e9324"]]},{"id":"5f2b36c.25d2dc8","type":"switch","z":"23154552.43abca","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"180","vt":"num"},{"t":"eq","v":"ok","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":950,"y":760,"wires":[["c4b11dbb.73cbd"],["c4b11dbb.73cbd"]]},{"id":"a638aa03.9426b8","type":"zigbee2mqtt-get","z":"23154552.43abca","name":"","server":"e42dbc53.d003","friendly_name":"czujka ruchu biuro","device_id":"0x00158d00054be508","state":"no_occupancy_since","x":750,"y":760,"wires":[["5f2b36c.25d2dc8"]]},{"id":"75422ebc.21357","type":"link out","z":"23154552.43abca","name":"","links":["a9ac38d6.c6e558"],"x":695,"y":380,"wires":[]},{"id":"d174401b.62fc1","type":"link out","z":"23154552.43abca","name":"","links":["a9ac38d6.c6e558"],"x":675,"y":600,"wires":[]},{"id":"70486b.57a76794","type":"link out","z":"23154552.43abca","name":"","links":["e4281939.fc9338"],"x":1065,"y":420,"wires":[]},{"id":"123923ed.afc7fc","type":"link out","z":"23154552.43abca","name":"","links":["e4281939.fc9338"],"x":1035,"y":620,"wires":[]},{"id":"29c2d26e.a1717e","type":"link out","z":"23154552.43abca","name":"","links":["d1e643f.a0eecc"],"x":1065,"y":470,"wires":[]},{"id":"aaf6ef1c.a99f6","type":"link out","z":"23154552.43abca","name":"","links":["d1e643f.a0eecc"],"x":1055,"y":680,"wires":[]},{"id":"c4b11dbb.73cbd","type":"link out","z":"23154552.43abca","name":"","links":["b3dbc062.2b9d8"],"x":1075,"y":750,"wires":[]},{"id":"3a83109c.996a7","type":"link out","z":"23154552.43abca","name":"","links":["b3dbc062.2b9d8"],"x":1085,"y":540,"wires":[]},{"id":"e42dbc53.d003","type":"zigbee2mqtt-server","name":"zigbee2mqtt XPENOLOGY","host":"192.168.5.102","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Zrób tak jak miałeś, tylko jak nody z2m używasz to musisz tego switcha tylko dodać i masz to samo: