Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

PCSHG
Beiträge: 103
Registriert: 07.10.2017, 15:14
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von PCSHG » 13.02.2021, 13:22

Hallo,

ich würde Dein Auslesescript gerne auch bei mir einsetzen. Lässt sich das Urspungsscript auch auf einen Doppeltarifzähler (für HT und NT) anpassen?

Die Schaltzeiten der Tarife lauten wir folgt:

HT: 06:00 Uhr - 22.00 Uhr (Montag - Freitag)
NT: 22:00 Uhr - 06:00 Uhr (Montag - Freitag)

Wochenende:

HT: 06:00 Uhr - 13:00 Uhr (Samstag)
NT: 13:00 Uhr Samstag - 06:00 Uhr Montag

Über eine Info, ggf. Hilfe wäre ich Dir dankbar. Vielen Dank im Voraus. LG
808 Kanäle in 128 Geräten:
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD

Hütte
Beiträge: 746
Registriert: 08.02.2017, 11:08
Hat sich bedankt: 32 Mal
Danksagung erhalten: 75 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Hütte » 14.02.2021, 22:17

R.Thümer hat geschrieben:
06.02.2021, 20:38
jmaus hat geschrieben:
07.06.2016, 15:43

Anpassung bei Zählerwechsel:
Da Energieversorger in regelmäßigen Abständen einen neuen/aktualisierten Hausanschlusszähler installieren muss somit auch bei jedem Zählerwechsel der aktualisierte Zählerstand mittels des folgenden Skriptes der CCU mitgeteilt werden:
  1. TODO
Hallo, gibt es eine Lösung für den Zählerwechsel? Ein Script ist ja nicht angegeben oder Wie muss ich "1. TODO" verstehen? Mein Zähler wurde gegen einen Smart Meter getauscht und da der aktuelle Zählerstand ja unter dem der letzten Ablesung liegt kann ich diesen über das vorhandene Scipt "Initiale Einrichtung/Anpassung Referenzwert Zählerstand" nicht setzen. Den letzten Zählerstand vom ausgebauten Zähler habe ich mit dem Script "Initiale Einrichtung/Anpassung Referenzwert letzte Ablesung" gesetzt. Muss ich jetzt wieder bei 0 :( starten oder kann ich alte Werte weiter nutzen? :?:

MfG R.Thümer
Bei einem kompletten Zählerwechsel bleibt dir im Moment nichts anderes übrig, als bei Null zu starten. Und das hat absolut nichts mit dem abgewandelten Script von MIchael zu tun, da diese Version des Scriptes darauf zielt, einen Reset des internen Zählers des HM-ES-TX-WM bei einem Batteriewechsel abzufangen..

Wenn du nun deinen Smartmeter über einen ES-IEC-Sensor statt einem ES-Fer- oder ES-LED-Sensor ausliest, dann musst du zwei Dinge beachten.
1. Bei Einsatz des ES-IEC-Sensors muss die FW-Version 2.5 auf dem HM-ES-TX-WM installiert werden (diese FW ist ausschließlich auf der Downloadseite von eQ-3 zu finden und wird dir nicht auf der Startseite der WebUI angezeigt, da je nach eingesetzem Sensor verschiedede FW-Versionen auf dem jeweiligen HM-ES-TX-WM zu installieren sind.
2. Beim Einsatz des ES-IEC-Sensors werden die Daten/Zählerstände direkt aus dem Zähler in kWh ausgelesen. Damit die späteren Berechnungen stimmen, muss das Original-Script von Jens angepasst werden.

Dazu folgender Bereich

Code: Alles auswählen

    ! 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;
    } 
zumindest durch folgene Zeilen ersetzt werden:

Code: Alles auswählen

    ! 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;
!    } 

Natürlich unter Annahme, dass es nur einen HM-ES-TX-WM-Zähler gibt, der einen Stromzähler ausliest. Sollte es neben dem Hauptzähler, der einen ES-IEC-Sensor benutzt, noch einen Unterzähler geben, der einen anderen Sensor benutzt, dann wird es komplizierter

R.Thümer
Beiträge: 33
Registriert: 16.02.2020, 13:40
System: CCU
Hat sich bedankt: 9 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von R.Thümer » 15.02.2021, 21:19

Problem Gelöst!! Ich habe alles nochmal neu aufgesetzt und jetzt funktioniert es wieder. Die Anpassung von "Hütte" habe ich im Script gemacht und die Anzeige ist dann korrekt.
Hütte hat geschrieben:
14.02.2021, 22:17


Bei einem kompletten Zählerwechsel bleibt dir im Moment nichts anderes übrig, als bei Null zu starten. Und das hat absolut nichts mit dem abgewandelten Script von MIchael zu tun, da diese Version des Scriptes darauf zielt, einen Reset des internen Zählers des HM-ES-TX-WM bei einem Batteriewechsel abzufangen..

Wenn du nun deinen Smartmeter über einen ES-IEC-Sensor statt einem ES-Fer- oder ES-LED-Sensor ausliest, dann musst du zwei Dinge beachten.
1. Bei Einsatz des ES-IEC-Sensors muss die FW-Version 2.5 auf dem HM-ES-TX-WM installiert werden (diese FW ist ausschließlich auf der Downloadseite von eQ-3 zu finden und wird dir nicht auf der Startseite der WebUI angezeigt, da je nach eingesetzem Sensor verschiedede FW-Versionen auf dem jeweiligen HM-ES-TX-WM zu installieren sind.
2. Beim Einsatz des ES-IEC-Sensors werden die Daten/Zählerstände direkt aus dem Zähler in kWh ausgelesen. Damit die späteren Berechnungen stimmen, muss das Original-Script von Jens angepasst werden.

Dazu folgender Bereich

Code: Alles auswählen

    ! 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;
    } 
zumindest durch folgene Zeilen ersetzt werden:

Code: Alles auswählen

    ! 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;
!    } 

Natürlich unter Annahme, dass es nur einen HM-ES-TX-WM-Zähler gibt, der einen Stromzähler ausliest. Sollte es neben dem Hauptzähler, der einen ES-IEC-Sensor benutzt, noch einen Unterzähler geben, der einen anderen Sensor benutzt, dann wird es komplizierter
Hallo, ich habe deine Anpassung im Script gemacht. Leider wird erfolgt keine Aktualisierung der Werte mehr. Die entsprechende Systemvariable die anzeigt wann zuletzt der Wert aktualisiert wurde wird auch nicht mehr gefüllt. Am Script habe ich nichts weiter verändert. Ich bin etwas ratlos, das Script scheint nicht mehr richtig zu funktionieren. Ein Fehler wird aber nicht angezeigt. Der Zählerstand ist aber in der WebUi zu sehen und dieser ist auch korrekt. Den Referenzzählerstand habe ich über TinyMatic eingegeben da dies über das angegebe Script nicht funktionierte. Ich hoffe du kannst mir da weiterhelfen. Ich selbst kann da keinen Fehler finden. Das Programm wird aber anscheinend regelmäßig ausgeführt siehe Screenshot.

MfG R.Thümer
Dateianhänge
Screenshot (16).png
Screenshot (15).png

Rene2000
Beiträge: 7
Registriert: 19.11.2019, 17:24

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Rene2000 » 13.11.2021, 21:27

Hallo zusammen,

vorweg ein Danke an jmaus!
Ich habe fogendes Problem. Wenn ich die Zählerstände Aktuell und letzter Ablesung per Script unter Script teste ausführe bekomme beim Energiezähler CCU und StromVerbrauch letzte Ablesung negative Werte. :( Kann mir hier einer helfen?

Habe alle Systemvariablen 6 x überprüft, reset des Energiezählers CCU durchgeführt und die Werte neu per Skript gesetzt, es ändert sich nix, die Werte bleiben negativ.

Beim Skript "Initiale Einrichtung/Anpassung Referenzwert Zählerstand:" bekomme ich nach dem klick ausführen "Kein Wert im Ausgabefenster.

Aktueller Zählerstand:
String type = "Strom"
real value = 35145.18;

Zählerstand letzte Ablesung:
String type = "Strom"
real value = 33887.20;
Energiezaehler.jpg
Programm.jpg
Vorab schon mal ein Dank!

NickHM
Beiträge: 3733
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 66 Mal
Danksagung erhalten: 120 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von NickHM » 14.11.2021, 07:45

Hallo

das Feld "Energiezähler CCU" darf von Deinem Script nicht beeinflusst werden. Dort arbeitet ein systeminternes Script, das beim Anlernen des Gerätes automatisch angelegt wurde und dass Du nicht verändert hast.
Nach dem Druck auf Reset muss dort zunächst 0,00 stehen.
Das hat aber nichts mit dem eigenen Script zu tun ist ist ein Problem, dass Du zunächst lösen solltest.

Rene2000
Beiträge: 7
Registriert: 19.11.2019, 17:24

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Rene2000 » 14.11.2021, 08:16

Hallo und Danke für die schnelle Antwort!

Jetzt stehe ich ein bisschen auf dem Schlauch.
Ja, an den System internen Scripten habe ich nichts verändert, davon steht ja auch nix in der Installationsanweisung.
Die System internen Programme mit dem Scripten habe ich gefunden aber was soll ich da verändern?
Ich bin nicht so konfirm im Programmieren um deine Antwort in die Tat umzusetzten.

Kannst du mir das geneauer beschreiben was ich tun muss?

Danke und Gruß
René

Hütte
Beiträge: 746
Registriert: 08.02.2017, 11:08
Hat sich bedankt: 32 Mal
Danksagung erhalten: 75 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Hütte » 14.11.2021, 09:42

Am systeminternen Script musst du gar nichts tun. NICHT anfassen.

Einfach den "Reset"-Button rechts neben "Energie-Zähler CCU" drücken. Dadurch setzt du die interne Systemvariable des Zählers zurück. Das beeinflußt nicht die eigenen Systemvariablen, die das Script benutzt.

Rene2000
Beiträge: 7
Registriert: 19.11.2019, 17:24

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Rene2000 » 14.11.2021, 10:02

Ich habe folgendes getestet:

Das Programm "Aktualisierung Hauszähler" deaktiviert.
Den Resetbutton geklickt und der Energiezähler CCU arbeitet einwandfrei.
Sobald ich das Programm aktiviere ensteht der Fehler.
Wo braucht meine Logik ein Denkanstoss?
01 Nach  druck auf Reset.jpg
02 Datenuebertragung.jpg
03 Programm aktiviert.jpg
Nachtrag:
Wie schon erwähnt bekomme ich keine Ausgabe im unteren Feld "WriteLine" wenn ich den aktuellen Zählerstand über das Script setzte.

Code: Alles auswählen

! Skript um den initialen Referenzwert des Hausanschlusszaehlers
! der CCU mitzuteilen bzw. diesen zu aktualisieren.

string type = "Strom"; ! 'Strom', 'Wasser' oder 'Gas'
real value = 35145.18;  ! Zaehlerstand in kWh oder m3

! ACHTUNG: Ab hier KEINE Aenderungen mehr
object device = dom.GetObject("Hausanschluss-" # type);
if(device)
{
  string channel = "GAS_ENERGY_COUNTER";
  if(type == "Strom") { channel = "ENERGY_COUNTER"; }

  object counter = dom.GetObject("BidCos-RF." # device.Address() # ":1." # channel);
  if(counter)
  {
    real curValue = counter.Value();
    if(type == "Strom") { curValue = curValue / 1000.0; }    

    object c = dom.GetObject(type # " Referenz Zaehlerstand");
    c.State(value - curValue);
    WriteLine("Referenz Zaehlerstand wurde gesetzt auf: " # value - curValue);
  }
}
Zuletzt geändert von Rene2000 am 14.11.2021, 10:33, insgesamt 2-mal geändert.

Hütte
Beiträge: 746
Registriert: 08.02.2017, 11:08
Hat sich bedankt: 32 Mal
Danksagung erhalten: 75 Mal

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Hütte » 14.11.2021, 10:21

Dann poste mal das Script, so wie du es benutzt hast, um die initialen Werte zu setzen. Und welchen Sensor benutzt du am Zähler?

Rene2000
Beiträge: 7
Registriert: 19.11.2019, 17:24

Re: Zählersensor HM-ES-TX-WM - Universelle Zählerstandberechnung

Beitrag von Rene2000 » 14.11.2021, 10:56

Script für den aktuellen Zählerstand:

Code: Alles auswählen

! Skript um den initialen Referenzwert des Hausanschlusszaehlers
! der CCU mitzuteilen bzw. diesen zu aktualisieren.

string type = "Strom"; ! 'Strom', 'Wasser' oder 'Gas'
real value = 35145.18;  ! Zaehlerstand in kWh oder m3

! ACHTUNG: Ab hier KEINE Aenderungen mehr
object device = dom.GetObject("Hausanschluss-" # type);
if(device)
{
  string channel = "GAS_ENERGY_COUNTER";
  if(type == "Strom") { channel = "ENERGY_COUNTER"; }

  object counter = dom.GetObject("BidCos-RF." # device.Address() # ":1." # channel);
  if(counter)
  {
    real curValue = counter.Value();
    if(type == "Strom") { curValue = curValue / 1000.0; }    

    object c = dom.GetObject(type # " Referenz Zaehlerstand");
    c.State(value - curValue);
    WriteLine("Referenz Zaehlerstand wurde gesetzt auf: " # value - curValue);
  }
}


Script für den Zählertstand letzte Ablesung:

Code: Alles auswählen

! Skript um den initialen Zählerstand des Hausanschlusszaehlers 
! bei der letzten Ablesung durch den Energieversorger der CCU mitzuteilen

string type = "Strom"; ! 'Strom', 'Wasser' oder 'Gas'
real value = 33887.20;  ! Zaehlerstand in kWh oder m3

! ACHTUNG: Ab hier KEINE Aenderungen mehr
object a = dom.GetObject(type # " Referenz Ablesung");
if(a)
{
  a.State(value);
  WriteLine(a.Name() # " auf " # value # " gesetzt");
}
Geräte.jpg
Am Stromzähler benutze ich den Ferraris-Stromzähler-Sensor ES-Fer. Den habe superkorrekt eingestllt. Über mehrere Tage die Wert. verglichen.
Stromzähler -CCU passt super genau.

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“