Nachdem lehmi so freundlich war, mir die beiden oben gelöschten Skripte zu senden, habe ich sie für Gen2 Geräte angepasst. Aus Performancegründen, habe ich sie in ein Skript zusammengefasst.
! Skript zur Leistungs- und Energieaktualisierung Shelly Plus PM mit Originalfirmware (by SeRef vom 06.03.2024)
! Angepasst von Gen1 auf Gen2
! basiert auf:
! Skript zur Gesamt-Verbrauchsaktualisierung Shelly1PM mit Originalfirmware ©2019 by 66er V1.2.1)
! https://smarthome-forum.eu/forum/thread/649-shelly-pm-leistungsmessung-in-homematic-einbinden-mit-der-originalfirmware/?postID=13125#post13125
! Bohrbrunnen (nur zur Orientierung, ggf anpassen)
! **** Abfrage des Shelly Plus PM *****
! In der folgenden Zeile IP des Shelly anpassen!
var vUrl = "http://192.168.0.191/rpc/shelly.GetStatus";
! In den folgenden Zeilen die CUxD-Exec-Kanal anpassen (hier: 2801001:8)
dom.GetObject("CUxD.CUX2801001:8.CMD_SETS").State("wget -q -O - '" # vUrl # "'");
dom.GetObject("CUxD.CUX2801001:8.CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject("CUxD.CUX2801001:8.CMD_RETS").State();
dom.GetObject("CUxD.CUX2801001:8.CMD_SETS").State("");
! WriteLine(Antwort);
! **** Auswertung Leistung des Antwortstrings ****
! Hier NICHTS ändern
string s;
string p = "-1";
foreach (s, Antwort.Split (",")) {
if (s.Contains ('"apower"')) {
p = (s.StrValueByIndex (":",1));
p = p.ToFloat();
! WriteLine(p);
}
}
! **** Auswertung Energie des Antwortstrings ****
! Hier NICHTS ändern
string e = "-1";
foreach (s, Antwort.Split (",")) {
if (s.Contains ('"total"')) {
e = (s.StrValueByIndex (":",2));
! WriteLine(e);
! ***** Umrechnung Wh in kWh ****
e = e.ToFloat();
e = e / 1000;
! WriteLine(e);
}
}
! **** Variablen setzen ****
! Leistung
if (rep > -1.0) {
! Variablennamen anpassen (hier: Leistung_Bohrbrunnen)
dom.GetObject("Leistung_Bohrbrunnen").State(p);
}
! Energie
if (e > -1.0) {
! Variablennamen anpassen (hier: Verbrauch_Bohrbrunnen)
dom.GetObject("Verbrauch_Bohrbrunnen").State(e);
}
! Ende Skript
Alles anzeigen
Das Skript sollte auch bei weiteren ein-kanaligen Shellys der Gen2 funktionieren.
Gruß
Seref