Rules in OH3 Sitemap einbinden

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

ruab01
Beiträge: 19
Registriert: 8. Mär 2021 15:48

Re: Rules in OH3 Sitemap einbinden

Beitrag von ruab01 »

Danke erst einmal für die Infos. Da ich noch Anfänger bin, arbeite ich nur in der Oberfläche über den Browser von OpenHab 3. Dort habe ich nun eine Gruppe AlleRollos angelegt und die einzelnen Rollos dazugegeben. Wie komme ich zu der Ansicht, dass ich den Befehl AlleRollos.allMembers.forEach[i|i.sendCommand(100)] absetzen kann und dann in eine Sitemap einbauen könnte ?

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

Re: Rules in OH3 Sitemap einbinden

Beitrag von udo1toni »

Wenn Du nur die eine Gruppe hast und keine Untergruppen, reicht es, das Gruppenitem zu nutzen. Funktioniert aber nur, wenn die Rollläden absolut positioniert werden können. Ansonsten brauchst Du tatsächlich eine Gruppe und ein Item zum Steuern.
Dazu legst Du ein Rollershutter Item an, welches mit keinem Channel verlinkt wird, nennen wir es mal AlleShutter.

Dann legst Du eine Rule an (geht über die Main UI), und zwar eine DSL Rule.
When-Teil: AlleShutter received command
Then-Teil: AlleRollos.members.forEach[i|i.sendCommand(receivedCommand)]

Ferrrdisch...

Wenn die Gruppe AlleRollos Untergruppen hat, muss das members durch allMembers ersetzt werden.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ruab01
Beiträge: 19
Registriert: 8. Mär 2021 15:48

Re: Rules in OH3 Sitemap einbinden

Beitrag von ruab01 »

Ich habe jetzt eine Gruppe AlleRollos und eine Rule AlleRolloszu. Wie kann ich jetzt die Gruppe (damit alle Rolloaktoren) steuern bzw. in die Sitemap integrieren ?
Rules.PNG
Rules1.PNG
Rules2.PNG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules in OH3 Sitemap einbinden

Beitrag von int5749 »

ruab01 hat geschrieben: 6. Apr 2021 12:34 Wie kann ich jetzt die Gruppe (damit alle Rolloaktoren) steuern bzw. in die Sitemap integrieren ?
Dies wäre eine Möglichkeit
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

ruab01
Beiträge: 19
Registriert: 8. Mär 2021 15:48

Re: Rules in OH3 Sitemap einbinden

Beitrag von ruab01 »

Ok, aber in der UI kann ich das nirgendwo so eintragen mit dem Code. Wie oder wo kann ich die Items, Rules,... per Code konfigurieren ?

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

Re: Rules in OH3 Sitemap einbinden

Beitrag von udo1toni »

ruab01 hat geschrieben: 7. Apr 2021 11:44 Ok, aber in der UI kann ich das nirgendwo so eintragen mit dem Code. Wie oder wo kann ich die Items, Rules,... per Code konfigurieren ?
Doch, das geht.
Main UI -> Administration -> Einstellungen -> Rules -> unten rechts weißes Plus auf blauem Grund -> Daten eintragen (Unique ID und Name) Im When-Teil Add Trigger -> Item -> Item auswählen -> Pick (oben rechts) -> Triggerart auswählen (received command) -> Done (oben rechts)
Im Then-Teil Add Action -> Run Script -> Rule DSL
Dann den Code einfügen und Save (oben rechts), danach Back (oben links)
Nun solltest Du, wenn Du die Code-Ansicht einschaltest (rechts oben) eine Ansicht ähnlich dieser erhalten:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: AlleShutter
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: AlleRollos.members.forEach[i|i.sendCommand(receivedCommand)]
    type: script.ScriptAction
Für diese Rule brauchst Du keine rules-Datei anzulegen, das geht wunderbar über die UI.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ruab01
Beiträge: 19
Registriert: 8. Mär 2021 15:48

Re: Rules in OH3 Sitemap einbinden

Beitrag von ruab01 »

OK, das habe ich ja noch geschafft, aber damit habe ich noch keinen Eintrag auf der Sitemap, wie ich die Rollos steuern kann. Das was int5749 geschrieben hat würde das Item anlegen, die Rule und den Eintrag in der Sitemap, aber das ist ein anderer Code (nicht mit triggers: conditions: actions: ). Und wo bzw. wie man diesen Code eintragt, wollte ich noch wissen.

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

Re: Rules in OH3 Sitemap einbinden

Beitrag von udo1toni »

Na, in der Sitemap musst Du nur das Item eintragen. Du hast Dir aber schon mal die Oberfläche angeschaut, oder?

Sitemaps sind in openHAB3 übrigens die 2. Wahl, eigentlich macht man das über Pages. Aber sei's drum, Sitemap per UI:
Main UI -> Administration -> Einstellungen -> Pages -> unten rechts weißes Plus auf blauem Grund -> Create Sitemap -> New Sitemap selektieren -> ID und Label setzen -> Insert Widget inside Sitemap -> Frame (wird automatisch selektiert) -> Insert Widget inside Frame -> Default (wird automatisch selektiert) -> Item AlleShutter auswählen -> Save (oben rechts). Codeansicht ergibt dann so etwas:

Code: Alles auswählen

sitemap my_sitemap label="Meine Sitemap" {
    Frame {
        Default item=AlleShutter
    }
}
bzw. untendrunter:

Code: Alles auswählen

Your sitemap definition looks valid.

{
  "uid": "my_sitemap",
  "component": "Sitemap",
  "config": {
    "label": "Meine Sitemap"
  },
  "slots": {
    "widgets": [
      {
        "component": "Frame",
        "config": {},
        "slots": {
          "widgets": [
            {
              "component": "Default",
              "config": {
                "item": "AlleShutter"
              }
            }
          ]
        }
      }
    ]
  }
}
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ruab01
Beiträge: 19
Registriert: 8. Mär 2021 15:48

Re: Rules in OH3 Sitemap einbinden

Beitrag von ruab01 »

Da ich das mit den Anleitungen nicht ganz geschafft habe, habe ich das Problem nun so gelöst:

In der Sitemap in der Gruppe Rollo´s einen Switch angelegt:

Code: Alles auswählen

Switch icon="rollershutter" label="Alle Rollo´s zu / auf" item=AlleRolloszuauf mappings=[ON="zu",OFF="auf"]
und folgende Rule angelegt (für Rollos auf) und eine zweite Rule analog für Rollos zu: (aber wichtig war der Tipp für den Switch in der Sitemap)

Danke

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: AlleRolloszuauf
      command: OFF
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: CarinaBuroRollo_Level
      command: UP
    type: core.ItemCommandAction
  - inputs: {}
    id: "3"
    configuration:
      itemName: RolloCarinaZimmer_Level
      command: UP
    type: core.ItemCommandAction
  - inputs: {}
    id: "4"
    configuration:
      itemName: SchlafzimmerRollo_Level
      command: UP
    type: core.ItemCommandAction
  - inputs: {}
    id: "5"
    configuration:
      itemName: RolloEsszimmerFixelement_Level
      command: UP
    type: core.ItemCommandAction
  - inputs: {}
    id: "6"
    configuration:
      itemName: RolloEsszimmerTerasse_Level
      command: UP
    type: core.ItemCommandAction
  - inputs: {}
    id: "7"
    configuration:
      itemName: RolloEsszimmerWintergarten_Level
      command: UP
    type: core.ItemCommandAction

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules in OH3 Sitemap einbinden

Beitrag von int5749 »

ruab01 hat geschrieben: 15. Apr 2021 15:59
In der Sitemap in der Gruppe Rollo´s einen Switch angelegt:

.....: (aber wichtig war der Tipp für den Switch in der Sitemap)
Mir ist da auch noch kein anderer Weg bekannt, da die Sitemap (so schön ich diese auf einem mobilen Gerät finde) in die Tage gekommen ist, muss man dort noch das "alte" Verfahren anwenden.
ruab01 hat geschrieben: 15. Apr 2021 15:59 und folgende Rule angelegt (für Rollos auf) und eine zweite Rule analog für Rollos zu:
Ich denke, die Rule kann man stark einkürzen und eine für alles nehmen. Ich habe meine Rule (ich mache nur alles auf) mal etwas angepasst.
Da diese aus einer Rules datei kommt, kann es sein, dass dies nicht direkt copy/paste funktioniert.
Einfach mal testen.

Hierzu müssen alle Rollos die gefahren werden sollen in einer Gruppe sein "Rollladen"

Code: Alles auswählen

// Triggers:
// - When AlleRolloszuauf received a command

// context: shutter-2
	Rollladen.allMembers.filter(f|(f.state as DecimalType).intValue!==0).forEach[ s|
		s.sendCommand(receivedCommand.state)
		logInfo("Shutter", s.name + " received UP")
		])
	]
Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Antworten