Seite 1 von 1

Werte per Rule berechneen => Item aktualisieren

Verfasst: 10. Mär 2023 11:57
von Tourentiger
Hallo Community,

ich befasse mich seit kurzem mit der spannenden Thematik OpenHAB und bin nun an den Punkt gekommen wo ich Hilfe benötige :shock:
Momentan arbeite ich noch viel grafisch. Ins Skripten muss ich mich noch einarbeiten.

Ausgangssituation:
Installiert ist OpenHAB 3.4.2. Über das Fritzbinding habe ich zwei Fritz DECT 200 Steckdosen als Things eingebunden. Aus den Things habe ich je Steckdose das Item "Leistung" [Number:Power.Point] generiert. Damit kann ich mir die momentane Leistung je Steckdose anzeigen lassen.
Nun möchte ich mir aber die Gesamtleistung der Steckdosen durch Addition der Einzelleistungen beiden Steckkdosen anzeigen lassen.

Nach Recherche und Suche wolte ich das ganze über den folgenden Weg lösen:
Neues Item erstellen, das per Rule aktualisiert wird => Rule erstellen, das die Einzelwerte addieret und das Item aktualisiert

Der Bearbeitungsstand sieht momentan so aus:

1. Item erstellt: " Addieren_VB_Leistung" [Number:Power.Point] - Channel Links bisher nichts eingetragen

2. Rule erstellt: Wenn die Werte einer Steckdose sich ändert, dann mache ...
#######################################################
configuration: {}
triggers:
- id: "1"
configuration:
itemName: VB01Buro_Leistung
type: core.ItemStateChangeTrigger
- id: "2"
configuration:
itemName: VB02Dach_Leistung
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "3"
configuration:
itemName: Addieren_VB_Leistung
type: core.ItemStateUpdateAction
######################################################

Das Item und die Rule scheinen zunächst einmal miteianander zu kommunizieren.
Jedoch es erfolgt keine Summation, sondern es wird nur der aktuelle Wert einer Steckdose angezeigt. Daher nun die Frage wie bekomme ich hier eine korrekte Summation hin bzw. wie sollte der Skript der Rule hierzu aussehen?

LG Tourentiger

Re: Werte per Rule berechneen => Item aktualisieren

Verfasst: 11. Mär 2023 03:04
von udo1toni
So geht das nicht :) Du müsstest dann schon ein Script schreiben, welches alle Items enthält, die summiert werden sollen.

Zum Glück geht es aber auch komplett ohne Rule.

Dazu erstellst Du ein Group Item, vom Typ Group:Number:Power (ein Point ist das ohnehin und die Schreibweise mit dem Punkt ist falsch - oder zumindest extrem unüblich.)
Diesem Group Item gibst Du noch die Aggregatfunktion SUM mit. Anschließend weist Du allen gewünschten Items die Gruppe zu, womit sie automatisch
summiert werden, ganz ohne Rule.

Re: Werte per Rule berechneen => Item aktualisieren

Verfasst: 13. Mär 2023 10:08
von Tourentiger
Danke für den Hinweis. Das hat geklappt, es funktioniert nun wie es soll.

Ich habe gesehen, das bei den Aggregatfunktionen der Mittelwert, Minimum, Maximum und Summation zur Verfügung stehen. Gibt es hier irgendwie die Möglichkeit auch Differenzen (Subtraktion) berechnen zu lassen?

Re: Werte per Rule berechneen => Item aktualisieren

Verfasst: 13. Mär 2023 11:00
von udo1toni
Nein, wie soll das auch gehen? In einer Gruppe sind ja beliebig viele Items enthalten, woher sollte openHAB wissen, in welcher Reihenfolge es die Items nutzen soll?
Aber natürlich kannst Du über Rules beliebige Berechnungen anstellen (sogar gruppenbasiert...) Es kommt halt immer drauf an, was Du genau sehen möchtest...