Zählersensor HM-ES-TX-WM - Zählerstandberechnung - Batteriewechsel berücksichtigt
Moderator: Co-Administratoren
- 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
Die Sensoren sind wie folgt eingestellt:
Und damit kamen in dem "alten Script" die richtigen Daten an!
alte Abfrage:
Deine aktuelle Abfrage:
Und damit kamen in dem "alten Script" die richtigen Daten an!
alte Abfrage:
Deine aktuelle Abfrage:
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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:
oder
Auf diese Weise kannst Du eingrenzen, wo es hängt.
Das Skript läuft bei mir ohne Probleme und verrichtet seinen Dienst.
Gruß
Michael
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
Das Skript läuft bei mir ohne Probleme und verrichtet seinen Dienst.
Gruß
Michael
- 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
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.
Das sind ja aber alles nur Rechenoperationen; erstmal muss ja überhaupt was ankommen!
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.
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;
}
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
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
- 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
Ich nochmal, sorry!
Aber das läßt mich grad nicht los
Hier machst Du irgendwas mit dem GAS_ENERGY_COUNTER
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?!?
Aber das läßt mich grad nicht los
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() );
}
}
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
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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:
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
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")
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
- 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
Moin!
Ok. tja, dann weiß ich aktuell auch nicht weiter
Vielleicht hat ja noch jemand eine Idee?!
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
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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
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
- 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
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
Jetzt warte ich mal den Tageswechsel ab
DANKE!!!
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
Jetzt warte ich mal den Tageswechsel ab
DANKE!!!
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
- 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
Sieht gut aus
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
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
Grüße und DANKE!
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
Nils
-----------------------------------------
CCU3 + 2x LAN-Gateway
-
- 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
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:
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
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)
{
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