Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt nicht

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

bdombrowsky
Beiträge: 10
Registriert: 23.12.2014, 18:47

Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt nicht

Beitrag von bdombrowsky » 09.11.2016, 10:46

Hallo Zusammen,

ich habe, in den letzten 1-2 Jahren immer wieder das Problem das der Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" irgendwann einfach aufhört weiter zu zählen.

Ich habe die aktuellste Firmware etc.

Im Fehlerfall habe ich bisher das Gerät immer komplett abgelernt und neu aufgenommen, danach lief das Gerät dann wieder einige Wochen / Monate.

Da dies aber für mich sehr unbefriedigend ist, habe ich mir jetzt einmal das Systeminterne Script angeschaut, was diesen Zähler entsprechend setzt.

Das Problem ist folgende if Abfrage:

Code: Alles auswählen

if ( oBoot.Value() == true ) {
   oSysVarEnergyCounterDeviceReset.State(true);
   if (ioldDevVal <= 0) {
     oSysVarEnergyCounter.State(0);
   }
} else {
Das Object oBoot ist folgendes:

Code: Alles auswählen

object oBoot = chn.DPByControl('POWERMETER_IGL.BOOT');
Bei mir ist der Wert in der Tat "true" und somit läuft das Script nicht mehr in die eigentliche Routine zum Updaten des Zählers etc.

Kann mir jemand sagen, was dieses Objekt eigentlich genau ist? Und was es mir jetzt genau sagen soll, dass der Wert "BOOT" bei mir (scheinbar einfach irgendwann) auf "true" anstatt des erwarteten "false" steht?

Temporär habe ich die if Abfrage angepasst und der Zähler zählt wieder normal - das ist aber vermutlich nicht im Sinne des Erfinders.

Auch ein Versuch den Objectwert manuell auf "false" zu setzen, hat leider nicht gefruchtet, kein Fehler - Wert aber auch nicht gesetzt...

Wäre Super wenn mir hier jemand weiterhelfen könnte. Bisher habe ich lediglich Probleme in diesem Zusammenhang gefunden, welche mit alten Firmware Versionen zusammenhängen, ich bin aber auf dem neusten Stand.

Gruß
Benni

PS: Der Vollständigkeit halber noch mal das gesamte Interne Script:

Code: Alles auswählen

object chn = dom.GetObject('27242');
object oBoot = chn.DPByControl('POWERMETER_IGL.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER_IGL.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_27242_MEQ0380950:1');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_27242');
object oSysVarEnergyCounterResetPressed = dom.GetObject('svEnergyCounter_27242_MEQ0380950:1_RESET');
object oSysVarEnergyCounterTmpOldVal = dom.GetObject('svEnergyCounter_27242_MEQ0380950:1_TMP_OLDVAL');
object oSysVarEnergyCounterDeviceReset = dom.GetObject('svEnergyCounter_27242_MEQ0380950:1_DEVICE_RESET');
boolean bootFlag = oBoot.Value();
real devVal = oEnergyCounter.Value();
real devValMax = oEnergyCounter.ValueMax();
real oldDevVal = oSysVarEnergyCounterOldVal.Value();
real tmpOldDevVal = oSysVarEnergyCounterTmpOldVal.Value();
integer ioldDevVal = (tmpOldDevVal.ToString().ToFloat() * 100000).ToInteger();
real diffVal = 0.0;
real sysVarVal = oSysVarEnergyCounter.Value();
integer tmp_devVal = (devVal.ToString().ToFloat() * 100000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 100000).ToInteger();
if ( oBoot.Value() == true ) {
   oSysVarEnergyCounterDeviceReset.State(true);
   if (ioldDevVal <= 0) {
     oSysVarEnergyCounter.State(0);
   }
} else {
   boolean resetPressed = oSysVarEnergyCounterResetPressed.Value();
   ! boolean devReset = oSysVarEnergyCounterDeviceReset.Value();
   if ( (resetPressed == true) && (oSysVarEnergyCounterDeviceReset.Value() == true) ) {
       oSysVarEnergyCounterTmpOldVal.State(0);
       tmpOldDevVal = 0;
   }
  !Normales Hochzaehlen. Geraetwert > vorheriger Wert
  if ((tmp_devVal >= tmp_oldDevVal) && (oSysVarEnergyCounterDeviceReset.Value() == false)) {
   if (resetPressed == false) {
      diffVal = oEnergyCounter.Value() - oldDevVal;
    } else {
      !Reset pressed
      diffVal = oEnergyCounter.Value() - tmpOldDevVal;
      if ((diffVal.ToString().ToFloat() * 100000).ToInteger() < 0 ) {
		     diffVal = oEnergyCounter.Value();
      }
      oSysVarEnergyCounterResetPressed.State(0);
    }
  } else {
    !Geraetewert ist kleiner vorheriger Wert
   !Entweder Ueberlauf, oder Batterietausch
    if (oSysVarEnergyCounterDeviceReset.Value() == false) {
      !Normaler Geraeteueberlauf
      if(tmp_devVal > 0) {
         diffVal = (oEnergyCounter.Value() + devValMax) - oldDevVal;
      }
    } else {
         !Zaehle Geraetewert zum CCU-Zaehler
          diffVal = oEnergyCounter.Value();
          if ((diffVal.ToString().ToFloat() * 100000).ToInteger() == 0) {
	            oSysVarEnergyCounterDeviceReset.State(true);
           } else {
            oSysVarEnergyCounterDeviceReset.State(false);
          }
    }
  }
  !Erhoehe den CCU-Zaehler
  oSysVarEnergyCounter.State(sysVarVal + diffVal);
  oSysVarEnergyCounterOldVal.State(oEnergyCounter.Value());
  oSysVarEnergyCounterTmpOldVal.State(oEnergyCounter.Value());
}


Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Herbert_Testmann » 09.11.2016, 13:29

hallo

ich interpretiere das so, dass es in dem Gerät einen Datenpunkt Boot gibt. Der wird abgefragt.
Wann und wie lange der auf true steht, weiss ich nicht.

Ist der Datenpunkt True, wurde das Gerät neu gebootet, weil z.B. die Batterien gewechselt wurden.
Das ist wichtig für das Script, das der interne Gerätezähler auf "0" zurück gesetzt ist. Das Script berechnet die Differenz zwischen dem letzten bekannten Wert und dem aktuellen Wert. Die Differenz ist in dm Fall < 0 oder =0
In dem Fall wird der letzte bekannte Wert auf 0 gesetzt und ab dann stimmt die Differenzrechnung wieder.

Bleibt der Datenpunkt True, wird bei jedem Durchlauf auf 0 gesetzt, es gibt keine Differenz und somit wird auch nicht auf den Zähler in der CCU auf summiert.

Nun wäre nur zu klären, warum da dauerhaft True drin steht.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

ubecker
Beiträge: 569
Registriert: 31.01.2014, 22:53
Wohnort: Duisburg

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von ubecker » 09.11.2016, 13:54

Hallo,
das Problem hab ich auch, nur noch keine Zeit gehabt da zu suchen.
Ich habe noch die alte Firmware auf den Modulen. Mehrzahl deshalb weil ich diesen Typ auch als Gaszähler einsetze. Komischerweise arbeitet dieser Richtig.
gruß Udo

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Herbert_Testmann » 09.11.2016, 14:38

Hallo

ich habe auch die alte FW, weil ich die Funktion für den 2 Richtungszähler nicht brauche.
Und ich habe auch kein Problem mit dem Zähler.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

bdombrowsky
Beiträge: 10
Registriert: 23.12.2014, 18:47

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von bdombrowsky » 09.12.2016, 10:27

Hi,

es ist halt wirklich merkwürdig, ich habe die Abfrage auf "false" angepasst, sprich davon ausgehend, dass er im "Boot Modus" hängen bleibt / verweilt. Dies lief jetzt über Wochen, ohne CCU Reboot oder ähnliches steht sie jetzt auf einmal seit 3 Tagen wieder auf false, sprich der Boot Modus ist beendet.

Ich halte das mal für einen ziemlich blöden Bug.

Gruß
Benni

Benutzeravatar
Flaux
Beiträge: 72
Registriert: 09.10.2012, 13:12
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Flaux » 29.01.2017, 12:31

Ich habe genau dasselbe Problem.

Hab mir einen 2. gekauft.

Tausche den einen mit dem anderen und tausche nachher wieder zurück.

Das ganze hängt zusammen mit dem maximal Wert der gespeichert wird. Werden diese KW überstiegen, geschieht genau das.

Dann zählt das Ding wieder. Einzig zu beachten: beide Geräte müssen dieselbe Firmware haben, sonst geht das so nicht.

Falls jemand eine bessere Idee hat, dann bitte melden.

Diese Befehle:
oSysVarEnergyCounterTmpOldVal.State(0);
oSysVarEnergyCounterOldVal.State(0);


zu senden reicht nicht. Das Gerät bleibt im oBoot true.
Haus17: 515 Kanäle in 231 Geräten
Haus19: 317 Kanäle in 175 Geräten
Haus29: 38 Kanäle in 17 Geräten
Haus30: 265 Kanäle in 123 Geräten
Total: 1135 Kanäle in 546 Geräten

bdombrowsky
Beiträge: 10
Registriert: 23.12.2014, 18:47

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von bdombrowsky » 29.01.2017, 12:47

Ok, ich gehe aktuell den Weg, dass ich mich benachrichtigen lasse, wenn der Zählerstand nicht mehr steigt. Das ist weniger als ein Workaround m.E., ich setzte dann je nachdem die IF Abfrage.

Allerdings darf man das doch wohl als klassischen Bug bezeichnen und wäre so etwas für ein Firmware Update, oder sehe ich das falsch? Immerhin ist dies ein kommerzielles Produkt.

Gruß
Benni

Benutzeravatar
Flaux
Beiträge: 72
Registriert: 09.10.2012, 13:12
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Flaux » 29.01.2017, 13:02

Ganz Deiner Meinung.

Das Wort Bug kennt der Hersteller nicht.

Das ist ihm seit Jahren wurscht. Aber schade, dass sich darum keiner kümmert. Es scheint, man verdient auch so gut Geld.
Haus17: 515 Kanäle in 231 Geräten
Haus19: 317 Kanäle in 175 Geräten
Haus29: 38 Kanäle in 17 Geräten
Haus30: 265 Kanäle in 123 Geräten
Total: 1135 Kanäle in 546 Geräten

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Herbert_Testmann » 29.01.2017, 15:26

Flaux hat geschrieben:Ganz Deiner Meinung.

Das Wort Bug kennt der Hersteller nicht.

Das ist ihm seit Jahren wurscht. Aber schade, dass sich darum keiner kümmert. Es scheint, man verdient auch so gut Geld.
Bitte schreibt eine Mail an ELV / eq-3 und 7 oder einen beitrag im Forum von ELV zu der betroffenen Hardware.
Der Fehler muss nachvollziehbar beschrieben werden.
Das ist der einzige Weg, dass es bearbeitet wird.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Benutzeravatar
Flaux
Beiträge: 72
Registriert: 09.10.2012, 13:12
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: Stromzähler "HM-ES-TX-WM" "Energie-Zähler CCU2" zählt ni

Beitrag von Flaux » 29.01.2017, 23:52

Du kennst doch die Anwort die dann kommt per Mail.

Eine Lösung kommt nie.
Haus17: 515 Kanäle in 231 Geräten
Haus19: 317 Kanäle in 175 Geräten
Haus29: 38 Kanäle in 17 Geräten
Haus30: 265 Kanäle in 123 Geräten
Total: 1135 Kanäle in 546 Geräten

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“