Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

robert0204
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 ?

Beitrag von robert0204 » 17.03.2024, 21:52

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"?

JensDev
Beiträge: 19
Registriert: 10.03.2020, 11:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?

Beitrag von JensDev » 18.03.2024, 19:33

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

robert0204
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 ?

Beitrag von robert0204 » 18.03.2024, 21:03

Ja ich meinte das Beispiel von Indi55.
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]

robert0204
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 ?

Beitrag von robert0204 » 18.03.2024, 21:15

mein Script sieht so aus:
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.

JensDev
Beiträge: 19
Registriert: 10.03.2020, 11:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?

Beitrag von JensDev » 18.03.2024, 21:17

Versuch mal die Variable wert auch zu deklarieren - ein var vor wert = .. setzen:

Code: Alles auswählen

var wert = ((wert1 * 65536) + wert2) /1000; ! oder über wert.Exp10()
Gruß
Jens

robert0204
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 ?

Beitrag von robert0204 » 18.03.2024, 21:21

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");

JensDev
Beiträge: 19
Registriert: 10.03.2020, 11:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?

Beitrag von JensDev » 18.03.2024, 21:30

Bau mal das Skript Schritt für Schritt, Zeile für Zeile auf und teste jeweils - irgendwo muss da ja noch was sein..

robert0204
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 ?

Beitrag von robert0204 » 19.03.2024, 20:35

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

Antworten

Zurück zu „HomeMatic allgemein“