Howto - Zähler-Skripte für HM-ES-TX-WM (per zPNP)

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

Moderator: Co-Administratoren

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 04.11.2019, 15:19

So, jetzt nochmal von vorn :wink:
Habe jetzt nochmal getestet (Es geht nur um den Stromzähler, das Gaszählerskript läuft ohne Probs). Läuft das Stromzähler-Skript mit dem Datenpunkt "ENERGY_COUNTER" steht das folgende im LOG, SV wird nicht aktualisiert und ich bekomme auch keine Push.

Code: Alles auswählen

Nov  4 14:32:03 CCU3-WebUI local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Berechnet den tagesaktuellen Stand des Stromzählers und sendet einen Flot-Screenshot ! ACHTUNG: Dieses Skript erfordert eine CCU-Firmware ab Version 2.29.22 ! Für den Flot-Screenshot wird der phantomjs-Adapter des ioBroker benötigt ! Version 3.1, Autor: dtp  ! +++++ Startwert des Stromzählers als reelle Zahl (Ersteinrichtung und Reset: -1.0) +++++  real offset = -1.0;  ! +++++ Zählerstand setzen +++++  ! sofort: false, Regelbetrie
 (täglich 23:59): true boolean regular = true;  ! +++++ Bargraph-Anzeige (range = 0 schaltet die Anzeige aus) +++++ real range = 12.0; ! Maximaler Verbrauchswert in kWh real bars = 10.0; ! Anzahl der Bars innerhalb range  ! +++++ Name von Kanal 1 des Zählersensors +++++  string channel = "HWR Hausanschluss Strom";  ! +++++ Liste der Tage, an dem eine Push-Nachricht gesendet werden soll (Trennung beliebig) +++++ ! z.B. "Montag Mittwoch Freitag", "täglich", keine Nachricht: "" string sendDayList = "täglich"
  ! +++++ Anzahl d
Nov  4 14:32:03 CCU3-WebUI local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Berechnet den tagesaktuellen Stand des Stromzählers und sendet einen Flot-Screenshot ! ACHTUNG: Dieses Skript erfordert eine CCU-Firmware ab Version 2.29.22 ! Für den Flot-Screenshot wird der phantomjs-Adapter des ioBroker benötigt ! Version 3.1, Autor: dtp  ! +++++ Startwert des Stromzählers als reelle Zahl (Ersteinrichtung und Reset: -1.0) +++++  real offset = -1.0;  ! +++++ Zählerstand setzen +++++  ! sofort: false, Regelbetrie
 (täglich 23:59): true boolean regular = true;  ! +++++ Bargraph-Anzeige (range = 0 schaltet die Anzeige aus) +++++ real range = 12.0; ! Maximaler Verbrauchswert in kWh real bars = 10.0; ! Anzahl der Bars innerhalb range  ! +++++ Name von Kanal 1 des Zählersensors +++++  string channel = "HWR Hausanschluss Strom";  ! +++++ Liste der Tage, an dem eine Push-Nachricht gesendet werden soll (Trennung beliebig) +++++ ! z.B. "Montag Mittwoch Freitag", "täglich", keine Nachricht: "" string sendDayList = "täglich"
  ! +++++ Anzahl d
Nov  4 14:32:03 CCU3-WebUI local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Berechnet den tagesaktuellen Stand des Stromzählers und sendet einen Flot-Screenshot ! ACHTUNG: Dieses Skript erfordert eine CCU-Firmware ab Version 2.29.22 ! Für den Flot-Screenshot wird der phantomjs-Adapter des ioBroker benötigt ! Version 3.1, Autor: dtp  ! +++++ Startwert des Stromzählers als reelle Zahl (Ersteinrichtung und Reset: -1.0) +++++  real offset = -1.0;  ! +++++ Zählerstand setzen +++++  ! sofort: false, Regelbetrie
 (täglich 23:59): true boolean regular = true;  ! +++++ Bargraph-Anzeige (range = 0 schaltet die Anzeige aus) +++++ real range = 12.0; ! Maximaler Verbrauchswert in kWh real bars = 10.0; ! Anzahl der Bars innerhalb range  ! +++++ Name von Kanal 1 des Zählersensors +++++  string channel = "HWR Hausanschluss Strom";  ! +++++ Liste der Tage, an dem eine Push-Nachricht gesendet werden soll (Trennung beliebig) +++++ ! z.B. "Montag Mittwoch Freitag", "täglich", keine Nachricht: "" string sendDayList = "täglich"
  ! +++++ Anzahl d
Schreibe ich nun als Datenpunkt "IEC_ENERGY_COUNTER" läuft das Skript durch, ich bekomme eine Push und die SV wird aktualisiert.
Im LOG steht nun aber das:

Code: Alles auswählen

Nov  4 14:36:30 CCU3-WebUI local0.err ReGaHss: ERROR: ScriptRuntimeError: string action = 'dcCreate';integer cId = 6287;integer iStatusOnly = 0; [ExecError():iseESPexec.cpp:12797]
Jetzt kommt hinzu, dass der ES-IEC bei mir per SML läuft und mir schon den korrekten Wert des Stromzählers in die interne SV schreibt.
Habe also noch weiter probiert und bei offset eine 0 eingetragen und die 1000er Teiler im Skript entfernt. Der RunTimeError bleibt aber und ich stehe jetzt auf dem Schlauch :roll:
Das Skript wie es jetzt aktuell bei mir eingestellt ist, schick ich mit.... vielleicht findest du noch was???
Strom.txt
(7.78 KiB) 46-mal heruntergeladen
Gruß Tino

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von dtp » 04.11.2019, 16:05

Kurze Frage. Ist "HWR Hausanschluss Strom" wirklich der Name von Kanal 1 deines Stromsensors? Hier darf nicht der Name des Sensors stehen, sondern es MUSS der Name seines Kanals 1 eingetragen werden.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 04.11.2019, 17:39

Ja, auch schon kontrolliert.
Unbenannt.PNG

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von dtp » 04.11.2019, 18:07

Okay.

Was liefert dir dieses Skript als Ausgabe:

Code: Alles auswählen

string channel = "HWR Hausanschluss Strom";
WriteLine((dom.GetObject(ID_CHANNELS).Get(channel)).DPByHssDP("ENERGY_COUNTER").Value());
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 04.11.2019, 20:10

Sorry gerade erst gelesen,
Das Skript liefert "null" (mit RunTimeError)
und mit IEC_ENERGY_COUNTER kommt der korrekte Wert von 3628.427399 (der jetzt auch so, nur nicht mit 6 Zahlen hinterm Komma, am Zähler steht) (ohne RunTimeError)

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von dtp » 05.11.2019, 07:46

Tibin hat geschrieben:
03.11.2019, 18:23
FW ist die 2.2 vom zugehörigen HM-ES-TX-WM
Da war doch was mit der Version 2.2. Dann muss das bei dir in der Tat "IEC_ENERGY_COUNTER" statt "ENERGY_COUNTER" heißen. Ich habe noch die FW 1.2 auf meinen drei HM-ES-TX-WM laufen, da ich keinen ES-IEC verwende.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 05.11.2019, 08:20

Hallo Thorsten,
Dann kannst du mir wahrscheinlich gar nicht weiterhelfen, wie gesagt ich bekomme immer noch trotz Änderung in IEC_ENERGY_COUNTER den besagten Fehler im Protokoll:

Code: Alles auswählen

Nov  4 14:36:30 CCU3-WebUI local0.err ReGaHss: ERROR: ScriptRuntimeError: string action = 'dcCreate';integer cId = 6287;integer iStatusOnly = 0; [ExecError():iseESPexec.cpp:12797]
Die 6287 ist die ISE-ID vom Kanal :1
Habe auch schon mit einem anderen Zählerskript gegengecheckt, aber es kommt der gleiche Eintrag.
Diese Skriptmaterie ist leider zu tief für mich :wink:
Gruß Tino

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von dtp » 05.11.2019, 08:33

Diese Fehlerzeile wird nur erstellt, wenn du das Zählerskript ausführst?

Ich poste heute Abend mal eine neue Version 3.2 des Stromzählerskripts. Vielleicht magst du das mal testen. Weiß aber nicht, ob das die o.g. Fehlermeldung beseitigt. Trotzdem wäre deine Rückmeldung für mich dann sehr hilfreich.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 05.11.2019, 09:16

Punkt 1: ja
Punkt 2: klar mach ich das! Bin gespannt :wink:

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V3.1.1

Beitrag von Tibin » 05.11.2019, 19:32

Hallo Thorsten,
Kurze Info noch: Nachdem das Skript heute Nacht KEINEN Protokolleintrag verursacht hat, habe ich vorhin noch paar Male getestet immer ohne Eintrag.
Glaube mir, ich habe zu gestern nix mehr geändert :shock: (Kann man das jetzt wieder unter sehr merkwürdig abbuchen, oder was?)

Andererseits habe ich immer nur vom Stromskript eine Push bekommen (auch beim testen), obwohl beide Skripte (Wasser habe ich noch nicht) durchlaufen und auch alle SVen beschrieben werden. Die Skripte einzeln benutzt unter testen schicken beide eine Push. (Programm wie du angegeben hast, habe sogar die Verzögerungen geändert. Gleiches Verhalten)
Habe jetzt 2 Programme erstellt und bei einem Skript die Uhrzeit auf 23:58 geändert (natürlich auch im Programm)
Jetzt gehts. :mrgreen:

Wenn du gerade am Skript-basteln bist, hätte ich noch einen Wunsch :wink:
Kannst du das eventuell noch irgendwie mit hinzufügen, dass man auch nur am 1. des Monats die Zählerstände übermittelt bekommt?
Nur wenn es keine all zu großen Umstände macht :wink:
Sonst muss ich mal schauen ob ich das als einzelnes kurzes Skript hin bekomme. :shock: (Frauchen möchte halt am Monats-1. ne Push) :roll: :mrgreen:
Gruß Tino

Antworten

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