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

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

Moderator: Co-Administratoren

Borland
Beiträge: 415
Registriert: 28.10.2015, 21:12
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von Borland » 18.03.2018, 15:02

Ok, dass schaue ich mir an.
Wenn ich das finde wo man das macht, dann setze ich das halt auf den 01.04.

Danke Dir!

Grüße

B.

Nudge
Beiträge: 91
Registriert: 30.01.2017, 11:42

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

Beitrag von Nudge » 18.03.2018, 20:05

Das ist die Stelle im Code:

Code: Alles auswählen

! Nach Jahresanfang pruefen
if(system.Date("%m") == "01")
01 = Januar
12 = Dezember

Du mußt das dann auf "04" für 01.04. setzen.

g60vx
Beiträge: 170
Registriert: 16.04.2015, 21:48
Hat sich bedankt: 12 Mal

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

Beitrag von g60vx » 19.03.2018, 23:19

Hallo Jens,

ich würde dein tolles Skript gerne für meinen S0 Wired Zähler einsetzen. Ich habe folgende DP:
  • - EG.HBW-Sen-EP:1-Strom_WP
    - EG.HBW-Sen-EP:2-Strom_Haus
    - EG.HBW-Sen-EP:3-Wasser

Code: Alles auswählen

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

    string type = "Strom_WP"; ! 'Strom_WP', 'Strom_Haus' oder 'Wasser'
    real value = 3978.900;  ! Zaehlerstand in kWh oder m3

    ! ACHTUNG: Ab hier KEINE Aenderungen mehr
    object device = dom.GetObject("EG.HBW-Sen-EP:1" # type);
    if(device)
    {
      string channel = "GAS_ENERGY_COUNTER";
      if(type == "Strom_WP") { channel = "ENERGY_COUNTER"; }

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

        object c = dom.GetObject(type # " Referenz Zaehlerstand");
        c.State(value - curValue);
        WriteLine("Referenz Zaehlerstand wurde gesetzt auf: " # value - curValue);
      }
    }
Channel=ENERGY_COUNTER -> Diesen Kanal hat mein Wiredgerät nicht sondern nur WATT_STUNDEN oder GESAMT
Bidcos-RF -> Bidcos-Wired

Was muss ich am Skript ändern? Hat vielleicht einer eine Idee :o

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ählerstandberech

Beitrag von NickHM » 20.03.2018, 07:53

Guten Morgen

wie wäre es mal mit probieren?
Ist "Watt_Stunden" der aktuelle Verbrauch? Dann wäre wohl eher "Gesamt" der richtige Datenpunkt.

So weit ich mich erinnere zählt der HM Sensor auch Wh. Also wäre das auch kein "Problem" bzw. würde sich durch ausprobieren rel. schnell feststellen lassen.

Dann ist noch die Frage, wann der Zähler intern auf 0 überläuft. Das müsste entsprechend angepasst werden.

Borland
Beiträge: 415
Registriert: 28.10.2015, 21:12
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von Borland » 20.03.2018, 10:09

Nudge hat geschrieben:Das ist die Stelle im Code:

Code: Alles auswählen

! Nach Jahresanfang pruefen
if(system.Date("%m") == "01")
01 = Januar
12 = Dezember

Du mußt das dann auf "04" für 01.04. setzen.
Vielen Dank :-)

g60vx
Beiträge: 170
Registriert: 16.04.2015, 21:48
Hat sich bedankt: 12 Mal

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

Beitrag von g60vx » 20.03.2018, 15:57

Ich hab mir die xml angeschaut.
GESAMT=COUNTER
WATT_STUNDEN=COUNTERWH
type=float mit max=4294967295

Ich werde mal heute abend testen.

Jurij13
Beiträge: 20
Registriert: 09.01.2018, 20:06

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

Beitrag von Jurij13 » 27.03.2018, 20:42

Hallo Jens,

super Script von dir, läuft bei mir einwandfrei, vielen Dank dafür. Bisher hatte ich nur Strom und Gas gebraucht.
Natürlich kam jetzt noch der Wunsch hinzu das ich das auch mit dem Wasserverbrauch realisiere.
Zum Glück habe ich wohl die gleiche Hardware, bezogen auf die Wasseruhr wie du sie bei dir hast.

Ich habe jetzt den Wassersensor HRI-B4/D1/8L-HRI-PulseUnit, genauso einen wie du den hast, auf meinen Wasserzähler Sensus 620C montiert.
Ebenfalls die entsprechende viewtopic.php?f=27&t=23005&start=140#p199093 Wiederstandsschaltung realisiert.
Der Wassersensor gibt Impulse die ich entsprechend mit dem Sender HM-ES-TX-WM weiter an die CCU senden kann.

Ich hätte dazu aber noch eine Frage:
1. Auf der CCU unter Einstellungen/Geräte/HM-ES-TX-WM (bei mir Zaehler-Wasser), hast du da den Sender bei den Kanalparameter als Sensor-Typ "Gas" oder als Sensor-Typ "Unbekannt" eingetragen. Hier würden mich also der Typ sowie deine Einstellungen interessieren. Ich habe den Kanalparameter als Sensor-Typ "Gas" genommen und als Gas-Zählerkonstante einen Wert von 0.001 m3/Imp.

Ich erhalte nicht so genaue Werte wie ich mir erhoffe. Wenn ich 100 Liter Wasser entnehme, abgelesen an der Wasseruhr, zeigt mir die CCU ca. einen Verbrauch von 110 Litern an.
Eventuell habe ich ja auch irgendwas komplett falsch gemacht.

Deine weiteren beiden Scripte "initialen Referenzwert und Zählerstand" habe ich aufgrund der Komma-Setzung (natürlich Punkt) nicht so richtig durchgeführt.
Da kamen immer utopische Werte heraus. Ich nehme mal an weil ich den Punkt nie richtig gesetzt habe. Mal hatte ich minus, mal ein dickes plus.
Daher habe ich die Werte über die App Pocket Control gesetzt.

Anbei zwei Bilder, vielleicht helfen die meinen Fehler zu erkennen. Wenn du mir oder natürlich auch jeder andere gerne, helfen könnt oder einen Tipp geben könnt, würde ich mich natürlich freuen.

Grüße Jurij
Bild vor den 100 Litern.png
Bild vor den 100 Litern
Bild nach 100 Litern.png
Bild nach den 100 litern

Slice
Beiträge: 1200
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 139 Mal
Danksagung erhalten: 85 Mal

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

Beitrag von Slice » 28.03.2018, 21:40

Hallo,

ich verwende das Skript nun doch recht lange, aber seit dem 23.03. werden meine Stände nicht mehr aktualisiert.
Um kurz vor 0:00 Uhr wird mir ein Email geschickt:

letzte Stromverbrauchswerte vom Stand 22.03.2018:
Stromverbrauch heute: 12.306 kWh, Stromverbrauch gestern: 12.338 kWh

Dann:
letzte Stromverbrauchswerte vom Stand 23.03.2018:
Stromverbrauch heute: 20.142 kWh, Stromverbrauch gestern: 12.306 kWh.

Und:
letzte Stromverbrauchswerte vom Stand 24.03.2018:
Stromverbrauch heute: 43.749 kWh, Stromverbrauch gestern: 12.306 kWh.

Dieses Skript erledigt das dafür:

Code: Alles auswählen

string KumVerbrauchHeute = dom.GetObject("Strom Verbrauch heute").Value().ToString(3);
string KumVerbrauchGestern = dom.GetObject("Strom Verbrauch gestern").Value().ToString(3);
string KumVerbrauchWoche = dom.GetObject("Strom Verbrauch Woche").Value().ToString(3);
string KumVerbrauchletzteWoche = dom.GetObject("Strom Verbrauch letzte Woche").Value().ToString(3);
string KumVerbrauchMonat = dom.GetObject("Strom Verbrauch Monat").Value().ToString(3);
string KumVerbrauchletzterMonat = dom.GetObject("Strom Verbrauch letzter Monat").Value().ToString(3);
string KumVerbrauchJahr = dom.GetObject("Strom Verbrauch Kalenderjahr").Value().ToString(3);
string KumZaehlerstand = dom.GetObject("Strom Zaehlerstand").Value().ToString(3);
! Mail-Text zusammensetzen
string Nachricht;
string sDate = system.Date("%d.%m.%Y");
Nachricht = " \r\n anbei die letzten Stromverbrauchswerte vom Stand " # sDate # ": \r\n";
Nachricht = Nachricht # "Stromverbrauch heute: " # KumVerbrauchHeute # " kWh, Stromverbrauch gestern: " # KumVerbrauchGestern # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Woche: " # KumVerbrauchWoche # " kWh, Stromverbrauch letzte Woche: " # KumVerbrauchletzteWoche # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Monat: " # KumVerbrauchMonat # " kWh, Stromverbrauch letzter Monat: " # KumVerbrauchletzterMonat # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Kalenderjahr: " # KumVerbrauchJahr # " kWh. \r\n";
Nachricht = Nachricht # "Der Stromzaehlerstand betraegt aktuell: " # KumZaehlerstand # " kWh. ";
! Nachricht in Variable füllen und E-Mail absenden
dom.GetObject("Mailtext").State(Nachricht);
! Nachricht per CUxD senden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 10");
Um 0:00 Uhr läuft dann dieses Skript hier und sollte die Werte zurücksetzen, tut es aber leider nicht mehr.

Gestern habe ich auch versucht nochmal von vorne anzufangen und das Initalskript ausgeführt, aber heute Nacht dann:
letzte Stromverbrauchswerte vom Stand 25.03.2018:
Stromverbrauch heute: 60.392 kWh, Stromverbrauch gestern: 12.306 kWh.

Bis zu dem Zeitpunkt lief es ohne Probleme, hat das noch jemand?
Ich verwende die letzte FW mit Community Rega.

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
----------------------------------------------------------------------------------------

Benutzeravatar
19Homer73
Beiträge: 42
Registriert: 31.10.2016, 12:57
Hat sich bedankt: 2 Mal

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

Beitrag von 19Homer73 » 29.03.2018, 08:39

Guten Morgen,

ich habe in meinem Fehlerlog folgende Meldung bekommen:

IseESP::ExecDP: WARNING: incorrect use of Device() (use Channel()):

Diese taucht dort alle zwei Minuten auf.

Das Script läuft seit ca. einem halben Jahr ohne Probleme und auch jetzt stimmen alle Werte.
Allerdings habe ich vor Kurzem ein Update der Raspberry-Matic Firmware auf RaspberryMatic-2.31.25.20180120-rpi3 gemacht.

Am Script selbst habe ich keine Änderungen gemacht.

Wo liegt der Fehler?
Was muss ich im Script ändern?

Vielen Dank im Voraus für Eure Hilfe!

Güße,
Homer

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

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

Beitrag von jmaus » 29.03.2018, 09:06

19Homer73 hat geschrieben: Wo liegt der Fehler?
Was muss ich im Script ändern?
Na das steht doch klipp und klar in der Warnmeldung: D.h. suche in deinem Skript das "Device()" und ersetze es gegen "Channel()".
Zuletzt geändert von jmaus am 29.03.2018, 09:08, insgesamt 1-mal geändert.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

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