Seite 2 von 2

Re: Gruppen abfragen

Verfasst: 6. Feb 2026 12:02
von manes
ok, gehe ich wieder zu meinem Punkt oben zurück. Ich habe im Moment ein Brett vor dem Kopf, wie erstelle ich Deinen Vorschlag? Wo muß ich da was anlegen?

Re: Gruppen abfragen

Verfasst: 6. Feb 2026 12:20
von nw378
In dem (Linux) Verzeichnis /etc/openhab/rules/ kannst Du textbasierte Regeln erstellen. Diese Dateien müssen auf .rules enden.

Details dazu findest Du auch hier:

https://www.openhab.org/docs/configurat ... s-dsl.html

Sehr hilfreich zum Programmieren ist Visual Studio Code https://code.visualstudio.com/?wt.mc_id=vscom_downloads.
Dort gibt es auch ein PlugIn für openHAB, so dass Du direkt Werte und Programmierfehler (Syntax) angezeigt bekommst.

Alternativ gehst Du in der WebUI auf Rules, wählst das + für Add, gehst dort auf Code, und gibst folgenden YAML ein:

Code: Alles auswählen

uid: heizungssteuerung
label: Heizungssteuerung
description: Schaltet die Heizung abhängig von offenen Heizventilen
triggers:
  - id: alle_10_minuten
    type: timer.GenericCronTrigger
    configuration:
      cronExpression: "0 */10 * * * ?"
conditions: []
actions:
  - id: logik
    type: script.ScriptAction
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |
        // nur während der Heizperiode
        if (heizPeriode.state == OFF) return;

         val heizVentilAuf = gFBH_Vents.members.filter[item | item.state > 0].size > 0
       // true, wenn mindestens ein Heizventil geöffnet ist

        if (heizVentilAuf) {
          if (heizung.state != ON)
            heizung.sendCommand(ON)
        } else {
          if (heizung.state != OFF)
            heizung.sendCommand(OFF)
        }


Re: Gruppen abfragen

Verfasst: 6. Feb 2026 16:51
von Harka
manes hat geschrieben: 6. Feb 2026 09:34 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.
Ja, geht genau so.
Aktiviere mal unten "Show non-semantic" und nutze die Suchleiste oben (direkt unterhalb "Pick from Model").

Re: Gruppen abfragen

Verfasst: 6. Feb 2026 17:51
von manes
auh verdammt, war ganz unten und ausgegraut. Konnte aber angewählt werden. Hatte ich wohl total übersehen, obwohl ich auch schon show non semantic angeklickt hatte.

Re: Gruppen abfragen

Verfasst: 7. Feb 2026 03:03
von udo1toni
Noch ein Tipp von mir :) Weil Du ja explizit schreibst, dass es darum geht, ob alle Regler auf 0 stehen...
Dazu brauchst Du überhaupt keine Regel (bzw. nur noch, um was auch immer auszulösen).

Definiere ein Group:Number:SUM Item (Gruppenitem vom Typ Number mit der Aggregation SUM) und ordne alle Regler zu. Wenn alle Regler 0 sind, ist auch das Group Item 0, ansonsten hält es die Summe aller offenen Ventile. Du könntest auch mit MAX nach dem höchsten Wert schauen oder mit AVG den Durchschnitt nehmen, ganz nach Belieben.

Wenn das Group Item so definiert ist, kannst Du entweder zwei Rules anlegen oder auch nur eine, die zwei Trigger hat, nämlich Item MeinGroupItem changed to 0 und Item MeinGroupItem changed from 0, dann musst Du in der Rule über die implizite Variable newState nur abfragen, ob der aktuelle Zustand von 0 abweicht. Ist das der Fall, muss die Heizung laufen, ansonsten kann sie ausgeschaltet werden.

Die Rule dazu kannst Du über die Main UI eingeben (Add Action -> Inline Script) und hast dort die Wahl zwischen verschiedenen Scriptsprachen. Von Haus aus ist (noch) die DSL installiert, Du kannst aber auch Java Script Scripting installieren und ein passendes Script grafisch erstellen, das geht mit Blockly.
Dabei kann man mit etwas Erfahrung auch sehr komplexe Logiken mit Blockly erstellen. Und das Beste: Blockly generiert JavaScript Code, den man sich anschauen kann (man kann ihn auch editieren, zerstört dann aber evtl. die Blockly Ansicht)

Die fertige Rule wird dank des Group Items mit Aggregation nur beim Wechsel von oder nach 0 ausgelöst. Eventuell ist es sinnvoll, hier noch Timeouts einzubauen, um ein ständiges Ein- und Ausschalten zu verhindern.

Re: Gruppen abfragen

Verfasst: 7. Feb 2026 08:29
von manes
Das klingt nach einem guten Plan, Danke. Den werde ich mal weiter verfolgen. Ich merke, die Tiefen sind noch sehr tief für mich....