Automatyzacja Winnicy: Walka z Przymrozkami i API (z pomocą AI!) - Aktualizacja 24.04.2025
Automatyzacja Winnicy: Walka z Przymrozkami i API (z pomocą AI!) - Aktualizacja 24.04.2025
Witajcie ponownie w naszym dzienniku winnicy! Ostatnie dni, a szczególnie dzisiejszy, upłynęły pod znakiem intensywnych prac nad automatyzacją systemu ochrony przed przymrozkami i monitoringu pogody. Cel jest ambitny: stworzyć system, który sam zareaguje na spadek temperatury i uruchomi zraszanie antyprzymrozkowe, a jednocześnie będzie zbierał kluczowe dane pogodowe i logował aktywność zraszaczy.
Początkowe Wyzwania i Współpraca z AI
Zaczęliśmy od skryptu Google Apps Script, który miał integrować dane z naszej stacji pogodowej Ecowitt oraz sterować zraszaczami OpenSprinkler. Pierwsze kroki i wersje kodu powstawały przy wsparciu ChatGPT. Napotkaliśmy jednak sporo problemów:
- API Ecowitt: Początkowo dane nie były poprawnie pobierane. Okazało się, że kluczowe było precyzyjne nazewnictwo kluczy API i adresu MAC we Właściwościach Skryptu Google. Później doświadczyliśmy niestabilności samego API Ecowitt (błędy HTTP 500), co wymusiło optymalizację kodu – zamiast odpytywać API wielokrotnie przy każdym zapisie danych, teraz robimy to tylko raz na cykl wykonania skryptu.
- API OpenSprinkler: Uruchamianie zraszaczy przez chmurę OpenThings Cloud wymagało znalezienia odpowiedniego punktu końcowego (
/cm) i poprawnego formatu parametrów, w tym hasła hashowanego algorytmem MD5. Debugowanie odpowiedzi API (result: 1dla sukcesu,result: 2dla błędu autoryzacji) było kluczowe. - Logika Skryptu Google Apps Script: W trakcie prac, już z pomocą Gemini, poprawialiśmy błędy w kodzie (np. literówki w funkcji MD5), usprawnialiśmy logikę obsługi błędów, zarządzanie wyzwalaczami czasowymi (unikanie błędu
Invalid argument: duration) oraz sposób przekazywania danych między funkcjami.
Nowe Funkcje i Rozwiązania (Stan na 24.04.2025)
Dzięki iteracyjnej pracy i debugowaniu, udało nam się zaimplementować kilka istotnych ulepszeń:
- Czujnik Przygruntowy: Przenieśliśmy czujnik temperatury/wilgotności (wcześniej monitorujący winiarnię) na zewnątrz, umieszczając go tuż przy ziemi w winnicy. Odczyty z tego czujnika (
indoorw danych Ecowitt) są teraz kluczowe dla precyzyjnej oceny ryzyka przymrozków. - Automatyczna Pętla Przymrozkowa: Zrezygnowaliśmy z ręcznego uruchamiania pętli przez wpis "TRIGGER" w arkuszu. Teraz skrypt monitoruje temperaturę przy gruncie i trend spadkowy. Jeśli temperatura spadnie poniżej 2°C i trend jest spadkowy, automatycznie uruchamia cykl zraszania (3 minuty na każdą z 6 sekcji, sekwencyjnie). Pętla kontynuuje pracę cyklicznie, dopóki temperatura przy gruncie nie wzrośnie powyżej 3°C, kiedy to jest automatycznie zatrzymywana.
- Logowanie Statusu Zraszaczy: Codziennie po północy skrypt analizuje logi OpenSprinkler z poprzedniego dnia i zapisuje podsumowanie do nowego arkusza
sprinkler_status. Dla każdej strefy notowana jest liczba uruchomień, łączny czas pracy (w minutach) oraz szacowane zużycie wody (obliczane na podstawie przepływu zraszaczy Flipper - 43 l/h, 24 szt./sekcję). Uwzględniane są wszystkie typy uruchomień. - Alerty SMS o Problemach: Dodaliśmy system alertów SMS, który powiadomi nas (z 6-godzinnym cooldownem), jeśli wystąpi błąd podczas pobierania danych z API Ecowitt lub gdy odczytana temperatura przy gruncie będzie nieracjonalna (np. poniżej -20°C lub powyżej +50°C).
Tipy dla Innych Winiarzy Automatyzujących Ochronę
Nasze doświadczenia pokazują, że automatyzacja, choć potężna, wymaga staranności. Oto kilka wskazówek:
- Dokładnie Czytaj Dokumentację API: Zrozumienie parametrów, formatowania (np. hasło MD5 dla OpenSprinkler) i kodów odpowiedzi jest kluczowe.
- Dokumentacja OpenSprinkler API (Firmware 2.2.1) była bardzo pomocna (sekcje
/cm,/jl). - Poszukaj oficjalnej dokumentacji dla Ecowitt API V3.
- Dokumentacja OpenSprinkler API (Firmware 2.2.1) była bardzo pomocna (sekcje
- Monitoruj Temperaturę Przy Gruncie: To dokładniejszy wskaźnik ryzyka przymrozku.
- Używaj Właściwości Skryptu Google Apps Script: Przechowuj tam klucze API i hasła. Pamiętaj o dokładnej zgodności nazw.
- Loguj Obficie (
Logger.log): Szczególnie na etapie testowania. Dziennik Wykonania w Apps Script to Twój przyjaciel. - Obsługuj Błędy: Implementuj
try...catch, sprawdzaj kody odpowiedzi HTTP i API, dodaj alerty o problemach. - Testuj Iteracyjnie: Wprowadzaj małe zmiany i testuj je osobno.
- Nie Polegaj Wyłącznie na Automatyzacji: Miej plan awaryjny i możliwość ręcznej interwencji, zwłaszcza podczas krytycznych warunków.
- Wykorzystaj AI jako Partnera: Narzędzia jak ChatGPT czy Gemini przyspieszają pracę, ale wymagają weryfikacji i precyzyjnych poleceń.
Podsumowanie i Następne Kroki
Po dzisiejszych intensywnych pracach mamy działający, automatyczny system ochrony przymrozkowej oparty na temperaturze przy gruncie, ulepszone logowanie aktywności zraszaczy i dodatkowe alerty o potencjalnych problemach. Najbliższe dni, zwłaszcza nadchodzący weekend z możliwymi przymrozkami, będą prawdziwym testem dla tego rozwiązania. Będziemy uważnie monitorować system i logi.
Trzymajcie kciuki za nasze młode pędy!