Open Weather Map - Wyłączanie switcha na podstawie prognozy pogody, UPS

Witam wszystkich, na wstępie chciałem mniej więcej przedstawić mój pomysł. Zakupiłem:

  • ZASILACZ AWARYJNY VOLT SINUS PRO 1500E 12V / 230V
  • 2x Akumulator bezobsługowy AGM 12V 100Ah

Do tego zestawu wpiąłem w puszkę:

  • Moduł OXT Przekaźnik 1 Obwód Pomiar 16A WIFI TUYA - SWT21P

Postanowiłem wykonać automatyzację, która będzie spełniać te założenia:

Użyłem Open Weather Map do odczytywania pogody w sumie kodów, jakie są zawarte w API i mogę zidentyfikować, jaka jest aktualnie pogoda na danym obszarze.
https://openweathermap.org/weather-conditions

Czyli:
200 - burza z lekkim deszczem
201 - burza z deszczem
202 - burza z ulewnym deszczem
210 - lekka burza
211 - burza z piorunami
212 - silna burza
221 - rozszalała burza
230 - burza z lekką mżawką
231 - burza z deszczem
232 - burza z ulewną mżawką
300 - mżawka o intensywności lekkiej
301 - mżawka
302 - gęsta, intensywna mżawka
310 - mżawka o intensywności światła
311 - mżawka
312 - intensywne opady deszczu, mżawka
313 - przelotny deszcz i mżawka
314 - ulewny deszcz i mżawka
321 - mżawka prysznicowa
500 - lekki deszcz
501 - umiarkowane opady
502 - intensywne opady deszczu
503 - bardzo ulewny deszcz
504 - ekstremalny deszcz
511 - marznący deszcz
520 - deszcz o intensywności światła
521 - Prysznic deszcz
522 - intensywne opady deszczu
531 - ulewny deszcz
600 - lekkie opady śniegu
601 - śnieg
602 - duże opady śniegu
611 - śnieg z deszczem
612 - lekki przelotny deszcz ze śniegiem
613 - deszcz ze śniegiem
615 - lekki deszcz i śnieg
616 - deszcz i śnieg
620 - lekki deszczowy śnieg
621 - prysznic ze śniegiem
622 - obfite opady śniegu
701 - mgła
711 - palić
721 - mgła
731 - wiry piasku/pyłu
741 - mgła
751 - piasek
761 - pył
762 - pył wulkaniczny
771 - szkwały
781 - tornado
800 - czyste Niebo
801 - mało chmur: 11-25%
802 - rozproszone chmury: 25-50%
803 - rozbite chmury: 51-84%
804 - zachmurzenie całkowite: 85-100%

  1. Chcę, aby mój switch: switch.gniazdko_ups_serwer_switch_1, wyłączał się w danym przedziale czasowym to jest 03:00 a 09:00 jeżeli prognoza na dany dzień będzie słoneczna, czyli będzie spełniony któryś z tych warunków:

200, 701, 711, 721, 731, 741, 751, 761, 762, 800, 801, 802, 803

  1. Jeżeli prognoza pogody będzie wskazywała na bardzo duże zachmurzenie lub deszcz, czyli wystąpi któryś z poniższych warunków to żeby tego procesu nie uruchamiała.

200, 201, 202, 210, 211, 212, 221, 230, 231, 232, 300, 301, 302, 310, 311, 312, 313, 314, 321, 500, 501, 502, 503, 504, 511, 520, 521, 522, 531, 600, 601, 602, 611, 612, 613, 615, 616, 620, 621, 622, 771, 781, 804

  1. Jeżeli proces, który się uruchomił, bo była ładna pogoda zakończy się o godzinie 09:00 to powinien się włączyć z powrotem switch.

Udało mi się zrealizować coś takiego:

Plik JSON:
UPS.json (5,9 KB)

Nie jestem pewien czy to jest dobra droga, jaką obrałem:

  1. Czy jest konieczny nod INJECT do uruchamiania takiego procesu?
  2. Czy nod TIME RANGE tu w ogóle powinien być? w sumie on tylko pozwala na uruchomienie procesu w danym przedziale czasowym… ale coś i tak musi go wywołać, czyli nod INJECT?
  3. Co z uruchomieniem z powrotem switcha po upłynięciu czasu 9:00 ? Jak tego dokonać? Tutaj musiałby być nod INJECT? Który by uruchamiał switch?
  4. Sprawdzanie pogody musiałoby się odbywać w nocy tj. 03:01?

W sumie to wiele pytań… Czy może ktoś pomóc w przerobieniu tego flow?

Ja bym użył noda cron-plus i sprawdzał o 3:00 jakie warunki pogodowe i jak ok to wyłącz switch jak nie to nic nie rób. Drugi raz uruchamia się cron o 9:00 i włącza switch. (który może już być włączony w przypadku kiedy proces się nie uruchomił bo była kiepska pogoda). Oczywiście można zastosować sprawdzanie stanu switcha (zapis do zmiennej) i od tego czy jest on lub off proces pójdzie dalej.
flows (97).json (5,5 KB)

Moim zdaniem cron się średnio sprawdzi, pogoda o 3 w nocy może być deszczowa, a o 6 rano już pełne słońce, szczególnie wiosną , latem. Ja bym wyzwalał co 5 min od 3 do 9:30 nodem Inject a włączenie o 9 ustawił nodem Time Range.

Dziękuję @MariuszAK za flow, można to w sumie zrobić krócej i faktycznie bez Time Range, dziękuję.

@isom1266 Twoje spostrzeżenia są równie trafne, ale pisząc:

włączenie o 9 ustawił bym nodem Time Range.

W jaki sposób zrealizowałbyś to włączenie nodem TimeRange? Czy mógłbyś pokazać, jak może wyglądać taki flow? Szukam najlepszego rozwiązania i chciałbym popróbować wszystkie.

Zastanawiam się też czy nie ma jakiejś innej metody na sprawdzenie pogody danego dnia, np 3 zapytania o pogodę na dziś - cały dzień 3:00, 5:00, 7:00, bo w sumie teraz to sprawdzam pogodę aktualną, jaka panuje o danej godzinie.

Ale to tak sobie teraz kmienię :wink:

Dodać w nodzie cron dodatkowe dwa uruchomienia o tych godzinach.

W sumie wystarczy zmodyfikować Twój flow


Sprawdzamy co 10 min od 3:00 do 10:00 warunki , Time Range pozwala wyłączyć switch do 8:59 , po tym czasie switch musi zostać włączony.
flows.json (3,0 KB)

Super, wszystko śmiga :slight_smile:
Obydwa rozwiązania spełniają moje założenia i co najważniejsze działają!

Poniżej zebrane flow z dwoma sposobami, dziękuję.

UPS.json (7,9 KB)