Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
kannznichkaufen
Beiträge: 38
Registriert: 11. Mär 2021 16:44
Answers: 0
Wohnort: Wiege des Ruhrbergbaus
Kontaktdaten:

Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von kannznichkaufen »

Hallo zusammen,

ich habe seit kurzem OH3 als Docker auf einem Unraid Server installiert. Etliches funktioniert schon.

Ich habe mehrere dimmbare Trådfri-Panels, die ich über ein Item gleichzeitig dimmen möchte.
Das Binding ist installiert und funktioniert. Im Modell sind die entsprechenden Items für die Panels hinzugefügt. Sie lassen sich einzeln schalten und dimmen.
Alle zusammen über ein Switch-Item und eine Rule ein- und ausschalten gelingt auch schon.
Beim Dimmen komme ich nicht weiter.
Über die Forensuche und im Netz habe ich einige Hinweise gefunden, die sich auf OH2 beziehen, aber ich kenne OH2 nicht und möchte mich an den Modell-zentrierten Weg über die Benutzeroberfläche halten.

Ich habe in dem Raum, in dem die zu dimmenden Items liegen, ein zusätzliches Item "OGArbeitszimmer_D_alleLichter" vom Typ "dimmer" angelegt.
Die zu dimmenden Items haben jeweils einen Point, der mit dem Helligkeits-Channel des Trådfri-Things verbunden ist. Hier ein Beispiel:

Bild

Im zweiten Schritt habe ich eine Rule "OG_Arbeitszimmer_D_alle_Lichter" angelegt.
Das Dimmer-Item soll als Trigger für die Rule dienen und der Status des Dimmer-Items soll als Befehl an die passenden Points der zu dimmenden Items gesendet werden.

Ich habe die Rule zusammengeklickt:

Bild

Der Code dieser Rule im Code-Tab der OH3-UI hat eine andere Syntax und Struktur als die textbasierten Beispiele, die ich in älteren Beiträgen gefunden habe:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: OGArbeitszimmer_D_alleLichter
      state: ANY
      previousState: ANY
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      command: OGArbeitszimmer_D_alleLichter.state.toString()
      itemName: OGArbeitszimmerDeckenlichtT_Helligkeit
    type: core.ItemCommandAction
  - id: "3"
    configuration:
      command: OGArbeitszimmer_D_alleLichter.state.toString()
      itemName: OGArbeitszimmerDeckenlichtEcke_Helligkeit
    type: core.ItemCommandAction
Wenn ich anstelle von

Code: Alles auswählen

OGArbeitszimmer_D_alleLichter.state.toString()
einfach "20.0" einsetze, und ich die Rule vom Bearbeitungsfenster aus starte werden die Dinger auf 20 Prozent gedimmt.
Also funktioniert schon der Trigger nicht. Außerdem will ich ja den jeweils aktuellen Wert meines Dimmer-Items übertragen.
In der textbasierten OH2 Logik habe ich etwas darüber gefunden, wie man Variablen initialisiert und umwandelt.
Gibt es eine Chance, sowas mit der OH3-Logik zu erreichen?
In der Einführung zu OH3 steht, dass man die beiden Ansätze möglichst nicht mischen soll.
Verbaue ich mir was, wenn ich eine .rules-Datei anlege und das in der weiter versuche?

Herzlichen Dank im Voraus
Michael
openHAB 3.01 im Docker Container auf Unraid 6.9.1

Benutzeravatar
kannznichkaufen
Beiträge: 38
Registriert: 11. Mär 2021 16:44
Answers: 0
Wohnort: Wiege des Ruhrbergbaus
Kontaktdaten:

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von kannznichkaufen »

OK.

Es scheint, als hätte ich eine Lösung gefunden.
Die beiden "ANY" beim Trigger waren falsch. Wenn ich sie einfach leer lasse, funktioniert schonmal der Trigger.

Als Target wähle ich nicht die Items, die ich dimmen will, sondern ein Script, in dem ich dann die Befehle ausführen lasse.

Der fertige Code für die Rule ist jetzt

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: OGArbeitszimmer_D_alleLichter
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        OGArbeitszimmerDeckenlichtT_Helligkeit.sendCommand(OGArbeitszimmer_D_alleLichter.state.toString)

        OGArbeitszimmerDeckenlichtF_Helligkeit.sendCommand(OGArbeitszimmer_D_alleLichter.state.toString)

        OGArbeitszimmerDeckenlichtEcke_Helligkeit.sendCommand(OGArbeitszimmer_D_alleLichter.state.toString)

        OGArbeitszimmerTischlampelinks_Helligkeit.sendCommand(OGArbeitszimmer_D_alleLichter.state.toString)

        OGArbeitszimmerTischlamperechts_Helligkeit.sendCommand(OGArbeitszimmer_D_alleLichter.state.toString)
    type: script.ScriptAction
Über Verbesserungsvorschläge würde ich micht natürlich freuen.

Herzliche Grüße
Michael
openHAB 3.01 im Docker Container auf Unraid 6.9.1

Benutzeravatar
lukh
Beiträge: 100
Registriert: 5. Dez 2019 20:15
Answers: 2

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von lukh »

Ich habe das über Channel Links gelöst. Im Model ein Dimmer Item erstellen und dann Channel Links erstellen. Siehe Screenshot:
Bildschirmfoto von 2021-03-11 22-53-52.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
kannznichkaufen
Beiträge: 38
Registriert: 11. Mär 2021 16:44
Answers: 0
Wohnort: Wiege des Ruhrbergbaus
Kontaktdaten:

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von kannznichkaufen »

Na, das ist ja deutlich einfacher und eleganter.
(... wenn einem erstmal klar ist, dass man ein Item ja auch auf mehrere Channels unterschiedlicher Things linken kann :-) )
Wird probiert und künftig so gemacht.
Herzlichen Dank
Michael
openHAB 3.01 im Docker Container auf Unraid 6.9.1

Benutzeravatar
udo1toni
Beiträge: 15271
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von udo1toni »

Du kannst auch alle Trådfri in einzelnen Items anbinden und diese Items in einer Gruppe (gleichen Typs) zusammenfassen. Ein Befehl an die Gruppe wird dann automatisch an alle Member gesendet. Auf diese Weise kannst Du die Panel als Gruppe und einzeln steuern.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
kannznichkaufen
Beiträge: 38
Registriert: 11. Mär 2021 16:44
Answers: 0
Wohnort: Wiege des Ruhrbergbaus
Kontaktdaten:

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von kannznichkaufen »

Ja. Das mit der Gruppe hatte ich auch schon erfolgreich gemacht. Danach hatte ich versucht, die Gruppen zu verschachteln und das schien dann nicht zu funktionieren. Also eine Gruppe für alle Lichter im Raum, darin eine für alle Deckenleuchten und eine für die Leuchten überm Arbeitstisch.
Und der Befehl an die obere Gruppe wurde nicht an die Elemente der darin liegenden Gruppen durchgereicht.
Da ich ohnehin vorhabe, auch Szenen zu programmieren, in die dann Rolladen eingebunden werden, hab' ich gedacht, ich fange mal an, erste Rules zu formulieren.

Aber mit der Channel Link Methode, die @lukh vorschlägt, sollte das ja gelingen.
An seinem Screenshot sehe ich auch, dass ich das Modell vom anderen Ende her aufgebaut habe. Statt Dimmer- oder Schalteritems in einer Schaltergruppe zusammenzu fassen, hatte ich zunächst für jede Leuchte ein eigenes "Equipment from Thing" angelegt und dem Thing für jeden Channel einen separaten Point verpaßt.
@lukh hättest Du vielleicht noch Lust, mal per Screenshot zeigen, wie bei Deiner Systematik die Raum- und Geräteseite aussieht?
Irgendwie klebe ich da gedanklich noch an den physisch greifbaren Gegenständen. Dabei kann man ja auch auf der Ebene schon abstrahieren.
Ich merke, dass es sich lohnt, an dieser Stelle gründliche konzeptionelle Arbeit zu leisten.
Aber ich fürchte, ich muss erstmal ausloten, bevor ich mir dazu eine Meinung bilden kann.

Könnt Ihr zu diesen konzeptionelle Fragen Threads hier im Forum empfehlen?

Ab heute wird's für mich nochmal komplexer. Die bestellte KNX-IP-Schnittstelle war in der Post.
Licht schalten und Rollos verfahren gelingt schon. Die Temperaturregelung flößt mir noch Respekt ein.
openHAB 3.01 im Docker Container auf Unraid 6.9.1

Benutzeravatar
udo1toni
Beiträge: 15271
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von udo1toni »

Ja, verschachteln geht nicht (jedenfalls nicht direkt). Du kannst aber einfach eine Rule nutzen, die den Befehl weiterreicht:

Code: Alles auswählen

rule "send command to all members"
when
    Item myGroup received command or
    Item myOtherGroup received command
then
    triggeringItem.allMembers.sendCommand(receivedCommand)
end
Es reicht im Prinzip eine Rule für alle Gruppen, in denen andere Gruppen liegen, die Gruppen müssen aber einzeln im Trigger-Bereich aufgeführt werden.
Es sollte so sein, dass die Group Items innerhalb einer Gruppe in diesem Fall kein Command empfangen, nur die normalen Items sollten den Befehl bekommen. Man muss natürlich darauf achten, dass alle Group Member vom gleichen Typ sind wie die Group Items, damit alle Befehle uneingeschränkt genutzt werden können (also z.B. nur Dimmer Items oder nur Switch Items innerhalb der Gruppen)

EDIT:
Ach so... unter OH3 funktioniert triggeringItem hier leider nicht... es steht nur noch triggeringItemName zur Verfügung, was es etwas komplizierter macht...

Code: Alles auswählen

rule "send command to all members"
when
    Item myGroup received command or
    Item myOtherGroup received command
then
    if(triggeringItemName == myGroup.name)
        myGroup.allMembers.sendCommand(receivedCommand)
    if(triggeringItemName == myOtherGroup.name)
        myOtherGroup.allMembers.sendCommand(receivedCommand)
end
sieht irgendwie nicht hübsch aus... das muss besser gehen, da müsste ich aber erst mal stöbern...
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
lukh
Beiträge: 100
Registriert: 5. Dez 2019 20:15
Answers: 2

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von lukh »

kannznichkaufen hat geschrieben: 12. Mär 2021 23:41 [...]
@lukh hättest Du vielleicht noch Lust, mal per Screenshot zeigen, wie bei Deiner Systematik die Raum- und Geräteseite aussieht?
Irgendwie klebe ich da gedanklich noch an den physisch greifbaren Gegenständen. Dabei kann man ja auch auf der Ebene schon abstrahieren.
[...]
Also ich habe mein Semanticmodel so aufgebaut, das es gleich vernünftig als Bedienoberfläche dient, ohne eine weitere Sidemap oder Habpanel konfigurieren zu müssen.
Auf der Übersichtsseite habe ich die Wetterdaten und die wichtigsten Lampen drauf. Ein Schalter für den Fernseher und dem Receiver. Mehr nicht.
Als Standorte habe ich von vornherein die Räume genommen. Und in den Räumen als erstes die Umgebungswerte(Raumtemperatur,Bewegungsmelder und Luftfeuchtigkeit), dann das Fenster, ob offen oder geschlossen. Danach die Lichter und am Ende die Heizkörper. Die Geräteseite und Eigenschaften sind noch etwas unausgereift, da ich hier teils zu viele unterschiedliche Tags und Eigenschaften genommen habe. Vieles ist da im Grunde auch unwichtig. Da muss ich noch mal bei.
Dummyitems, Batteriezustände und andere Items habe ich nicht in die Räume gesetzt, sondern dafür administrative Location geschaffen und diese zum Teil ausgeblendet. Man sollte das alles nicht zu voll packen, weniger ist manchmal mehr. Immerhin soll ja auch die Frau das ganze Bedienen wollen. Für die Mediathek habe ich eine extra Location. Kommt dann noch mal irgendwann als extra Page/Übersichtsseite.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
kannznichkaufen
Beiträge: 38
Registriert: 11. Mär 2021 16:44
Answers: 0
Wohnort: Wiege des Ruhrbergbaus
Kontaktdaten:

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von kannznichkaufen »

Danke Dir!

Ich habe nach dem Blick auf Deinen ersten Screenshot mit der Gliederung nochmal überlegt und dann bis auf die Räume alles gelöscht, Items neu angelegt und neue Zuordnungen getroffen, genau mit dem von Dir erwähnten Ziel: Zuerst die Raumseiten und Geräteseiten so mit Inhalten zu füllen, dass dort erstmal die Grundfunktionalitäten verfügbar sind.

Ich bin ja erst mit Verfügbarkeit von OH3 ins Thema eingestiegen und ich bemerke gerade schon hart die Nachteile der Zuordnungen per Klick auf einer grafischen Oberfläche. Ich hab' mit intuitivem Vorgehen und Probieren relativ schnelle Erfolge erzielt. Was ich dabei zwar versucht habe, aber nicht konsequent durchgehalten habe, ist mir Formatvorgaben für die verschiedenen Arten von Einträgen zu setzen:
Für die spätere Pflege ist das sicherlich hilfreich, wenn alle Things, Items gleichen Typs, Channels, Points usw. in einer einheitlichen Weise benannt sind.
Ich habe bspw. bei allen Things, die auf ein KNX-Gerät verweisen, an immer gleicher Stelle die KNX-Geräteadresse mit in die Bezeichnung eingebaut. Bei den Labels ist man flexibel und kann sie später ändern, wenn man zum Beispiel gemerkt hat, dass es nicht hilft, wenn auf der Geräteseite mehrere identische Labels auftauchen, kann man den Ort in das Label aufnehmen.

Wenn man sich vorher einen Plan gemacht hat und erstmal alle Things von vorne bis hinten anlegt, danach alle Items und so weiter, fällt das leichter als wenn man nur so vor sich hin klickt. Gibt es irgendwo im Forum einen Thread in dem es um sowas wie "Best Practices" bei der Objektbenennung geht?
Ich hab' mal VSC installiert. Die openHAB extension unterstützt da bei der textbasierten Erstellung von Items ganz gut. Aber ich würde gerne bei der OH3-Systematik bleiben. Dazu müsste ich die json-Dateien editieren und dabei hilft die openHAB-Extension noch nicht so wie bei den Items.

Morgen knöpfe ich mir mal den Thread "OH3 Things text-basiert anlegen" vor.
openHAB 3.01 im Docker Container auf Unraid 6.9.1

Chaosmax
Beiträge: 20
Registriert: 29. Dez 2020 12:29
Answers: 0

Re: Anfängerproblem OH3, mehrere Lampen über einen Dimmer per Rule steuern.

Beitrag von Chaosmax »

lukh hat geschrieben: 14. Mär 2021 18:10 Und in den Räumen als erstes die Umgebungswerte(Raumtemperatur,Bewegungsmelder und Luftfeuchtigkeit), dann das Fenster, ob offen oder geschlossen. Danach die Lichter und am Ende die Heizkörper.
sorry für OT, aber wie bekommt man diese Unterteilung bzw. Gruppierung hin?

Antworten