Wpis z serii „side project". Naszym core'em jest platforma VineyardElf, ale najlepsze lekcje o czujnikach i danych przychodzą wtedy, gdy coś nawala we własnej winnicy.
W winnicy mamy prosty system zraszania: sterownik OpenSprinkler i skrypt w Google Apps Script. Poza sezonem przymrozkowym pełni nudną rolę, raz dziennie nad ranem podlewa trawnik. Ma jedno zabezpieczenie: jeśli pada, ma pomijać podlewanie.
„Przecież padało, a i tak się zraszało"
Taka była pierwsza intuicja. Przez trzy tygodnie lipca zraszacze odpalały się niemal każdej nocy, mimo że kilka razy porządnie lało. Zajrzeliśmy więc do danych z naszej stacji Ecowitt i tu spotkało nas zaskoczenie. Według deszczomierza przez całe trzy tygodnie spadło ledwie 1,8 mm deszczu. Skoro sucho, system słusznie podlewa.
Tyle że padało. Dla pewności porównaliśmy deszczomierz z niezależnym źródłem, czyli darmowym API pogodowym Open-Meteo (bez klucza, model dla współrzędnych winnicy).
Czterdziestokrotna różnica. W nocy, gdy Open-Meteo wskazywało 17,9 mm deszczu, nasz deszczomierz zarejestrował ułamek milimetra, a zraszacze grzecznie wlały w trawnik kolejne pół tysiąca litrów. Największe rozjazdy zebraliśmy w tabeli.
| Dzień | Deszcz wg Open-Meteo | Deszcz wg Ecowitt | Podlano trawnik |
|---|---|---|---|
| 23.07 | 17,9 mm | ~0 mm | 497 L |
| 18.07 | 10,5 mm | 0,2 mm | 515 L |
| 13.07 | 8,9 mm | ~0 mm | 687 L |
| 10.07 | 8,4 mm | 0,4 mm | 752 L |
| 19.07 | 6,2 mm | 0,1 mm | 503 L |
Dlaczego deszczomierz „oślepł"
Deszczomierz miskowy (tipping-bucket) działa banalnie. Woda spływa lejkiem do przechylnej łyżeczki, a każde przechylenie to jeden „klik", czyli 0,1 mm. Wystarczy, że lejek zatka liść, pyłek, pajęczyna albo owad, i woda nie dolatuje do mechanizmu. Stacja „widzi" wtedy suszę w samym środku ulewy. Nasz najpewniej skończył właśnie tak.
Poprawka: druga opinia zamiast jednego czujnika
Do logiki pomijania podlewania dołożyliśmy dwie rzeczy.
- Open-Meteo jako niezależne źródło. Jeśli wczoraj padało albo prognoza na dziś jest mokra, system pomija podlewanie. Działa nawet wtedy, gdy deszczomierz jest zatkany.
- Pole „event" zamiast licznika dobowego. Dobowy zeruje się o północy, a zraszanie startuje o 2:45, przez co wieczorny deszcz znikał z rachunku. Pole „event" liczy cały bieżący epizod opadów, niezależnie od północy.
Wniosek
Pojedynczy czujnik to pojedynczy punkt awarii, w dodatku wredny, bo cicho kłamie zamiast głośno paść. Darmowy model pogodowy w roli drugiej opinii kosztuje zero, a łapie dokładnie te sytuacje, w których zawodzi hardware. No i trzeba w końcu wyczyścić lejek.
Kod systemu jest otwarty na GitHubie: opensprinkler-frost-protection.

