[Gelöst] Fehler in Funktion des DOIF

Begonnen von Superposchi, 22 April 2024, 23:20:22

Vorheriges Thema - Nächstes Thema

Superposchi

Ich habe ein DOIF mit dessen Hilfe eine Lampengruppe zu mehreren Zeiten geschaltet werden soll.
Dazu wird an den Zeitschaltpunkten der Szenename in ein Reading 'sollwert' geschrieben und wenn die Lampen eingeschaltet sind die Szene aktiviert.

([04:00])
    (setreading HUEGroup22 sollwert Fernsehlicht, IF ([HUEDevice16:onoff] >= 1) (set HUEGroup22 scene [HUEGroup22:sollwert]))
DOELSEIF ([10:00])
    (setreading HUEGroup22 sollwert Tageslicht, IF ([HUEDevice16:onoff] >= 1) (set HUEGroup22 scene [HUEGroup22:sollwert]))
DOELSEIF ([20:15])
    (setreading HUEGroup22 sollwert Fernsehlicht, IF ([HUEDevice16:onoff] >= 1) (set HUEGroup22 scene [HUEGroup22:sollwert]))
DOELSEIF ([22:30])
    (setreading HUEGroup22 sollwert Nachtlicht, IF ([HUEDevice16:onoff] >= 1) (set HUEGroup22 scene [HUEGroup22:sollwert]))

Das setzen des Readings klappt, aber die IF-Abfrage im Ausführungsteil wird nicht ausgeführt.

Ich habe im CommandRef und in verschieden Beispielen hier im Forum den Code gefunden und wie oben angepasst. Aber irgendwie hat sich ein Fehler eingeschlichen.

Kann mal bitte jemand den Code gegenlesen?

Per

Hat vielleicht mit Selftrigger zu tun.
Funktioniert es denn. Wenn du statt des Readings den Wert direkt angibst?

Superposchi

Hab ich gerade ausprobiert, macht keinen Unterschied.
DOELSEIF ([22:30])
(setreading HUEGroup22 sollwert Nachtlicht, IF ([HUEDevice16:onoff] = 1) (set HUEGroup22 scene Nachtlicht))
Zusätzlich auch mal das GrößerGleich gegen ein reines Gleich ausgetauscht - funktioniert aber auch nicht.

Es ist das If, das Probleme macht. Hab es auch schon mit verschiedenen Readings im Bedingungsteil probiert, der Teilzweig wird komplett ignoriert.

Ist die Schreibweise denn korrekt?

Per

= ist zumindest falsch, == wird in Perl erwartet.

Superposchi

Das DOIF ist nicht im Perl-Modus, muss es trotzdem in Perl geschrieben werden?

Ich verstehe auch nicht wodurch der Unterschied der beiden Modi erkannt wird.

Superposchi

Wow, ganz dummer Fehler.
Da hat sich ein Rechtschreibfehler im Szenennamen eingeschlichen.

So eine gottverdammte Kleinigkeit mit riesigen Auswirkungen.