NEWS
Script läuft nach Umzug auf anderen Server nicht mehr
-
@paul53 Okay dann warte ich mal und melde mich am Abend. Bis dahin sollte sich was tun.
-
@raspido
Im Tab "Objekte" werden die Werte der hm-rpc-Datenpunkte richtig angezeigt und aktualisiert? -
@paul53 Also bevor mir was aufgefallen ist, wurden die Werte nicht aktuallisiert. Wobei ich hatte das Gefühl, dass sich draußen bislang nicht viel geändert hatte. Aber naja das eine Problem gefunden und beseitigt. Also das Script an sich läuft wieder.
Bei den Adapter für Homematic war die Falsche Callback IP hinterlegt gewesen. Also der neue und der alte Server haben unterschiedliche IP Adressen und naja ist mir erst garnicht aufgefallen bzw. eingefallen.
Nur muss ich nun gucken, wie man es am einfachsten und besten lösen kann, dass die Rollos im Kinderzimmer (Die auskommentierten), nicht in dem Zeitraum Montag bis Freitag jeweils 12.00 Uhr bis 15.30 Uhr automatisch bewegen. In dem Zeitraum schlafen in der Regel die Tageskinder und die werden immer Wach wenn plötzlich das Rollo fährt.
Deshalb habe ich diese im Moment auskommentiert.
Michael
-
@raspido Du machst dir einfach einen Datenpunkt "Kinderzimmerrolladensperre" .
Den setzt du um 12 Uhr auf True und um 15:00 Uhr auf FalseUnd im Rolladenscript prüfst du vorm Schalten den Datenpunkt.
Das wäre eine Möglichkeit. Es gibst sich noch andere. -
@htrecksler Okay Danke für den Tipp.
Das "steuern" des Datenpunktes kann ich ja auch im gleichen Script packen oder spricht da was dagegen? Ein kleines Problem hab ich noch, wie bekomme ich die Aktuelle Uhrzeit? Ich habe in den Datenpunkten gewühlt und irgendwie noch nicht den gefunden, der "aktuell" ist
Michael
-
@raspido sagte: nicht in dem Zeitraum Montag bis Freitag jeweils 12.00 Uhr bis 15.30 Uhr automatisch bewegen
let wd = new Date().getDay(); if(compareTime('12:00', '15:30', 'not between') || wd == 0 || wd == 6) { }
-
@raspido z. B. mit einem
schedule("0 12 * * *", RolladenSperreSetzen);
schedule("0 15 * * *", RolladenSperreAufheben);
RolladenSperreSetzen bzw RolladenSperreAufheben wären in dem Fall Funktionen im Script in welchen dann der Datenpunkt auf TRUE bzw. FALSE gesetzt wird.
Der Vorteil das Ganze über einen DP zu steuern...Du kannst auch andere Ereignisse nutzen um das Fahren der Rolladen zu verhindern. Den DP kannst du ja jederzeit beeinflussen.
-
Ich habe das mit dem externen Datenpunkt gemacht. Ich denke das bringt mehr flexibiltät. Aber mal gucken ob das nun läuft, was ich da zusammengebaut habe.
Hier der Code zur Rollosteuerung:
/* Urlaubssteuerung für die Rollos, bei über 25 Grad fahren die Rollos runter, bei unter 25 Grad und wenn es Hell ist hoch */ var level = getState('hm-rpc.0.PEQ0181456.1.LEVEL').val; on('alias.0.Temperaturen.Draußen.ACTUAL', function (dp) { let temp = dp.state.val; let licht = getState("hm-rpc.1.000D58A9915FBC.1.AVERAGE_ILLUMINATION").val; if(licht > 2500) { if (temp > 25) level = 25; else if (temp < 20) level = 100; if(level != getState('hm-rpc.0.PEQ0181456.1.LEVEL').val) { setState("hm-rpc.0.PEQ0181456.1.LEVEL", level); setStateDelayed("hm-rpc.0.PEQ0181557.1.LEVEL", level, 5000); setStateDelayed("hm-rpc.0.PEQ0181297.1.LEVEL", level, 10000); setStateDelayed("hm-rpc.0.PEQ0181518.1.LEVEL", level, 15000); setStateDelayed("hm-rpc.0.PEQ0181504.1.LEVEL", level, 20000); setStateDelayed("hm-rpc.0.PEQ0181520.1.LEVEL", level, 25000); setStateDelayed("hm-rpc.0.PEQ0181559.1.LEVEL", level, 30000); //Kinderzimmer Rollos if(!getState('0_userdata.0.Hilfsdatenpunkte.Kinderzimmer_Rollo_Sperre')){ setStateDelayed("hm-rpc.0.PEQ0181507.1.LEVEL", level, 35000); setStateDelayed("hm-rpc.0.OEQ2341971.1.LEVEL", level, 40000); } } } log('Temperatur: ' + temp + ' °C, Licht: ' + licht + ' lux, Rollos: ' + level + ' %'); });
Und Hier ein Screenshot vom Blockly Code für die Steuerung des Datenpunktes:
Also wenn ich das noch richtig in Erinnerung habe aus der Vergangeheit, müsste das mit dem Abfragen des Zustands des Datenpunktes klappen. Ich habe den zur besseren Übersicht ans Ende gepackt. Also nicht wundern. So sind die ohne "Sonderprogramm" und mit "Sonderprogramm" bisschen von einander getrennt.
Michael
-
@raspido sagte: ob das nun läuft, was ich da zusammengebaut habe.
Das läuft nicht. Korrigiere Zeile 28:
if(!getState('0_userdata.0.Hilfsdatenpunkte.Kinderzimmer_Rollo_Sperre').val) {
-
@paul53 danke für den Hinweis.