Script Shelly Plus 1PM auslesen ?
Verfasst: 09.03.2024, 14:14
hallo, inspiriert von diesen Script > https://www.shelly-support.eu/forum/thr ... post262993 wollte ich es erweitern um noch zusätzlich die Spannung (voltage) und den momentanen Stromverbrauch (curent) mit anzeigen zu lassen.
Gebe ich im Browser das ein http://192.168.178.11/rpc/shelly.GetStatus, kommt als Rückmeldung das raus
Ich habe versucht (habe leider so gar keine Ahnung von Scripten erstellen oder bearbeiten) und das hier eingegeben
Leider werden weder Spannung_Brunnen, Strom_Brunnen und nun auch nicht mehr Gesamtverbrauch_Brunnen angezeigt (die Systemvariablen habe ich angelegt.
Könnte mir bitte jemand von den "Experten" helfen und vielleicht auch sagen was ich falsch gemacht habe? Verstehe leider (noch) nicht richtig die Zusammenhänge. Vielen Dank
Gebe ich im Browser das ein http://192.168.178.11/rpc/shelly.GetStatus, kommt als Rückmeldung das raus
Code: Alles auswählen
ble {}
cloud
connected true
input:0
id 0
state false
mqtt
connected false
switch:0
id 0
source "SHC"
output true
apower 2.1
voltage 241.1
current 0.019
aenergy
total 743.39
by_minute
0 2.528
1 31.597
2 31.175
minute_ts 1709988784
temperature
tC 53.1
tF 127.6
sys
mac "80646FXXXXX"
restart_required false
time "13:53"
unixtime 1709988785
uptime 6944574
ram_size 244552
ram_free 139536
fs_size 458752
fs_free 151552
cfg_rev 18
kvs_rev 0
schedule_rev 0
webhook_rev 6
available_updates
stable
version "1.2.2"
wifi
sta_ip "192.168.178.11"
status "got ip"
ssid "XXXXXXXXX"
rssi -60
ws
connected false
Code: Alles auswählen
! 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://www.shelly-support.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.178.11/rpc/shelly.GetStatus";
! In den folgenden Zeilen die CUxD-Exec-Kanal anpassen (hier: 2801001:8)
dom.GetObject("CUxD.CUX2801001:13.CMD_SETS").State("wget -q -O - '" # vUrl # "'");
dom.GetObject("CUxD.CUX2801001:13.CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject("CUxD.CUX2801001:8.CMD_RETS").State();
dom.GetObject("CUxD.CUX2801001:13.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);
}
}
string t;
string v = "-1";
foreach (t, Antwort.Split (",")) {
if (t.Contains ('"voltage"')) {
v = (t.StrValueByIndex (":",2));
v = v.ToFloat();
! WriteLine(p);
}
}
string u;
string a = "-1";
foreach (u, Antwort.Split (",")) {
if (u.Contains ('"curent"')) {
a = (u.StrValueByIndex (":",3));
a = a.ToFloat();
! WriteLine(p);
}
}
! **** Auswertung Energie des Antwortstrings ****
! Hier NICHTS ändern
string e = "-1";
foreach (s, Antwort.Split (",")) {
if (s.Contains ('"total"')) {
e = (s.StrValueByIndex (":",4));
! 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_Brunnen)
dom.GetObject("Leistung_Brunnen").State(p);
}
! Energie
if (e > -1.0) {
! Variablennamen anpassen (hier: Gesamtverbrauch_Brunnen)
dom.GetObject("Gesamtverbrauch_Brunnen").State(e);
}
! Strom
if (a > -1.0) {
! Variablennamen anpassen (hier: Strom_Brunnen)
dom.GetObject("Strom_Brunnen").State(a);
}
! Spannung
if (v > -1.0) {
! Variablennamen anpassen (hier: Strom_Brunnen)
dom.GetObject("Spannung_Brunnen").State(u);
}
! Ende Skript
Könnte mir bitte jemand von den "Experten" helfen und vielleicht auch sagen was ich falsch gemacht habe? Verstehe leider (noch) nicht richtig die Zusammenhänge. Vielen Dank