Seite 3 von 3

Re: Automatischer Dimmer (sunrise)

Verfasst: 17. Jan 2022 11:19
von peter-pan
...könnte es evtl. sein, dass es doch an der Klammerung liegt ? Und das Snippet so aussehen sollte:

Code: Alles auswählen

...
    tSunset = createTimer(now.plusSeconds(1), [|
        var nBright = WohnzimmerSLo_Helligkeit.state as Number
        if(nBright < 60) {
            WohnzimmerSLo_Helligkeit.sendCommand(nBright + 2)
            WohnzimmerSLu_Helligkeit.sendCommand(nBright + 2)
            tSunset.reschedule(now.plusSeconds(1))
        }
   ])
   .....
also die zweite Klammer(zu) aus:

Code: Alles auswählen

tSunset = createTimer(now.plusSeconds(1)),
erst nach der "eckigen Klammer"(zu).

Natürlich wie immer, ohne Gew(e)ähr. ;) ;)

Re: Automatischer Dimmer (sunrise)

Verfasst: 17. Jan 2022 12:03
von int5749
peter-pan hat geschrieben: 17. Jan 2022 11:19 ...könnte es evtl. sein, dass es doch an der Klammerung liegt ? Und das Snippet so aussehen sollte:

Code: Alles auswählen

...
    tSunset = createTimer(now.plusSeconds(1), [|
        var nBright = WohnzimmerSLo_Helligkeit.state as Number
        if(nBright < 60) {
            WohnzimmerSLo_Helligkeit.sendCommand(nBright + 2)
            WohnzimmerSLu_Helligkeit.sendCommand(nBright + 2)
            tSunset.reschedule(now.plusSeconds(1))
        }
   ])
   .....
also die zweite Klammer(zu) aus:

Code: Alles auswählen

tSunset = createTimer(now.plusSeconds(1)),
erst nach der "eckigen Klammer"(zu).

Natürlich wie immer, ohne Gew(e)ähr. ;) ;)
Oh, Man(n) ich Vollhonk :roll:
Wo habe ich denn da den Code geprüft und warum die Klammer versetzt. Nur bei re-schedule wird direkt geschlossen :oops:
openHAB Doku zu Timer

Sorry!

Re: Automatischer Dimmer (sunrise)

Verfasst: 17. Jan 2022 15:03
von udo1toni
Nur für das grundsätzliche Verständnis:

es gibt zwei unterschiedliche Schreibweisen für die Timer Definition. Erstens:

Code: Alles auswählen

myTimer = createTimer(Zeitpunkt) [
    // auszuführender Code
]
Zweitens:

Code: Alles auswählen

myTimer = createTimer(Zeitpunkt, [
    // auszuführender Code
])
Der Unterschied ist tatsächlich nur die Schreibweise, im ersten Beispiel ist der Code als Lambda einfach hinter die Timer Definition gepappt, im zweiten Beispiel ist das Lambda Bestandteil der Definition. Ich bevorzuge diese Schreibweise, da damit klar wird, dass das Lambda (der Teil zwischen [ und ]) ein Parameter von createTimer() ist.
Natürlich kann man createTimer() auch aufrufen, ohne ein Ergebnis in einer Variablen zu speichern, aber man verschenkt damit Potential.

Re: Automatischer Dimmer (sunrise)

Verfasst: 17. Jan 2022 16:34
von atk69
Vielen Dank peter-pan, es funktioniert wieder :P
Auch Dir udo1toni für die Erklärung der Schreibweisen.

Komisch, ich habe das nochmal mit meinem Backup verglichen: ist identisch. Hätte also bereits laufen sollen :o
Nunja, es läuft wieder. Das ist das wichtigste.
Ich habe die letzten 2 Tage OH so sehr mit zigbee und dem Ikea Gateway belastet, kann sein, dass es einfach etwas gesponnen hat.
Habe zur Sicherheit OH rebootet (cache, temp, log gelöscht)
Alles OK.

Gruss
atk69

Re: Automatischer Dimmer (sunrise)

Verfasst: 17. Jan 2022 18:22
von int5749
:oops: :roll:

Re: Automatischer Dimmer (sunrise)

Verfasst: 18. Jan 2022 00:17
von peter-pan
Gott sei Dank, das wir @udo1toni haben.
Ich werde das mit den Timern nie genau lernen :oops: . Wenn ich einen brauch, schau ich mir ein "altes Muster" an und benutze das als Basis (und die Basis ist von Udo ;) ). Ich mache allerdings auch sehr wenig mit Timern.

Aber es war auch gut mal wieder in die Doku zu schauen, dank dem Link von @int5749.
int5749 hat geschrieben: 17. Jan 2022 18:22 es funktioniert wieder :P
... und wenn's dann funktioniert, dann freuen wir uns alle.