NEWS
Regenmenge der letzten drei Tage berechnen
-
Hallo.
Ich möchte gern meine Bewässerung nach Niederschlagsmenge beregnen lassen.
Ich verzweifle gerade daran wie ich die Regenmenge der letzten drei Tage in einem Datenpunkt abbilden kann.
Ich habe eine Wetterstation. Diese gibt mir, unter Zuhilfenahme von Underground Weather und/oder dem Wetterstation Wlan Skript, einen Niederschlagswert in mm pro Tag.Für meine Bewässerung muss ich alle drei Tage ca. 15-20 mm beregnen.
Jetzt muss ich nur wissen, wieviel mm es in den letzten drei Tagen geregnet hat.
Die Daten pro Tag habe ich ja. Diese könnte ich ja immer Abends in einen Datenpunkt schreiben lassen.Ich komm einfach nicht drauf, wie ich ein Blockly Skript schreiben soll, was immer nur die Daten der letzten drei Tage zusammenrechnet.
Ich kann doch nicht der erste sein, der diese Daten braucht, ich kann aber einfach nichts im Forum finden.
Oder denke ich da zu kompliziert?
Es muss doch irgendjemanden geben, der das gleiche vor hat wie ich.
Kann mir jemand helfen?
Gruß
-
Du könntest dieses Script in diesem Thread : Regenmengenmesser Ventus W174 Regenmenge berechnen
für deine Berechnung nutzen . -
Die Menge pro Tag habe ich ja ich weiß nur nicht wie man das macht dass man drei Tage zusammen rechnet und das dann immer die letzten drei Tage sind.
Die Regenmenge pro Tag steht mir ja zur Verfügung . Ich weiss nur nicht wie ich das umsetze.Wenn heute Donnerstag ist dann möchte ich in einem Datenpunkt die Regenmengen aus Dienstag Mittwoch und Donnerstag haben.
Und am Freitag dann die Regenmengen aus Mittwoch Donnerstag und Freitag.
Ich hoffe es ist halbwegs verständlich es sei denn irgendeiner hat eine ganz andere Idee wie man so etwas machen kann.
-
@Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:
Die Menge pro Tag habe ich ja
Das war mir klar ... hast du überhaupt im Thread reingeschaut , da auch der Wert gestern drin ist ... das Script kannst du doch erweitern ..
bzw. deshalb habe ich dir auch geschrieben ..
für deine Berechnung nutzen .
-
-
@paul53
Das ist der Hammer. Vielen Dank. Funktioniert einwandfrei nach den ersten Tests.
Aber einige Fragen habe ich noch:
Die Datenpunkte am Anfang müssen wohl stehenbleiben.
Wenn ich ich die deaktiviere, dann funktioniert es nicht, aber warum?
Ich mache mal ein Bild von dem angepassten Blockly.
Eigentlich liegen die Datenpunkte da: javascript.0.Bewaesserung.Niederschlag_der_letzten_drei_Tage_Station
Aber in dem Blockly darf ich nur "Bewaesserung.Niederschlag_der_letzten_drei_Tage_Station" schreiben, sonst legt er mir unter "javascript.0. den gleichen order nochmal an. -
-
@Martin-0 sagte:
Die Datenpunkte am Anfang müssen wohl stehenbleiben.
Wenn ich ich die deaktiviere, dann funktioniert es nicht, aber warum?"Datenpunkt erzeugen" wird nur einmal benötigt und kann dann gelöscht / deaktiviert werden. In dem Fall muss aber "setze Liste auf ..." vor den Zeitplan gesetzt werden, da die Liste sonst nach jedem Skriptstart verloren ist.
-
@paul53
Es wäre aber nicht schädlich, wenn ich es so stehen lasse?
Warum funktioniert der Datenpunkt eigentlich der Pfad ist ja eigentlich nicht richtig, da ja javascript.0 davor fehlt. -
@Martin-0 sagte:
Es wäre aber nicht schädlich, wenn ich es so stehen lasse?
Schädlich nicht, aber Verschwendung von Ressourcen.
@Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:
Warum funktioniert der Datenpunkt eigentlich der Pfad ist ja eigentlich nicht richtig
Für Datenpunkte unter der Javascript-Instanz (javascript.0) kann eine verkürzte ID für createState(id), setState(id) und getState(id) angegeben werden.
-
@paul53
OK Ich habe alles geändert.
Warum sind in dem Datenpunkt Liste eigentlich drei Werte bzw. wo stelle ich ein, dass diese Liste nur drei Einträge haben darf?
Wenn ich auf den Datenpunkt klicke und mir den anschaue, sehe ich dafür keine Einstellung. -
@Martin-0 sagte:
Warum sind in dem Datenpunkt Liste eigentlich drei Werte bzw. wo stelle ich ein, dass diese Liste nur drei Einträge haben darf?
Beim Erzeugen des Datenpunktes wurde eine Liste mit 3 Werten als JSON initialisiert: '[0,0,0]'
Danach wird im Skript der älteste Eintrag gelöscht und der neue hinzugefügt, so dass sich die Anzahl nicht ändert. -
@paul53
Super danke.
Jetzt probiere ich mal den Niederschlagswert mit dem der Vorhersage des nächsten Tages zu addieren.
Das soll dann die Grundlage werden ob beregnet wird oder nicht. -
@Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:
Das soll dann die Grundlage werden ob beregnet wird oder nicht.
Was passiert, wenn es trotzdem nicht regnet?
Der Wert bleibt hoch, die Erde trocken... -
@Homoran
Mist. da hast du recht. Er wird aber diesen Wert jeden Tag aktualisieren. Und wenn es nicht regnet, dann wird er am nächsten Tag beregnen. Es sei denn die Vorhersage stimmt jeden Tag nicht.
Oder hast du eine andere Idee? -
@Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:
Oder hast du eine andere Idee?
nö.
Bei mir wird bewässert wenn der Bodenfeuchtesensor sagt, dass es Zeit ist.
Wenn es trotzdem genau 5 Minuten später regnet (was schon mehrfach passiert ist) wird der Boden entsprechend feuchter und die nächste künstliche Beregnung findet erst wieder statt wenn auch das Wasser "verbraucht" ist. -
@Homoran
Das ist auch nicht schlecht.
Es hat geklappt mit der Gesamtniederschlagsmenge.
Ich habe eben noch einen Betriebsstundenzähler gemacht für die Bewässerungsventile.
Das funktioniert auch, nur müsste sich dieser drei Tage später wieder auf null stellen.Kann mir jemand sagen, wie ich das mache?
-
-
@Martin-0 sagte:
müsste sich dieser drei Tage später wieder auf null stellen.
Weshalb nach 3 Tagen ?
Besserer Trigger: ist kleiner als letztes (Änderung wahr --> falsch)
-
@paul53
Weil er in drei Tagen die benötigte Wassermenge bzw. die Einschaltzeit der Ventile berechnen soll.
Wenn er also heute guckt wie die Niederschlagsmengen waren und es nicht geregnet hat, würde er am nächsten Tag ja wieder bewässern. Deshalb prüfe ich, ob die Beregnung an war. Wenn sie jetzt also drei Tage aus war (Was dem Wert "0 min" entspricht, dann darf wieder bewässert werden.