Automatyzacja zawodzi w co drugi dzień o godzinie 4 rano

Cześć,
mam taką oto prostą automatyzację:


Co robi? - regularnie co dwie godziny uruchamia na 2 minuty skimmer w akwarium
poniżej kod:

[{"id":"3d8de45c9c048649","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"1167428d07c67081","type":"group","z":"3d8de45c9c048649","name":"Akwarium","style":{"stroke":"#ff0000","fill":"#7fb7df","label":true,"color":"#ff0000"},"nodes":["e001c5bee35c654f","dabc1d97b7a221e0","54e45ca59302c9de","983b6df1a53e407d","14f13d4cc4835af5","1d6db00eda88bbbc","c3c4f7f4ad1de7fb","a7b78e93da4d9c66","df0f9448709be6a7","d21154ac293bb9c1","aca1fee280b3c5dc","31024b001e029413","a5e2ddd4d4aba333","b0185fba1208ba56","2490be5e4d19e24f","ac19eee812f73559","e6a1aecfe08e3744"],"x":213.93331146240234,"y":259,"w":672.0666885375977,"h":282},{"id":"e001c5bee35c654f","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"12","props":[{"p":"payload"}],"repeat":"","crontab":"00 12 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":310,"y":300,"wires":[["dabc1d97b7a221e0"]]},{"id":"dabc1d97b7a221e0","type":"link out","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"link out 11","mode":"link","links":["54e45ca59302c9de"],"x":415,"y":400,"wires":[]},{"id":"54e45ca59302c9de","type":"link in","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"link in 4","links":["dabc1d97b7a221e0","14f13d4cc4835af5"],"x":715,"y":400,"wires":[["e6a1aecfe08e3744"]]},{"id":"983b6df1a53e407d","type":"zigbee2mqtt-out","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"Skimmer","server":"264e6b06d3c56e54","friendly_name":"Z9 niebieskie (TS011F_plug_1)","device_id":"0xa4c138e55492c11e","command":"state","commandType":"z2m_cmd","payload":"payload","payloadType":"msg","optionsValue":"","optionsType":"nothing","x":800,"y":300,"wires":[]},{"id":"14f13d4cc4835af5","type":"link out","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"link out 12","mode":"link","links":["54e45ca59302c9de"],"x":635,"y":400,"wires":[]},{"id":"1d6db00eda88bbbc","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"00","props":[{"p":"payload"}],"repeat":"","crontab":"00 00 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":300,"wires":[["14f13d4cc4835af5"]]},{"id":"c3c4f7f4ad1de7fb","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"2","props":[{"p":"payload"}],"repeat":"","crontab":"00 02 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":340,"wires":[["14f13d4cc4835af5"]]},{"id":"a7b78e93da4d9c66","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"4","props":[{"p":"payload"}],"repeat":"","crontab":"00 04 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":380,"wires":[["14f13d4cc4835af5"]]},{"id":"df0f9448709be6a7","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"6","props":[{"p":"payload"}],"repeat":"","crontab":"00 06 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":420,"wires":[["14f13d4cc4835af5"]]},{"id":"d21154ac293bb9c1","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"10","props":[{"p":"payload"}],"repeat":"","crontab":"00 10 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":500,"wires":[["14f13d4cc4835af5"]]},{"id":"aca1fee280b3c5dc","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"22","props":[{"p":"payload"}],"repeat":"","crontab":"00 22 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":310,"y":500,"wires":[["dabc1d97b7a221e0"]]},{"id":"31024b001e029413","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"20","props":[{"p":"payload"}],"repeat":"","crontab":"00 20 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":310,"y":460,"wires":[["dabc1d97b7a221e0"]]},{"id":"a5e2ddd4d4aba333","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"18","props":[{"p":"payload"}],"repeat":"","crontab":"00 18 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":310,"y":420,"wires":[["dabc1d97b7a221e0"]]},{"id":"b0185fba1208ba56","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"16","props":[{"p":"payload"}],"repeat":"","crontab":"00 16 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":309.93331146240234,"y":376.5999755859375,"wires":[["dabc1d97b7a221e0"]]},{"id":"2490be5e4d19e24f","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"14","props":[{"p":"payload"}],"repeat":"","crontab":"00 14 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":310,"y":340,"wires":[["dabc1d97b7a221e0"]]},{"id":"ac19eee812f73559","type":"inject","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"8","props":[{"p":"payload"}],"repeat":"","crontab":"00 08 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"on","payloadType":"str","x":530,"y":460,"wires":[["14f13d4cc4835af5"]]},{"id":"e6a1aecfe08e3744","type":"trigger","z":"3d8de45c9c048649","g":"1167428d07c67081","name":"","op1":"on","op2":"off","op1type":"str","op2type":"str","duration":"2","extend":false,"overrideDelay":false,"units":"min","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":770,"y":360,"wires":[["983b6df1a53e407d"]]},{"id":"264e6b06d3c56e54","type":"zigbee2mqtt-server","name":"zigbee2mqtt","host":"192.168.50.201","mqtt_port":"1883","mqtt_username":"","mqtt_password":"","mqtt_qos":"0","tls":"","usetls":false,"base_topic":"zigbee2mqtt"}]

Problem mam taki że w co drugi dzień o godzinie 4tej rano się uruchamia ale już nie wyłącza i działa tak aż do godziny 6:02.

Zakładam że sama automatyzacja jest ok ale pewnie coś po stronie serwera(synology)/z2m ją przerywa - nie moge tego czegoś namierzyć. Macie jakieś pomysły?

Jeżeli dobrze poniższe rozumeim to z logów nodered wynika że po stronie automatyzacji wszystko było ok:
image
to by oznaczało że zawiodło coś po stronie z2m?
Załączam też wycinek logów z z2m z2m.xlsb - Dysk Google

Ta 4 rano to tak mi się kojarzy z wykonywaniem backupu, wtedy Supervisor może zamrażać niektóre/wszystkie Dodatki, aby nie powstały sprzeczności w backupie (stan musi być z określonego momentu, mimo, że ten proces nie odbywa się w zerowym czasie) skutki takiego zamrożenie szczególnie widać na wolnym sprzęcie.
Gdybyś sprawdzał stan i wprowadził jakąś obsługę błędów problem by nie powstał, bo tu wychodzi bokiem stosowanie metody optymistycznej - dajesz sygnał do włączenia czy wyłączenia i zakładasz, że to oznacza wykonanie polecenia.

2 Likes

Gdybyś zrezygnował z tych wspomagaczy z2m tylko używał węzłów mqtt i publikował polecenia ze znacznikiem retain, to byłoby mniejsze prawdopodobieństwo ich utraty .

1 Like

właśnie tego nie umiem zrobićw Node-Red dasz jakiś przykład jak to zrobić? Jakaś prosta automatyzacja była by dla mnie najlepszym rozwiązaniem żeby się podszkolić.

ok dzięki, przeszedłem dawno temu na z2m bo na tym forum ktoś to polecił nie wiem kto nie wiem kiedy ale troche sie narobiłem żeby wszystie automatyzacje przerobić właśnie na ten sposób. Nie jestem pewny tylko o co dokładnie Ci chodzi? Bo jak o taki node:
image
to tutaj widze taką słabość że jak zmienie nazwę w z2m jakiegoś urządzenia to ona mi sie nie zaktualizuje sama. A to co piszesz o znaczniku retain to już całkiem nie wiem o co może chodzić. Dasz przykład jakieś prostej automatyzacji żebym mógł sobie przepatrzeć?

PS: pisałem sporo z Chatem GPT na temat tego problemu i wychodzi na to lub ja to tak rozumiem że problem jest po stronie komunikacji z2m z urządzeniem bo nodered informacje wysyła a z2m odbiera. Troche by to pasowało z tym co pisze kolega @szopen o jakieś aktualizacji w synology. Patrzyłem na harmonogramy - chyba powinny być tam wszystkie i nie widziałem żeby któryś był zaplanowany w godzinach 4:00 - 4:02 ale może o czymś jeszcze nie wiem. Być może to wina routera asus? Poniżej print-screen


jakoś nie wydaje mi się żeby to była wina…

To wyłącz tą aktualizację i sprawdź co to zmieni.


To nie załatwia wszystkiego ale powoduje, że gdy urządzenie się łączy z brokerem dostaje ostatnie zapamiętane polecenie. Poprawia to przypadki gdy urządzenie okresowo może się rozłączyć. Działa to pod warunkiem stabilnego połączenia NR<>Mqtt.

1 Like

hej @RobinI30 sprawdzę Twoją propozycje

ale gdyby jeszcze kolega @szopen był tak miły i podesłał coś w kontekcie tego co pisze w tym fragmencie:

też chciałbym przetestować to rozwiązanie.

Nie znam NR więc nie pomogę, ale widzę jak jest.

Druga kwestia 4 rano to jest typowa pora backupu w HA i o tym mówiłem (należałoby znaleźć realnie punkt, który powoduje brak komunikacji, ja stawiam na celowo zamrożony serwer Z2M trwającym backupem), a szczerze mówiąc wątpię by sprawdzenie aktualizacji firmware routera miało jakiekolwiek znaczenie (bo nie znam producenta który by wydawał poprawki tak często, gdyż jedynie faktyczna aktualizacja firmware mogłaby mieć jakikolwiek wpływ na przerwę w działaniu sieci), ale wyłącz to dla testu.

Kwestia trzecia - nie wiemy czy koordynator Zigbee masz podpięty po Ethernecie kablowo czy WiFi a może jednak USB?
(jeśli USB to nawet chwilowy zanik sieci nie ma wpływu na komunikację w prawidłowo skonfigurowanych instalacjach HAOS i Supervised - bo nie ma potrzeby korzystania z adresacji LAN, gdy do komunikacji wszystkich serwerów uruchomionych na tej samej maszynie wystarcza podsieć Dockera, swoją drogą przy innych metodach instalacji też stabilny LAN nie jest zwykle potrzebny do wewnętrznej komunikacji współpracujących serwerów po ich własnej sieci, no ale jak to masz rozwiązane nie wiemy).

Sporo informacji możesz dostarczyć takim raportem
Jak podzielić się informacjami o swojej instalacji Home Assistant na forum lub githubie
ale wciąż to nie wszystkie by wiedzieć co można jeszcze sugerować…

1 Like

Jeśli to takie ważne - uruchamiaj proces co 2minuty.

  • sprawdzaj czy godzina dzieli się bez reszty przez 2.
    wtedy:
  • sprawdź czy minuta=00 - włącz
  • sprawdź czy minuta > 1 - wyłącz
    Będzie trochę narzutu na niepotrzebne polecenia ale tragedii nie ma.
    Dodatkowo można wyłączać tylko gdy jest znany stan i jest włączony.
2 Likes

A czy to mogło by przeszkadzać (było ustawione na co dzien od 4 do 5 czyli 2 godziny - pasuje idealnie jako winowajca?


Mój nas to synology 220+ z dodatkową kością pamięci (łącznie mam 10GB) może to nie jakiś demon predkości ale żeby ten process był aż taki obciążający - nie da się jakoś zmniejszyć priorytetu dla tego zadania?
dzisiejszej nocy mimo zastosowania się do rady @RobinI30 i ustawienia retain=true skimmer nie wyłączył się

dodałem sobie taką czujkę na wszelki wypadek:


o ile nic nie pokręciłem to trigger 2m powinien wyłączyć jak zawsze skimmer po 2min ale jednocześnie uruchomi następny zwracający wartość off co każdą 1min i bedzie tak robi aż do momentu gdy node nasłuchujący stan skimmera zwróci wartość OFF wtedy pójdzie message STOP do triggera 1min

Trochę pokrętne, bo wszystko zależy jak często raportuje skimer… albo nie do końca zrozumiałem algorytm.

Trigger 2min włącza i wyłącza skimmer dajmy na to o godzinie 4tej. Dwie minuty później ten sam trigger wyłącza skimmer ale jednocześnie włącza w ruch trigger 1min który co minutę podaje sygnał off aż do momentu gdy node skimmer (ten na dole) zwróci stan off wtedy uruchamia procedurę zatrzymania tryggera 1min

Skimmer powinien raportować po każdej zmianie stanu oraz przy starcie

1 Like