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

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 » 04.04.2021, 18:30

Hallo Hütte,

Danke für den Hinweis.

Done.

Gruß

Michael

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

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

Beitrag von NilsG » 04.04.2021, 20:04

MichHan hat geschrieben:
04.04.2021, 15:04
Bitte prüfen:

a) die Auslösebedingung für das Script bei normalem Wasserverbrauch
b) die richtige Benennung des Zählers für den Kanal 1 (!). Auf dem Screenshot sieht es so aus, dass der Kanal 0 "Zähler-GartenWasser" und der Kanal 1 "Zähler-GartenWasser 1" heißen. Da auf Kanal 1 gezählt wird scheint mir die Benennung hier falsch zu sein.
Moin Michael!

Danke für Deinen Support.

Guck mal meine Zähler bitte:

Bildschirmfoto 2021-04-04 um 19.56.18.png
Der Kanal "1" ist immer korrekt benannt und funktioniert auch bei den anderen 3 Zählern!

Es kommen auch irgendwie Impulse an.
Aktualisierung wird allerdings noch immer nicht protokolliert.

Das Programm zum Triggern:

Bildschirmfoto 2021-04-04 um 20.17.20.png

Die Einstellungen des Zählers selbst:

Bildschirmfoto 2021-04-04 um 20.20.03.png
(die Wasseruhr liefert einen Impuls/Liter)






Ich checke partout den Fehler nicht :/
Alles wie bei den anderen Zähler auch
Grüße und DANKE! 🍻

Nils

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

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 - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Hütte » 04.04.2021, 23:02

Hallo Nils,

OK, die Benennung des Kanals 2 ist nun wirklich etwas verwirrend gewesen. Eine "1" am Ende des Names von Kanal 2 machte die Sache bei der Analyse nicht wirklich einfach.

Das Programm sieht soweit eigentlich ganz gut aus.

Viele Optionen bleiben nicht mehr. Aber machen wir mal weiter, um die "Kuh vom Eis" zu bekommen. 8)

Woran machst du fest, dass Impule "irgendwie" ankommen?

Prüfe mal, ob der Zähler die Daten des Sensors erfasst. Wenn du am Zähler direkt die mittlere der drei Tasten unter der Anzeige drückst, dann sollte dir in der Anzeige die erfasste Menge angezeigt werden. Steht dort weiterhin ein "0", dann erfasst der Sensor die Impule nicht. Wenn da was anderes steht, dann weiter mit dem nächsten Schritt. Ansonsten den Sensor prüfen.

Setze mal, falls nicht bereits geschehen, den Kanal in den Geräteeinstellungen auf "Protokolliert". Dann sollten nach einer Übertragung an die Zentrale alle Zählerwerte, inkl. der dem Kanal zugeordneten SV, im Systemprotokoll auftauchen. Bei mir ist dies gerade jedenfalls der Fall - auch für die Variable mit "Aktualisierung" am Ende, da ich es gerade getestet habe.

Als Nächstes solltes du den Haken in deinem Programm bei "Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern)." im DANN-Zweig rausnehmen. Denn im ungüngstigsten Fall senden beide Wasserzähler fast gleichzeitig, und der Zähler für den Gartenzähler ganz kurz bevor der Hauptzähler sendet. Schließlich laufen beide Zähler ja dann auch gleichzeitig. Dadurch wird dessen Scriptaufruf (für den Gartenwasserzähler) einfach abgebrochen und das Script wurde entweder gar nicht oder nur teilweise ausgeführt, so dass eventuell bereits einige SV aktualisiert wurden, aber eben nicht alle. Im Original-Programm von Jens ist dieser Haken übrigens auch nicht gesetzt. Macht ja auch Sinn, da jeder Trigger (Zähler) auf ein anderes Gerät zugreift, um die Daten auszulesen.

Wenn das auch nicht helfen sollte, dann bleibt ja fast nur noch die Option, dass das Programm irgendwann was abbekommen hat. Dann setze mal das Programm auf inaktiv und erstelle ein neues Programm mit denselben Triggern, Zeitmodul und Script im "DANN"-Zweig und lass auch hier den Haken bei "Vor dem Ausführen alle laufenden Verzögerungen für diese Aktivitäten beenden (z.B. Retriggern)." weg. Bin mir gerade nicht sicher, ob der standardmäßig gesetzt ist oder nicht. Wahrscheinlich ist der Haken standardmäßig gesetzt und passt auch für 99% der Programme. Aber es gibt da eben dieses kleine 1% an Ausnahmen.

Aber wenn dieser Haken (aktuell meine Hauptvermutung) sich als eigentliche Ursache herausstellen sollte, dann war es mal eine etwas "schwierigere Geburt" und Michael sollte hier den Screenshot auf der ersten Seite anpassen, damit nicht weitere Nutzer auf dasselbe Problem stossen.

Und dann habe ich nun auch eine Frage an dich. Welche Zähler (sowohl als Hauptzähler als auch für das Gartenwasser) genau sind bei dir im Einsatz? Und welche Sensoren benutzt du dafür? Denn diese beiden Zähler kann ich bei mir aktuell noch nicht auswerten. Habe bisher noch keine passenden Sensoren dafür gefunden. Und wenn es die gibt, dann sollten diese Sensoren einerseits direkt mit dem HM-ES-TX-WM funktionieren und andererseits auch keinen "Bastelaufwand" benötigen. Für "Bastelaufwand" habe ich im Moment einfach keinen Nerv mehr übrig.

Gruß, Hütte

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

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

Beitrag von NilsG » 05.04.2021, 09:03

Moin Hütte!

Nochmal Danke, dass Du Dich dem so intensiv annimmst.

Das die Zähler Impulse verarbeiten, sehen ich an den anderen Variablen, die anscheinend (nun) funktionieren.
Habe gerade mal 8 Liter in einen Eimer abgefüllt.

577C35B2-1824-4361-9419-E8D4A6250073.jpeg

Nachwievor lediglich die „Aktualisierung“ und die „Umrechnung auf Liter“ funktioniert nicht.


Frohe Ostern 🐣!
Grüße und DANKE! 🍻

Nils

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

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 - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Hütte » 05.04.2021, 12:34

Hallo Nils

Dass die Umrechnung auf Liter auch nicht stimmt, ist ein guter Hinweis. Denn es sieht so aus, dass an der Stelle, wo die Umrechnung stattfindet, das Programm abbricht. Dann sollte eigentlich auch im Syslog ein Script-Runtime-Fehler aufschlagen.

Wahrscheinlich stimmt nämlich etwas mit der Variable "GartenWasser Verbrauch heute l" nicht, so dass nicht in die Variable geschrieben werden kann und es dadurch zum Abbruch des Programmes kommt. Dadurch wird dann auch nicht mehr in die Variable "GartenWasser Aktualisierung" geschrieben.

Viele Grüße,
Hütte

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

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

Beitrag von NilsG » 05.04.2021, 18:25

Moin!

Wo kann ich denn das Log-File auslesen?

Die Stelle des Scrits passt ja:

Code: Alles auswählen

  ! * Wenn der Wasser- oder Gartensensor aufgerufen hat, dann müssen wir die entsprechende
      ! * Variable für "XXX Verbrauch heute l" laden
      if ( (type == "Wasser") || (type == "GartenWasser"))
      {
        object oVerbrauch_heute_l = sysvar.Get(type # " Verbrauch heute l");
      }

      ! Jetzt machen wir die Inkrementberechnung
      ! * Wenn die Variable "XXX Zaehlerstand Messgeraet Log" noch nicht gesetzt wurde (= 0), dann
      ! * wird der letzte Zaehlerstand des Messgerätes verwendet

      if ( oZaehlerstand_Messgeraet_Log.Value() == 0 )
      {
        oZaehlerstand_Messgeraet_Log.State(lastValue);
      }
       real vInkrement_Geraetezaehler = ( curValue - oZaehlerstand_Messgeraet_Log.Value() );

      ! * Der Faktor wird für den aktuellen Verbrauch benötigt, da der bei Wasser nur als Angabe in
      ! * l Sinn macht
      if ( (type == "Wasser") || (type == "GartenWasser"))
      {
        vFaktor_l = 1000.0;
      }
      else
      {
        vFaktor_l = 1.0;
      }

      ! Jetzt wird das Inkrement zum letzten Zaehlerstand berechnet
      ! * Dabei muss der Umrechnungsfaktor für die Wasserzaehlung identifiziert und gesetzt werden
      ! * Strom und Gas benötigen keine Umrechnung (Wasser = l; Strom = kWh; Gas = m3).
      ! * vUmrechnungsfaktor wird für den Fall des Batteriewechsels bzw. Zählerüberlaufs benötigt
      ! * (auch noch später)
      if ( type == "Strom_neu"  )
      {
        vUmrechnungsfaktor = 1000.0;
        vInkrement_Geraetezaehler = vInkrement_Geraetezaehler / vUmrechnungsfaktor;
      }
Ich lösche die Variable nochmal und lege die neu an
Grüße und DANKE! 🍻

Nils

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

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 - Zählerstandberechnung - Batteriewechsel berücksichtigt

Beitrag von Hütte » 06.04.2021, 09:09

Hallo Nils,

Falls du CUxD installiert hat, dann ist es ganz einfach. Die CUxD-Seite aufrufen, in der oberen Reihe auf "Info" klicken und dann unter dem Ausgabe-Fenster auf "Full Syslog". Dann werden dir die letzten Zeilen angezeigt. Wenn du mehr sehen möchtest, dann oben Rechts auf "All" klicken.

Viele Grüße,
Hütte

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

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

Beitrag von NilsG » 06.04.2021, 11:34

Moin!

Du hattest Recht, in der CuXD im log taucht ein Fehler auf:
Apr 6 09:37:05 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Universelle Zaehlerstandberechnung fuer HM-ES-TX-WM ! ! Copyright (c) 2016-2018 Jens Maus <mail@jens-maus.de> ! Adaptiert Michael Hansen, 01/2021, V1.0; neue Kommentare sind mit ! * gekennzeichnet ! * V1.1 - Abfrage eingefügt, ob sich das Inkrement geändert hat. Nur dann wird gerechnet ! * Fehler in der Berechnung des aktuellen Verbrauchs beseitigt ! * V1.2 - Änderung, dass in den CCU internen Energiezähler der Verbrauch seit der
etzten ! * Ablesung geschrieben wird (wie beim Originalskript von Jens)# ! * V1.3 - Zurücksetzen des täglichen Wasserverbrauchs in l ist ergänzt ! 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 7501 Variable) und danach entscheiden wir was wir ! zu tun haben. object counter = dom.GetObject("7501"); if(counter) { object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES); ! Wenn TypeName vom Typ HSSDP ist dann wurd
das Program durch
An dieser Stelle ist ein RunTimeError:

Code: Alles auswählen

! 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);
Grüße und DANKE! 🍻

Nils

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

Xel66
Beiträge: 14086
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 581 Mal
Danksagung erhalten: 1492 Mal

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

Beitrag von Xel66 » 06.04.2021, 12:34

Das Scipt liest $src$ aus. Das ist der Trigger, der das Programm angestoßen hat. Wenn Du wie oben dargstellt, das Programm manuell oder über das Zeitmodul startest, dann hat dieser Wert den falschen Inhalt und es kann nicht ordnungsgemäß abgearbeitet werden, weil der Zähler, dessen Werte aktuell behandelt werden sollen, nicht ermittelt werden kann. Ansonsten braucht das Script exakte Geräte- bzw. Variablenbezeichungen incl. enthaltener Leerzeichen (auch am Ende!).

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

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

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

Beitrag von NilsG » 06.04.2021, 12:43

Moin!

Hmm, übersetz das mal bitte für Laien ;)
Grüße und DANKE! 🍻

Nils

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

Antworten

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