NEWS
Skript für Rollladensteuerung
-
Hi,
hab hier im Forum schon gesucht, aber nix passendes gefunden. Ich will eigentlich nur meine Rollläden in abhängigkeit von Wetter und Zeit steuern.
Versuche das über blockly abzubilden, aber da sind glaub noch einige Würmer drin. Kann mir da jmd bitte etwas behilflich sein?
Zielbild ist, dass jeden Tag im 10Uhr die Wettervorhersage geprüft wird. Sollte es über 25C werden, sollen die Rollläden runtergefahren werden.
Bonus: Er prüft noch ob die Terrassentür auf ist. Ist sie offen, sollen die Rollläden nicht runtergefahren werden.
schedule("* 10 * * *", function () { on({id: "yr.0.forecast.day0.temperatureMax"/*Forecast of temperature for today*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat((obj.state ? obj.state.val : "")) >= 25) { setState("hm-rpc.0.OEQ0885581.1.LEVEL"/*Rollladen schlafzimmer rechts.LEVEL*/, 90); setState("hm-rpc.3.001118A98A3F62.4.LEVEL"/*Rollladen wohnzimmer.LEVEL*/, 90); setState("hm-rpc.3.001118A98BC15A.4.LEVEL"/*Rollladen schlafzimmer links.LEVEL*/, 90); setState("hm-rpc.3.001118A98A4119.4.LEVEL"/*Rollladen küche.LEVEL*/, 90); } }); }); false && false; obj.channelId; -
Trigger im Trigger ist immer ne blöde Idee. Dein interner Trigger funktioniert nur einmal am Tag um 10 Uhr und wenn nicht gerade exakt in dem Moment seine Bedingung erfüllt wird, dann macht er eben auch nichts und das dürfte zu 100% immer der Fall sein

Lass einfach den unnötigen Zeitplan weg, dann sollte das schon laufen. Was für ein Typ ist den Dein abgefragter DP, wenn der erst mal nach Zahl konvertiert werden muss?
-
Ok, den Timer hab ich korrigiert. Ich brauch ihn schon da der Rollladen ja nicht nachts runterfahren soll, weil es an dem Tag heiss wird. Resourcenschonender is es sicher auch, wenn das Skript nicht den ganzen Tag laufen soll und immer prüft ob es schon 10 Uhr is.
Hab es jetzt nochmal überarbeitet. Jetzt siehts glaub ganz gut aus. Oder sieht noch jmd nen Fehler?
7870_unbenannt.jpg -
Der String-Vergleich funktioniert nicht immer. Z.B. ist bei einem Stringvergleich "3 °C" > "25 °C". Wenn "Forecast of temerature for today" als String vorliegt, muss mit nach Zahl gewandelt werden und mit einer Zahl verglichen werden, so wie im ersten Skript.
