NEWS
Blockly für Garagen LED Beleuchtung
-
Hallo,
ich habe mittels WEMOS und WLED ein kl. Projekt umgesetzt, wo LEDs im Torrahmen des Garagentor eine kleine "Lichtveranstaltung" durchführt. Ggf. hat der ein oder andere das schon mal bei YTT gesehen.
Wie dem auch sein. Mittels 2 Fensterkontakten (Zigbee), dem WLED Adapter und einem Blockly lasse ich die 5 Presest der LED Steuerung entsprechend laufen. Zum Verständnis. Preset (PS) 1 ist eine roten Laufband, PS2 ist einen grüne Leiste, PS3 ist ein Fadeout von grün auf weiss und PS5 ist das Ausschalten der LEDs.
Fehlt noch PS4. Hier werden immer 20 LEDs im Abstand von 20 nicht beleuchteten eingeschaltet. Das sieht dann aus wir einzelne Spots.
Um genau das PS4 geht es. Denn dies soll nur durchgeführt werden, wenn es draußen dunkel ist.
Ich wollte versuchen es mit einer Zeit zusteuern. Also z.B. nur wenn es später als 21 Uhr ist, soll das PS4 durchgeführt werden. 8 Uhr morgens (hell) ist aber auch später als 21 Uhr
OK. Also was wäre sinnvoll? Ich möchte halt, dass dieses PS4 z.B. nur dann im Blockly ausgeführt wird, wenn es zwischen 21 und 5 Uhr morgens passiert. Sonst soll PS4 quasi übersprungen werden. Zudem soll, wenn diese "Schleife" aktiviert wurde das PS4 nur für 2 Minuten leuchten. Dann sollen sie ausgehen. Also soll dann quasi nochmal das PS5 laufen. Das sorgt ja für das ausschalten.
Hier mal mein Blockly bis jetzt. Der Trigger mit dem Zeitplan ist falsch. War ein versuch. Klappt aber nicht.
Anstatt Zeit von bis wäre ggf. auch Sonnauf- Untergang meiner Region heranzuziehen, wenn das geht.
Wäre für Hilfe dankbar. Bis hierhin habe ich es geschafft. Aber jetzt bin ich zu unwissend...
-
@vocaris
Ohne weiter darauf einzugehen, aber Trigger im Trigger funktioniert einfach nicht -
@vocaris Spoiler ist schon gut, der Code muss aber in die Code-Tags (</>).
-
HI, mich würde interessieren, wie du die einzelnen spots (20 segmente) programmiert hast. Macro? würdest du mir das bitte erklären?
zu dem Problem mit der Uhrzeit würde ich das einbauen:
<block xmlns="https://developers.google.com/blockly/xml" type="time_compare_ex" id="FCU~,#:[DzDU{)GHVgC;" x="-527.2183380126953" y="-340"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="Wlm/Ydfr$NW9.PqF{@Q*"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="$^dcUJ=l*4Fqd1`k!{ob"> <field name="TYPE">sunriseEnd</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="g$vV8qgl^CV9mnZ|u3Tu"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="66_X/:mI$aA8Bt[wUFe]"> <field name="TYPE">sunsetStart</field> <field name="OFFSET">0</field> </block> </value> </block>
-
@vocaris
vielleicht passt es so:
Dafür müßte irgendwo zentral die "Tageszeit" definiert werden
(das bietet sich an, da die Tageszeit sicher in weiteren Scripten Verwendung finden kann) -
Ich setze "Nacht" z.B. zum Steuern meiner Außenbeleuchtung über ein eigenes Script.
-
@bbtown sagte in Blockly für Garagen LED Beleuchtung:
@vocaris
vielleicht passt es so:
Dafür müßte irgendwo zentral die "Tageszeit" definiert werden
(das bietet sich an, da die Tageszeit sicher in weiteren Scripten Verwendung finden kann)Das ganze lässt sich durchaus noch etwas vereinfachen / verbessern:
Warum geht das ?
Der Trigger "is greater than last" wird nur aktiv wenn einer der beiden States auf wahr geht. Das bedeutet das die oben angegebenen Sonst Falls beide automatisch erfüllt sein müssen, sofern nicht beide States auf wahr liegen.
Die Funktion "Lichtorgel" muss erhalten bleiben. An Statt einen Datenpunkt in der Funktion abzufragen geht aber auch:
im Falls block um die Zeit einzugrenzen.
A.
-
Nàbend zusammen - darf ich hier mal in den Thread rein grätschen?
Ich möchte auch das Garagentor Licht realisieren. Bauteile sind alle heute gekommen und hier auf dem Schreibtisch blinkt und leuchtet es munter, gemäß der wled Effekte, vor sich hin.
Den ioB wled Adapter habe ich auch installiert und er hat auch die Datenpunkte mit div. Werten gefüllt - ABER ....... ich habe nirgends einen Ansatz gefunden WIE man so eine Gargentor Beleuchtung hin bekommt.
Muss man irgendwie ein "Programm schreiben" und dieses dann in Wled hinein kompilieren und wled neu flashen? Was hat es mit dem ioB Blockly auf sich?
Ich habe im Web diesen, für mich kryptischen, Programmcode gefunden. Was und vor allen Dingen WO, ich damit etwas machen muss erschließt sich mir allerdings nicht.
rot - SM=0&SS=0&SV=2&S=0&S2=174&GP=1&SP=0&RV=0&SB=255&A=255&R=255&G=0&B=0&W=0&R2=0&G2=0&B2=0&W2=&FX=60&SX=203&IX=246&T=1 grün - SM=0&SS=0&SV=2&S=0&S2=174&GP=1&SP=0&RV=0&SB=255&A=255&R=0&G=255&B=0&W=0&R2=0&G2=0&B2=0&W2=&FX=0&T=1 weiss - SM=0&SS=0&SV=2&S=0&S2=174&GP=1&SP=0&RV=0&SB=255&A=255&R=0&G=0&B=0&W=255&R2=0&G2=0&B2=0&W2=&FX=60&SX=64&IX=113&T=1 spots - SM=0&SS=0&SV=2&S=13&S2=174&GP=7&SP=20&RV=0&SB=255&A=255&W=255&R2=0&G2=0&B2=0&W2=&FX=0&T=1 aus - T=0
Also ich stehe mit wled total am Anfang (und auf dem Schlauch) und bringe es nicht zusammen wie man nun dieses, auf YouTube allseits bekannte Garagentor Licht, "programmiert".
Kann mich bitte jemand ein bisschen an Hand nehmen und mir vielleicht ein paar Stichwörter / Hinweise geben, WIE ich vorgehen muss? Wenn ich erst einmal einen Ansatz habe, wurschtel ich mich da schon irgendwie durch. Leider ist alles was man als "Ansatz" findet, irgendwie auf LOXONE zugeschnitten.
-
@jb_sullivan bist Du weiter gekommen? Ich habe den cod.m Controller mit WLED und möchte auch die Garagenbeleuchtung realisieren.
Wie habt ihr es so realisiert im IoBroker?
So wie ich es im Loxforum lese wurde es dort über UDP vom Loxone Server realisiert. Im IoBroker über Blockly einen Preset ansteuern? Ist das korrekt?
Hat jemand den Preset konfiguriert?
-
@jb_sullivan said in Blockly für Garagen LED Beleuchtung:
Ich stand vor dem gleichen Problem und musste auch rumprobieren... hier meine Vorgehensweise, vielleicht hilft es ja.Als erstes muss man auf die IP des WLED Controllers (Wemos d1 mini bei mir) gehen. Da sieht man ja die ganzen Einstellmöglichkeiten, farben, an aus etc... und unten sieht man die Reiter Colors, Effects, Segments und Favorites. Hier geht man auf Favorites und drückt auf "+ create presets". Nun gibt man einen Namen Ein (z. B. spots) und macht den haken bei "use current state" raus. Dann erscheint unten ein leeres Feld in das man diese kryptischen zeichen reinkopiert und anschließend auf "save preset" drücken. Damit ist der erste preset gespeichert. Drückt man dann auf das preset sollten die spots entsprechend auftauchen (oder eben das was man in dem preset gespeichert hat) Diesen kann man nun in iobroker über z.b. ein blockly aufrufen, wobei man dann einfach die ID des Presets (also in dem Fall die nummer "1" angibt (auf dem bild unten ist es die nummer 8 weil ich vorher schon andere presets gespeichert habe). Im blockly kann man dann mehrere hinter einander oder zeitlich aufrufen wenn man denn mehrere presets gespeichert hat und so die verschiedenen farben, effecte oder sonstiges aufrufen.
Hier ein Beispiel für den Aufruf per Blockly
Hier wird zuerst das Preset mit der ID (Nummer) 1 aufgerufen und nach 4700ms also 4,7 sekunden das Preset 2.
Wichtig für die Ansteuerung sind die kryptischen Zahlen, wobei die Bedeutung hier gut aufgelistet ist:
https://github.com/Aircoookie/WLED/wiki/HTTP-request-API
Hoffe das hilft, ich habs damit zumindest hinbekommen, wobei ich das ganze aber nicht für die Garage sondern mein Treppenlicht nutz
-
Vielen Dank für deine Ausführungen. Ich nutze es auch nicht für ein Garagentor, sondern für meine Fahrradhütte, damit die Kinder es endlich mal checken die Tür wieder zu zu machen.
Sonst läuft da nämlich die ganze Zeit der Rote Balken. Wenn die Tür zu ist, wird es kurz grün und geht dann in den Spot Mode über.
Es gibt noch einen anderen Weg, als die presents via Blockly einzeln zu schalten. Du kannst auch in wled ein neues present erstellen, in welches du dann die einzelnen present Nummern der erzeugten Lichtmuster rein schreibst. Auch die Zeiten wie lange die einzelnen presents laufen sollen, kannst du da rein schreiben.
Dann braucht es in ioB nur einen Trigger und diese "present Playlist" wird aus wled heraus abgearbeitet. Soll heißen, die einzeln definierten presents werden gemäß playlist nacheinander abgearbeitet ohne jedes present einzeln aus dem ioB script heraus anstoßen zu müssen.
{"playlist":{"ps":[7,8,4],"dur":[50,10,100],"transition":0,"repeat":1,"end":5}}
7,8,4 steht für die Nummern der presents mit den gewünschten Lichtmustern - 50,10,100 sind die Sekunden (/10), wie lange die einzelnen presents leuchten sollen - und "end":5 ist das present was am Ende dauerhaft anstehen bleibt.