Skripterstellung zur Erfassung der Regenmenge

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

mhowie1
Beiträge: 13
Registriert: 25.05.2020, 19:32
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von mhowie1 » 16.06.2021, 00:19

Servus,

ehrlich gesagt weiß ich das heute nicht mehr genau was noch für ein Ablauffehler drin war - ist ja auch schon ein ganzes Jahr her.
Auf jeden Fall läuft die Bewässerung nach wie vor bei mir einwandfrei, funktioniert alles bestens.

ronnybe
Beiträge: 15
Registriert: 25.04.2020, 12:11
Hat sich bedankt: 1 Mal

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von ronnybe » 21.06.2021, 22:27

Da ich auch plane, die Beregnung mit der CCU zu automatisieren bin ich auf diese - für mich plausible und in Ihrer Einfachheit auch nachvollziehbare Lösung - gestossen. Die Entwicklung nötigt mir Respekt ab...
@mhowie1: Wäre meine Bitte zu viel verlangt (vielleicht auch im Sinne von mindestens @Automat1248), die finalen Hardcopies und Skripte ohne den letzten Ablauffehler hier noch einmal zu posten? Das wäre großartig und würde mir die diesbezügliche Neuerfindung des Rades ersparen.
Danke vorab!

mhowie1
Beiträge: 13
Registriert: 25.05.2020, 19:32
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von mhowie1 » 05.07.2021, 22:26

Servus zusammen,

bitte entschuldigt, dass ich bisher noch nichts gepostet habe. Irgendwie hab ich immer sehr viel zu tun und komme kaum dazu mich dann noch vor den Rechner zu setzen (sitze eh schon arbeitsmäßig den ganzen Tag vor der Kiste - im Homeoffice seit März 2020 - und dann reicht es mir am Ende des Tages dann eigentlich auch immer). Trotzdem habe ich natürlich auch schon von Tipps und Vorlagen aus diesem Forum profitiert weshalb ich auch gerne mal etwas zurückgebe.

Zu aller erst sei gesagt, dass ich keinesfalls für mich beanspruche alles auf einfachste und beste Weise gemacht zu haben. Für mich war das das erste wirklich größere Projekt und da war für mich wichtig, dass es zuverlässig funktioniert. Es kann gut sein, dass man an einigen oder vielen Ecken vieles anders und besser machen kann, für mich passt es aber so weil ich es ohne groß Skripte zu erstellen hinbekommen habe und ich es so auch noch verstehe und verändern kann falls mal Bedarf dafür wäre.
Da ich mittlerweile 66 Geräte, 369 Programme und 75 Systemvariablen eingebunden habe und der Duty Cycle auf der CCU3 mit um die 10% angezeigt wird (schwankt zwischen 8% und 12%), denke ich aber auch, dass ich alles eigentlich gar nicht so ganz verkehrt angebunden haben sollte 8) .

Die Homematic ist bei meiner Gartenbewässerung prinzipiell nur die eintscheidende Instanz, die wirkliche Ansteuerung der Ventile läuft bei mir über eine Logo (SPS).


So, dann wollen wir mal einsteigen:
automatischer Start.jpg
Hierüber wird der automatische Start geregelt.
  • Systemzustand Gartenbewässerung: datumgesteuerte Systemvariable (aktiv nur "von Datum bis Datum")
  • Systemzustand Regenerkennung: Systemvariable, die von meinem HmIP-SRD gesetzt bzw. rückgesetzt wird (Regenbeginn bzw. Regenende)
  • Systemzustand Windgeschwindigkeit: Systemvariable, die von meinem HmIP-SWO-PR gesetzt bzw. rückgesetzt wird (Windschwelle über-/unterschritten) / bei zu viel Winde würde es die Bewässerung nur "verblasen", deshalb wird das hiermit verhindert
  • Systemzustand Regenmenge: Systemvariable, die automatisch gesetzt wird wenn eine bestimmte Regenmenge gefallen ist (dazu später mehr)
  • Systemzustand Aussentemperatur: Systemvariable, die von meinem HmIP-SWO-PR gesetzt bzw. rückgesetzt wird (Temperaturschwelle über-/unterschritten / 3 Werte möglich)
Getriggert wird dann durch eine Zeitsteuerung - bei mir wird 2x am Tag gegossen, deshalb 2 Zeitsteuerungen. Die Luftfeuchtigkeit spielt nur am Abend eine Rolle da es auch an vermeintlich warmen/heißen Tagen in der Früh eine höhere Luftfeuchtigkeit haben kann. Eine hohe Luftfeuchtigkeit am Abend spricht dagegen eher dafür, dass es eventuell zu regnen anfäng bzw. dass eine Bewässerung eigentlich nicht nötig ist.

Falls die Aussentemperatur im Laufe des Tages nicht über einen gewissen Wert gestiegen ist (diese Variable hat 3 verschiedene Werte) wird nicht automatisch gegossen. Falls die Grenze "Wärme" überschritten wurde greift das Programm im oberen Screenshot. Falls die Aussentemperatur aber die Grenze "Hitze" überschritten hat greift ein anderes Programm - ist im Prinzip genau so wie oben, aber die Einschaltdauer der Aktivität ist dann zeitlich etwas länger (über die verschiedenen Einschaltdauern kann ich in der SPS die Programme für die verschiedenen Laufzeiten unterscheiden).

Da ich auch noch die Möglichkeit eingebaut habe die Bewässerung per Hand zu starten gibt es das Programm aus dem ersten Screenshot und auch das für die längere Laufzeit fast unverändert jeweils nochmals (da hab ich nur die Regenerkennung rausgenommen da ich ab und zu ja auch trotzdem gerne zusätzlich gießen möchte). Auslöser dafür ist bei mir je eine virtuelle Taste bzw. eine Aktion aus der PocketControl HM.

Wenn die Bewässerung mal läuft kann sie automatisch gestoppt werden:
automatisch Stopp.jpg
Auch das hab ich doppelt eingebaut, Stopp geht dann ebenfalls über eine virtuelle Taste und über die App.
  • Status Gartenbewässerung: hier habe ich ein HmIP-SCI eingebaut (geschlossen wenn Programm in der SPS läuft) damit der Funkverkehr zum Stoppen nur läuft wenn er auch wirklich nötig ist.
Jetzt zur Regenmenge, das ist vermutlich das Interessanteste bei der ganzen Steuerung:
Regen schreiben.jpg
Hier wird nun die Regenmenge aus dem HmIP-SWO-PR gelesen und in eine Variable geschrieben. Sobald mein HmIP-SRD Regen erkennt wird der Wert bei Regenmenge...
Regenmenge.jpg
Regenmenge.jpg (17.16 KiB) 1232 mal betrachtet
...per Skript ausgelesen und automatisch in eine Systemvariable "Niederschlag" geschrieben (Wert wird ständig überschrieben). Das zweite Skript stellt den vom HmIP-SWO-PR ausgelesenen Wert direkt im Gerät 24 Stunden nach dem letzten Schreiben auf Null (ist im Prinzip der Button zum Resetten im Screenshot). Das verhindert, dass der Wert jedes Mal aufaddiert wird wenn es mal eine längere Regenpause als 24 Stunden gibt - da fängt es dann wieder bei Null an. Die grundlegende Überlegung war, dass wenn es innerhalb eines Tages z.B. 3l pro m² regnet, nicht gegossen werden muss. Werden diese 3l nicht innerhalb 24 Stunden erreicht muss der Zähler wieder von vorne anfangen.

Die Werte bei Heute und Gestern sind nicht brauchbar, weil sich die zu festgelegten Zeiten automatisch wieder zurücksetzen - nur der Wert bei Regenmenge wird immer weitergezählt (zudem brauche ich den Wert "Heute" auch zum Übertragen in mein Highcharts-Diagramm).

Das erste Script schaut so aus:

Code: Alles auswählen

!Variablen setzen
var actRain = dom.GetObject('svHmIPRainCounter_34801_00185A499D0BD3:1').Value();
var sumRain = dom.GetObject("Niederschlag").Value();
!Wert schreiben
dom.GetObject("Niederschlag").State(actRain);
Das zweite Script schaut so aus:

Code: Alles auswählen

!Wert auf Null setzen
dom.GetObject('svHmIPRainCounter_34801_00185A499D0BD3:1').State(0.0);
Hier nun der nächste Schritt:
Regenschwelle.jpg
Sobald der Wert der Systemvariable "Niederschlag" die bei mir festgelegten 3l überschritten hat wird automatisch die Systemvariable "Regenmenge für Bewässerung" auf überschritten gestellt und damit wird die nächste automatische Bewässerung unterbunden. Und kurz darauf wird dann der vorher ausgelesene Wert direkt im HmIP-SWO-PR auf Null gesetzt. Sollte es weiterregnen zählt er halt wieder bis 3l hoch und so weiter und so weiter...

Hier wird dann die Systemvariable "Regenmenge für Bewässerung" wieder automatisch zurückgestellt:
Regenschwelle zurück.jpg
Das passiert 24 Stunden, nachdem die Systemvariable nicht mehr aktualisiert wurde.
Sollte es wie im vorigen Beispiel noch weiterregnen wird die Variable ja immer neu gesetzt - damit bleibt sie dann auch auf überschritten und die Bewässerung startet nicht automatisch. Erst wenn es 24 Stunden lang nicht mehr mehr als 3l geregnet hat (gerechnet ab dem letzten Überschreiten des Wertes) geht die Variable wieder zurück und die Bewässerung ist wieder scharf geschaltet.

Dann hatte ich noch das Bedürfnis, dass es in der Früh auch nur gießen soll, wenn es am Vortag auch wirklich warm genug bzw. heiß war. Deshalb wird die Systemvariable "Aussentemperatur", die ja am Tag vom HmIP-SWO-PR gesetzt wird, erst wieder am Tag darauf nach dem ersten Gießvorgang rückgesetzt:
Temperaturschwelle zurück.jpg
Gesetzt werden die Temperaturschwellen so:
Für Wärme:
Temperatur Wärme.jpg
Für Hitze:
Temperatur Hitze.jpg


So, das müsste denke ich alles sein was irgendwie dazugehört. Falls ich noch etwas vergessen habe oder wenn ich es nicht verständlich genug aufgeschrieben habe dann gerne nochmals melden, dann passe ich das noch an.

Ich hoffe dass die Aufschreibungen denjenigen, die so etwas ähnliches vorhaben, doch ein bißchen weiterhelfen. Oftmals reicht ja auch ein kleiner Denkanstoß um selbst wieder etwas weiter zu kommen. Außerdem freue ich mich der Community auch etwas zurückgeben zu können.

tuennes80
Beiträge: 2
Registriert: 23.05.2022, 21:35
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von tuennes80 » 23.05.2022, 21:39

Hallo!

Vielen Dank für diese super Anleitung.
Ich habe die neulich mal nachgebaut und es funxt fast störungsfrei.

Die letzten Tage hat es regelmäßig geregnet.
Der Wert in der Variable "Niederschlag" wird leider immer weiter aufaddiert und nicht zurückgesetzt.

Wo könnte denn mein Fehler liegen?
1.jpg
mein Programm
2.jpg
Skript 1
3.jpg
Skript 2

mhowie1
Beiträge: 13
Registriert: 25.05.2020, 19:32
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von mhowie1 » 23.05.2022, 22:53

Hallo tuennes80,

zurückgesetzt auf Null wird der Wert ja erst, wenn entweder 24 Stunden lang kein neuer Wert geschrieben wurde - oder wenn die 3l überschritten wurden. Wenn es immer mal wieder geringe Mengen - also insgesamt weniger als 3l - regnet (innerhalb 24 Stunden nach dem letzten Schreiben eines Regenwertes) werden die 24 Stunden Pause nicht erreicht und der Wert wird damit nicht automatisch zurückgesetzt.

Hast Du das berücksichtigt?

Benutzeravatar
GEVJan
Beiträge: 101
Registriert: 28.04.2021, 18:40
System: CCU und Access Point
Wohnort: Köln
Hat sich bedankt: 30 Mal
Danksagung erhalten: 16 Mal

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von GEVJan » 24.05.2022, 05:43

Wenn man Bock auf viel schreiberei hat, kann man ja auch 24 Systemvariablen anlegen, in die stündlich, rotierend, immer der neu hinzugekommene Regen eingetragen wird. Die Summe dieser Variablen wäre dann IMMER die 24h-Regenmenge.
Ist halt nur arg viel Schreiberei...

Gruß
Jan
CCU3 mit Raspberrymatic -> Eingebunden: HUE-Bridge, Tasmota-Sonoffs, Alexa, Open Weather Map, Tasker, LG-TV

tuennes80
Beiträge: 2
Registriert: 23.05.2022, 21:35
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von tuennes80 » 24.05.2022, 22:30

mhowie1 hat geschrieben:
23.05.2022, 22:53
Hallo tuennes80,

zurückgesetzt auf Null wird der Wert ja erst, wenn entweder 24 Stunden lang kein neuer Wert geschrieben wurde - oder wenn die 3l überschritten wurden. Wenn es immer mal wieder geringe Mengen - also insgesamt weniger als 3l - regnet (innerhalb 24 Stunden nach dem letzten Schreiben eines Regenwertes) werden die 24 Stunden Pause nicht erreicht und der Wert wird damit nicht automatisch zurückgesetzt.

Hast Du das berücksichtigt?
Hallo!
Ja, da habe ich tatsächlich drauf geachtet. Aktuell zeigt er mir 33 Liter an und die sind definitiv in den letzten 24 Stunden nicht gefallen, sonst wäre Erftstadt wieder bundesweit in den Medien zu finden.

Das einzige, was ich aus Deinem Skript geändert habe, ist das systeminterne Programm.
Ich bin überfragt.

mhowie1
Beiträge: 13
Registriert: 25.05.2020, 19:32
System: CCU

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von mhowie1 » 25.05.2022, 19:34

Was meinst Du mit "systeminterne Programm"? Du meinst vermutlich die versteckte Variable?

Bei Dir wird bei jeder Aktualisierung, die die Wetterstation zur CCU schickt, das Programm getriggert - egal ob es regnet oder nicht (die Häufigkeit hängt unter anderem von den Angaben bei Statusmeldung im Kanal 0 ab). Du musst die Einschränkung einbauen, dass das Programm nur getriggert werden darf, wenn es auch wirklich regnet. Wenn Du das nicht einbaust kann der Reset nicht funktionieren weil ja niemals die 24h Ruhe erreicht werden.

Viele Grüße
Manfred

magnum1795
Beiträge: 246
Registriert: 13.05.2020, 17:56
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 39 Mal
Danksagung erhalten: 21 Mal

Re: Skripterstellung zur Erfassung der Regenmenge

Beitrag von magnum1795 » 25.05.2022, 21:03

Ich betreibe auch eine automatische Bewässerung mit 12 Rainbird Magnetventilen. Habe eine CCU3 RM und nutze die HMIP Wetterstation Pro und zusätzlich noch einen Regensensor HM-Sen-RD-0 (dieser wird nicht unbedingt gebraucht,war aber bei mir vorhanden)zur Steuerung.

Um die 12 Ventile einzeln zu steuern habe ich dazu 12 Programme angelegt. Das ganze funktioniert auch ohne SV ganz gut und es wird nur Bewässert wenn es Gestern und Heute nicht mehr als 2 mm geregnet hat. Im Programm verwende ich die Systeminternen SV vom Wettersensor und den Regensensor (man kann natürlich auch die Daten von der Wetterstation nehmen). Bis jetzt bin ich damit sehr gut gefahren

Hier mal ein Bild vom Programm wie ich es verwende, vielleicht kann es ja jemand gebrauchen. Das Programm könnte man natürlich noch erweitern und die Außentemperatur und Bodenfeuchtesensor etc. mit einbinden, ich brauchte es aber nicht.
PS: zurückstellung habe ich auf 0.01 Uhr gesetzt
Dateianhänge
beregnung sprühdüse programm.jpg

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“