NEWS
[Gelöst] Problem mit Lichtsteuerung auf Zeit
-
Ich würde es so umsetzen… Unter "steuere" sind natürlich die Datenpunkte und Werte der Lampe einzufügen.
-
Ich denke der Hund liegt im Block "22:00 bis 6:30" begraben. Diese Angaben beziehen sich auf den aktuelle Tag und somit wäre bei Dir wohl zwischen 6:30 und 22:00 gemeint, was eben absolut nicht Deiner gewünschten Vorgabe entspricht. Bau das mal so um das es keine Tagesüberschneidung in der Uhrzeit gibt, dann sollte es laufen.
-
Erstmals vielen Dank fürs Mitdenken!
Ich habe den Blocklyvorschlag von @Jörg übernommen, aber leider ohne Erfolg. Ich bekomme wieder die gleiche Fehlermeldung (missing or unrecognized endTime expression: NaN).
Die Bemerkung von @Jan klang sehr logisch, also habe ich die Zeiten geändert (sowohl in meinem eigenen Blockly als im Blockly von Jörg), damit es keine Tagesüberschneidungen mehr gab, aber auch das hat nicht funktioniert. Noch immer die gleichen Fehlermeldungen.
In der Anlage habe ich mal wieder einen Screenshot meines Blocklys eingefügt, vielleicht habe ich ja was übersehen.
Auch werde ich den Code posten, vielleicht kann @Thomas die Ursache finden.
Gruß
Johan
on({id: new RegExp('zigbee\\.0\\.00158d00024e74d2\\.occupancy' + "|" + 'zigbee\\.0\\.00158d0002323fab\\.occupancy'), change: "any"}, function (obj) { if ((getState("zigbee.0.00158d00024e74d2.occupancy").val == true || getState("zigbee.0.00158d0002323fab.occupancy").val == true) && compareTime('16.30', '22.00', "between", null)) { setState("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, true); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.active_bright"/*active_bright*/, '80', 5000, false); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, false, 120000, false); } else if ((getState("zigbee.0.00158d00024e74d2.occupancy").val == true || getState("zigbee.0.00158d0002323fab.occupancy").val == true) && compareTime('22.01', '23.59', "between", null)) { setState("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, true); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.active_bright"/*active_bright*/, '80', 5000, false); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, false, 120000, false); } else if ((getState("zigbee.0.00158d00024e74d2.occupancy").val == true || getState("zigbee.0.00158d0002323fab.occupancy").val == true) && compareTime('1.00', '6.29', "between", null)) { setState("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, true); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.active_bright"/*active_bright*/, '1', 5000, false); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, false, 120000, false); } else if ((getState("zigbee.0.00158d00024e74d2.occupancy").val == true || getState("zigbee.0.00158d0002323fab.occupancy").val == true) && compareTime('6.30', '8.15', "between", null)) { setState("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, true); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.active_bright"/*active_bright*/, '80', 5000, false); setStateDelayed("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, false, 120000, false); } }); setState("yeelight-2.0.Yeelight_halletje.control.power"/*power*/, true);
-
Auch werde ich den Code posten, vielleicht kann @Thomas die Ursache finden. `
Guten Morgen Johan2009,
ich habe mir das mal angesehen.
Du müsstest die Zeitangaben mal im richtigen Format versuchen. Du verwendest z.B. "zwischen 16****<u>.</u>30 und 22<u>.</u>00". Das richtige Trennzeichen zwischen Stunde und Minute ist aber ein ":", daher "zwischen 16:00 und 22:****00.
Ich denke dann sollte das Script funktionieren.
Du kannst ja mal Feedback geben
Viel Erfolg und Grüße
Thomas
-
Adlerauge sei wachsam, klar mit Punkt wird das nichts. Hatte ich vollkommen übersehen, die Tagesübergreifende Zeitangabe muss allerdings auch berücksichtigt werden, wenn es nicht wie gewünscht läuft. Das lässt sich aber auch recht einfach lösen, wenn wenn man das auf "nicht zwischen " umstellt und dabei die Zeiten vertauscht
-
Adlerauge sei wachsam, klar mit Punkt wird das nichts. Hatte ich vollkommen übersehen, die Tagesübergreifende Zeitangabe muss allerdings auch berücksichtigt werden, wenn es nicht wie gewünscht läuft. Das lässt sich aber auch recht einfach lösen, wenn wenn man das auf "nicht zwischen " umstellt und dabei die Zeiten vertauscht
`
Mir ist es auch erst im Code aufgefallen. Manchmal sieht man eben den Wald vor Bäumen nicht :lol:
-
Hallo Thomas und Jan,
Ich hatte schon erwartet, dass es was kleines wäre, aber das mit dem Trennzeichen, darauf wäre ich nie im Leben gekommen! Ich finde es wirklich super, dass ich euch die Mühe nehmt, Anfänger wie ich zu helfen. Das mit den Zeiten werde ich nie wieder falsch machen.
Der Skript läuft jetzt und alles scheint gut zu funktionieren. Im Log bekomme ich jetzt aber eine andere Warnung:
Wrong type of yeelight-2.0.Yeelight_halletje.control.active_bright: "string". Please fix, while deprecated and will not work in next versions.
Weiß einer von euch auch noch was das zu bedeuten hat?
Im Voraus noch mal vielen Dank!
Gruß
Johan
10042_yeelight_error.png -
Im Skript setzt Du die Helligkeit „bright“ mit einem Textbaustein, also String, der Datenpunkt ist aber vom Typ Zahl und muss dementsprechend auch mit einer Zahl gesetzt werden.
Wenn Du die Helligkeit mit einem Mathematikbaustein setzt sollte der Fehler verschwinden.
-
@J Riemann:Im Skript setzt Du die Helligkeit „bright“ mit einem Textbaustein, also String `
Das wäre mir jetzt nicht sofort aufgefallen.Dann hoffen wir, dass es sozusagen mit vereinten Kräften nun funktioniert
Euch nen schönen Freitag und VG
Thomas
Gesendet von iPhone mit Tapatalk
-
@J Riemann:Im Skript setzt Du die Helligkeit „bright“ mit einem Textbaustein, also String, der Datenpunkt ist aber vom Typ Zahl und muss dementsprechend auch mit einer Zahl gesetzt werden.
Wenn Du die Helligkeit mit einem Mathematikbaustein setzt sollte der Fehler verschwinden. `
Und damit hat sich auch das letzte Problem gelöst!
Nochmals vielen Dank an alle, die mitgedacht haben und ich wünsch euch ein schönes Wochenende!
Gruß
Johan