Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Moderator: Co-Administratoren
- 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
Moin Michael!MichHan hat geschrieben: ↑04.04.2021, 15:04Bitte 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.
Danke für Deinen Support.
Guck mal meine Zähler bitte:
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:
Die Einstellungen des Zählers selbst:
(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
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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.
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
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.
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
- 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
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.
Nachwievor lediglich die „Aktualisierung“ und die „Umrechnung auf Liter“ funktioniert nicht.
Frohe Ostern !
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.
Nachwievor lediglich die „Aktualisierung“ und die „Umrechnung auf Liter“ funktioniert nicht.
Frohe Ostern !
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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
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
- 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
Moin!
Wo kann ich denn das Log-File auslesen?
Die Stelle des Scrits passt ja:
Ich lösche die Variable nochmal und lege die neu an
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;
}
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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
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
- 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
Moin!
Du hattest Recht, in der CuXD im log taucht ein Fehler auf:
Du hattest Recht, in der CuXD im log taucht ein Fehler auf:
An dieser Stelle ist ein RunTimeError: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
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
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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
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
- 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
Moin!
Hmm, übersetz das mal bitte für Laien
Hmm, übersetz das mal bitte für Laien
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway