Ankündigung

Einklappen
Keine Ankündigung bisher.

S0 Zähler Momentanverbrauch ermitteln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    S0 Zähler Momentanverbrauch ermitteln

    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:
    PHP-Code:
    Number Strom_WP_VerdichterImpulse               "Impulse Strom WP Verdichter[%d Imp]" <temperature> (gStromgVerbrauchgChart)                { knx="<13.001:2/1/30"}
    Number Strom_WP_MomentanVerbrauchVerdichter "Momentanverbrauch Verdichter [%d W]" <temperature> (gStromgVerbrauchgChart
    Und hier die Rule:
    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 && 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 >= && watts <= 10000
         
          
    postUpdate(Strom_WP_MomentanVerbrauchVerdichterwatts)
          }
       }
       
    g_lastTime currentTime
       g_lastValue 
    currentValue
    end 
    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?

    #2
    Habs gefunden! War wohl doch schon etwas spät

    Erstens musste ich sehr wohl die Formeln auf meine Zählimpulse zuerst anpassen, weil sonst überhöhte Werte rausgekommen sind die dann mit dem if(watts >= 0 && watts <= 10000) ausgefilter worden sind. Der Schritt über deltaKWh ist bei mir nicht notwendig, ein Impuls ist bei mir 1Wh

    Mein neuer Code sieht jetzt so aus
    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).intValue
    if(g_lastTime !== null && g_lastValue 0)
    {
    var 
    Number oldValue g_lastValue
    var Number deltaWh currentValue oldValue
    var long deltaMillis currentTime.millis g_lastTime.millis
    if(deltaMillis && deltaMillis 40000)
    {
    logInfo(TAG"old=" oldValue " current=" currentValue " deltaWh=" deltaWh " deltaMS=" deltaMillis )
    var 
    Number millisToHours 60 60 1000;
    var 
    Number watts deltaWh millisToHours deltaMillis
    logInfo
    (TAG"watts=" watts )
    if(
    watts >= && watts <= 10000)
    postUpdate(Strom_WP_MomentanVerbrauchVerdichterwatts)
    }
    }
    g_lastTime currentTime
    g_lastValue 
    currentValue
    end 
    Das item hab ich noch zu Float geändert:
    PHP-Code:
    Number Strom_WP_MomentanVerbrauchVerdichter "Momentanverbrauch Verdichter [%.0f W]" <temperature> (gStromgVerbrauchgChart

    Kommentar

    Lädt...
    X