Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Moderator: Co-Administratoren
-
- Beiträge: 9
- Registriert: 19.03.2021, 23:09
- System: CCU
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Hallo,
ich habe diesen Ablauf auch versucht, nur ich habe noch irgendwo einen Fehler drin. Beim CUXd Gerät System(28) und welche Funktion dann ? exec? und als Gerät 4 fach Wandtaster?
Beim erstellen der Systemvariablen als Typ "Zeichenkette"?
ich habe diesen Ablauf auch versucht, nur ich habe noch irgendwo einen Fehler drin. Beim CUXd Gerät System(28) und welche Funktion dann ? exec? und als Gerät 4 fach Wandtaster?
Beim erstellen der Systemvariablen als Typ "Zeichenkette"?
-
- Beiträge: 20
- Registriert: 10.03.2020, 11:12
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Köln
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 2 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Auf welchen Beitrag beziehst du dich genau? Diesen hier viewtopic.php?f=19&t=53632#p553721 von Indi55 wahrscheinlich?
Wie weit bist du dabei? Details... Screenshots... Fehler...
ModBusTCP im WR schon freigeschaltet? Und erfolgreich getestet?
Funktions-Typ für die oben verlinkte Variante beim CUxD ist auf jeden Fall Exec. Das Geräte-Icon ist ziemlich egal für die Funktion.
Gruß
Jens
Wie weit bist du dabei? Details... Screenshots... Fehler...
ModBusTCP im WR schon freigeschaltet? Und erfolgreich getestet?
Funktions-Typ für die oben verlinkte Variante beim CUxD ist auf jeden Fall Exec. Das Geräte-Icon ist ziemlich egal für die Funktion.
Gruß
Jens
-
- Beiträge: 9
- Registriert: 19.03.2021, 23:09
- System: CCU
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Ja ich meinte das Beispiel von Indi55.
Fehler :
Fehler :
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40093 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var wert1 = dom.GetObject("CUxD.CUX2801012:2.CMD_RETS").State(); ! Low Byte dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40094 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var wert2 = dom.GetObject("CUxD.CUX2801012:2.CMD_RETS").State(); ! Skalierung dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40095 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var scale = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State(); scale = scale.ToInteger(); wert1 = wert1.ToInteger(); wert2 = wert2.ToInteger(); scale = scale *
Mar 18 20:54:02 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: !" PV Auslesen ! Offset der Register = -1 ! High Byte dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40093 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var wert1 = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State(); ! Low Byte dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40094 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var wert2 = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State(); ! Skalierung dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40095 1"); dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1); var scale = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State(); scale = scale.ToInteger(); wert1 = wert1.ToInteger(); wert2 = wert2.ToInteger(); scale = scale *[code]
-
- Beiträge: 9
- Registriert: 19.03.2021, 23:09
- System: CCU
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
mein Script sieht so aus:
Ich habe dementsprechend meine IP Vom Wechselrichter eingetragen und Port 1502
Ich habe dementsprechend meine IP Vom Wechselrichter eingetragen und Port 1502
Code: Alles auswählen
!" PV Auslesen
! Offset der Register = -1
! High Byte
dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40093 1");
dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1);
var wert1 = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State();
! Low Byte
dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40094 1");
dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1);
var wert2 = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State();
! Skalierung
dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40095 1");
dom.GetObject("CUxD.CUX2801003:2.CMD_QUERY_RET").State(1);
var scale = dom.GetObject("CUxD.CUX2801003:2.CMD_RETS").State();
scale = scale.ToInteger();
wert1 = wert1.ToInteger();
wert2 = wert2.ToInteger();
scale = scale * (-1); ! oder scale.Abs()
! High + Low Byte
wert = ((wert1 * 65536) + wert2) /1000; ! oder über wert.Exp10()
if (scale == 1) { wert = wert / 10 ; }
if (scale == 2) { wert = wert / 100; }
if (scale == 3) { wert = wert / 1000; }
dom.GetObject("PV Gesammtleistung").State(wert);
[code]
Ich habe dementsprechend meine IP Vom Wechselrichter eingetragen und Port 1502
Zuletzt geändert von robert0204 am 18.03.2024, 21:17, insgesamt 1-mal geändert.
-
- Beiträge: 20
- Registriert: 10.03.2020, 11:12
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Köln
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 2 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Versuch mal die Variable wert auch zu deklarieren - ein var vor wert = .. setzen:
Gruß
Jens
Code: Alles auswählen
var wert = ((wert1 * 65536) + wert2) /1000; ! oder über wert.Exp10()
Jens
-
- Beiträge: 9
- Registriert: 19.03.2021, 23:09
- System: CCU
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
ist noch das selbe.
Mar 18 21:20:02 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: !" PV Auslesen ! Offset der Register = -1 ! High Byte dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40093 1");
Mar 18 21:20:02 ccu3-webui local0.err ReGaHss: ERROR: ScriptRuntimeError: !" PV Auslesen ! Offset der Register = -1 ! High Byte dom.GetObject("CUxD.CUX2801003:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.80 1502 1 03 40093 1");
-
- Beiträge: 20
- Registriert: 10.03.2020, 11:12
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Köln
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 2 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Bau mal das Skript Schritt für Schritt, Zeile für Zeile auf und teste jeweils - irgendwo muss da ja noch was sein..
-
- Beiträge: 9
- Registriert: 19.03.2021, 23:09
- System: CCU
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Hallo, ich habe meinen Fehler gefunden! In der Beschreibung steht: "Systemvariablen vom Typ String anlegen.
PV-Momentanleistung, PV-Gesammtleistung, PV-Status und PV-Fehlernummer"
Die Sytemvariablen müssen aber PV Momentanleistung, PV Gesammtleistung usw. sein
PV-Momentanleistung, PV-Gesammtleistung, PV-Status und PV-Fehlernummer"
Die Sytemvariablen müssen aber PV Momentanleistung, PV Gesammtleistung usw. sein