Guten Abend zusammen,
ich hatte mal wieder etwas Zeit zu spielen und wollte aus den Impulsen eines S0 Drehstromzähler den Momentanverbrauch berechnen. Per google habe ich auch eine passende Rule gefunden und etwas angepasst. Leider bekomme ich die Meldung "Configuration model 'snullzaehler.rules' is either empty or cannot be parsed correctly!"
Hier die betreffenden Items:
Und hier die Rule:
Um den richtigen Wert geht`s mir grad noch gar nicht, einfach das die Rule durchläuft und was berechnet. Hat jemand noch nen Tip?
ich hatte mal wieder etwas Zeit zu spielen und wollte aus den Impulsen eines S0 Drehstromzähler den Momentanverbrauch berechnen. Per google habe ich auch eine passende Rule gefunden und etwas angepasst. Leider bekomme ich die Meldung "Configuration model 'snullzaehler.rules' is either empty or cannot be parsed correctly!"
Hier die betreffenden Items:
PHP-Code:
Number Strom_WP_VerdichterImpulse "Impulse Strom WP Verdichter[%d Imp]" <temperature> (gStrom, gVerbrauch, gChart) { knx="<13.001:2/1/30"}
Number Strom_WP_MomentanVerbrauchVerdichter "Momentanverbrauch Verdichter [%d W]" <temperature> (gStrom, gVerbrauch, gChart)
PHP-Code:
//var String TAG = "strom.rules"
var org.joda.time.DateTime g_lastTime
var Number g_lastValue = 0
rule "Power Current"
when
Item Strom_WP_VerdichterImpulse changed
then
var org.joda.time.DateTime currentTime = now
var Number currentValue = Strom_WP_VerdichterImpulse.state as DecimalType
if(g_lastTime !== null && g_lastValue > 0)
{
var Number oldValue = g_lastValue
var Number deltaKWh = currentValue - oldValue
var long deltaMillis = currentTime.millis - g_lastTime.millis
if(deltaMillis > 0 && deltaMillis < 40000)
{
//logInfo(TAG, "old=" + oldValue + " current=" + currentValue + " deltaKWh=" + deltaKWh + " deltaMS=" + deltaMillis )
var Number deltaWh = deltaKWh * 1000
var Number millisToHours = 60 * 60 * 1000;
var Number watts = deltaWh * millisToHours / deltaMillis
if(watts >= 0 && watts <= 10000)
postUpdate(Strom_WP_MomentanVerbrauchVerdichter, watts)
}
}
g_lastTime = currentTime
g_lastValue = currentValue
end
Kommentar