NEWS
Blockly zur Regenaufzeichnung
-
Guten Morgen,
ich nutze folgendes Skript, um kurz vor Tageswechsel die Regenmenge vom Tag fortzuschreiben. Zur Aufzeichnung verwende ich den Regenmesser von Netatmo.
Die Regenaufzeichnung stelle ich über eine Variable dar, die ich die Woche über mit den Tageswerten fortschreibe (erhöhe) und am Sonntag Abend dann noch in die Werte "Regen letzte Woche" übertrage, um dann von vorne zu beginnen.
Leider schreibt er nicht fort sondern setzt die Variable um kurz vor Mitternacht wieder auf 0.
An was kann das liegen?
Liege ich falsch und die Variable addiert im Hintergrund die Werte gar nicht sondern merkt sich jedes mal nur die letzten 24 h?
Wie sieht die Alternative bzw. das Skript richtig aus?Vielen Dank.
Grüße -
Du musst an dieser Stelle
den Wert der Variable Regen_Woche_Summe eintragen, da du den Wert des Objektes Regen Woche erst direkt davor gesetzt hast. Dafür kann dann
entfallen.Hintergrund: Das setzen von Werten in den Objekten findet asynchron statt. Da es manchmal ein paar ms dauert funktioniert die Kombination
- Steuere Wert mit X
- Lese Wert
in den meissten Fällen (auch bei Dir) nicht.
A.
-
@asgothian
Dafür könnte ich doch einfach eine Verzögerung einbauen oder?Betrifft das dann auch das oberste Skript mit der täglichen Summierung der Regenmenge?
ODer an was kann es liegen, dass wenn "Rain in the last 24 h" einen Wert hat, er nicht die nächsten Tage aufsummiert wird?
Es funktioniert vom einen Tag auf den anderen. Wenn aber - wie gestern - kein Regen war, wird "Regen Woche" um 23:55 Uhr wieder auf 0 gesetzt. Also muss doch was an der Variable sein, oder?Danke und Grüße
-
@danistrie sagte in Blockly zur Regenaufzeichnung:
@asgothian
Dafür könnte ich doch einfach eine Verzögerung einbauen oder?Könntest du. Macht aber keinen Sinn. Warum nicht ? :
- du steuerst "regen Woche" mit dem Wert von "Regen_Woche_Summe" and
- Danach setzt du "Regen_Woche_Summe" auf 0
- Danch Steuerst Du "regen Woche" nochmal mit dem Wert von "Regen_Woche_Summe" an. Sprich der Wert den Du da vorher hinein geschrieben hast wird direkt wieder überschrieben.
Betrifft das dann auch das oberste Skript mit der täglichen Summierung der Regenmenge?
Nein. Da machst du es richtig. Erst alle Werte lesen, dann alle Werte ansteuern. Wie gesagt - das Schreiben von Werten dauert nur dann Zeit wenn Du einen State per "aktualisiere" oder "steuere" Block ansteuerst
ODer an was kann es liegen, dass wenn "Rain in the last 24 h" einen Wert hat, er nicht die nächsten Tage aufsummiert wird?
Es funktioniert vom einen Tag auf den anderen. Wenn aber - wie gestern - kein Regen war, wird "Regen Woche" um 23:55 Uhr wieder auf 0 gesetzt. Also muss doch was an der Variable sein, oder?Dem kann ich nicht folgen.
Danke und Grüße
Nebenbei gesagt fehlt dem Skript noch ein Baustein:
Setze "Regen_Woche_Summe" auf "Wert von Objekt ID Regen Woche", als Baustein vor dem ersten Zeitplan, damit ein Neustart des Skriptes dein Aufaddieren nicht zerstört.A.
-
@DaniStrie hast zu dann ein Script gemacht das funktioniert? Wenn ja könntest Du das Teilen?