Problem z wyłączeniem żarówki za pomocą pilota Philips Hue dimmer

Cześć.

Home Assistant postawiony na proxmox i zigbee2mqtt. Node-red steruję dodatkiem z2m. Chcę jedną żarówke sterować pilotem. Przyciski włączania, przyciemniania i rozjaśniania działają bez problemu ale na wyłączenie nie reaguje. Wg debug jak włączę to pokazuje “on-press” i działa bez problemu. Jak wyłącze debug pokazuje “off-press” ale żarówka nie reaguje. Jak ten problem rozwiązać?

Do rozwiązania problemu trzeba dodać kod NR i ewentualnie jakieś zrzuty ekranu.

[{"id":"c58d54a11a04ecec","type":"tab","label":"Google Home","disabled":false,"info":"","env":[]},{"id":"5f516b874dbf7eac","type":"zigbee2mqtt-in","z":"c58d54a11a04ecec","name":"","server":"d68658b68a3ecf9e","friendly_name":"Pilot (324131092621)","device_id":"0x001788010968addb","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":180,"y":80,"wires":[["24b45cb9011a1737","ebada0ee327df203"]]},{"id":"ebada0ee327df203","type":"zigbee2mqtt-out","z":"c58d54a11a04ecec","name":"","server":"d68658b68a3ecf9e","friendly_name":"Kuchnia (929001821618)","device_id":"0x0017880109a0b150","command":"brightness_move_onoff","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":570,"y":120,"wires":[]},{"id":"24b45cb9011a1737","type":"debug","z":"c58d54a11a04ecec","name":"debug 1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":320,"y":180,"wires":[]},{"id":"d68658b68a3ecf9e","type":"zigbee2mqtt-server","name":"","host":"localhost:1883","mqtt_port":"1883","mqtt_username":"homeassistant","mqtt_password":"EreiFer6ioKeizahV4Te0deQu2aingi8iehahhoceeDeishaelaej9egahxoiwu3","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Obecnie do home assistant mam dostęp tylko z komórki bo jestem poza domem.

W nodzie ‘out’ (kuchnia) masz cały czas ustawione: Command: ‘Brightness Move On/Off’?

zgodnie z dokumentacją dodatku(MQTT Topics and Messages | Zigbee2MQTT) żeby zmienić stan ON/OFF msg.payload musi zawierać np dla wyłączenia “OFF” (lub {“state”: “OFF”}), a wg informacji z Twojego pierwszego posta przechodzi “off-press”.

Wg mnie powinieneś wiadomość “off-press” zamienić na “OFF” i w nodzie Kuchnia ustawic command na ‘State’

Na razie do poniedziałku jestem poza domem. Zdalnie zmieniłem to co mi podpowiedziałeś i zobaczę jak fizycznie to działa gdy wrócę. Jeśli chodzi o tylko i wyłącznie o zmianę na state w nodzie “Kuchnia” to nic nie dawało to. Dzięki Tobie dodałem nod o którym na śmierć zapomniałem- “change”. Ustawiłem tak jak napisałeś czyli jak znajdzie wiadomość “off-press” to wyśle zmienioną wiadomość na “OFF”. Jak wrócę to dam znać czy zadziałało.

Edit:
@fronteri nie wiem co robię źle. Czy mam dodać nod state? Bo pomimo zamiany wiadomości off press na off nie działa. Jak jest wyłączone światło i wcisnę przycisk off to się włącza światło.

[{"id":"c58d54a11a04ecec","type":"tab","label":"Oświetlenie sterowane pilotem","disabled":false,"info":"","env":[]},{"id":"76c0de04dea38a53","type":"zigbee2mqtt-in","z":"c58d54a11a04ecec","name":"Pilot","server":"d68658b68a3ecf9e","friendly_name":"Pilot (324131092621)","device_id":"0x001788010968addb","state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":50,"y":60,"wires":[["fefdfe42a48c82f1"]]},{"id":"62c602343650a7a6","type":"zigbee2mqtt-out","z":"c58d54a11a04ecec","name":"","server":"d68658b68a3ecf9e","friendly_name":"Kuchnia (929001821618)","device_id":"0x0017880109a0b150","command":"brightness_move_onoff","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":530,"y":60,"wires":[]},{"id":"71f8c1f73bd50bfe","type":"debug","z":"c58d54a11a04ecec","name":"debug 2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":480,"y":20,"wires":[]},{"id":"fefdfe42a48c82f1","type":"change","z":"c58d54a11a04ecec","name":"","rules":[{"t":"change","p":"payload.action","pt":"msg","from":"off-press","fromt":"str","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":260,"y":60,"wires":[["71f8c1f73bd50bfe","62c602343650a7a6"]]},{"id":"d68658b68a3ecf9e","type":"zigbee2mqtt-server","name":"","host":"localhost:1883","mqtt_port":"1883","mqtt_username":"homeassistant","mqtt_password":"EreiFer6ioKeizahV4Te0deQu2aingi8iehahhoceeDeishaelaej9egahxoiwu3","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Nie jest może idealnie, nie mam tego jak sprawdzić, ale powinno działać jeżeli tylko z wyłączaniem był problem.

[{"id":"d0f12068cca7707d","type":"zigbee2mqtt-in","z":"3bd40c741f73d62d","name":"Pilot","server":"d68658b68a3ecf9e","friendly_name":"Pilot (324131092621)","device_id":[],"state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":230,"y":140,"wires":[["6acf03e548f74cd0"]]},{"id":"f0de40caa32a6502","type":"zigbee2mqtt-out","z":"3bd40c741f73d62d","name":"ON, Brighntess","server":"d68658b68a3ecf9e","friendly_name":"","device_id":[],"command":"brightness_move_onoff","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":640,"y":160,"wires":[]},{"id":"16b552668a50fb7b","type":"zigbee2mqtt-out","z":"3bd40c741f73d62d","name":"OFF","server":"d68658b68a3ecf9e","friendly_name":"","device_id":[],"command":"state","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":610,"y":120,"wires":[]},{"id":"6acf03e548f74cd0","type":"function","z":"3bd40c741f73d62d","name":"function","func":"if (msg.payload.action == \"off-press\") \n    {\n        msg.payload = \"OFF\"\n        return [msg, null]\n    }\nelse \n    {\n        return [null, msg]\n    }","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":140,"wires":[["16b552668a50fb7b"],["f0de40caa32a6502"]]},{"id":"d68658b68a3ecf9e","type":"zigbee2mqtt-server","name":"","host":"localhost:1883","mqtt_port":"1883","mqtt_username":"homeassistant","mqtt_password":"yuuDi1kaiy6oHee2nookaQuai9shiel7ootou0thahS6xohj0Ingiequudiajege","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Przepraszam, może głupie pytanie ale czy ten kod należy importować do node-red? Pytam bo pisze błąd, dane wejściówe nie są tablicą json. Domyślam się ze to mam wpisać do konkretnego nod?

tak musisz zaimportować
Node Red - prawy górny róg (tzw. hamburger menu) - import

Sprawdz czy zaznaczyłeś sobie całą zawartość do skopiowania.

Musiałem zresetować node-red. Doskonale rozumiem o co chodzi w Twoim pomyśle i jest dobry. Ale niestety nie rozwiązało to problemu pomimo ze zmieniłem słowo off na 0, false, stop itd. Z ciekawości sprawdziłem nod inject i tam wpisałem msg.payload=off i to działa więc spróbowałem to samo użyć w lodzie funkcje kopiując informacje z debug który był podłączony do inject. Niestety to również nic nie dało. Dawno nie miałem tak dziwacznego problemu :joy:

Sprawdź teraz, czy działa ściemnianie. W razie czego uzupełnij funkcję o warunki dla msg.payload.action uwzględniające rozjaśnianie i ściemnianie (wg dokumentacji prawdopodobnie ‘up-press’ i ‘down-press’)

[{"id":"d0f12068cca7707d","type":"zigbee2mqtt-in","z":"3bd40c741f73d62d","name":"Pilot","server":"d68658b68a3ecf9e","friendly_name":"Pilot (324131092621)","device_id":[],"state":"0","outputAtStartup":true,"filterChanges":false,"enableMultiple":false,"x":230,"y":140,"wires":[["6acf03e548f74cd0"]]},{"id":"f0de40caa32a6502","type":"zigbee2mqtt-out","z":"3bd40c741f73d62d","name":"BRIGHNTESS","server":"d68658b68a3ecf9e","friendly_name":"","device_id":[],"command":"brightness","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":630,"y":160,"wires":[]},{"id":"16b552668a50fb7b","type":"zigbee2mqtt-out","z":"3bd40c741f73d62d","name":"ON, OFF","server":"d68658b68a3ecf9e","friendly_name":"","device_id":[],"command":"state","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":620,"y":120,"wires":[]},{"id":"6acf03e548f74cd0","type":"function","z":"3bd40c741f73d62d","name":"function","func":"if (msg.payload.action == \"off-press\") \n    {\n        msg.payload = \"OFF\"\n        return [msg, null]\n    }\nif (msg.payload.action == \"on-press\") \n    {\n        msg.payload = \"ON\"\n        return [msg, null]\n    }\nelse \n    {\n        msg.payload = {\"brighntess\": msg.payload.brightness}\n        return [null, msg]\n    }","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":420,"y":140,"wires":[["16b552668a50fb7b"],["f0de40caa32a6502"]]},{"id":"d68658b68a3ecf9e","type":"zigbee2mqtt-server","name":"","host":"localhost:1883","mqtt_port":"1883","mqtt_username":"homeassistant","mqtt_password":"yuuDi1kaiy6oHee2nookaQuai9shiel7ootou0thahS6xohj0Ingiequudiajege","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Teraz zupełnie odwrotnie :joy:

Włączam światło przez HA- wyłączam pilotem- działa prawidłowo, nie działa zmiana jasności.
Włączam światło pilotem- nie działa.
Edit:
Narazie olałem bo szkoda zachodu. Załatwiłem to przez automatyzację w HA. Chyba ze komuś chce się nadal ekserymetować to ja nadal mogę sprawdzić.

Tu masz przykłady, może w czymś pomogą.

Kod:
flows_z1.json (6,2 KB)

Kod:
flows_z2.json (3,8 KB)

Dzięki wielkie :slight_smile: sprawdzę za kilka dni jak wrócę do domu.