Zigbee2mqtt - "upewnienie się", że przełącznik został wyłączony

Zacznę od tego, że steruję sobie pompą basenową - w ogrodzie mam gniazdko Zigbee do którego wpięta jest pompa (o odpowiednich godzinach wysyłam on lub off).
Problemem jest to, że gniazdko najwyraźniej jest na granicy zasięgu - zdarzyło się 2 razy, że Node Red (call service) wysyłał sygnał off, natomiast pompa działała całą noc…

Pytanie, jak rozwiązać ten problem? Jak upewnić się, że gniazdko zostało wyłączone?

Na tą chwilę dorobiłem szybką pętlę we flow (wyłącz → sprawdź czy jest off → jeśli nie to poczekaj 30s i spróbuj wyłączyć jeszcze raz → itd.)

Wydaje mi się jednak, że istnieje “ładniejsze” rozwiązanie tego problemu o które chciałbym Was zapytać (nie chciałbym też tworzyć takiej pętli dla każdego urządzenia).

Myślałem nad flagą retain (true), natomiast po pierwsze, jeszcze nie rozgryzłem gdzie to dokładnie ustawić dla tego urządzenia (zaznaczenie haczyka przy Retain w ustawieniach Z2M nie działa - wiadomości nadal mają false przy retain i niestety nie mogę już tego haczyka odznaczyć…:confused:) a po drugie, wyobrażam sobie sytuację, że gniazdko jest poza zasięgiem, włączam je fizycznie a po chwili “łapie” zasięg i się wyłącza (payload: off z flagą retain: true)…

Jak to można rozwiązać?

Jakie to gniazdko Zigbee?

Silvercrest (z Lidla)

Wejdź do Z2M w kolumnie Model kliknij w twoje urządzenie, jak otworzy ci się strona na samym dole są ustawienia MQTT sprawdź czy obsługuje (payload: off z flagą retain: true)…

Otwiera mi się strona:

Nie ma tam nic odnośnie ustawienia retain: true. Na żadnej stronie (z 25 moich urządzeń) nie ma nic o retain: true.

Zastanawiam się po co jest ta opcja? W ustawieniach urządzenia w Z2M:

(tak jak pisałem wcześniej, przy jednym z urządzeń zaznaczyłem to, ale komendy i tak wychodzą do urządzenia z flagą false, dodatkowo nie mogę teraz tego odznaczyć)

Właśnie teraz mam sytuację, że gniazdko nie chce się włączyć. Pod Z2M widoczne wszystko jak gdyby nigdy nic (LQI 156) ale w logach error:

Zigbee2MQTT:error 2021-08-09 21:37:45: Publish ‘set’ ‘state’ to ‘silvercrest_socket_1’ failed: ‘Error: Command 0xbc33acfffe47f0e0/11 genOnOff.on({}, {“sendWhenActive”:false,“timeout”:10000,“disableResponse”:false,“disableRecovery”:false,“disableDefaultResponse”:false,“direction”:0,“srcEndpoint”:null,“reservedBits”:0,“manufacturerCode”:null,“transactionSequenceNumber”:null,“writeUndiv”:false}) failed (Data request failed with error: ‘MAC no ack’ (233))’

Jeżeli ta opcja działa to zrób sobie przełącznik w HA na podstawie podanej strony i dodaj brakujący
wpis retain: true w miejsce <FRIENDLY_NAME> nazwa twojego urządzenia z Z2M

switch:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    payload_off: "OFF"
    payload_on: "ON"
    value_template: "{{ value_json.state }}"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/set"