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

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, 21:58

Hallo Tino,

hier mal zunächst die Version 3.2 des Stromzählerskripts.

Das mit dem Senden an einem bestimmten Tag im Monat muss ich dann später noch mal machen.
Zuletzt geändert von dtp am 06.11.2019, 07:34, insgesamt 1-mal geändert.
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, 23:41

Hallo Thorsten,
Erst mal auf die Schnelle....
der hat mir den Tageswert irgendwie auf den Zählerstand draufaddiert.
Reset mit -1 ging auch nicht.
Kannst du das nachvollziehen? Hoffe ich hab nix falsch gemacht.
RunTimeError kam auch wieder.
Sorry, muss jetzt erst mal in die Kiste...
Gute Nacht

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 » 06.11.2019, 07:36

Hab das Skript noch mal überarbeitet.

EDIT: Skript wegen kleiner Fehler zurückgezogen.

Man muss nun im Skript die lokale Variable "iecFlag" auf true setzen, wenn man die IEC-Zählerwerte auswerten möchte. Das automatische Erkennen in der vorherigen Version war keine so gute Idee. :roll:
Zuletzt geändert von dtp am 07.11.2019, 07:29, insgesamt 1-mal geändert.
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 » 06.11.2019, 12:03

Supi, ich weiß nicht ob ich es heute schaffe, aber morgen schaue ich es mir an. :wink:
Gruß Tino

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

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

Beitrag von Black » 06.11.2019, 12:19

dtp hat geschrieben:
06.11.2019, 07:36
Man muss nun im Skript die lokale Variable "iecFlag" auf true setzen, wenn man die IEC-Zählerwerte auswerten möchte. Das automatische Erkennen in der vorherigen Version war keine so gute Idee. :roll:
ich hab nochwas in meinem Script Giftschrank gefunden, was dir da vllt helfen könnte:

Code: Alles auswählen

string s1="";
string fw="";
foreach (s1,devices.Get ("GErätenamendesZählers").MetaData ("DEVDESC").Split (',')) {
  if (s1.StrValueByIndex (":",0)=="FIRMWARE") {fw= s1.StrValueByIndex (":",1).Trim ("\""); break;}
}   
GErätenamendesZählers natürlich austauschen gegen den realen Gerätenamen des Zählers.

wenn alles glattlief, entfält fw dann die Firmware des Gerätes, damit kannst du auswerten, obs ein IEC sein wird oder nichtl.
wenn daneben geht ist fw leerstring, dann sag mir aber mal bescheid, bei Geräten von mir klappt es.

Gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

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 » 06.11.2019, 12:49

Danke für deine Unterstützung. Aber ich glaube, dass das in diesem Fall irgendwie mit Kanonen auf Spatzen geschossen wäre. Immerhin müsste die FW-Abfrage bei jedem Ausführen des Skripts durchgeführt werden. Und normalerweise sollte ja jeder User wissen, ob er die "normalen" oder die IEC-Zählerdaten des HM-ES-TX-WM nutzt.

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 » 06.11.2019, 17:29

Hallo Thorsten,
Tut mir leid aber syntaxfehler :?:
Habe offset auf -1.0 gesetzt weil ich resetten wollte.
iecFlag steht auf true

Code: Alles auswählen

Nov  6 17:14:14 CCU3-WebUI local0.err ReGaHss: ERROR: SyntaxError: Error 1 at row 102 col 144 near ^   list = "";    regular = false; }  ! +++++ Ausgabe als Bargraph +++++ if(range^M  [SyntaxError():iseESP.cpp:1137]
Nov  6 17:14:14 CCU3-WebUI local0.err ReGaHss: ERROR: SyntaxError:    list = "";    regular = false; }  ! +++++ Ausgabe als Bargraph +++++ if(range > 0){   while((barIndex < meterDiff) && (barIndex <= (range - range/bars))){     bargraph = bargraph#"|";     barIndex = barIndex + range/bars;   }   if(meterDiff > range){bargraph = "<font color=orange>"#bargraph#"</font>";}   bargraph = bargraph#" "; }  ! +++++ Liste auf Zeitfenster begrenzen und vermeiden aufeinanderfolgender Einträge am Sendetag +++++ if(l
st){   foreach(listElement, list.Split("\n")){     if((cnt == 0) && (listElement.Contains(weekday))){listElement = "";}     else{listElement = listElement#"\n";}     if(cnt >= numDays-1){listElement = "";}     listMod = listMod#listElement;     cnt = cnt + 1;   } } list = bargraph#meterDiff.ToString(2)#" kWh, "#weekday#"\n"#listMod;  ! +++++ Setzen der Systemvariablen +++++ (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svWeek)).State(list); if(regular){   if(system.Date("%H:%M") == "23:58"){     (dom.GetObject(
D_SYSTEM_VARIABLES
Sorry ist ja bei mir ne andere Zeile.... also die hier ist bei mir die 102:

Code: Alles auswählen

  else{meterDiff = (dom.GetObject(ID_CHANNELS).Get(channel)).DPByHssDP("IEC_ENERGY_COUNTER").Value()}
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 » 07.11.2019, 07:32

Mist, da habe ich ein Semikolon vor der geschweiften Klammer am Ende der Zeile vergessen. Das passiert, wenn man die Skripte im Büro editiert und ungetestet veröffentlicht. :roll:

Da ich eh gestern Abend noch an der Möglichkeit gearbeitet habe, statt bestimmter Wochentage auch Monatstage für das Versenden vorzugeben, werde ich dann in Kürze eine überarbeitete Version 3.3 veröffentlichen. Ich muss die aber erst noch testen. Die fehlerhafte 3.2 habe ich mal zurückgezogen.

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 » 07.11.2019, 10:40

Ok, lass dir Zeit. In der Ruhe liegt die Kraft :!: :wink:
Die veränderte 3.1 läuft ja zumindest erstmal bei mir.
Ich glaube aber, beim Reset oder Ersteinrichtung muss man nicht Zählerstand minus das was in der Push steht eintragen, sondern was anderes. Da ja der korrekte Wert schon vom IEC angezeigt wird. Zumindest wenn es mit dem SML-Protokoll läuft. Ist mir gestern zumindest noch aufgefallen.
Vielleicht ist das aber beim IEC generell so, das weiß ich nicht.

Wegen des RunTimeErrors, da bin ich dran.... da schreib ich dir heute Abend noch mal was.
Liegt zumindest nicht an deinem Skript :!:
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 » 07.11.2019, 11:34

Was sagt dir denn die Push-Nachricht, wenn du den offset auf -1.0 setzt?
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.

Antworten

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