NEWS
[GELÖST] - Weihnachtsbeleuchtung - zu kompliziert gedacht?
-
@slang-0 sagte: Wie prüft man ob gestern Totensonntag war?
Indem man nicht mit Wert vergleicht, sondern mit vorheriger Wert.
@paul53 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Indem man nicht mit Wert vergleicht, sondern mit vorheriger Wert.
natürlich! aber das geht nur, wenn am nächsten Tag ein anderer Feiertag wäre, oder?
-
@paul53 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Indem man nicht mit Wert vergleicht, sondern mit vorheriger Wert.
natürlich! aber das geht nur, wenn am nächsten Tag ein anderer Feiertag wäre, oder?
-
@paul53 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Indem man nicht mit Wert vergleicht, sondern mit vorheriger Wert.
natürlich! aber das geht nur, wenn am nächsten Tag ein anderer Feiertag wäre, oder?
-
der Datenpunkt ist doch dann leer wenn kein Feiertag mehr ist, demnach hat er sich auch geändert
@cinimod sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
demnach hat er sich auch geändert
Ach so - eigentlich schon.
leer ist ein anderer Eintrag als "Totensonntag" -
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@all:
Ich habs nochmal überdacht:

Eigentlich bin ich kein Freund davon Skripte zu stoppen oder starten via script, schöner währe meine andere Lösung, auch wenn die Trigger die meiste zeit ins leere laufen.
Wenn du es so lassen willst sollte der mittlere Trigger täglich triggern,
oder wie die anderen Vorschläge waren, den Feiertags Adapter zu nutzen und einen der Datenpunkte als Trigger zu nutzen, das halte ich auch für sehr Sinnvoll@cinimod sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Wenn du es so lassen willst sollte der mittlere Trigger täglich triggern,
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
-
@homoran sagte: das geht nur, wenn am nächsten Tag ein anderer Feiertag wäre, oder?
Wird der Feiertagsname nicht gelöscht, wenn kein Feiertag ist? Bei mir ist heute der Feiertagsname leer.
-
@slang-0 sagte: Wie prüft man ob gestern Totensonntag war?
Indem man nicht mit Wert vergleicht, sondern mit vorheriger Wert.
-
@cinimod sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Wenn du es so lassen willst sollte der mittlere Trigger täglich triggern,
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
es wird doch täglich getriggert. Vom 20.11. bis 26.11.
das Problem ist, dass es hier inzwischen mehrere Vorschläge gibt.
und der aktuell letzte ist, dass man auf die Feirtage triggert, nicht täglich
-
@cinimod sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
Wenn du es so lassen willst sollte der mittlere Trigger täglich triggern,
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
@slang-0
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
Stimmt mein Fehler :blush: das ist wohl so
Phu, hier ist was los :joy:
-
@slang-0
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
Stimmt mein Fehler :blush: das ist wohl so
Phu, hier ist was los :joy:
@cinimod sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0
Eventuell verstehe ich dich falsch... es wird doch täglich getriggert. Vom 20.11. bis 26.11.. An keinem anderen Tag des Jahres ist es möglich das Totensonntag wäre.
Stimmt mein Fehler :blush: das ist wohl so
Phu, hier ist was los :joy:
Kein Problem... Mir raucht auch ehrlich gesagt der Kopf... :cold_sweat:
-
Hallo,
Beim aktivieren meiner Weihnachtsbeleuchtung in diesem Jahr musste ich mir von meinen Nachbarn leider sagen lassen, dass man doch besser bis zum Totensonntag warten sollte... wusste ich nicht Shame on me :-/
Im nächsten Jahr würde ich das aber beachten wollen, aber ganz sicher nicht manuell. Das soll bitte automatisch passieren.
Den Totensonntag kann ich mir aus dem Datenpunkt feiertage.0.heute.Name holen.
Im ersten Versuch habe ich gedacht man könnte, wenn der Tag gekommen ist, das irgendwie in ein Datum konvertieren. Ist entweder falsch gemacht, oder falsch gedacht (oder beides). Als Debug kommt in jedem Fall immer 01/01 raus.

Durch den Vergleich (> als ) geht die Beleuchtung praktisch das ganze Jahr an, da ja immer nach dem 01.01. ist... Also unbrauchbar...
- Versuch:
Ich erstelle eine Variable "Totensonntag" mit dem Wert 0.; und erhöhe die um 1 wenn der Totensonntag kommt. Das funktioniert zwar, ist aber fehleranfällig, denn sobald das Script neugestartet, oder nur der Service ioBroker neugestartet wird, funktioniert die Beleuchtung nicht mehr und man muss händisch aktiv werden, da die Variable wieder 0 ist und sich auch nicht mehr ändert, wenn Totensonntag bereits vorbei ist.

Also auch unbrauchbar.
Der 3., mMn funktionierende, Versuch sieht so aus:
Ich habe einen eigenen Datenpunkt erstellt (0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag) dieser wird auf true aktualisiert sobald der Datenpunkt feiertage.0.heute.Name "Totensonntag" ergibt. Die aktualisierung erfolgt mit Verzögerung, denn die Beleuchtung soll nicht am, sondern erst am nächsten Tag laufen.
Im Falls wird dann abgeprüft ob entweder der Datenpunkt 0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag true ist oder vor einem definierten Datum zutrifft.
Per Zeitplan wird am 01.01. eines Jahres der Datenpunkt 0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag wieder auf false aktualisiert, damit nach dem definierten Enddatum die Weihnachtsbeleuchtung nicht mehr an geht.

Ich bin Anfänger, daher die Frage ob man das so macht, oder ob das viel zu kompliziert gedacht ist, oder ob sogar Fehler drinn sind.
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
ob das viel zu kompliziert gedacht ist
den Kommentar kann ich mir einfach nicht verkneifen :-)
Ja das ist zu kompliziert gedacht. Ich habe ein "Weihnachtsbeleuchtungsskript" und wenn ich sowieso die ganze Beleuchtung aufhänge, dann aktriviere ich das Skript und wenn ich alles wieder abbaue dann deaktiviere ich es. Das ist EIN Arbeitsschritt der Aktion "Aufbauen der Beleuchtung", man kann es mit Automatisierung auch übertreiben :-) - Versuch:
-
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
ob das viel zu kompliziert gedacht ist
den Kommentar kann ich mir einfach nicht verkneifen :-)
Ja das ist zu kompliziert gedacht. Ich habe ein "Weihnachtsbeleuchtungsskript" und wenn ich sowieso die ganze Beleuchtung aufhänge, dann aktriviere ich das Skript und wenn ich alles wieder abbaue dann deaktiviere ich es. Das ist EIN Arbeitsschritt der Aktion "Aufbauen der Beleuchtung", man kann es mit Automatisierung auch übertreiben :-) -
@amg_666 genau so mache ich das auch..Script pausiert ab etwa Mitte Januar, wieder gestartet ab Mitte November..
-
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
ob das viel zu kompliziert gedacht ist
den Kommentar kann ich mir einfach nicht verkneifen :-)
Ja das ist zu kompliziert gedacht. Ich habe ein "Weihnachtsbeleuchtungsskript" und wenn ich sowieso die ganze Beleuchtung aufhänge, dann aktriviere ich das Skript und wenn ich alles wieder abbaue dann deaktiviere ich es. Das ist EIN Arbeitsschritt der Aktion "Aufbauen der Beleuchtung", man kann es mit Automatisierung auch übertreiben :-)@amg_666 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
ob das viel zu kompliziert gedacht ist
den Kommentar kann ich mir einfach nicht verkneifen :-)
Ja das ist zu kompliziert gedacht. Ich habe ein "Weihnachtsbeleuchtungsskript" und wenn ich sowieso die ganze Beleuchtung aufhänge, dann aktriviere ich das Skript und wenn ich alles wieder abbaue dann deaktiviere ich es. Das ist EIN Arbeitsschritt der Aktion "Aufbauen der Beleuchtung", man kann es mit Automatisierung auch übertreiben :-)Ich muss da ja im Grunde selbst zustimmen. Allerdings geht es für mich als Anfänger auch unbedingt darum etwas zu lernen. Dieses Thema hat mich zumindest ordentlich weitergebracht.
Deshalb ... Vielen Dank an alle für die Geduld und Hilfe! -
@amg_666 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
@slang-0 sagte in Weihnachtsbeleuchtung - zu kompliziert gedacht?:
ob das viel zu kompliziert gedacht ist
den Kommentar kann ich mir einfach nicht verkneifen :-)
Ja das ist zu kompliziert gedacht. Ich habe ein "Weihnachtsbeleuchtungsskript" und wenn ich sowieso die ganze Beleuchtung aufhänge, dann aktriviere ich das Skript und wenn ich alles wieder abbaue dann deaktiviere ich es. Das ist EIN Arbeitsschritt der Aktion "Aufbauen der Beleuchtung", man kann es mit Automatisierung auch übertreiben :-)Ich muss da ja im Grunde selbst zustimmen. Allerdings geht es für mich als Anfänger auch unbedingt darum etwas zu lernen. Dieses Thema hat mich zumindest ordentlich weitergebracht.
Deshalb ... Vielen Dank an alle für die Geduld und Hilfe!@slang77 ich habe es so gelöst. Ist recht simple. Und wenn SysVar auf true geht, dann wird das Weihnachtslichterkettenprogramm aktiv..

-
@slang77 ich habe es so gelöst. Ist recht simple. Und wenn SysVar auf true geht, dann wird das Weihnachtslichterkettenprogramm aktiv..

@newbie2007 sagte: Ist recht simple.
Dann darf das Skript / die Instanz aber während des gesamten Totensonntags nicht neu gestartet werden.
-
Hallo nochmal...
Der Vollständigkeit halber nochmal zum Abschluß. So habe ich es jetzt gemacht... (alles andere ist glaube ich unnötig kompliziert)

<xml xmlns="https://developers.google.com/blockly/xml"> <block type="schedule" id="PgpVDMoTo:?YdHZnII@D" x="38" y="13"> <field name="SCHEDULE">20 2 2 2 *</field> <statement name="STATEMENT"> <block type="update" id="EFyV]65,mM)$zemA4[1A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="@gor6I7BeCdC5!Fvsy*="> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="eE]C;)L%@;~f%{7-E.E9"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="c}i3Wq-a!=4,OQJs/)F,"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="i^r`}fBf2tM#S7pmt!jN"> <field name="TEXT">Datenpunkt Totensonntag aktualisiert mit "</field> </block> </value> <value name="ADD1"> <block type="get_value" id="OV3FzG?^Plsb4F#d$R/D"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag</field> </block> </value> <value name="ADD2"> <block type="text" id="FEN|s)]F@3L=zGw),;{a"> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="control" id="H[n{Jf+w)krdyWNx;L%?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.common.Weihnachtsbeleuchtung_Zeiten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ON;/83l=_4wi)fY8@_p0"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="schedule" id="o;3m4z5gHNyQth}D.9L9" x="38" y="313"> <field name="SCHEDULE">40 23 20-26 11 *</field> <statement name="STATEMENT"> <block type="controls_if" id="/$#B-yk5`9fDl_aiG*1l"> <value name="IF0"> <block type="logic_compare" id="2(|u`5O:@*sWKXR%7g$a"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="kr`10I@}PH)198mQ~g7J"> <field name="ATTR">val</field> <field name="OID">feiertage.0.heute.Name</field> </block> </value> <value name="B"> <block type="text" id="7Bw*NFr`p?|**.%*Ax,s"> <field name="TEXT">Totensonntag</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="{wBV8cpGmz0Q{1Y3Q](8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="OPu5;(@bMG=3X*U)2Vy["> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="hIm}Y+g8syBiV**ZBG*Q"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="Tm~[k+jdk672rr2JxJQ5"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id=";g}1Ht$qkkSdq,F3C.sW"> <field name="TEXT">Datenpunkt Totensonntag aktualisiert mit "</field> </block> </value> <value name="ADD1"> <block type="get_value" id="9z`P$}Yn^?CM{1I5fOJa"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.eigene_Datenpunkte.trigger.Totensonntag</field> </block> </value> <value name="ADD2"> <block type="text" id="g4*m4uH2}fyeqS+b0l,#"> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="control" id="-vjt]lNYXQ?;aop1rKU6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.common.Weihnachtsbeleuchtung_Zeiten</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="R(TN$pIiseRadB==7IG/"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>Das sollte es eigentlich tun. Das Blockly für die Zeitschaltung der Beleuchtung besteht nur aus den 4 Triggern und ist unverändert.
Dabei ist es dann auch egal ob die Instanz oder iObroker vor-, an- oder nach Totensonntag neugestartet wird. Außerdem wird nicht das ganze Jahr permanent getriggert, sondern nur in dem kleinen Bereich wo Totensonntag sein könnte.