Seite 1 von 2

OH3 - Wie HUE Lampe anschalten?

Verfasst: 17. Feb 2022 16:53
von Steinspiel
Moin,

Ich weiß, die Frage hört sich etwas ungewöhnlich an, aber:

unter OH2, mit separater *.ITEM Datei, hatte ich für eine HUE RGB Leuchte vier Items. Das Color Item habe ich dann einfach kopiert und aus dem "Color" einen "Switch" gemacht und schon hatte ich einen EIN und AUS Schalter für die *.RULES, der zuverlässig funktioniert.
oh2_hue.JPG
Unter OH3 habe ich für die selbe HUE RGB Leuchte nur zwei ITEMs (was Okay ist) , nur wie bekomme ich daraus wieder einen EIN AUS Schalter "gebastelt"?
oh3_hue_thing.JPG
Ich habe einen Switch Point angelegt und den mit dem "Farbe ITEM" verknüpft. Der schaltet zwar EIN, aber manchmal auch einfach wieder AUS, Zuverlässig ist anders... :(

Muss ich mir eine RULES erstellen für einen EIN AUS Schalter oder gibt es einen besseren Weg wie man eine HUE RGB Leuchte nur einschalte oder steh ich völlig auf den Schlauch...?

Ich hoffe das klingt alles nicht zu verwirrt...
Danke.

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 17. Feb 2022 19:47
von udo1toni
Erst mal brauchst Du überhaupt kein zusätzliches Item. Das Color Item versteht sowohl die Befehl ON, OFF, wie auch INCREASE, DECREASE und die Zahlen 0 - 100 (dann wird das angeschlossene Gerät einfach gedimmt, es wird also B von HSB angesteuert) und zusätzlich noch die Ansteuerung über HSB (drei kommaseparierte Zahlen).

Was das ungewollte Ausschalten betrifft, so möchte ich empfehlen, in den Item Metadaten autoupdate auf false zu setzen.

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 17. Feb 2022 20:40
von Steinspiel
Nabend,
udo1toni hat geschrieben: 17. Feb 2022 19:47 Das Color Item versteht sowohl die Befehl ON, OFF,
Erst das mit dem "ON, OFF", den Rest erfrage ich wenn das dann läuft... ;-)

Das Color Item ist ja kein Switch Item, richtig? Das wird dann auch der Grund sein warum meine schnelle Testrule nicht schaltet, oder? "Test_Schalter_A" ist ein Switch Item bei mir... Wie übergebe ich den ON Befehl denn richtig an das Color Item ?

Code: Alles auswählen

rule "Flurlicht_mit_Schalter_AN"

when
    Item Test_Schalter_A changed to ON
then
    Flur2_Farbe.sendCommand(ON)                                       
end
so möchte ich empfehlen, in den Item Metadaten autoupdate auf false zu setzen.
Was ich gefunden habe ist in den Metadaten "Force auto-update", dort habe ich den Haken raus genommen so das der Code so aussieht

Code: Alles auswählen

value: "false"
config: {}
Und was bewirkt diese Einstellung?

Danke,

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 17. Feb 2022 21:28
von udo1toni
Nein, Das Problem an dieser Stelle ist, dass die Rule auf changed to ON triggert.
Du suchst eigentlich den Trigger changed from OFF, aber auch damit hast Du natürlich kein Glück, denn es ist ja ein Color Item. Die Rule kann aber allgemein auf changed triggern. Innerhalb der Rule kannst Du dann testen, ob previousState.toString = "0,0,0" ist. Ich bin mir nicht sicher, ob bei previousState die Methode .getStateAs(SwitchType) möglich ist.

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 18. Feb 2022 19:56
von Steinspiel
Moin,
udo1toni hat geschrieben: 17. Feb 2022 21:28 [...]
Innerhalb der Rule kannst Du dann testen, ob previousState.toString = "0,0,0" ist. Ich bin mir nicht sicher, ob bei previousState die Methode .getStateAs(SwitchType) möglich ist.
Oh oh, da schmerzte sie wieder, meine (Wissens) Defizit Wunde... :?

Also alles was ich zu "previousState.toString" finden konnte, hatte immer irgendwie mit RRJ4D, Persitence... zu tun. Bei den gefundenen Codebeispielen konnte ich nichts ausmachen was mir irgendwie bei meiner Sache weiterhelfen konnte.

Damit ich es richtig verstehe: die HUE Lampe lässt sich schon mit

Code: Alles auswählen

then
    Flur2_Farbe.sendCommand("0,0,100")                
end           
EIN schalten, nur lässt sie sich nicht mit "ON" triggern?

schönen Abend noch...

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 19. Feb 2022 03:54
von udo1toni
Der Status eines Color Items ist halt niemals ON oder OFF, sondern 0,0,0 oder eben eine andere Zahlenkombination aus dem HSB Spektrum.

previousState hat nichts mit rrd4j zu tun. Nun ja, stimmt natürlich nicht zu 100%, aber ich meine ein anderes previousState :)

Item.previousState steht ausschließlich für persistierte Items zur Verfügung. Im Gegensatz dazu steht previousState (ohne Item. vornedran) immer in einer Rule zur Verfügung, wenn diese durch das changed Ereignis oder das received update Ereignis getriggert wurde.

Wenn man in der offiziellen Doku liest, wird man dazu auch fündig :) https://www.openhab.org/docs/configurat ... tion-block ist der dritte Treffer, wenn ich das in der offiziellen Doku suche...

Nein, Google ist hier definitiv maximal zweite Wahl. Und in Sachen openHAB sollte die Original Doku immer die erste Anlaufstelle sein ;)

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 19. Feb 2022 18:56
von Steinspiel
Moin Udo,
udo1toni hat geschrieben: 19. Feb 2022 03:54 [...]
Wenn man in der offiziellen Doku liest, wird man dazu auch fündig :)
Ich habe drin gelesen, mehrmals(!) und versucht das, im Rahmen meiner Möglichkeiten natürlich ;-), auch um zu setzen. Ein kleiner Nebeneffekt war, das ich feststellte das Deine Erklärungen manchmal einleuchtender scheinen... :-)

Nee, im Ernst jetzt: Letztendlich habe ich ja nun das gelernt was ich wollte. Ich wollte eine HUE Lampe, die kein" Einschalt-ITEM" hat, EIN schalten. Und es funktioniert! Ich habe es mit verschiedenen Phillips Lampen probiert, egal ob der Trigger "to ON", "from OFF" oder "time cron" ist, durch senden der HSB Werte oder eines "ON" werden die Lampen EIN geschaltet, gleiches gilt auch für das AUS schalten. Die auskommentierten Zeilen sind nur auskommentiert weil ich nicht jedes mal ne neue Rule anfangen wollte, funktionieren aber alle.

Code: Alles auswählen

rule "Test_Licht_verschieden_EIN_schalten"

when
    //Time cron " 0 32 18 ? * * *"    
    Item Test_Schalter_A changed to ON                                    
    //Item Test_Schalter_B changed from OFF

then
    HuePlay1_Farbe.sendCommand("ON")   
    //Flur2_Farbe.sendCommand("110,100,66")  
    //Kucheoben_Farbe.sendCommand("348,100,66")                                      
end
Warum mein obiges Beispiel nicht funktioniert hat, kann ich jetzt nicht mehr nach voll ziehen...

Danke für Deine Hilfe wieder mal!

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 19. Feb 2022 19:45
von udo1toni
Immer gerne :)

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 19. Feb 2022 21:44
von KellerK1nd
Eine weitere Möglichkeit solche Items über ON und OFF recht simpel zu schalten ist über Gruppen. So mache ich das z.Bsp. mit einem Shelly Dimmer. Wenn du das Color Item in eine eine Group:Switch:OR(ON, OFF) packst, kannst es über ON und OFF schalten.

Re: OH3 - Wie HUE Lampe anschalten?

Verfasst: 22. Okt 2022 09:18
von cyrill.sneer
Hallo zusammen,
ich möchte hier noch einmal ansetzen, da ich da gleiche Problem habe, es aber nicht über eine extra Rule lösen möchte.
In der OH Dokus steht, dass eine Farblampe (210/220) kein eigenes Switch-Channel hat. In den Codebeispielen ist dann zu sehen, dass man den brightness/color-Channel auf ein Switch-Item legen soll.
Das funktioniert auch - die Lampe schaltetet ein und aus und kann auf dem brightness-Channel das Switch-Item verarbeiten.
Allerding scheint im Openhab-Log:

Code: Alles auswählen

2022-10-22 09:24:09.162 [WARN ] [ue.internal.handler.HueBridgeHandler] - An unexpected error occurred: Value must be between 0 and 100
java.lang.IllegalArgumentException: Value must be between 0 and 100
Der Fehler hat zu Folge, dass die Bridge für einige Millisekunden Offline geht :shock:

Code: Alles auswählen

2022-10-22 09:24:01.775 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EG_WZ_Hue_Stehlampe_Toggle' changed from ON to OFF
2022-10-22 09:24:09.175 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'EG_WZ_Hue_Stehlampe_Dimmer' changed from 100 to 0
2022-10-22 09:24:09.179 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'hue:bridge:1' changed from ONLINE to OFFLINE: Verbindung zur Hue Bridge unterbrochen. 
2022-10-22 09:24:09.368 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'hue:bridge:1' changed from OFFLINE: Verbindung zur Hue Bridge unterbrochen.  to ONLINE
Das ist natürlich Mist, da die nachfolgene Antwort der Bridge (z.B. Farbwert) nicht verarbeitet werden kann.
Hat jemand eine Lösung hierfür?

Item-File

Code: Alles auswählen

Switch	EG_WZ_Hue_Stehlampe_Toggle	"Wohnzimmer Stehlampe Sessel schalten"  (Lampen, EG_Wohnzimmer, Z_ZENTRAL_Hue_Off) ["Lighting"]   	                { channel="hue:0220:1:bulb9:brightness", channel="knx:device:bridge:generic:EG_WZ_Hue_Stehlampe_Toggle" }
Dimmer	EG_WZ_Hue_Stehlampe_Dimmer	"Wohnzimmer Stehlampe Sessel dimmen"  (Lampen, EG_Wohnzimmer) ["Lighting"]   	                    { channel="hue:0220:1:bulb9:brightness", channel="knx:device:bridge:generic:EG_WZ_Hue_Stehlampe_Dimmer" }
Dimmer	EG_WZ_Hue_Stehlampe_ColorTemp	"Wohnzimmer Stehlampe Sessel Farbtemperatur"  (Lampen, EG_Wohnzimmer) ["Lighting"]            { channel="hue:0220:1:bulb9:color_temperature", channel="knx:device:bridge:generic:EG_WZ_Hue_Stehlampe_ColorTemp" }
Dimmer	EG_WZ_Hue_Stehlampe_ColorTemp_Wert	"Wohnzimmer Stehlampe Sessel Farbtemperatur"  (Lampen, EG_Wohnzimmer) ["Lighting"]        { channel="hue:0220:1:bulb9:color_temperature_abs", channel="knx:device:bridge:generic:EG_WZ_Hue_Stehlampe_ColorTemp_Wert" }
String	EG_WZ_Hue_Stehlampe_Alert	"Wohnzimmer Stehlampe Sessel Alarm"  (Lampen, EG_Wohnzimmer) ["Lighting"]   		                { channel="hue:0220:1:bulb9:alert" }