Howto - Zähler-Skripte für HM-ES-TX-WM (per zPNP)
Moderator: Co-Administratoren
- DiJe
- Beiträge: 566
- Registriert: 04.03.2015, 05:51
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 5 Mal
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Hallo Thorsten,
habe deine Vorgänger Version am laufen,würde die auch gerne weiter nutzen.
Bin sehr zufrieden damit, bis auf einige falsche Tagesverbräuche.
Passiert aber sehr selten. Vieleicht liegt es ja am Überlauf.
Welche Script Zeilen muß ich in das alte Script einbauen, damit der Überlauf nicht zuschlägt.
Gruß Dieter
habe deine Vorgänger Version am laufen,würde die auch gerne weiter nutzen.
Bin sehr zufrieden damit, bis auf einige falsche Tagesverbräuche.
Passiert aber sehr selten. Vieleicht liegt es ja am Überlauf.
Welche Script Zeilen muß ich in das alte Script einbauen, damit der Überlauf nicht zuschlägt.
Gruß Dieter
Gruß Dieter
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
-
- 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, V1.4
Hi Dieter,
irgendwie habe ich Dein Posting ganz übersehen. Kannst Du mal Dein(e) Skript(e) hier in Code-Tags stellen oder sie mir per PN zukommen lassen? Dann kann sie entsprechend anpassen.
Gruß,
Thorsten
irgendwie habe ich Dein Posting ganz übersehen. Kannst Du mal Dein(e) Skript(e) hier in Code-Tags stellen oder sie mir per PN zukommen lassen? Dann kann sie entsprechend anpassen.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- DiJe
- Beiträge: 566
- Registriert: 04.03.2015, 05:51
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 5 Mal
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Hallo Thorsten,
hier mal das Orginalscript von dir:
danke für deine Rückmeldung,
Gruß Dieter
hier mal das Orginalscript von dir:
Code: Alles auswählen
! Berechnet den tagesaktuellen Stand des Stromzählers
! Version 1.2, Autor: dtp
! +++++ Parameter einstellen +++++
! Startwert des Stromzählers in kWh
real offset =143389.45;
! Bargraph-Anzeige; range = 0 schaltet die Anzeige aus
real range = 0; ! Maximaler Verbrauchswert in kWh
real bars = 10.0; ! Anzahl der Bars innerhalb range
! Zählerstand setzen (sofort: 0, Regelbetrieb (täglich 23:59): 1)
integer setpoint = 1;
! Zählersensor Kanal
string device = "BidCos-RF.MEQ0705634:1.ENERGY_COUNTER";
! ##### ab hier keine Einstellungen mehr vornehmen #####
! +++++ weitere Variablendeklarationen +++++
real counter_day;
real energy_cnt;
real bar_index = 0.0;
string counter_value;
string list;
string weekday;
string bargraph = "";
string nachricht;
string week = "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag";
! +++++ verbrauchte kWh pro Tag und Zählerstand +++++
! Auslesen des aktuellen Wochentags
weekday = week.StrValueByIndex(" ", system.Date("%w"));
! Auslesen der Systemvariablen "Stromverbrauch Woche"
list = dom.GetObject("Stromverbrauch Woche").Value();
if(list.Find("???") != -1){list = "";}
! Berechnen der Werte
energy_cnt = dom.GetObject(device).Value()/1000;
if(energy_cnt < 0){energy_cnt = energy_cnt+838.8607;}
counter_value = (offset+energy_cnt).ToString(2);
counter_day = counter_value.ToFloat()-dom.GetObject("Stromverbrauch Tag").Value().ToFloat();
! Ausgabe als Bargraph
if(range > 0){
while((bar_index < counter_day) && (bar_index <= (range - range/bars))){
bargraph = bargraph#"|";
bar_index = bar_index + range/bars;
}
if(counter_day > range){bargraph = "<b>"#bargraph#"</b>";}
bargraph = bargraph#" ";
}
! Beginnen der Liste mit einem Montag und vermeiden doppelter Zeilen pro Wochentag
if(weekday == "Montag"){
list = "";
}
else{
while(list.Find(weekday) != -1){list = list.Substr(list.Find(weekday)+weekday.Length()+1,list.Length());}
}
list = bargraph#counter_day.ToString(2)#" kWh, "#weekday#"\n"#list;
! Setzen der Systemvariablen "Stromverbrauch Woche" und "Stromverbrauch Tag"
dom.GetObject("Stromverbrauch Woche").State(list);
if(setpoint == 1){
if(system.Date("%H:%M") == "23:59"){dom.GetObject("Stromverbrauch Tag").State(counter_value);}
}
if(setpoint == 0){
dom.GetObject("Stromverbrauch Tag").State(counter_value);
}
! ++++ Senden der Verbrauchswerte per Push-Nachricht am Sonntag ++++
if(weekday == "Sonntag")
! {
! Erzeugen der Nachricht
string nachricht = counter_value#" kWh Strom verbraucht.\nTagesverbrauchswerte in KW "#system.Date('%W')#":\n"#list;
dom.GetObject("CUxD.CUX2801001:4.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=xxxxxxxxxxxxxxxxxxxxxxxxxx -d xxxxxxxxxxxxxxxxxxxx -d message='"#nachricht#"' -d sound=bike http://api.pushover.net/1/messages.json");
Gruß Dieter
Gruß Dieter
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
-
- 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, V1.4
Hallo Dieter,
versuch's mal damit:
Nicht vergessen, die Keys für Pushover einzutragen.
Gruß,
Thorsten
versuch's mal damit:
Code: Alles auswählen
! Berechnet den tagesaktuellen Stand des Stromzählers
! Benötigt werden die folgenden Systemvariablen:
! "Stromverbrauch Tag": Stromverbrauch des aktuellen Tags als Zahl
! "Stromverbrauch Woche": Liste des täglichen Stromverbrauchs pro Woche als Zeichenkette
! "Stromzähler Stand": Tagesaktueller Stand des Stromzählers als Zahl (optional)
! Version 1.4a, Autor: dtp
! Startwert des Stromzählers als reelle Zahl (Reset: -1.0)
real offset = 0.0;
! Zählerstand setzen
! sofort: 0, Regelbetrieb (täglich 23:59): 1
integer setpoint = 1;
! Bargraph-Anzeige; range = 0 schaltet die Anzeige aus
real range = 0; ! Maximaler Verbrauchswert in kWh
real bars = 10.0; ! Anzahl der Bars innerhalb range
! Zählersensor Kanal
string device = "BidCos-RF.MEQ0705634:1.ENERGY_COUNTER";
! ##### ab hier keine Einstellungen mehr vornehmen #####
! +++++ weitere Variablendeklarationen +++++
real meter_diff; real meter_value; real bar_index = 0.0;
string list; string weekday; string bargraph = ""; string nachricht;
string week = "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag";
! +++++ Auslesen der aktuellen Werte +++++
! Aktueller Wochentag
weekday = week.StrValueByIndex(" ", system.Date("%w"));
! Systemvariable "Stromverbrauch Woche"
list = dom.GetObject("Stromverbrauch Woche").Value();
if(list.Find("???") != -1){list = "";}
! +++++ Berechnungen
meter_value = offset + dom.GetObject(device).Value()/1000;
meter_diff = meter_value - dom.GetObject("UG HWR SV Stromzähler Stand").Value();
! Korrektur im Falle des ENERGY_COUNTER-Überlaufs
while(meter_diff <= -0.01){
meter_value = meter_value + 838.8607;
meter_diff = meter_diff + 838.8607;
}
! Vermeidung zu hoher Tageswerte
if(meter_diff > 100.00){meter_diff = 0.00;}
! Zurücksetzen, falls offset = -1
if(offset == -1){meter_value = 0; meter_diff = dom.GetObject(device).Value()/1000; list = ""; setpoint = 0;}
! Ausgabe als Bargraph
if(range > 0){
while((bar_index < meter_diff) && (bar_index <= (range - range/bars))){
bargraph = bargraph#"|";
bar_index = bar_index + range/bars;
}
if(meter_diff > range){bargraph = "<b>"#bargraph#"</b>";}
bargraph = bargraph#" ";
}
! Beginnen der Liste mit einem Montag und vermeiden doppelter Zeilen pro Wochentag
if(weekday == "Montag"){list = "";}
else{while(list.Find(weekday) != -1){list = list.Substr(list.Find(weekday)+weekday.Length()+1,list.Length());}}
list = bargraph#meter_diff.ToString(2)#" kWh, "#weekday#"\n"#list;
! +++++ Setzen der Systemvariablen
dom.GetObject("Stromverbrauch Woche").State(list);
if(setpoint == 1){
if(system.Date("%H:%M") == "23:59"){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
}
if(setpoint == 0){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
! ++++ Senden der Verbrauchswerte per Push-Nachricht ++++
!if((weekday == "Sonntag") || (setpoint == 0)){
! Erzeugen der Nachricht
if(offset == -1.0){nachricht = "Initialisierung Stromzähler\noffset = Zählerstand - "#meter_diff#" kWh eintragen!";}
else{
nachricht = meter_value.ToString(2)#" kWh Strom verbraucht.\nTagesverbrauchswerte in KW "#system.Date('%W')#":\n"#list;
if(setpoint == 0){nachricht = nachricht#"Achtung: ggf. setpoint wieder auf 1 setzen!";}
}
dom.GetObject("CUxD.CUX2801001:4.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=xxxxxxxxxxxxxxxxxxxxxxxxxx -d xxxxxxxxxxxxxxxxxxxx -d message='"#nachricht#"' -d sound=bike http://api.pushover.net/1/messages.json");
!}
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- DiJe
- Beiträge: 566
- Registriert: 04.03.2015, 05:51
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 5 Mal
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Hallo Thorsten,
danke für deine Antwort.
In dem Script sind die Zeilen
------------------------
! +++++ Setzen der Systemvariablen
dom.GetObject("Stromverbrauch Woche").State(list);
if(setpoint == 1){
if(system.Date("%H:%M") == "23:59"){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
}
if(setpoint == 0){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
-----------------------------------------------------------
auskommentiert.
ist bestimmt nicht richtig, oder?
Gruß Dieter
danke für deine Antwort.
In dem Script sind die Zeilen
------------------------
! +++++ Setzen der Systemvariablen
dom.GetObject("Stromverbrauch Woche").State(list);
if(setpoint == 1){
if(system.Date("%H:%M") == "23:59"){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
}
if(setpoint == 0){
! dom.GetObject("Stromzähler Stand").State(meter_value);
dom.GetObject("Stromverbrauch Tag").State(meter_diff);
}
-----------------------------------------------------------
auskommentiert.
ist bestimmt nicht richtig, oder?
Gruß Dieter
Gruß Dieter
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
-
- 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, V1.4
Hi Dieter,
doch, weil Du ja auch bisher diese Systemvariable nicht benutzt hattest. Wenn Du sie benutzen möchtest, musst Du sie nur anlegen und die Zeilen entsprechend auskommentieren.
Gruß,
Thorsten
doch, weil Du ja auch bisher diese Systemvariable nicht benutzt hattest. Wenn Du sie benutzen möchtest, musst Du sie nur anlegen und die Zeilen entsprechend auskommentieren.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- DiJe
- Beiträge: 566
- Registriert: 04.03.2015, 05:51
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 5 Mal
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Danke Thorsten,
Gruß Dieter
Gruß Dieter
Gruß Dieter
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
----------------------------------------------------------------------------------------
RaspiMatic auf Raspi4 - 4Gb -nach Kernel Upgrade Temp.~50° - m.Addons: ioBroker, RedMatic, CCU-Historian, CUxD, Email, XMl Api
Geräte 120, davon DIY Geräte 35 -Variablen 213 - Programme 160 / Visualisierung mit Mediola auf 24" Acer DA241HL / läuft alles stabil
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Kann man das Script auch umbauen, damit mir eine E-Mail mit dem Addon geschickt wird?
RaspberryMatic auf RPi 3 - AIO Creator NEO
-
- 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, V1.4
Klar kann man das. Einfach diese Codezeilen
durch die entsprechenden Codezeilen zum Senden einer Email ersetzen. Da ich aber keine Emails nutze, müsste das jemand machen, der das tut. Oder man sucht sich hier im Forum die passenden Codezeilen zusammen. Im Thread für das Email-Addon dürfte sich sicherlich was finden lassen.
EDIT:
Versuch's mal damit, wobei Du die ersten beiden Codezeilen auch nach oben ins Skript verschieben kannst:
Natürlich muss die Mailvorlage entsprechend eingerichtet sein und im Email-Addon funktionieren. Die obigen Codezeilen entstammen übrigens Alchys Allinclusive-Skript.
Gruß,
Thorsten
Code: Alles auswählen
! Setzen der Priorität für die Push-Nachricht
dom.GetObject("CCU SV Push Prio").State("-1");
! +++++ Programm "CCU PRG Push-Nachrichten" ausführen ++++
dom.GetObject("CCU SV Push Text").State(message);
dom.GetObject("CCU PRG Push-Nachrichten").ProgramExecute();
EDIT:
Versuch's mal damit, wobei Du die ersten beiden Codezeilen auch nach oben ins Skript verschieben kannst:
Code: Alles auswählen
var MailId = "01"; ! Mailvorlage (01 - 50) des Email-Addon
var MailCuxdId = "CUX2801001:1"; ! ID des auf der CCU angelegten CUxD-EXEC-Geräts
(dom.GetObject(ID_DATAPOINTS)).Get("CUxD."#MailCuxdId#".CMD_EXEC").State("/etc/config/addons/email/email "#MailId#" '"#message#"'");
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Howto - Zähler-Skripte für HM-ES-TX-WM, V1.4
Hallo,
vielen DANK. Hätte noch ein paar Fragen.
1) Ich nutze als Mail das Mail-Addon, welches sonst schon läuft. Wie finde ich die Mail-CuxD ID?
2) Beim ausführen des Scriptes werden zwar die Variablen gefüllt, aber nur alle mit einer "0" - das einzige was korrekt
eingetragen wird ist der Tag Mittwoch?
Wo kann mein Fehler noch liegen?
Edit: Hab jetzt auf den Script 1.4a umgestellt - jetzt werden keinerlei Werte mehr eingetragen - die Systemvariablen habe ich umbenannt
vielen DANK. Hätte noch ein paar Fragen.
1) Ich nutze als Mail das Mail-Addon, welches sonst schon läuft. Wie finde ich die Mail-CuxD ID?
2) Beim ausführen des Scriptes werden zwar die Variablen gefüllt, aber nur alle mit einer "0" - das einzige was korrekt
eingetragen wird ist der Tag Mittwoch?
Wo kann mein Fehler noch liegen?
Edit: Hab jetzt auf den Script 1.4a umgestellt - jetzt werden keinerlei Werte mehr eingetragen - die Systemvariablen habe ich umbenannt
RaspberryMatic auf RPi 3 - AIO Creator NEO