Buienradar nutzen um die gefallene Regenmenge seit Mitternacht zu bestimmen

Begonnen von Torxgewinde, 18 Mai 2020, 21:05:32

Vorheriges Thema - Nächstes Thema

Torxgewinde

Hallo,
Ich habe keinen vernetzten Regenmesser im Garten, dafür aber Buienradar - das geht auch ganz gut um zu bestimmen wieviel Regen in Summe gefallen ist. Ich addiere die aktuelle Regenmenge auf und fange immer um Mitternacht bei 0 l/m² neu an zu zählen. Die Ergebnisse sind recht gut wie ein Vergleich mit einem ganz analogen Messbecher-Regenmesser ergab.

Klar, man braucht Buienradar in FHEM:
defmod myBuienRadar Buienradar 52.XXXX 7.XXXXX
attr myBuienRadar interval 120
attr myBuienRadar region de


Ein DOIF übernimmt das aufsummieren:
defmod HeuteRegen DOIF ([+:05]) ## ausführen wenn glatte fünf Minuten auf der Uhr stehen\
(setreading $SELF rain {([myBuienRadar:rainNow:d]/12 + [$SELF:rain:d])}) ##kopiere die Werte vom BuienRadar und addiere sie auf, Parse nur die Zahl
attr HeuteRegen alias Regen Heute 🌧
attr HeuteRegen do always
attr HeuteRegen stateFormat { round(ReadingsNum($name, "rain", 0), 2)." l/m²"}


Ein weiteres DOIF setzt den Zähler direkt vor Mitternacht auf Null und und behält den Wert vom Vortag. Mit diesem Wert kann man nun gut für seine Gartenbewässerung entscheiden, ob Gestern ausreichend viel Regen gefallen ist:
defmod GesternRegen DOIF ([23:59:59])\
(setreading $SELF rain [HeuteRegen:rain]) ##copy the value of today and keep it as our own value\
(setreading HeuteRegen rain 0) ## set the rain value of today to 0 and start to count from there again
attr GesternRegen alias Regen Gestern 🌧
attr GesternRegen do always
attr GesternRegen event-on-update-reading .*
attr GesternRegen stateFormat { round(ReadingsNum($name, "rain", 0), 2)." l/m²"}


Wenn man will kann man auch noch ein Dummy oder weiteres Reading anlegen um auch die Regenmenge von Vorgestern zu speichern. Diese historischen Werte berücksichtige ich bei der Entscheidung ob meine Bewässerung anspringen soll, oder ob der Niederschlag der vergangen Tage bereits ausreicht.

Kleiner Tipp dazu: Ich Gewichte die Regenmengen unterschiedlich. Es muss Gestern weniger als 5 l/m² geregnet haben und vorgestern weniger als 25 l/m² damit die Bewässerung überhaupt anspringt, sonst ist noch genug Wasser im Boden. Die genauen Werte kann man natürlich je nach Bodenart, Lage und Pflanze selbst bestimmen.

Das war es schon...


Torxgewinde

Cool, das freut mich!
Danke auch für das Buienradar-Device und die viele Arbeit die dazu gehört.

FunkOdyssey

Vielen Dank für deine Ausführung und deinen Hinweis auf diesen Thread.

Mir sind ein paar Sachen aufgefallen.

- Bei der ersten Ausführung gibt es Probleme, da das Reading rain nicht gesetzt ist.
- Ich würde bei einem DOIF die Readings auch per readingsList definieren.
- Und wie gehst du damit um, wenn rainNow auf unknown gesetzt ist?

Eine Frage noch: Wieso dividierst du rainNow durch 12? Weil das ein Wert für Menge pro Stunde ist und du diesen 60/12= alle 5 Minuten ausführst?

fr00sch

Hallo,

cooles Modul, könnte interessant sein, um Hinweise zum Gießen zu bekommen:

Wenn ich versuche mit "define myBuienRadar Buienradar" ein device zu erstellen erhalte ich folgendes im Error-Log:

./FHEM/59_Buienradar.pm has too many errors.
syntax error at ./FHEM/59_Buienradar.pm line 678, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 674, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 670, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 666, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 662, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 658, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 654, near "color:"
syntax error at ./FHEM/59_Buienradar.pm line 650, near "2ex"
syntax error at ./FHEM/59_Buienradar.pm line 649, near "3ex"
2020.08.05 14:28:20 0: syntax error at ./FHEM/59_Buienradar.pm line 641, near "<<~"


Über Hinweise und Ideen würde ich mich freuen.

Gruß fr00sch
RPi3B+ als FHEM mit VCCU,ZWave,Signalduino,MQTT
RPi4B als CCU3
QNAP TS451p(mit Docker) als Messwerte-Datenbank

amenomade

'<<~' funktioniert meines Wissens nach erst ab Perl 5.26. Hast Du eine frühere Version von Perl? An der Stelle (line 641) kannst Du mMn ruhig die Tilde entfernen, wenn Du ein paar Zeilen weiter nach unten (line 700) das Wort END_MESSAGE komplett nach Links schiebst.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

fr00sch

Dankeschön für den Hinweis, ja ich habe eine alte Version.
Ich werde dann das längst überfällige OS upgrade am Wochenende mal in Ruhe in Angriff nehmen und
mich danach dann mal melden.
RPi3B+ als FHEM mit VCCU,ZWave,Signalduino,MQTT
RPi4B als CCU3
QNAP TS451p(mit Docker) als Messwerte-Datenbank

Christoph Morrison


fr00sch

@Christoph Morrison: ohja stimmt  :'( tut mir leid.

@amenomade: ja genau das war das Problem. Das Problem ist jetzt weg nach einem update von raspbian "stretch" auf "buster". Denn erst "buster" hat perl 5.28 als aktuellste Version.
RPi3B+ als FHEM mit VCCU,ZWave,Signalduino,MQTT
RPi4B als CCU3
QNAP TS451p(mit Docker) als Messwerte-Datenbank