Verschiedene Items addieren

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

Antworten
Rob69
Beiträge: 55
Registriert: 26. Feb 2021 07:38
Answers: 0

Verschiedene Items addieren

Beitrag von Rob69 »

Guten Morgen,

Da man lt. meines Solarteurs bei Solaredge keine 2 Wechselrichter über eine Webapi laufen lassen kann,
haben wir für den jetzigen einen neuen Account angelegt.
Nun möchte ich die Gesamtproduktion von beiden Wechselrichtern durch addieren der alten sowie der neuen Gesamtproduktion anzeigen lassen.
Dazu habe ich ein virtuelles Item angelegt

Code: Alles auswählen

Number:Energy    PV_Produktion_Gesamt    "PV Produktion Gesamt [%.2f kWh)"
und die Rule dafür geschrieben

Code: Alles auswählen

rule "PV Produktion gesamt"

when
Item  Solaredge_PV_Produktion_Jahr   received update
then
PV_Produktion_Gesamt.postUpdate(Solaredge_PV_Produktion_Jahr .state as QuantityType<Energy> + Solaredge_SE3H_Produktion_Jahr.state as QuantityType<Energy>)  

end
aber irgendwie ist die Rule fehlerhaft, denn sie liefert mir keine Summe


Guß Rob69

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

Re: Verschiedene Items addieren

Beitrag von PeterA »

Hi,

vermutlich muss der "QuantityType<Energy>" Kram weg.

Also nur mal als Beispiel wie ich zwei Items addiere:

Code: Alles auswählen

Strombedarf_gesamt_heute_cal.postUpdate((hitchi_in_heute.state as Number).floatValue + (pv_usage_today_absolute.state as Number).floatValue)
Gruß Peter
- OpenHab 2.4
#PWRUP

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

Re: Verschiedene Items addieren

Beitrag von udo1toni »

Du kannst die schon als QuantityType addieren, aber die Daten müssen dann auch in diesem Format vorliegen.

Es ist außerdem niemals sicher, dass ein Item auch einen gültigen Wert hat (solange Du das nicht vorher geprüft hast...), also besser:

Code: Alles auswählen

rule "PV Produktion gesamt"
when
    Item Solaredge_PV_Produktion_Jahr changed
then
    val newVal = if(newState instanceof Number) (newState as Number) else 0|Wh
    val oldVal = if(Solaredge_SE3H_Produktion_Jahr.state instanceof Number) (Solaredge_SE3H_Produktion_Jahr.state as Number) else 0|Wh
    logInfo("pvGesamt", "Wert neu: {} Wert alt: {}", newVal, oldVal)
    PV_Produktion_Gesamt.postUpdate(newVal + oldVal)
end
Allerdings: Wenn Du von "dem jetzigen" Wechselrichter schreibst, kann es sein, dass Dein Wechselrichter getauscht wurde, Du also gar nicht zwei Wechselrichter hast, sondern einen neuen, bei dem Du den (fixen, unveränderlichen) alten Wert mit beaufschlagen willst, zumindest bis Ende des Jahres...? Das ginge weitaus einfacher, wenn Du die betreffenden Werte notierst und in lokalen Konstanten definierst und diese zum Item addierst, das ginge sogar über ein Offset Profile im Link zwischen Channel und Item, also ganz ohne Rules.

Ansonsten müsste die Rule nicht nur bei Änderung der einen Jahressumme triggern, sondern zusätzlich auch bei Änderung der zweiten Jahressumme, und dann wäre es sinnvoller, ein Group Item mit der Aggregation SUM zu nutzen, womit die Rule dann wieder obsolet wäre...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Rob69
Beiträge: 55
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Verschiedene Items addieren

Beitrag von Rob69 »

Guten Morgen,

Das ist richtig Udo1Toni.

Ich habe übergangsweise einen Solaredge SE3H Wechselrichter gehabt.
Der zweite Solaredge Wert kommt über meinen Solaredge SMI 35 wegen meiner Optimierer.
Und da vor kurzen mein S10X Compact gekommen ist , welcher über Modbus leider keine Gesamtwerte bringt muss ich leider die Webapi von
Solaredge nutzen.
Die Rule funktioniert

Code: Alles auswählen

2023-12-29 09:13:32.396 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Monat' changed from 77.52103 kWh to 77.56182 kWh
2023-12-29 09:13:32.404 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Tag' changed from 0.02932924 kWh to 0.070115555 kWh
2023-12-29 09:13:32.420 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Jahr' changed from 109.825016 kWh to 109.865805 kWh
2023-12-29 09:13:32.425 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_Live_Production' changed from 140.00305 W to 276.893 W
2023-12-29 09:13:32.434 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PV_Produktion_Gesamt' changed from 1920.25 kWh to 1920.2909 kWh
wird mir aber auf Basic UI nicht angezeigt!

Gruß Rob69

Rob69
Beiträge: 55
Registriert: 26. Feb 2021 07:38
Answers: 0

Re: Verschiedene Items addieren

Beitrag von Rob69 »

Guten morgen,
Deine Regel Udo1Toni bringt für mich nicht nach voll ziehbare Werte heraus

Code: Alles auswählen

2023-12-31 11:13:34.717 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Monat' changed from 86.709305 kWh to 86.84715 kWh
2023-12-31 11:13:34.729 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Tag' changed from 0.65561694 kWh to 0.7934585 kWh
2023-12-31 11:13:34.754 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_PV_Produktion_Jahr' changed from 119.01329 kWh to 119.15113 kWh
2023-12-31 11:13:34.758 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Solaredge_Live_Production' changed from 625.1245 W to 952.39636 W
2023-12-31 11:13:34.766 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PV_Produktion_Gesamt' changed from 6945977844 to 6946474068

Antworten