Sry das ich erst jetzt antworte, obwohl mir das hier wichtig ist, aber manchmal gibt es Umstände...
peter-pan hat geschrieben: ↑4. Mär 2022 00:14
Ich nehme mal an, das "led" ein Item ist.
Ja, genau genommen das "MasterControls" Item einer WLED LED die mit entsprechendem Binding in OH3 eingebunden ist.
Der Übersichtlichkeit wegen versuche ich die Namen meiner Items in den Codeschnipseln hier immer recht aussagekräftig/kurz zu halten.
udo1toni hat geschrieben: ↑4. Mär 2022 11:52
Es reicht eine Rule
Ich bin ja immer wieder Erstaunt was mit Erfahrung und etwas Nachdenke so möglich ist
Wenn ich es lese macht es so natürlich Sinn, nur hätte ich selbst mindestens zwei Rules von epischer Länge draus machen müssen !
Dein erstes Beispiel funktioniert, allerdings nicht ganz zuverlässig:
Ist die LED aus, schaltet die Rule bei OPEN
immer die LED an und bei CLOSED auch aus. Nehme an das da der Default Wert der Variablen greift.
Ist die LED an (egal welche Farbe) kommt es zum einen vor das sie bei OPEN nicht auf weiß umschaltet bzw. wenn sie umgeschaltet hat bei CLOSED nicht mehr in zurück in den Variablenwert schaltet.
Erst hatte ich das HSB Farbmodell in Verdacht: aktualisiere ich per ".postUpdate" ein Number Item mit dem Variablenwert (mir fiel kein anderer Weg ein diesen sichtbar zu machen), so wird mir in OH3 ein leicht anderer Wert angezeigt als beim Mouseover in VSCode...
Aber da gab es auch keine Regelmäßigkeiten
farb_wert.JPG
Dann hatte ich einen Timer von einer Sekunde eingebaut: Farbwert in Variable schreiben, 1 sec Warten, LED auf weiß schalten... Hat auch nichts gebracht, mal funktionierte es, mal nicht.
Dann viel mir auf das, wenn die LED z.B. blau ist, ich die Tür öffne diese dann für einen Sekundenbruchteil weiß leuchtet und dann wieder auf blau wechselt so als würde der Türkontakt blitzschnell von OPEN zu CLOSED hin und her wechseln, tut er aber nicht!
Hast Du ne Idee an was es liegen könnte?
Ich hänge hier mal meine Rule ran die ich nach Deiner Vorlage erstellt habe...
Danker erst mal für die Hilfe,
Code: Alles auswählen
var String farb_Wert = "0,0,0"
rule "licht_EIN"
when
Item tkschreibtisch01_OffenGeschlossen changed
then
if(newState == OPEN) {
farb_Wert = WLED_MasterControls.state.toString
WLED_MasterControls.sendCommand("0,0,99")
}
else {
WLED_MasterControls.sendCommand(farb_Wert)
anzeige_wert.postUpdate(farb_Wert)
}
end
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.