HomeMatic CCU2 bei ELV bestellen

HM-ES-TX-WM - wieso 2 Zähler?

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Werbung


HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon fischmir » 13.05.2018, 14:18

Hallo zusammen,

ich schlage mich seit Monaten mit dem o.g. Gerät auseinandern; nun möchte ich es aber endlich mal nutzen können.

Ich habe das Gefühl, dass nicht richtig gezählt wird; daher meine erste Frage: Wieso hat das Gerät 2 Energiezähler?

* Energie-Zähler RaspMatic (welcher sich bei mir nicht updated; steht auf 4795.453 kWh)
* Energie-Zähler Gerät (steht aktuell auf 293440.00 Wh und wird regelmäßig höher)

Kann mir jemand sagen, wieso es zwei Zähler gibt?

Viele Grüße,
Christian
fischmir
 
Beiträge: 781
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland

Re: HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon DrTob » 13.05.2018, 15:55

Der geratezähler ist im Sensor selbst. Er wird bei einem Batteriewechsel zurückgestellt. Der andere wird auf der Zentrale verwaltet und erhöht (über ein Programm, das beim anlernen erstellt wird)
DrTob
 
Beiträge: 3401
Registriert: 29.10.2010, 08:24

Re: HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon Xel66 » 13.05.2018, 16:39

DrTob hat geschrieben:(über ein Programm, das beim anlernen erstellt wird)

Genauer über ein als systemintern gekennzeichnetes Programm, welches ein Script ausführt und die Zählerstände bei Übermittlung der Daten durch den Sensor schreibt. Dieses Programm wird beim Anlernen des Sensors automatisch erstellt.

Gruß Xel66
---------------------------------------------------------------------------------
235 Kanäle in 84 Geräten und 128 CUxD-Kanäle in 23 CUxD-Geräten
---------------------------------------------------------------------------------
Xel66
 
Beiträge: 3477
Registriert: 08.05.2013, 23:33
Wohnort: Nordwürttemberg

Re: HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon NickHM » 13.05.2018, 16:44

Guten Abend

Du kannst das o.g. automatisch erstellte "systeminterne" Programm gefahrlos auf "nicht systemintern" umstellen. Dann siehst Du es auch in Status / Bedienung Programme und dort den Zeitstempel, wann das Programm getriggert wird. So kannst Du fest stellen, ob das darin enthaltene Script überhaupt los läuft, wenn Daten vom Sensor gemeldet werden.

Falls es nicht funktioniert kann man den fehler suchen, oder das Gerät ablernen - Programm wird gelöscht und neu anlernen - Programm wird neu erstellt.
NickHM
 
Beiträge: 1012
Registriert: 23.09.2017, 12:04

Re: HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon fischmir » 13.05.2018, 20:16

DrTob hat geschrieben:Der geratezähler ist im Sensor selbst. Er wird bei einem Batteriewechsel zurückgestellt. Der andere wird auf der Zentrale verwaltet und erhöht (über ein Programm, das beim anlernen erstellt wird)


Ich habe mir die Werte anschaut, aber der Energie-Zähler RaspMatic ändert sich nicht mehr, während Energie-Zähler Gerät immer weiter zählt.

NickHM hat geschrieben:Guten Abend

Du kannst das o.g. automatisch erstellte "systeminterne" Programm gefahrlos auf "nicht systemintern" umstellen. Dann siehst Du es auch in Status / Bedienung Programme und dort den Zeitstempel, wann das Programm getriggert wird. So kannst Du fest stellen, ob das darin enthaltene Script überhaupt los läuft, wenn Daten vom Sensor gemeldet werden.

Falls es nicht funktioniert kann man den fehler suchen, oder das Gerät ablernen - Programm wird gelöscht und neu anlernen - Programm wird neu erstellt.


Die Programm werden ausgeführt (zumindest lt. Zeitstempel), aber offentsichtlich passiert nix; der Zähler bleibt ja stehen.

Hat jemand eine Idee, was ich nun tun könnte? Hat jemand das systemintern Script, welches funktioniert? Dann könnte ich die Programm mal ergleichen. Die ist meins:

Danke und Gruß,
Christian

Code: Alles auswählen
object chn = dom.GetObject('3105');
object oBoot = chn.DPByControl('POWERMETER_IGL.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER_IGL.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_3105_NEQ0861263:1');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_3105');
object oSysVarEnergyCounterResetPressed = dom.GetObject('svEnergyCounter_3105_NEQ0861263:1_RESET');
object oSysVarEnergyCounterTmpOldVal = dom.GetObject('svEnergyCounter_3105_NEQ0861263:1_TMP_OLDVAL');
object oSysVarEnergyCounterDeviceReset = dom.GetObject('svEnergyCounter_3105_NEQ0861263: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());
}

fischmir
 
Beiträge: 781
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland

Re: HM-ES-TX-WM - wieso 2 Zähler?

Beitragvon fischmir » 17.05.2018, 22:38

Ich habe mir die Werte anschaut, aber der Energie-Zähler RaspMatic ändert sich nicht mehr, während Energie-Zähler Gerät immer weiter zählt.


Ist das ein Bug in RaspMatic?
fischmir
 
Beiträge: 781
Registriert: 03.02.2014, 19:04
Wohnort: Münsterland


Zurück zu RaspberryMatic

Wer ist online?

Mitglieder in diesem Forum: It-noob, schakal2k und 6 Gäste







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.