NEWS
Regenmenge der letzten drei Tage berechnen
-
@paul53
Jetzt ist nur die Frage wie -
@Martin-0 sagte:
Jetzt ist nur die Frage wie
Das hängt davon ab zu welcher Uhrzeit die Regenmenge eingetragen wird und wann die Bewässerung läuft.
Wenn die Regenmenge morgens eingetragen wird und die Bewässerung am Tag läuft, sollte es so funktionieren:
-
Die wird um 23:30 eingetragen und die Bewässerung soll dann um 24:00 Uhr starten.
Ich habe aber gerade noch eine Idee.
Länger als 60 min wird die Bewässerung nicht aus "Spaß" an sein.
Beregnung:
Wenn Betriebstundenzähler <61 min und wassermenge < 10mm dann bewässern.Betriebstundenzähler resetten:
Wenn Betriebstunden > 61 min und letzte Änderung 70 stunden her dann auf 0 setzen.Was sagst du dazu?
-
@Martin-0 sagte:
Die wird um 23:30 eingetragen und die Bewässerung soll dann um 24:00 Uhr starten.
Also enthält der letzte Eintrag in der Liste den Regen-Wert von gestern. Ist es ein Problem für Dich, wenn er heute durch die Bewässerung fortgeschrieben wird ?
-
@paul53
HalloEs funktioniert eigentlich ganz gut. Nur kommt bei meinem Skript beim Reset der Betriebsstunden folgender Fehler:
-
-
@Martin-0
Poste die Log-Ausgabe bitte in Code tags </>, denn dann kann ich Copy & paste für die Antwort verwenden.
Wie werden die Betriebsstunden dargestellt ? -
@paul53
Sorry aber wie mache ich das? -
@Martin-0 sagte:
wie mache ich das?
Die Log-Ausgabe markieren, dann Copy(^C) in die Zwischenablage und im Forum </> (code tags) auswählen und mit Paste(^V) an der Stelle einfügen.
-
code_text javascript.0 2020-08-23 12:44:05.008 warn (5225) at processTimers (internal/timers.js:492:7) javascript.0 2020-08-23 12:44:05.007 warn (5225) at listOnTimeout (internal/timers.js:551:17) javascript.0 2020-08-23 12:44:05.007 warn (5225) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2039:34) javascript.0 2020-08-23 12:44:05.006 warn (5225) at Object.<anonymous> (script.js.Homematic.Bewässerung.Betriebsstunden_reset:17:7) javascript.0 2020-08-23 12:44:05.005 warn (5225) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-08-23 12:44:05.002 warn (5225) You are assigning a string to the state "javascript.0.Bewaesserung.Betreibstundenzähler_Nord" which expects a number. Please fix your code to use a number or change the state type to string. T
-
Das ist das Blockly dazu
-
@Martin-0 sagte:
Homematic.Bewässerung.Betriebsstunden_reset
Im Script "Homematic.Bewässerung.Betriebsstunden_reset" wird ein String in den Datenpunkt "javascript.0.Bewaesserung.Betreibstundenzähler_Nord" geschrieben, der vom Typ Zahl("number") ist.
-
@paul53
Das soll ja auch so, aber warum steht da "warn" -
@Martin-0 sagte:
Das ist das Blockly dazu
Ersetze alle Texte im Script durch Zahlen (Blöcke "Mathematik"). Die Vergleiche funktionieren so nicht. Die Timeouts sind überflüssig.
-
@Martin-0 sagte:
warum steht da "warn"
Weil der String "0" tatsächlich geschrieben wird, obwohl eine Zahl erwartet wird.
-
@paul53
Hervorragend hat geklappt. -
@Martin-0
Das was nicht geklappt hat ist folgendes:Ich habe per Skript die Systemvariablen der CCU aktivieren wollen, die dann über ein Programm die Bewässerung aktivieren. Es ist aber nur eine Systemvariable auf wahr gegangen.
Kann es sein, dass ich da Timeouts setzten muss, weil die Befehle sonst nicht durchkommen?
-
@Martin-0
Ein Problem habe ich noch.
Ich habe in der CCU eine Systemvariable vom Typ Zahl erstellt.
Diese soll in der App dargestellt werden.
Wird sie auch, aber leider nicht aktualisiert.
Das Blockly sieht so aus:
-
@Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:
Wird sie auch, aber leider nicht aktualisiert.
nimm "steuere" statt "aktualisiere"
-
@Homoran
Das funtioniert auch nicht