NEWS
Probleme mit Blockey script
-
kurze Frage habe gerade einen Knoten im Kopf und komme nicht weiter
Wenn alle Bedingungen im Scrip erfüllt sind triggert der Shelly ohne Proleme auf "true".
aber er triggert nicht merh auf" False" und ich fragte mich warum...
schedule('{"time":{"start":"00:00","end":"24:00","mode":"minutes","interval":5},"period":{"days":1,"dows":"[0,1,2,3,4,5,6]"},"valid":{"from":"29.03.2023","to":""}}', async function () { if (compareTime("05:00", "08:00", "between") && getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val > 50) { if (getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val <= 43) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, true); } else if (compareTime("7:30", "null", ">=") || getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val >= 45) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, false); } } else if (compareTime("09:00", "17:00", "between") && getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val >= 95) { if (getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val <= 46) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, true); } else if (getState("modbus.0.holdingRegisters.40068_PV_Leistung_in_Watt").val <= 3500 || compareTime("16:00", "null", ">=") || getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val >= 51 || getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val <= 94) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, false); } } else if (compareTime("18:00", "20:00", "between") && getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val >= 70) { if (getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val <= 43) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, true); } else if (compareTime("20:15", "null", ">=") || getState("shelly.0.SHSW-1#E8DB84AC4CE5#1.ext.temperatureC1").val >= 45 || getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val <= 60) { setState("shelly.0.SHSW-1#E8DB84AC4CE5#1.Relay0.Switch"/*Switch*/, false); } } });
Danke für eueren Support
-
Da fehlt ein Trigger/Auslöser.
-
@dataeasy muss man verstehen was du da machst?
sobald von oben nach unten eine Bedingung passt ist Ende.
direkt der erste falls, sonst falls ist ab 7:30 immer erfolgreich.
-
@homoran es geht um die Steuerung eines Heizstabes der nur aktiv werden soll n den verschiedenen zeiträumen siehe Script in Änhängigkeiten der entsprechenden Trigger !!!
Problem ist halt True klappt nur false nicht
-
@thomas-braun Trigger sollte meines Erachtens der Zeitplan im Zyklus alle 5 min sein
-
@dataeasy sagte in Probleme mit Blockey script:
geht um die Steuerung eines Heizstabes der nur aktiv werden soll n den verschiedenen zeiträumen siehe Script in Änhängigkeiten der entsprechenden Trigger !!!
1.) du hast nur einen Trigger, den man nicht e7nmal vollständig sieht.
2.) ist der Honweis "siehe Skript" keineswegs hilfreich, wenn ich schreibe dass anhand des Skripts deine genaue Absicht nicht zu erkennen ist.
3.) ist eine Antwort wie diese überhaupt nicht hilfreich. Würde nur noch getoppt von "das Skript soll machen was ich will".Eine präzise Erklärung aller Bedingungen und Folgen wären für dich selber möglicherweise hilfreich zu verstehen, dass das was da steht eben doch nicht das ist was du willst.
-
@dataeasy sagte in Probleme mit Blockey script:
alle 5 min sein
Dann nimm halt mal folgenden Trigger:
-
@dataeasy und warum triggerst du nicht auf deine Batterie % und / oder Temperatur und schaltest dann nach Bedingung Uhrzeit und Temperatur usw.
-
@homoran sorry so war das nicht gemeint Asche auf mein Haupt.
als Trigger nutze ich aktuell den Zeitplan gesetzt auf tigger alle 5 min
Die Absicht des Scriptes ist zu bestimmten Zeiten z.b von 05:00 bis 08:00 einen Heistab ein zu schalten aber nur wenn bestimmte Bedingungen erfüllt sind und diesen auf wieder auszuschalten wenn wenn die definierten Werte von Sensoren erfüllt sind.
Dies oben in 3 Unterschiedlichen Zeiträumen erfolgen 05:00-08:00 / 09:00-17:00 / 19:00-22:00
Problem ist das der Heistab zwar angeht (shelly wert True) aber leider nicht mehr aus geht (shelly wert false) bzw. nicht immer und ich finde keinen Erklärung..
Deswegen habe ich temp schon via Oder Verknüfung eine definierte Uhrzeit eingebaut klappt aber leide rauch nichtDanke
-
@dataeasy dann bau maldebug Bausteine ein, die dir die aktuellen Parameter für die Bedingungen ausgeben.
-
@dataeasy uh jetzt hast du mich und wie mache ich das
-
@dataeasy sagte in Probleme mit Blockey script:
und wie mache ich das
Im Prinzip so:
Du lässt Dir halt alles ausgeben was von Interesse ist.
... bitte sinnvoll ergänzen!