Seite 25 von 27

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 20.11.2019, 09:01
von NilsG
Hallo zusammen!

DAS hier:

https://www.loxwiki.eu/display/LOX/Wass ... r+auslesen

... habe ich gerade zufällig bei den Freunden von LOXONE gefunden!

Interessant, dass es einen solchen Sensor von PANASONIC "fertig" gibt!

https://www.voelkner.de/products/901915 ... -1St..html

Version: PNP EX-26A-PN


Nils

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 21.11.2019, 08:28
von Sven_A
Stolzer Preis.

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 21.11.2019, 08:37
von NilsG
Das dachte ich auch :shock:

Wollte es nur mal kundtun :idea:
Diese Dinger gibt es ja in unterschiedlichen Ausführungen, so dass ggf. auch noch andere Einsatzzwecke denkbar wären

Nils

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 23.11.2019, 18:33
von Tibin
Tibin hat geschrieben:
31.10.2019, 19:31
Habe zum Wasserzähler von Sensus jetzt hier schon mal eine gute Beschreibung gefunden, jetzt muss ich mich nur noch um den passenden Sensor für den 420 kümmern. Mal schauen.... werde berichten.
Gruß Tino
Habe gestern endlich von meinem Versorger den passenden Sensor bekommen (ist der Gleiche wie im Link unter Punkt 3 beschrieben und auch jetzt so angeschlossen u. funktioniert)
Danke nochmal an Don Kanaille für den entscheidenden Tipp mit HRI Pulse!

Kurze Frage noch zum HM-ES-TX-WM, da mir das jetzt schon zum 2.Mal passiert ist (Wasser und Gas):
Geliefert wurde das Gerät mit FW 1.0, nach korrekter Installation mit dem entsprechenden Sensor angelernt an CCU3, 2 interne Programme wurden angelegt, alles gut.
Nach Update auf 1.2 komische Konstellation in der Geräteansicht des Gerätes, also abgelernt (interne Progr. wurden entfernt) und neu versucht. Nach Neuanlernen ist zwar FW auf 1.2, aber es werden keine internen Programme mehr angelegt, auch nicht nach Werksreset und Batterie raus. (Bei 2 unterschiedlichen Geräten)
Ich hatte zufällig die zugehörigen Skripte vorher weggespeichert und die Programme jetzt manuell angelegt. Wird auch augenscheinlich richtig gezählt in der CCU.
Bin mir aber trotzdem unsicher ob alles richtig ist.

Könnte mir vielleicht jemand der die FW 1.2 drauf hat, die 2 Programme die angelegt werden zur Verfügung stellen? Gerne auch per PN.
Wäre Supi.
Gruß Tino

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 24.11.2019, 13:37
von Tibin
Oder einfach mal andersherum gefragt: Sehen die Programme und Skripte bei euch bei FW 1.2 identisch aus? (Natürlich mit anderen ID's)

Geräteansicht:
GerätWasser.PNG
1. internes Programm
PRG 1.PNG
zugehöriges Skript:

Code: Alles auswählen

object chn = dom.GetObject('6425');
object oBoot = chn.DPByControl('POWERMETER_IGL.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER_IGL.ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounter_6425_QEQ0336964:1');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterOldVal_6425');
object oSysVarEnergyCounterResetPressed = dom.GetObject('svEnergyCounter_6425_QEQ0336964:1_RESET');
object oSysVarEnergyCounterTmpOldVal = dom.GetObject('svEnergyCounter_6425_QEQ0336964:1_TMP_OLDVAL');
object oSysVarEnergyCounterDeviceReset = dom.GetObject('svEnergyCounter_6425_QEQ0336964: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());
}
2. internes Programm
PRG 2.PNG
zugehöriges Skript:

Code: Alles auswählen

object chn = dom.GetObject('6425');
object oBoot = chn.DPByControl('POWERMETER_IGL.BOOT');
object oEnergyCounter = chn.DPByControl('POWERMETER_IGL.GAS_ENERGY_COUNTER');
object oSysVarEnergyCounter = dom.GetObject('svEnergyCounterGas_6425_QEQ0336964:1');
object oSysVarEnergyCounterOldVal = dom.GetObject('svEnergyCounterGasOldVal_6425');
object oSysVarEnergyCounterResetPressed = dom.GetObject('svEnergyCounterGas_6425_QEQ0336964:1_RESET');
object oSysVarEnergyCounterTmpOldVal = dom.GetObject('svEnergyCounterGas_6425_QEQ0336964:1_TMP_OLDVAL');
object oSysVarEnergyCounterDeviceReset = dom.GetObject('svEnergyCounterGas_6425_QEQ0336964: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());
}

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 06.12.2019, 20:37
von Bumbumb
Hallo gib es unter euch jemanden, der mir den Bausatz von Herrn Stall zusammenlötet? Ich würde es natürlich auch vergüten. Bitte helft mir.
vielen Dank
Gruß

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 21.01.2020, 13:22
von Andronid
Hat hier jemand im Forum das auch schon mit einem Raspi statt Arduino gemacht?

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 25.01.2020, 15:55
von berliner72
Ich habe einen Diehl Hydrus Wasserzähler mit S0 Ausgang. Wie verbinde ich diesen mit einer Homematic Zähleinheit HM-ES-TX-WM ? Gibt es dazu ein fertiges Teil oder kann jemand gegen Entgelt so etwas anbieten ? EQ3 sagte es gäbe dazu nichts.

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 25.01.2020, 16:00
von Baxxy
berliner72 hat geschrieben:
25.01.2020, 15:55
Gibt es dazu ein fertiges Teil oder kann jemand gegen Entgelt so etwas anbieten ?
Schau mal hier bei Ebay-Kleinanzeigen.
Ich habe das Teil bei mir am Hutschinen-Stromzähler mit S0 im Einsatz.

Grüße
Baxxy

Re: Wasserzähler mit HM-ES-TX-WM

Verfasst: 25.01.2020, 16:02
von berliner72
das Tell verbindet die Kabel die aus dem Wasserzähler kommen (S0) und wird dann an den HM-ES-TX-WM gesteckt ?