Blog winnicy

Automatyzacja Winnicy: Walka z Przymrozkami i API (z pomocą AI!) - Aktualizacja 24.04.2025

Winnica Pustkowie, 2025-04-24

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:

  1. 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.
  2. 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: 1 dla sukcesu, result: 2 dla błędu autoryzacji) było kluczowe.
  3. 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 (indoor w 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.
  • 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!


Podziel się artykułem