Push
Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Moderator: Co-Administratoren
- tgw
- Beiträge: 586
- Registriert: 10.10.2013, 22:35
- System: CCU
- Wohnort: Recklinghausen
- Hat sich bedankt: 40 Mal
- Danksagung erhalten: 6 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Viele Grüße aus Recklinghausen im Ruhrpott
Der TGW
CCU3 / Solaredge PV integriert / Daikin Klima WLAN integriert - gerne für Rückfragen offen.
Der TGW
CCU3 / Solaredge PV integriert / Daikin Klima WLAN integriert - gerne für Rückfragen offen.
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Guten Morgen Zusammen,
ich habe folgende Frage:
Da ich eine PV Anlage habe, musste der Zähler getauscht werden.
Ich habe jetzt einen Smart Meter ES-IEC am laufen.
Jetzt werden die Variablen nicht richtig gefüllt.
Kann es an den unterschiedlichen Einheiten liegen ?
Die Messwerte werden ja jetzt in Kwh übermittelt und nicht mehr in Watt.
Muss das Skript bearbeitet werden ?
Vielen Dank
ich habe folgende Frage:
Da ich eine PV Anlage habe, musste der Zähler getauscht werden.
Ich habe jetzt einen Smart Meter ES-IEC am laufen.
Jetzt werden die Variablen nicht richtig gefüllt.
Kann es an den unterschiedlichen Einheiten liegen ?
Die Messwerte werden ja jetzt in Kwh übermittelt und nicht mehr in Watt.
Muss das Skript bearbeitet werden ?
Code: Alles auswählen
! Universelle Zaehlerstandberechnung fuer HM-ES-TX-WM
!
! Copyright (c) 2016-2018 Jens Maus <mail@jens-maus.de>
!
! Version 1.4 (01.01.2018)
! Nun schauen wir wer uns aufgerufen hat (Device-Channel oder Timer) und welches Device
! es genau war (Nutzung der $src$ Variable) und danach entscheiden wir was wir
! zu tun haben.
object counter = dom.GetObject("$src$");
if(counter)
{
object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES);
! Wenn TypeName vom Typ HSSDP ist dann wurde das Program durch ein Event
! eines Devices erzeugt, ansonsten durch ein CALENDARDP welches der
! Ausfuehrung durch das Zeitmodul entspricht
if(counter.TypeName() == "HSSDP")
{
! Nun holen wir unmittelbar am anfang alle counter relevanten Daten ab
! und speichern sie fuer spaeter zwischen und berechnen auch gleich
! noch differenzwerte
integer diffTime = counter.Timestamp().ToInteger() - counter.LastTimestamp().ToInteger();
real curValue = counter.Value();
real lastValue = counter.LastValue();
! Nun extrahieren wir den Zaehlertyp (Gas, Wasser, Strom)
! aus dem Namen des Channel. Ein Device muss also immer mit "XXXXX-Gas"
! bzw. "XXXXXX-Wasser", etc. enden.
object channel = dom.GetObject(counter.Channel());
string type = channel.Name().StrValueByIndex("-",1);
! Nun holen wir alle notwendigen Systemvariablen zum Lesen und Speichern
! unserer verschiedenen Zaehlerwerte
object c = sysvar.Get(type # " Referenz Zaehlerstand");
object d = sysvar.Get(type # " Zaehlerstand");
object e = sysvar.Get(type # " Verbrauch aktuell");
object f = sysvar.Get(type # " Referenz Ablesung");
object g = sysvar.Get(type # " Verbrauch letzte Ablesung");
object h = sysvar.Get(type # " Referenz heute");
object i = sysvar.Get(type # " Verbrauch heute");
object j = sysvar.Get(type # " Referenz Woche");
object k = sysvar.Get(type # " Verbrauch Woche");
object l = sysvar.Get(type # " Referenz Monat");
object m = sysvar.Get(type # " Verbrauch Monat");
object n = sysvar.Get(type # " Referenz Kalenderjahr");
object o = sysvar.Get(type # " Verbrauch Kalenderjahr");
! Nun schauen wir ob der Zaehler uebergelaufen ist (diffValue < 0) weil
! die Zaehlervariablen des HM-ES-TX-WM gerade beim Stromzaehler regelmaessig
! ueberlaufen.
real diffValue = curValue - lastValue;
if(diffValue < 0.0)
{
! Der Zaehler scheint uebergelaufen zu sein -> ValueMax hinzuaddieren
diffValue = diffValue + counter.ValueMax();
! "Referenz Zaehlerstand" dann um ValueMax erhoehen. Beim Stromzaehler
! muss aber erst das ganze noch in Watt umgerechnet werden.
real a = c.Value();
if(counter.HssType() != "GAS_ENERGY_COUNTER")
{
a = a * 1000.0;
a = a + counter.ValueMax();
c.State(a / 1000.0);
}
else
{
c.State(a + counter.ValueMax());
}
}
! Wenn dies ein Stromzaehler ist muessen wir die Werte von
! Watt zu Kilowatt konvertieren
if(counter.HssType() != "GAS_ENERGY_COUNTER")
{
diffValue = diffValue / 1000.0;
curValue = curValue / 1000.0;
}
! Aktuellen Verbrauch berechnen
if(diffTime > 0) { e.State(3600.0 * diffValue / diffTime); }
! Aktuellen Zaehlerstand berechnen
d.State(c.Value() + curValue);
! Nun alle Systemvariablen die fuer die Berechnung/Darstellung
! des Verbrauches da sind neu berechnen.
g.State(d.Value() - f.Value());
if(h.Value() != 0) { i.State(d.Value() - h.Value()); }
else { i.State(d.Value() - c.Value()); }
if(j.Value() != 0) { k.State(d.Value() - j.Value()); }
else { k.State(d.Value() - c.Value()); }
if(l.Value() != 0) { m.State(d.Value() - l.Value()); }
else { m.State(d.State() - c.State()); }
if(n.Value() != 0) { o.State(d.Value() - n.Value()); }
else { o.State(d.Value() - c.Value()); }
! Wir aktualisieren auch noch den CCU internen Energiezaehler mit
! dem Wert der letzten Ablesung
if(counter.HssType() != "GAS_ENERGY_COUNTER")
{
object oSysVarEnergyCounter = sysvar.Get("svEnergyCounter_" # channel.ID() # "_" # channel.Address());
if(oSysVarEnergyCounter)
{
oSysVarEnergyCounter.State((d.Value() - f.Value()) * 1000.0);
}
}
else
{
object oSysVarEnergyCounter = sysvar.Get("svEnergyCounterGas_" # channel.ID() # "_" # channel.Address());
if(oSysVarEnergyCounter)
{
oSysVarEnergyCounter.State(d.Value() - f.Value());
}
}
! Die aktuelle Zeit in eine separate Systemvariable schreiben
! damit man direkt sehen kann wann die Zaehelrstaende das letzte
! mal aktualisiert wurden.
sysvar.Get(type # " Aktualisierung").State(system.Date("%F %X"));
}
else
{
! Tageszaehleraktualisierung fuer alle Hausanschluss-Zaehler
! Hier wird mittels eines Timers der taeglich immer genau um 00:00
! dieses Programm ausfuehrt die Systemvariablen aktualisiert die
! die Tages/Wochen/Monat/Jahreswerte beinhalten.
! Nur weitermachen wenn es wirklich Mitternacht ist
if(system.Date("%H:%M") == "00:00")
{
string a="Gas,Strom,Wasser";
string b;
object c;
object d;
object e;
object f;
! Nun ueber alle Hauszaehler iterieren
foreach(b, a.Split(","))
{
! momentaner Zaehlerstand
c = sysvar.Get(b # " Zaehlerstand");
if(c)
{
! Nach Wochenanfang pruefen
if(system.Date("%a") == "Mon")
{
d = sysvar.Get(b # " Referenz Woche");
e = sysvar.Get(b # " Verbrauch Woche");
f = sysvar.Get(b # " Verbrauch letzte Woche");
! Verbrauch der letzten Woche speichern
f.State(e.Value());
! Referenzwert der Woche speichern
d.State(c.Value());
! Wochenverbrauch auf 0 setzen
e.State(0);
}
! Nach Monatsanfang pruefen
if(system.Date("%d") == "01")
{
d = sysvar.Get(b # " Referenz Monat");
e = sysvar.Get(b # " Verbrauch Monat");
f = sysvar.Get(b # " Verbrauch letzter Monat");
! Verbrauch des letzten Monats speichern
f.State(e.Value());
! Referenzwert des Monats speichern
d.State(c.Value());
! Monatsverbrauch auf 0 setzen
e.State(0);
! Nach Jahresanfang pruefen
if(system.Date("%m") == "01")
{
d = sysvar.Get(b # " Referenz Kalenderjahr");
e = sysvar.Get(b # " Verbrauch Kalenderjahr");
f = sysvar.Get(b # " Verbrauch letztes Kalenderjahr");
! Verbrauch des letzten Kalenderjahr speichern
f.State(e.Value());
! Referenzwert des Kalenderjahr speichern
d.State(c.Value());
! Jahresverbrauch auf 0 setzen
e.State(0);
}
}
! aktueller Tagesverbrauch speichern
d = sysvar.Get(b # " Referenz heute");
e = sysvar.Get(b # " Verbrauch heute");
f = sysvar.Get(b # " Verbrauch gestern");
! Verbrauch der letzten Woche speichern
f.State(e.Value());
! Referenzwert der Woche speichern
d.State(c.Value());
! Tagesverbrauch auf 0 setzen
e.State(0);
}
}
}
}
}
-
- Beiträge: 14211
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 593 Mal
- Danksagung erhalten: 1507 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Oh, ich liebe solche ausführlichen und detaillierten Fehlerbeschreibungen. Geh mal zu einem KFZ'ler und sage ihm, dass Dein Auto "komische Geräusche" macht. Dessen Gesicht verformt sich zum Fragezeichen.
Klar, wenn Du die Dimensionen änderst, dann musst Du natürlich auch die Berechnung darauf anpassen. Im Abschnitt "! Wenn dies ein Stromzaehler ist muessen wir die Werte von..." hat das der Scriptersteller schon mehr oder minder vorgesehen, bzw. rechnet intern schon mit kWh. Einfach die beiden Zeilen "diffValue = diffValue / 1000.0;" und "curValue = curValue / 1000.0;" durch ein vorgestelltes Ausrufezeichen (!) auskommentieren (z.B. ! diffValue = diffValue / 1000.0; - das Leerzeichen nach dem Ausrufezeichen ist wichtig).
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- tgw
- Beiträge: 586
- Registriert: 10.10.2013, 22:35
- System: CCU
- Wohnort: Recklinghausen
- Hat sich bedankt: 40 Mal
- Danksagung erhalten: 6 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Also ich hatte damals sehr sehr ausführlich alles beschrieben und habe bis heute noch keine Antwort.
Was mache ich falsch?
Was mache ich falsch?
Viele Grüße aus Recklinghausen im Ruhrpott
Der TGW
CCU3 / Solaredge PV integriert / Daikin Klima WLAN integriert - gerne für Rückfragen offen.
Der TGW
CCU3 / Solaredge PV integriert / Daikin Klima WLAN integriert - gerne für Rückfragen offen.
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Ah, ich hatte das ! direkt ohne Lehrzeichen eingefügt.Xel66 hat geschrieben: ↑22.03.2023, 10:19Oh, ich liebe solche ausführlichen und detaillierten Fehlerbeschreibungen. Geh mal zu einem KFZ'ler und sage ihm, dass Dein Auto "komische Geräusche" macht. Dessen Gesicht verformt sich zum Fragezeichen.Klar, wenn Du die Dimensionen änderst, dann musst Du natürlich auch die Berechnung darauf anpassen. Im Abschnitt "! Wenn dies ein Stromzaehler ist muessen wir die Werte von..." hat das der Scriptersteller schon mehr oder minder vorgesehen, bzw. rechnet intern schon mit kWh. Einfach die beiden Zeilen "diffValue = diffValue / 1000.0;" und "curValue = curValue / 1000.0;" durch ein vorgestelltes Ausrufezeichen (!) auskommentieren (z.B. ! diffValue = diffValue / 1000.0; - das Leerzeichen nach dem Ausrufezeichen ist wichtig).
Gruß Xel66
Jetzt warte ich, dass die Batterie leer ist und Strom verbraucht wird und berichte.
Danke
-
- Beiträge: 190
- Registriert: 23.10.2016, 10:15
- Hat sich bedankt: 53 Mal
- Danksagung erhalten: 1 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
@Joesch
has du eine Antwort auf die Frage? Würde mich auch interessieren. Könntest du die Variablen für einen Gaszähler posten (Screenshot). Danke
-
- Beiträge: 39
- Registriert: 15.10.2016, 14:57
- Danksagung erhalten: 1 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Hallo
habe einen Pipersberg BK G4T Gaszähler und möchte den aktuellen m³ Verbrauch in meiner Homematic CCU3 auslesen. Habe dazu den Zählersensor HM-ES-TX-WM mit dem Energy-Sensor Gas 2 und dem entsprechenden Adapter an den Gaszähler angeschlossen. Imp = 0,01.
Frage: wie bekomme ich den tatsächlichen Zählerstand ausgelesen? Er steht im Augenblick auf 1796,352 m³. Meine Pocket Control zeigt einen Wert von 1,312m³ an. Was für ein Skript benötige ich und evtl welches Programm, um den realen Wert anzeigen zu lassen?
Hat jemand hier das passende Skript und Programm? Blicke durch die vielen Forenbeiträge dazu nicht mehr durch.
VG Stefan
habe einen Pipersberg BK G4T Gaszähler und möchte den aktuellen m³ Verbrauch in meiner Homematic CCU3 auslesen. Habe dazu den Zählersensor HM-ES-TX-WM mit dem Energy-Sensor Gas 2 und dem entsprechenden Adapter an den Gaszähler angeschlossen. Imp = 0,01.
Frage: wie bekomme ich den tatsächlichen Zählerstand ausgelesen? Er steht im Augenblick auf 1796,352 m³. Meine Pocket Control zeigt einen Wert von 1,312m³ an. Was für ein Skript benötige ich und evtl welches Programm, um den realen Wert anzeigen zu lassen?
Hat jemand hier das passende Skript und Programm? Blicke durch die vielen Forenbeiträge dazu nicht mehr durch.
VG Stefan
-
- Beiträge: 26
- Registriert: 31.12.2014, 09:50
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Hallo ottmaster,
ich habe einen Pipersberg G6 RF1, welcher einen Imp=0,1 hat, angegeben auf dem Zähler selber. Bist Du sicher, dass dein G4 0,01 liefert?
VG
Michael
ich habe einen Pipersberg G6 RF1, welcher einen Imp=0,1 hat, angegeben auf dem Zähler selber. Bist Du sicher, dass dein G4 0,01 liefert?
VG
Michael
-
- Beiträge: 1204
- Registriert: 03.02.2016, 14:44
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: irgendwo aus Süd BaWü
- Hat sich bedankt: 141 Mal
- Danksagung erhalten: 85 Mal
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Hallo zusammen,
betreibt jemand erfolgreich dieses Script als Stromvariante bei sich?
Ich habe vor kurzem bei mir am Stromzähler einen HM-ES-TX-WM mit einem IS-IEC angeschlossen und dabei auf dieses Script gleich mit umgestellt.
Das Programm an sich scheint zu laufen, aber die Werte sind irgendwie nicht plausibel.
Anbei mal der Screenshot: Was komisch ist, der Stromverbrauch heute und gestern bleibt immer bei 0,01 kWh.
Wie ist das bei Euch? Läuft das bei irgendjemanden?
EDIT:
Nach rumprobieren und ändern vom Code in = 1.0:
werden mir nun korrekte Werte angezeigt.
Grüße,
Slice
betreibt jemand erfolgreich dieses Script als Stromvariante bei sich?
Ich habe vor kurzem bei mir am Stromzähler einen HM-ES-TX-WM mit einem IS-IEC angeschlossen und dabei auf dieses Script gleich mit umgestellt.
Das Programm an sich scheint zu laufen, aber die Werte sind irgendwie nicht plausibel.
Anbei mal der Screenshot: Was komisch ist, der Stromverbrauch heute und gestern bleibt immer bei 0,01 kWh.
Wie ist das bei Euch? Läuft das bei irgendjemanden?
EDIT:
Nach rumprobieren und ändern vom Code in = 1.0:
Code: Alles auswählen
if ( type == "Strom" )
{
vUmrechnungsfaktor = 1.0;
Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.75.7 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.75.7 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------
-
- Beiträge: 90
- Registriert: 08.12.2014, 22:16
- Wohnort: Erfurt
Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Hallo Michael,
ich weiß nicht ob Du dieses Thema noch im Blick hast.
Ist ja auch schon eine Weile her.
Ich versuche es aber dennoch einmal.
Zuerst: Vielen Dank für Deine Mühe das Programm von J.Maus weiter aufzwerten.
Nach langer Zeit bin ich vor ein paar Tagen auf Deine Variante "umgestiegen".
Soweit ich das bisher Beurteilen kann läuft auch alles ohne Problem sehr gut in der "Strom"-Variante.
Ich habe dazu allerdings ein paar Fragen.
1. Die SV "Strom Verbrauch aktuell" zeigt immer einen wesentlich höheren aktuellen Verbrauch an, als die Leistungsanzeige im Gerät.
Es gibt nur wenige Momente wo beide Anzeigen fast das selbe anzeigen.
Kann das so richtig sein ?
siehe Screenshot
2. Du hattest in einem Beitrag mal erwähnt, dass Du an einer Erweiterung des Pragramms arbeitest um auch die Preise für die
jeweiligen Verbräuche mit zu erfassen und anzuzeigen.
Gibt es schon etwas brauchbares von Dir oder ist das nicht mehr aktuell ?
Vielen Dank
Peter
ich weiß nicht ob Du dieses Thema noch im Blick hast.
Ist ja auch schon eine Weile her.
Ich versuche es aber dennoch einmal.
Zuerst: Vielen Dank für Deine Mühe das Programm von J.Maus weiter aufzwerten.
Nach langer Zeit bin ich vor ein paar Tagen auf Deine Variante "umgestiegen".
Soweit ich das bisher Beurteilen kann läuft auch alles ohne Problem sehr gut in der "Strom"-Variante.
Ich habe dazu allerdings ein paar Fragen.
1. Die SV "Strom Verbrauch aktuell" zeigt immer einen wesentlich höheren aktuellen Verbrauch an, als die Leistungsanzeige im Gerät.
Es gibt nur wenige Momente wo beide Anzeigen fast das selbe anzeigen.
Kann das so richtig sein ?
siehe Screenshot
2. Du hattest in einem Beitrag mal erwähnt, dass Du an einer Erweiterung des Pragramms arbeitest um auch die Preise für die
jeweiligen Verbräuche mit zu erfassen und anzuzeigen.
Gibt es schon etwas brauchbares von Dir oder ist das nicht mehr aktuell ?
Vielen Dank
Peter