Seite 1 von 1

Gruppen-Item für Lampen funktioniert nicht

Verfasst: 17. Mär 2022 09:41
von Mr. BJ
Hallo zusammen,

ich verwende openHAB 3.2.0 und mir ist heute folgendes aufgefallen:
Wenn ich Farbwerte in einem (Gruppen-)Item ändere übernehmen die Channel Links, also die Lampen selbst, die neuen Werte nicht.
Das funktioniert über das Model sowohl über Blockly/Scripting/Rules nicht. Das Problem habe ich bei allen Lampen.
Meine Frage ist ob ich falsche Einstellungen bei dem Item "WohnungFlurDeckenlampe_Farbe" mein (Gruppen-)Item gemacht habe?

Gruß, Björn

Bild

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 17. Mär 2022 10:45
von KellerK1nd
Die Frage ist eher, wie ist die Gruppe definiert. Sollte Group:Color sein.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 17. Mär 2022 15:29
von Mr. BJ
Hi und danke für deine Antwort.
Kannst du bitte etwas genauer sein? Der Typ von dem Item ist Color.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 17. Mär 2022 21:24
von udo1toni
Das Group Item muss vom Typ Group:Color sein, damit es Befehle für Farbsteuerung annehmen und weiterleiten kann.
Falls das nicht direkt funktioniert, geht es auf jeden Fall über eine Rule, z.B. so:

Code: Alles auswählen

rule " deckenlampe Flur"
when
    Item WohnungFlurDeckenlampe_Farbe received command
then
    WohnungFlurDeckenlampe_Farbe.members.forEach[i|i.sendCommand(receivedCommand.toString)]
end
Der empfangene Befehl wird an jedes einzelne Item weitergeleitet, welches der Gruppe angehört.

Ach so... Für mich sieht es so aus, als hättest Du mehrere Channel zu einem Item verlinkt. Grundsätzlich sollte das auch funktionieren, allerdings hast Du ja voneinander unabhängige Channel, die auch unterschiedliche Status halten können. Es ist durchaus möglich, dass es dadurch zu Problemen kommt. Besser ist der Weg über ein echtes Group Item.

Es ist auch möglich, dass der Befehl, der ans Group Item geht, nicht richtig ankommt. Dann wäre der Workaround, ein ungebundenes Color Item in der UI zu verwenden und den Rule Trigger auf dieses ungebundene Item auszurichten. Der Rest der Rule kann dann so bleiben wie er ist und das Group Item (WohnungFlurDeckenlampe_Farbe) muss nicht mehr zwingend vom Typ Color sein, denn die Items werden ja durch die Rule direkt angesteuert.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 20. Mär 2022 09:49
von Mr. BJ
Entschuldigt aber anscheinend habe ich ein Brett vorm Kopf. Wie bekomme ich ein Group:Color Item über die UI angelegt? Als Typ kann ich nur Group oder Color auswählen, nicht aber Group:Color.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 20. Mär 2022 10:44
von udo1toni
Stimmt, da hast Du Recht. Das muss allerdings ein Fehler sein. Warum sollte es nicht möglich sein, Color Items über eine Gruppe anzusteuern... (ich musste mich selbst erst davon überzeugen, dass es keine Group:Color Items gibt, auch nicht über die Text Konfiguration)

Das bedeutet, dass Du zwingend über eine Rule und ein Proxy Item steuern musst.
Du legst eine allgemeine Gruppe an, Typ ist in diesem Fall egal, in der alle gemeinsam gesteuerten Color Items zusammengefasst sind.
Dann brauchst Du noch ein Color Item, über welches Du die Items der Gruppe steuerst. Die Rule muss auf das neue Item triggern:

Code: Alles auswählen

rule "Deckenlampe Flur"
when
    Item WohnungFlurDeckenlampe_Farbe_Control received command
then
    WohnungFlurDeckenlampe_Farbe.members.forEach[i|i.sendCommand(receivedCommand.toString)]
end
Der Name des steuernden Items ist im Beispiel WohnungFlurDeckenlampe_Farbe_Control.
Die Namen aller Items sind beliebig, sie müssen nur passen, also alle mit den Color Channels verknüpften Items müssen vom Typ Color sein und dem Gruppenitem zugeordnet sein, das Group Item ist in allen Belangen irrelevant, außer dass sein Name in der Rule stehen muss und nur exakt die Color Items zugeordnet sein dürfen, die kontrolliert werden sollen.
Das steuernde Item muss vom Typ Color sein, damit es die Color-spezifischen Befehle senden und empfangen kann. Der Name ist irrelevant, es muss lediglich als triggerndes Item in der Rule gelistet sein (mit received command). Das Item kann auch mit einem Channel verlinkt sein, z.B. um mit einem Wandtaster die Lampen als Gruppe zu schalten.

Weil es gerne zu Verwirrung in dem Zusammenhang kommt: Für eine Lampe mit RGB Funktion reicht ein Channel und auch ein Item, damit lässt sich alles steuern, Farbe, Helligkeit und Ein/Aus.
Sollte die Lampe eine Funktion für Farbtemperatur haben, sieht es etwas anders aus, dann wird ein zusätzlicher Dimmer Kanal für die Farbtemperatur benötigt, weil das Color Modell in openHAB diese Eigenschaft nicht steuern kann.
Ebenso ist es bei RGBW-Lampen mit einem separat steuerbaren Weiß-Kanal, auch dieser muss als separater Dimmer abgebildet und getrennt gesteuert werden. Ob dann ein ON/OFF-Befehl auf das Color Item reicht, um den Weiß-Kanal mit an-/abzuschalten, kommt auf das Lampenmodell an.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 3. Apr 2022 20:35
von Mr. BJ
Sorry das es so lange gedauert hat. War leider sehr beschäftigt.
@Udo Danke für dein Workaraound, funktioniert Prima.
Aber ich gebe euch Recht, das sollte doch einfacher sein. Wenn mein Englisch besser wäre würde ich bei Github ein Ticket aufmachen.
Danke euch erstmal.

Re: Gruppen-Item für Lampen funktioniert nicht

Verfasst: 4. Apr 2022 19:01
von Mr. BJ
Es hat mir nicht so wirklich Ruhe gelassen.
Ich habe das oben bekannte Item "WohnungFlurDeckenlampe_Farbe" dahin geändert das Semantic Class = Control und Semantic Property = Light ist. Und nun kann ich das Item "WohnungFlurDeckenlampe_Farbe" direkt neue HSB-Werte schicken und diese leitet die Daten direkt an die drei Channel Links weiter.
Ohne dem Workaround vom Udo wäre mir das nicht aufgefallen.