Seite 1 von 1

Verbrauch Haus berechnen aus Energiewerten

Verfasst: 23. Feb 2023 20:28
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

Re: Verbrauch Haus berechnen aus Energiewerten

Verfasst: 23. Feb 2023 21:12
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

Re: Verbrauch Haus berechnen aus Energiewerten

Verfasst: 23. Feb 2023 21:42
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.

Re: Verbrauch Haus berechnen aus Energiewerten

Verfasst: 24. Feb 2023 13:36
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.

Re: Verbrauch Haus berechnen aus Energiewerten

Verfasst: 24. Feb 2023 15:55
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: