Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 31.01.2021, 20:49

Die Sensoren sind wie folgt eingestellt:
Bildschirmfoto 2021-01-31 um 20.45.46.png
Bildschirmfoto 2021-01-31 um 20.45.20.png
Bildschirmfoto 2021-01-31 um 20.44.50.png
Und damit kamen in dem "alten Script" die richtigen Daten an!

alte Abfrage:
Bildschirmfoto 2021-01-31 um 20.48.13.png
Deine aktuelle Abfrage:
Bildschirmfoto 2021-01-31 um 20.48.40.png
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 31.01.2021, 21:41

Hallo Nils,

folgendes ist mir aufgefallen:

- der Gaszähler wird bei Jens und auch bei mir mit "Energie Gas-Zähler Gerät" und m3 ausgelöst (bei Dir mit "Energie Zähler Gerät" und Wh)
- das Zeitmodul hast Du auf 00:00 stehen, muss aber auf 00:01 stehen - sollte jetzt bei der Fehlersuche aber keine Rolle spielen

Um den Fehler bei Dir einzugrenzen folgender Tip:

Erstelle Dir einige zusätzliche Variablen, die Du an verschiedenen Stellen im Skript einbaust, und die Du dann prüfen kannst:

dom.GetObject("Dein Variablenname").State();

Z.B. so:

Code: Alles auswählen

      if(counter.TypeName() == "HSSDP")
  {

    dom.GetObject("Dein Variablenname 1").State("Nach HSSDP - " # system.Date("%F %X"));
    
    ! Nun holen wir unmittelbar am anfang alle counter relevanten Daten ab
    ! und speichern sie fuer spaeter zwischen und berechnen auch gleich


oder

Code: Alles auswählen

    if (vVeraenderung_Zaehlerstand <> 0)
    {
      ! Nun extrahieren wir den Zaehlertyp (Gas, Wasser, Strom) -> hier muss Garten erweitert werden
      ! 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);
   
      dom.GetObject("Dein Variablenname 2").State(type # " erkannt - " # system.Date("%F %X"));
      
      ! Nun holen wir alle notwendigen Systemvariablen zum Lesen und Speichern
      ! unserer verschiedenen Zaehlerwerte
Auf diese Weise kannst Du eingrenzen, wo es hängt.

Das Skript läuft bei mir ohne Probleme und verrichtet seinen Dienst.

Gruß

Michael

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 31.01.2021, 21:46

Ok, das mit dem "Energie Gas-Zähler Gerät" hatte ich auch schon angeschaut.

Ist aber rin dem "alten" Script von Jens (bei mir) auch so, wie ich es jetzt habe.
Meine Biogas-Therme wirft kWh aus

Ich habe dazu dann bei Dir die Faktoren einfach mal auf "1" gesetzt.

Code: Alles auswählen

! * Wenn der Gassensor aufgerufen hat, dann müssen wir die die Variable "Gas Verbrauch Jahr kWh"
      ! * für Gas laden
      if ( type == ( "GAS" ) )
      {
        object oVerbrauch_Jahr_kWh = sysvar.Get(type # " Verbrauch Jahr kWh");
        ! * Damit wir die kWh berechnen können, werden die Faktoren für die Umrechnung bei Gas
        ! * m3 -> kWh benötigt
        real vZustandszahl = 1;
        real vFaktor = 1;
      }
Das sind ja aber alles nur Rechenoperationen; erstmal muss ja überhaupt was ankommen! :roll:

Ich habe das 1:1 kopiert von Dir und NUR die Namen der Variablen entsprechend geändert
Ich dachte erst, dass das Script ggf. nocht mit den Leerzeichen zwischen "WASSER" und "(Haus)"etc. zurechtkommt.
Aber das scheint es ja nicht zu sein, sonst würde hier ja auch nix rauskommen.
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 31.01.2021, 22:15

Ich nochmal, sorry!
Aber das läßt mich grad nicht los :oops:

Hier machst Du irgendwas mit dem GAS_ENERGY_COUNTER

Code: Alles auswählen

  ! 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)
        {
          ! * Aktueller Zaehlerstand ist kWh. Die Variable erwartet Wh und rechnet dies dann ggf. in der Anzeige
          ! * selbst in kWh um
          oSysVarEnergyCounter.State(oVerbrauch_Ablesung.Value() * 1000 );
        }
      }
      else
      {
        object oSysVarEnergyCounter = sysvar.Get("svEnergyCounterGas_" # channel.ID() # "_" # channel.Address());
        if(oSysVarEnergyCounter)
        {
          oSysVarEnergyCounter.State(oVerbrauch_Ablesung.Value() );
        }
      }

Den habe ich ja "nur" bei meine beiden Wasser-Zählern, wobei auch nur bei einem was ankommt, obwohl bei den gleich eingestellt sind.

Die anderen beiden sind ja auf IR bzw LED eingestellt.
Keine Ahnung, ob das damit zu tun hat?!?
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 01.02.2021, 07:51

Hallo Nils,

das ist unverändert von Jens übernommen.
In diesem Teil wird der Energiezähler der CCU auf den Verbrauch seit der letzten Ablesung gesetzt.
Dabei wird abgefragt, welchen HssType das Gerät hat, welches das Skript aufgerufen hat:

Code: Alles auswählen

 if(counter.HssType() != "GAS_ENERGY_COUNTER")
Wenn es nicht ein GAS_ENERGY_COUNTER ist (d.h. am Energiesensor selbst ist Strom ausgewählt), dann geht es
in die if-Anweisung.

Wenn es ein GAS_ENERGY_COUNTER ist (d.h. am Energiesensor selbst ist Gas ausgewählt), dann geht es in die
else-Anweisung.

Gruß

Michael

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 01.02.2021, 08:16

Moin!

Ok. tja, dann weiß ich aktuell auch nicht weiter :(

Vielleicht hat ja noch jemand eine Idee?!
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 01.02.2021, 19:02

Hallo Nils,

ich habe, als Test, bei mir den Stromzähler ausgebunden und ein neues Programm für den Stromzähler aufgesetzt. Dann das Skript von Seite 1 reinkopiert und dass dann laufen lassen.
Klappt ohne Probleme und nach 2 Minuten kommt die erste Aktualisierung rein.

Mein Stromzähler steht auf LED, wie Deiner.

Wahrscheinlich hast Du irgendwo in den Variablen oder bei den Änderungen im Skript einen Fehler drin.

Gruß

Michael

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 01.02.2021, 23:18

Moin Michael!

Ich habe nun mal alle "alten" Variablen gelöscht, die alten Programme gelöscht.
Dann hatte ich noch eine Variable falsch geschrieben und nun gehts :P

Jetzt warte ich mal den Tageswechsel ab 8)

DANKE!!! ✌🏻🍻
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

Benutzeravatar
NilsG
Beiträge: 1715
Registriert: 09.08.2013, 23:44
System: CCU
Hat sich bedankt: 395 Mal
Danksagung erhalten: 30 Mal
Kontaktdaten:

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von NilsG » 02.02.2021, 19:00

Sieht gut aus :P

Eine Ergänzung noch dazu:
die "Aktualisierung" in Deinem Script ist eine andere als bei Jens.
"Deine" schreibt immer den Zeitpunkt des tatsächlichen Datensatzes, was ja auch gut/besser ist.
Das von Jens hat - meine ich - immer die den Zeitpunkt gerschrieben, wenn die HM-TX gesendet haben.

Hatte zwar den Vorteil, dass man tatsächlich die Impulse "sieht" ankommen (oder auch nicht, wenn nix ankommt)
Ist man jetzt aber am Testen z.B. mit dem Bereich Wasser und es läuft keines, dann stehen da ewig die ???.
DAS hat mich auch komplett verwirrt anfangs.

DANKE auf jeden Fall nochmal! Funktioniert auch super mit dem Batteriewechsel, den ich natürlich gleich ausprobiert habe :mrgreen:
Grüße und DANKE! 🍻

Nils

-----------------------------------------
CCU3 + 2x LAN-Gateway

MichHan
Beiträge: 33
Registriert: 25.12.2020, 10:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 19 Mal

Re: Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von MichHan » 02.02.2021, 22:45

Hallo Nils,

freut mich, dass alles klappt. Es war sehr wahrscheinlich der Variablenfehler, den Du beschrieben hast.

Das, was in die Aktualisierung geschrieben wird, ist genau gleich, wie bei Jens. Ich habe aber eine Abfrage eingefügt (in V1.1),
die nur dann Obejct und Stati abfragt, wenn sich auch der Zählerstand geändert hat. Der Energiesensor meldet sich von sich aus alle
paar Minuten an der CCU, auch wenn es keinen Verbrauch gegeben hat (das, was Du als Impuls beschreibst). Ich mache das, um Traffic zu minimieren:

Code: Alles auswählen

    ! 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();
    real vVeraenderung_Zaehlerstand = ( curValue - lastValue );

    ! * Wir prüfen, ob es überhaupt einen Energieverbrauch gegeben hat und nur dann geht es in die
    ! * Berechnungen
    if (vVeraenderung_Zaehlerstand <> 0)
    {
Das Entscheidende ist die Zeile:

if (vVeraenderung_Zaehlerstand <> 0)

Nur wenn es eine Veränderung gegeben hat, dann geht es weiter.

Wenn also, wei bei Dir, kein Wasser läuft, dann wird das Skript an dieser Stelle nicht weitergeführt und die Aktualisierung bleibt auf dem letzten
Stand einer Veränderung.

Jens hat diese Abfrage nicht und so wird auch die Variable Aktualisierung erneutert, wenn es keine Änderung im Zählerstand gibt.

Ich arbeite gerade noch an der Kostenaktualisierung der Energieverbräuche. Wenn es steht und funktioniert, dann plane ich das auch zu posten.
Ich berücksichtige dann die Grundpreise und Arbeitspreise auf Monatsbasis (wenn man innerßhalb des Jahres den Energieversorger wechselt).

Gruß

Michael

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“