Seite 1 von 2
Gruppen abfragen
Verfasst: 5. Feb 2026 07:54
von manes
Hi,
ich möchte gerne die einzelnen Kanäle einen KNX FBH Aktor abfragen umd die Öffnung der einzelnen Ventile zu erfahren. Jetzt hatte ich mir gedacht, ich packe die alle in ein Gruppenitem und frage sie dann darüber ab. Eine Regel soll das machen. Meine Frage wäre jetzt, kann man einfach nur abfragen ob sich was in der Gruppe getan hat und dann reagieren, oder muß man das in einer Schleife machen? Wenn über eine Schleife, wie geht sowas? Muß schon was beim Erstellen des Gruppenitems beachtet werden? Muß was beim Hinzufügen in die Gruppe beachtet werden? Ist die Idee überhaupt passen für mein Problem? In erster Linie geht es mir darum überhaupt zu erfahren wenn sich irgendein Stellwert in der Gruppe ändert.
Re: Gruppen abfragen
Verfasst: 5. Feb 2026 18:54
von udo1toni
Ja, das geht.
Der Trigger lautet dann
Member of GroupItem changed In einer Rule z.B. ungefähr so:
Code: Alles auswählen
rule "Member geändert"
when
Member of gFBH_Vents changed
then
logInfo("vents","Ventil {} geändert auf {}",triggeringItem.name,triggeringItem.state)
end
Du kannst auch über die gesamte Gruppe iterieren:
Code: Alles auswählen
gFBH_Vents.forEach[vent| // vent ist der Platzhalter für das aktuell betrachtete Item der Gruppe
if((vent.state as Number) == 0)
logInfo("vents","Ventil {} ist geschlossen",vent.name)
else
logInfo("vents","Ventil {} ist {} % geöffnet",vent.name,vent.state)
]
Die Gruppen sind ein sehr mächtiges Werkzeug im Zusammenhang mit Rules

Re: Gruppen abfragen
Verfasst: 5. Feb 2026 20:21
von manes
hm,
wie macht man sowas in der grafischen Oberfläche? Geht das überhaupt? Es ist ja ein GruppenItem, dann muß es doch auch bei der Eingabe des Triggers als ItemEvent genommen werden? Da wird es aber nicht angezeigt oder gefunden.
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 09:24
von peter-pan
Ich bin mir nicht ganz sicher was du genau meinst, aber in den "Pages" kann man das mit einem einfachen Label-Widget darstellen.
group.jpg
Der Yaml-Code dazu sieht so aus:
Code: Alles auswählen
component: oh-label-cell
config:
action: group
actionGroupPopupItem: gWindow
color: '=(items.gWindow.state == "CLOSED") ? "teal" : "red"'
icon: '=(items.gWindow.state == "CLOSED") ? "oh:window-closed" : "oh:window-open"'
item: gWindow
label: =items.gWindow.displayState + " " + " -> click for detail"
stateStyle:
color: '=(items.gWindow.state == "CLOSED") ? "blue" : "red"'
title: Fenster Status
Das Group-Item hat folgendes Aussehen (.items)
Code: Alles auswählen
Group:Contact:OR(OPEN,CLOSED) gWindow "Fenster [MAP(de.map):%s]" <window> (gInnen)
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 09:34
von manes
ok, war genau anders gemeint. Ich erstelle ein Gruppenitem und ordne dann die einzelnen Items der Gruppe zu. So weit so gut.
diese Gruppe möchte ich dann auf Änderungen überwachen mit einer Regel. Das wollte ich dann aber auch über die grafische Oberfläche machen. Also eine neue Regel erstellen und dann einen Trigger erstellen auf ein Item Event. Nur, ab da finde ich das Gruppenitem nicht mehr. (kann man das überhaupt so machen?) Ich dachte man könnte dann einfach nur den Trigger so bauen, das man sagt: reagiere bitte auf Änderungen in der Gruppe. Und dann wird ein inline Script erstellt, wo ich dann weitere Aktionen dazu eingebe.
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 10:01
von peter-pan
...bin mir immer noch nicht ganz sicher was du genau bezwecken willst.
Die Rule von Udo macht doch genau das was du willst; sieh zeigt an, wenn sich ein Gruppen Item ändert und gibt dir im einfachsten Falle eine LOGINFO aus. Damit kannst du auch ein Update auf ein Item machen, welches wiederum ein Rule auslöst. Und was das Gruppenitem selber betrieff, das kennst du ja, oder (z.B. gFBH_Vents) ?
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 10:15
von manes
ich möchte die Regel über Einstellungen/Regeln/neue Regel erstellen machen. Udos Tipp muß doch händisch irgendwo eingegeben werden, oder wie sehe ich das?
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 11:17
von nw378
Udos Tips sind für textbasierte .rules Dateien. Grundsätzlich geht vieles (aber nicht alles!) auch über die WebUI. Und dort im Zweifelsfall über YAML, diehe Hinweis von Peter-Pan.
Ich habe eine grundlegende Frage: möchtest Du denn wirklich eine Regel, die bei jeder Statusänderung der Ventile etwas macht (Log, Notification, etc)? Das ändert sich ja beinahe minütlich etwas, und das 24/7.
Im Debug-Modus, um bspw. herauszufinden, ob sich hier oder dort überhaupt was tut, ok. Aber dauerhaft?
Oder möchtest Du vielmehr einen Verlauf sehen, wo sich wann was tut? Dann wäre es sinnvoller, die Daten zu persistieren und in einem Diagramm darzustellen, so bpsw.:
Bildschirmfoto_6-2-2026_111644_192.168.178.60.jpeg
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 11:35
von manes
ich möchte mitbekommen wenn innerhalb der Heizperiode alle Regler zu sind, weil gerade die Sonne voll auf dem Haus steht und es aufheizt. Dann kann man die Heizung ausmachen. Das passiert eigentlich recht oft und spart doch deutlich Energie. Normalerweise hätte ich jeden Regler einzeln als TRigger genommen. Mir fiel halt nur ein, ob man das nicht üebr eine Gruppe lösen könnte.
Re: Gruppen abfragen
Verfasst: 6. Feb 2026 11:51
von nw378
Ok, dann würde ich eine Regel schreiben, die alle x Minuten (z.B. 10 - Deine Wahl) abfragt, ob die Anzahl der Ventile mit Stellwert größer Null sich von Null unterscheidet; in diesem Fall wird der Befehl Heizung an gesendet, sonst Heizung aus.
Ungetestet in etwa so:
Code: Alles auswählen
rule "Heizungssteuerung"
when
Time cron "0 */10 * * * ?" //alle 10 Minuten
then
if (heizPeriode.state == OFF) return; // nur während der Heizperiode, sonst Abbruch
val heizVentilAuf = gFBH_Vents.members.filter[ item | item.state > 0 ].size > 0 // Boolsche Variable: wenn mind. 1 Heizventil auf ist => true, sonst false
if (heizVentilAuf)
if (heizung.state != ON) // Item zur Steuerung deiner Heizung
heizung.sendCommand(ON)
if (!heizVentilAuf) //alle HeizVentile sind zu
if (heizung.state != OFF)
heizung.sendCommand(OFF)
end