Zwei Items multiplizieren?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Tüftler
Beiträge: 20
Registriert: 23. Aug 2019 21:24
Answers: 1
Wohnort: St. Gallen / Schweiz

Zwei Items multiplizieren?

Beitrag von Tüftler »

Hallo zusammen
Gerne würde ich zwei Items miteinander multiplizieren (aus Spannung und Strom die Leistung berechnen).

Konkret habe ich ein Item "Spannungswert_1" (ca. 12 V) und ein Item "Stromwert_2" (ca. 3 A).
Diese beiden möchte ich multiplizieren und im Item "Leistungswert_2" haben.

Ich glaube, mit einer Transformation komme ich nicht weiter. Ich kenne die Javaskript-Transformation (benutze ich um bei einem Spannungswandler aus einem Spannungswert einen Stromwert zu berechnen).

Wie kann man einfach zwei Items multiplizieren?
openHAB3.4.3 mit openHABian eingerichtet // eher Konfigurier-Fähigkeiten als Programmier-Fähigkeiten ;)

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Zwei Items multiplizieren?

Beitrag von PeterA »

Hi,

könnte so gehen:

Code: Alles auswählen

rule "Berechne Leistungswert"
when
    Item Spannungswert_1 changed or 
    Item Stromwert_2 changed
then
    var Number value1 = Spannungswert_1.state as Number
    var Number value2 = Stromwert_2.state as Number
    
    var Number result = value1 * value2 // Multiplikation

    Leistungswert_2.postUpdate(result)
end
- OpenHab 2.4
#PWRUP

Benutzeravatar
Tüftler
Beiträge: 20
Registriert: 23. Aug 2019 21:24
Answers: 1
Wohnort: St. Gallen / Schweiz

Re: Zwei Items multiplizieren?

Beitrag von Tüftler »

Danke!
So wirklich laufen tut es noch nicht.

Bei mir in OH3 sieht der Code so aus:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "3"
    configuration:
      itemName: Stromwert_3
    type: core.ItemStateUpdateTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |-2
            var Number value1 = Spannungswert_1.state as Number
            var Number value2 = Stromwert_2.state as Number
            var Number result = value1 * value2 // Multiplikation
            Leistungswert_2.postUpdate(result)
    type: script.ScriptAction
Ich sehe aber, dass die Rule aufgerufen wird (Der Status ändert oft von IDLE auf RUNNING, deshalb musste ich für die Auslösung auch "Stromwert_3" nehmen, der toggelt öfters als Nummer 2 ;-))

Aber mit dem Logik-Teil scheint es noch nicht zu stimmen.
Hängt es damit zusammen, dass meine Items nur "Points" sind?
Stromwert_2.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB3.4.3 mit openHABian eingerichtet // eher Konfigurier-Fähigkeiten als Programmier-Fähigkeiten ;)

Benutzeravatar
Tüftler
Beiträge: 20
Registriert: 23. Aug 2019 21:24
Answers: 1
Wohnort: St. Gallen / Schweiz

Re: Zwei Items multiplizieren?

Beitrag von Tüftler »

Ich nehm "alles" zurück!
Es funktioniert! Danke!
Mein Fehler war, dass mein Spannungswert_1 nicht wie beim Strom nur Spannungswert_1 heisst:
Spannungswert_1.jpg
Und als ich das korrigiert habe, tata... es hat funktioniert ;-) Danke!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB3.4.3 mit openHABian eingerichtet // eher Konfigurier-Fähigkeiten als Programmier-Fähigkeiten ;)

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Zwei Items multiplizieren?

Beitrag von PeterA »

Top!
- OpenHab 2.4
#PWRUP

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

Re: Zwei Items multiplizieren?

Beitrag von udo1toni »

Übrigens sollte das tatsächlich auch mit QuantityType funktionieren.
Gegeben drei Items:

Code: Alles auswählen

Number:ElectricPotential Volt 
Number:ElectricCurrent   Ampere
Number:Power             Watt
Nun sollte

Code: Alles auswählen

Watt.postUpdate((Ampere.state as QuantityType) * (Volt.state as QuantityType))
das korrekte Ergebnis liefern (inklusive korrekter Einheit... hab ich gestern erfreut im englischen Forum gelesen... ich ging bisher davon aus, dass das so nicht funktionieren wird)
Natürlich gibt es die Einschränkung, dass W eben nicht gleich VA ist, es sei denn wir reden von Gleichspannung und Gleichstrom, aber allein dass es in dieser Form überhaupt funktioniert (und damit ja auch mit anderen Größen) ist ziemlich klasse.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten