Und jetzt hat das Gerät ~ 4,5kWh und die SysVar ~ 156 kWh?
Wie soll das zusammenpassen? Es geht doch nicht um den Preis sondern um die falsche Zählung.
Die Frage ist also wo dieses augenscheinliche Umrechnungsproblem herkommt.
Dazu brauchen wir mal ein paar Rohdaten:
Folgendes im "Script testen" ausführen, vorher in Zeile 1 den korrekten Kanalnamen eintragen.
Ausgabe posten.
Code: Alles auswählen
!- Energy-Counter internal SysVar Check
string kanal_name = "HM-ES-PMSw1-Pl LEQ0529290:2"; !- Namen eintragen wie in der WebUI vergeben
object kanal_dev = channels.Get (kanal_name);
if (!kanal_dev) { quit; }
WriteLine("Zähler Gerät: "# channels.Get (kanal_dev).DPByHssDP ("ENERGY_COUNTER").Value());
object kanal_sv_counter = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("svEnergyCounter_" # kanal_dev.ID() # "_" # kanal_dev.Address());
if (!kanal_sv_counter) { quit; }
real sv_counter_value = kanal_sv_counter.Value();
string unit = "Wh";
WriteLine("Zähler SysVar_intern: "# sv_counter_value # " "# unit);
if ( sv_counter_value > 999.0 ) { unit = "kWh"; sv_counter_value = sv_counter_value /1000.0;}
WriteLine("Sollausgabe: Zähler SysVar_WebUI: "# sv_counter_value.ToString(2) # " "# unit);
object kanal_sv_counter_oldval = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("svEnergyCounterOldVal_" # kanal_dev.ID());
if (!kanal_sv_counter_oldval) { quit; }
WriteLine("Zähler SysVar_old: "# kanal_sv_counter_oldval.Value());