Seite 1 von 1

Group:Number:COUNT zum Zählen von ON oder OFF Zuständen

Verfasst: 14. Feb 2019 16:17
von PSch
Moin,

ich vermute derzeit, dass das oben angegebene Konstrukt dazu taugen könnte, um zu bestimmen, wieviele Switches einer Group im ON Zustand sind, oder welche Anzahl im OFF Zustand ist. Ich komme nur nicht hinter den Syntax.

gegeben:

Code: Alles auswählen

  Group testgroup

  Switch MeinSwitch1 "test1" (testgroup)
  Switch MeinSwitch2 "test2" (testgroup)
  Switch MeinSwitch3 "test3" (testgroup)
Wie muß ich jetzt Group:Number:COUNT(????) definieren, damit ich die Anzahl der ON Switches bekomme?

Gruß
Peter

Re: Group:Number:COUNT zum Zählen von ON oder OFF Zuständen

Verfasst: 14. Feb 2019 18:54
von udo1toni

Code: Alles auswählen

Group:Switch:OR(ON,OFF) testgroup"Anzahl eingeschalteter Geräte [%d]"
Ein COUNT kenne ich nicht.

https://www.openhab.org/docs/configurat ... tml#groups und etwa eineinhalb Seiten runter scrollen, da sind alle Group-Funktionen gelistet.

Re: Group:Number:COUNT zum Zählen von ON oder OFF Zuständen

Verfasst: 14. Feb 2019 19:54
von PSch
Hi udo1toni,

super. Ich hatte immer Number statt Switch eingetragen...da gibt es dann mecker wegen dem ON oder "ON" oder was auch immer da eingetragen wird. Jetzt brauche ich nur noch eine Möglichkeit, da aus einer Rule drauf zuzugreifen.

Kannst du da auch weiterhelfen.

Gruß Peter

Re: Group:Number:COUNT zum Zählen von ON oder OFF Zuständen

Verfasst: 14. Feb 2019 21:46
von PSch
Hm, COUNT hab ich hier gefunden:

https://www.openhab.org/docs/concepts/i ... mber-items

und nach deiner (ersten) Anleitung auch probiert, funktioniert auch...

Bleibt das Problem, in einer Rule diesen Wert auszulesen, bisher hab ich es nur in einer Sitemap darstellen können.

Gruß
Peter

Re: Group:Number:COUNT zum Zählen von ON oder OFF Zuständen

Verfasst: 14. Feb 2019 22:42
von udo1toni
In einer Rule macht man das anders :) und es ist eigentlich sogar logischer.

Code: Alles auswählen

rule "log count"
when
    Member of gSwitchgroup changed
then
    logInfo("logCount","eingeschaltet sind {} items",gSwitchgroup.members.filter[m|m.state == ON].size)
    logInfo("logCount","ausgeschaltet sind {} items",gSwitchgroup.members.filter[m|m.state == OFF].size)
    logInfo("logCount","uninitialisiert sind {} items",gSwitchgroup.members.filter[m|m.state == NULL].size)
end
Was COUNT betrifft, so hatte ich auch das Gefühl das mal gesehen zu haben. Das ist allerdings eine doofe Inkonsistenz in der Doku. Außerdem sollte die Doku sich nicht selbst doppeln.
COUNT erwartet offensichtlich eine Regular Expression, für ON wäre das dann vermutlich "ON", aber man könnte auch "ON|0[1-9]|[1-9].*"schreiben um Schalter und Dimmer in einer Gruppe nach ON zählen zu lassen.