Verbrauch Haus berechnen aus Energiewerten

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

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

Verbrauch Haus berechnen aus Energiewerten

Beitrag von int5749 »

Hallo zusammen,

ich habe 2 Regeln, wo bei eine Werte der anderen verarbeitet

zum einen der aktuelle Wechselrichterertrag über ModBus, wo es bei SMA leider zu einem falschen Wert bei "Keine Sonne" führt.
Hier hatte eine Forum-Fee :mrgreen: in einem anderen Thread eine Rule optimiert, dies abzufangen :D

Code: Alles auswählen

rule "Fehlerbehebung Nacht Wechselrichter"
when
    Member of gSMA_Input changed
then
    val output = Inverter.members.filter[ i|triggeringItem.name.startsWith(i.name)].head
    var Number nWert = 0
    if(triggeringItem.state instanceof Number) {
        var Number nGrenze = 0
        switch(triggeringItem.name.split("_").get(1)) {
            case "power" : nGrenze = 4500
            case "voltage" : nGrenze = 400
            case "ampere" : nGrenze = 5
            case "watt" : nGrenze = 4500
        }
        if((triggeringItem.state as Number) < nGrenze) nWert = triggeringItem.state as Number
    }
    output.sendCommand(nWert)
end
Die dazu gehörenden Items (exemplarisch für 1 String)

Code: Alles auswählen

Number SMA40_ampere_1_In	"Ampere: [%s A]"	<smaampere>	(gSMA_Input)	{channel="modbus:data:smaSB40:smaHolding_7:input_ampere_1:number"}
Number SMA40_voltage_1_In	"Volt: [%s V]"		<smavolt>	(gSMA_Input)	{channel="modbus:data:smaSB40:smaHolding_7:input_voltage_1:number"}
Number SMA40_watt_1_In	"Watt [%d W]"		<smawatt>	(gSMA_Input)	{channel="modbus:data:smaSB40:smaHolding_7:input_watt_1:number"}
Number SMA40_ampere_1		"Ampere: [%s A]"	<smaampere>	(Inverter, gSMA_Ampere)
Number SMA40_voltage_1	"Volt: [%s V]"		<smavolt>	(Inverter, gSMA_Voltage)
Number SMA40_watt_1		"Watt [%d W]"		<smawatt>	(Inverter, gSMA_Watt)
Die Berechnung des Hausverbrauchs erfolgt mittels

Code: Alles auswählen

rule "House Consumption"
when
	Item House_PowerIn changed or
	Item House_PowerOut changed or
	Item SMA37_BatteryWatt changed or
	Item gSMA_Watt changed
then
    postUpdate(House_Consumption, (House_PowerIn.state as DecimalType + gSMA_Watt.state as DecimalType - House_PowerOut.state as DecimalType + SMA37_BatteryWatt.state as DecimalType).intValue)
end
Die Gruppe gSMA_Watt beinhaltet alle 3 Werte zu Watt und wird Abends/Nachts nicht über Rule 1 upgadated.
Somit hagelt es dann Fehlermeldungen im Log

Code: Alles auswählen

[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'smart-14' failed: Could not cast NULL to org.openhab.core.library.types.DecimalType; line 299, column 76, length 38 in smart
Nun fehlt mir die Idee, wie ich dies am besten wo abfange. Wahrscheinlich mit instanceof Number aber eben nicht wo :?

Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Verbrauch Haus berechnen aus Energiewerten

Beitrag von udo1toni »

Na ja, Du musst halt die bittere Pille schlucken, und den Bandwurm ordentlich hinschreiben. :)

Code: Alles auswählen

rule "House Consumption"
when
    Item House_PowerIn changed or
    Item House_PowerOut changed or
    Item SMA37_BatteryWatt changed or
    Item gSMA_Watt changed
then
    var Number nPowerIn = 0
    if(House_PowerIn.state instanceof Number)
        nPowerIn = (House_PowerIn.state as Number).floatValue

    var Number nSMAWatt = 0
    if(gSMA_Watt.state instanceof Number)
        nSMAWatt = (gSMA_Watt.state as Number).floatValue

    var nPowerOut = 0
    if(House_PowerOut.state instanceof Number)
        nPowerOut = (House_PowerOut.state as Number).floatValue

    var nSMABatt = 0
    if(SMA37_BatteryWatt.state instanceof Number)
        nSMABatt = (SMA37_BatteryWatt.state as Number).floatValue

    House_Consumption.postUpdate((nPowerIn + nSMAWatt - nPowerOut + nSMABatt)
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Verbrauch Haus berechnen aus Energiewerten

Beitrag von oh73 »

zum einen der aktuelle Wechselrichterertrag über ModBus, wo es bei SMA leider zu einem falschen Wert bei "Keine Sonne" führt.
welchen Wechselrichter hast du?
ich hab den SMA Tripower 8.0 und keine Probleme bei keine Sonne! zeigt er einfach nur 0 an!

ich hab da von github.com https://github.com/alaub81/openhab_modbus_sma_inverter

eine Sammlung mit Items, Things, usw. und das funktioniert eigentlich ganz gut!

musste nur einiges deaktivieren da ich keine Batterie, Pv-Speicher habe.
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

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

Re: Verbrauch Haus berechnen aus Energiewerten

Beitrag von int5749 »

Danke Euch Beiden, ich werde beides prüfen, sobald ich den Geist gefunden habe :-/

Seit drei Nächsten spinnt unser Haus, evtl. wegen openHAB, dann würde ich einen separaten Post erstellen.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Verbrauch Haus berechnen aus Energiewerten

Beitrag von udo1toni »

int5749 hat geschrieben: 24. Feb 2023 13:36 Seit drei Nächsten spinnt unser Haus, evtl. wegen openHAB
Das kann ja gar nicht sein... :lol:
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten