Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Moderator: Co-Administratoren
-
- Beiträge: 488
- Registriert: 11.12.2014, 23:40
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 2 Mal
Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Hallo,
ich hab hier eine Raspimatic und einen Solaredge Wechselrichter. Der WR kann angeblich über RS485 bzw. über Modbus TCP Daten ausgeben und ich könnte eigentlich in die Homematic einbinden, wenn ich nur den richtigen Zugang finden würde.
Hat dieses Setup schon jemand in Verwendung und kann mir ein paar Einsteiger-Tipps geben ?
lG
Gawan
ich hab hier eine Raspimatic und einen Solaredge Wechselrichter. Der WR kann angeblich über RS485 bzw. über Modbus TCP Daten ausgeben und ich könnte eigentlich in die Homematic einbinden, wenn ich nur den richtigen Zugang finden würde.
Hat dieses Setup schon jemand in Verwendung und kann mir ein paar Einsteiger-Tipps geben ?
lG
Gawan
-
- Beiträge: 6823
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 499 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Das hängt davon ab ob Du eine käufliche Lösung erwerben willst oder Dir selber etwas zusammenbasteln. Eine einfache käufliche Lösung wäre eine SymBox neo auf Hutschiene mit ModBus RTU Erweiterung, daran kannst Du den Wechselrichter über RS485 anschließen. Die Daten werden dann in IP-Symcon aufgezeichnet und Du kannst diese bei Bedarf in Excel auswerten. Abhängig von den Daten des Wechselrichters kannst Du dann Homematic Geräte schalten.
-
- Beiträge: 488
- Registriert: 11.12.2014, 23:40
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 2 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Ich hätte am liebsten eine Lösung bei der ich definierte Werte (z.b. aktuelle Stromproduktion) auslesen und mittels HTTP POST an meine Homematic schicken kann. So übermittle ich auch von verschiedenen anderen Clients Daten an die HM.
Es scheint als gäbe es z.B. für den Raspberry Pi eine RS485-Schnittstelle mit der sich das irgendwie lösen ließe, aber mir fehlt da ein bisschen das Handwerkszeug um sowas einfach mal auf gut Glück zu kaufen und von Grund auf selbst zu bauen.
Im Ummodeln von bestehenden Lösungen bin ich allerdings relativ geschickt
Es scheint als gäbe es z.B. für den Raspberry Pi eine RS485-Schnittstelle mit der sich das irgendwie lösen ließe, aber mir fehlt da ein bisschen das Handwerkszeug um sowas einfach mal auf gut Glück zu kaufen und von Grund auf selbst zu bauen.
Im Ummodeln von bestehenden Lösungen bin ich allerdings relativ geschickt
-
- Beiträge: 6823
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 499 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Modbus hat ja den Vorteil das Du die Daten in Echtzeit über RS485 bekommst, Du zeichnest also z.B. alle Daten des Wechselrichters in Echtzeit in IP-Symcon auf. Wenn Du ein Homematic Gerät abhängig von der Stromproduktion schalten willst, brauchst Du dazu lediglich ein Ereignis anlegen und den entsprechenden Homematic Aktor zu schalten. HTTP wird in dem Fall nicht benötigt, da IP-Symcon den Homematic Aktor direkt über die CCU schaltet.
- Black
- Beiträge: 5527
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 432 Mal
- Danksagung erhalten: 1093 Mal
- Kontaktdaten:
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
hier
https://github.com/rdmtc/RedMatic/wiki/ ... Modbus-TCP
hatte ein User aus dem Forum erfolgreich einen E3DC Wechselrichter , aber auch über Modbus mithilfe von RedMatic erfolgreich an eine CCU angebunden. hierbei allerdings beachten, Bei Modbus vorerst bei Redmatic 4.7.1 bleiben (s. a. hier: viewtopic.php?f=77&t=53258&p=533929&hil ... us#p533929)
alternativ als Alternative zu kostenpflichtigen Lösungen gibts Im Community Projet IObroker auch genug Besipiele erfolgreicher Einbundungen eines Solaredge üder RS485 Modbus. Für genauere Information gerne dorf mal im Forum nachfragen.
Black
https://github.com/rdmtc/RedMatic/wiki/ ... Modbus-TCP
hatte ein User aus dem Forum erfolgreich einen E3DC Wechselrichter , aber auch über Modbus mithilfe von RedMatic erfolgreich an eine CCU angebunden. hierbei allerdings beachten, Bei Modbus vorerst bei Redmatic 4.7.1 bleiben (s. a. hier: viewtopic.php?f=77&t=53258&p=533929&hil ... us#p533929)
alternativ als Alternative zu kostenpflichtigen Lösungen gibts Im Community Projet IObroker auch genug Besipiele erfolgreicher Einbundungen eines Solaredge üder RS485 Modbus. Für genauere Information gerne dorf mal im Forum nachfragen.
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Hallo,
bei mir läuft die CCU auf Yahm.
Ausserhalb des Containers läuft ein normales Linux.
Dort habe ich mehrere Scripte geschrieben, die ModPoll aufrufen.
Aufruf via CuXD mit Netzwerkbefehlen.
Damit habe ich die Solaranlage in Echtzeit ausgelesen.
Ausserdem steuere ich einen WallBePro Ladeadapter für meinen
Nissan Leaf. (Ladestrom, Ladezustand, Ladung Ein/Aus, Zeitschaltuhr)
Läuft sehr gut.
Ein Script in TCL, das auf der CCU laufen und den ModBus steuern sollte habe ich nicht zu laufen gebracht.
Vielleicht hat ja jemand eine Idee. Es reicht die Register auszulesen und zu beschreiben.
IOBrocker, RedMatic oder ähnliches ist mir für meine Zwecke einfach zu groß.
Grüße
Aktualisierung: Habe nun ein passendes ModBus Interface
viewtopic.php?f=31&t=55722&p=553720&hil ... us#p553720
Gruß
bei mir läuft die CCU auf Yahm.
Ausserhalb des Containers läuft ein normales Linux.
Dort habe ich mehrere Scripte geschrieben, die ModPoll aufrufen.
Aufruf via CuXD mit Netzwerkbefehlen.
Damit habe ich die Solaranlage in Echtzeit ausgelesen.
Ausserdem steuere ich einen WallBePro Ladeadapter für meinen
Nissan Leaf. (Ladestrom, Ladezustand, Ladung Ein/Aus, Zeitschaltuhr)
Läuft sehr gut.
Ein Script in TCL, das auf der CCU laufen und den ModBus steuern sollte habe ich nicht zu laufen gebracht.
Vielleicht hat ja jemand eine Idee. Es reicht die Register auszulesen und zu beschreiben.
IOBrocker, RedMatic oder ähnliches ist mir für meine Zwecke einfach zu groß.
Grüße
Aktualisierung: Habe nun ein passendes ModBus Interface
viewtopic.php?f=31&t=55722&p=553720&hil ... us#p553720
Gruß
Zuletzt geändert von Indi55 am 04.01.2020, 17:43, insgesamt 1-mal geändert.
RaspberryPI 3B+ PivCCU3. LEDs und Taster an GPIO´s, Fenstersensoren, Rolladenaktoren, Sirene,HQ WebUI, CuxD, XML-API, E-Mail, USB Zählersensor am Raspberry, OpenWeatherMap.API, 1 Wire Temperatursensoren.
WallBe Pro Ladebox und Solaredge Solaranalage via ModBus Anbindung. CarWings/NissanEV anbindung.
SMA Sunny Boy Storage.
WallBe Pro Ladebox und Solaredge Solaranalage via ModBus Anbindung. CarWings/NissanEV anbindung.
SMA Sunny Boy Storage.
-
- Beiträge: 487
- Registriert: 11.01.2015, 21:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 28 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Nod-Red (Redmatic) ist zumindest im Vergleich zu IOBroker, Openhab... doch noch schön leichtgewichtig.
-
- Beiträge: 488
- Registriert: 11.12.2014, 23:40
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 2 Mal
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Gibts da brauchbare Tips wie man den WR auslesen kann ?
Modbus TCP ist ja soweit ich weiß basierend auf irgendwelchen Registern und bestimmten Werten die man auslesen muss.
Ohne irgendwelche Grundlagen natürlich eher ... schwierig
Modbus TCP ist ja soweit ich weiß basierend auf irgendwelchen Registern und bestimmten Werten die man auslesen muss.
Ohne irgendwelche Grundlagen natürlich eher ... schwierig
Re: Solaredge WR über RS485 / Modbus TCP auslesen und Daten in die Homematic schreiben ?
Habe Lösung:
viewtopic.php?f=31&t=55722&p=553720&hil ... us#p553720
Solaredge Wechselrichter auslesen Funktioniert.
Wallbe Ladesäule E-Auto steuern Funktioniert.
Anleitung Solaredge Wechselrichter:
Zuerst Modbus im Wechselrichter freigeben. Siehe Anleitung Solaredge. ( Geht erst ab bestimmten Softwarestand. Ggf. aktualisieren)
Dazu muss das Gerät geöffnet werten. Spannung abschalten, Gerät öffnen, Gerät einschalten.
Das Gerät steht jetzt unter Spannung!!!!! Am besten sollte dies nur ein Erfahrener Elektriker vornehmen.
Ansonsten besteht Lebensgefahr!!
Dann Menueeintrag ändern. Gerät aus, Abdeckung montieren und Gerät wieder einschalten.
Ethernet verbindung muss natürlich vorhanden sein.
Software aus Link installieren. (über ssh Zugang) Ausführungsrechte prüfen!
Geprüft mit Raspi Yahm und Raspimatic. Sollte aber auch CCU laufen.
Systemvariablen vom Typ String anlegen.
PV-Momentanleistung, PV-Gesammtleistung, PV-Status und PV-Fehlernummer
CUXD Gerät erstellen vom Typ System. 4 Tasterkanäle
Folgende Programme erstellen und xxx.xxx.xxx.xxx durch eigene IP-Adresse des Wechselrichters ersetzen.
Programm "PV Gesammtleistung" mit Script erstellen und einmal am Tag aufrufen:
Ergebnis in KW.
Programm "PV Momentanleistung" erstellen und alle paar Minuten aufrufen.
Programm "PV Status" erstellen und alle paar Minuten aufrufen.
Gruß
viewtopic.php?f=31&t=55722&p=553720&hil ... us#p553720
Solaredge Wechselrichter auslesen Funktioniert.
Wallbe Ladesäule E-Auto steuern Funktioniert.
Anleitung Solaredge Wechselrichter:
Zuerst Modbus im Wechselrichter freigeben. Siehe Anleitung Solaredge. ( Geht erst ab bestimmten Softwarestand. Ggf. aktualisieren)
Dazu muss das Gerät geöffnet werten. Spannung abschalten, Gerät öffnen, Gerät einschalten.
Das Gerät steht jetzt unter Spannung!!!!! Am besten sollte dies nur ein Erfahrener Elektriker vornehmen.
Ansonsten besteht Lebensgefahr!!
Dann Menueeintrag ändern. Gerät aus, Abdeckung montieren und Gerät wieder einschalten.
Ethernet verbindung muss natürlich vorhanden sein.
Software aus Link installieren. (über ssh Zugang) Ausführungsrechte prüfen!
Geprüft mit Raspi Yahm und Raspimatic. Sollte aber auch CCU laufen.
Systemvariablen vom Typ String anlegen.
PV-Momentanleistung, PV-Gesammtleistung, PV-Status und PV-Fehlernummer
CUXD Gerät erstellen vom Typ System. 4 Tasterkanäle
Folgende Programme erstellen und xxx.xxx.xxx.xxx durch eigene IP-Adresse des Wechselrichters ersetzen.
Programm "PV Gesammtleistung" mit Script erstellen und einmal am Tag aufrufen:
Code: Alles auswählen
!" PV Auslesen
! Offset der Register = -1
! High Byte
dom.GetObject("CUxD.CUX2801012:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40093 1");
dom.GetObject("CUxD.CUX2801012:2.CMD_QUERY_RET").State(1);
var wert1 = dom.GetObject("CUxD.CUX2801012:2.CMD_RETS").State();
! Low Byte
dom.GetObject("CUxD.CUX2801012:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40094 1");
dom.GetObject("CUxD.CUX2801012:2.CMD_QUERY_RET").State(1);
var wert2 = dom.GetObject("CUxD.CUX2801012:2.CMD_RETS").State();
! Skalierung
dom.GetObject("CUxD.CUX2801012:2.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40095 1");
dom.GetObject("CUxD.CUX2801012:2.CMD_QUERY_RET").State(1);
var scale = dom.GetObject("CUxD.CUX2801012: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);
Programm "PV Momentanleistung" erstellen und alle paar Minuten aufrufen.
Code: Alles auswählen
!" PV Auslesen
! Offset der Register = -1
dom.GetObject("CUxD.CUX2801012:1.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40083 1");
dom.GetObject("CUxD.CUX2801012:1.CMD_QUERY_RET").State(1);
var wert = dom.GetObject("CUxD.CUX2801012:1.CMD_RETS").State();
dom.GetObject("CUxD.CUX2801012:1.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40084 1");
dom.GetObject("CUxD.CUX2801012:1.CMD_QUERY_RET").State(1);
var scale = dom.GetObject("CUxD.CUX2801012:1.CMD_RETS").State();
scale = scale.ToInteger();
wert = wert.ToInteger();
scale = scale * (-1); ! oder scale = scale.Abs();
if (scale == 1) { wert = wert / 10 ; }
if (scale == 2) { wert = wert / 100; }
if (scale == 3) { wert = wert / 1000; }
dom.GetObject("PV Momentanleistung").State(wert);
Code: Alles auswählen
! PV Auslesen
! Status und Fehlermeldungen
!
! Status
dom.GetObject("CUxD.CUX2801012:3.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40107 1");
dom.GetObject("CUxD.CUX2801012:3.CMD_QUERY_RET").State(1);
var wert = dom.GetObject("CUxD.CUX2801012:3.CMD_RETS").State();
if (wert == 1) { wert = "Aus";}
if (wert == 2) { wert = "Nachtmodus";}
if (wert == 3) { wert = "????";} ! Prüfen was dies ist
if (wert == 4) { wert = "AN Energieeinspeisung";}
dom.GetObject("PV Betriebszustand").State(wert);
dom.GetObject("CUxD.CUX2801012:4.CMD_SETS").State("tclsh /usr/local/addons/modbus/modbus_interface.tcl xxx.xxx.xxx.xxx 512 1 03 40108 1");
dom.GetObject("CUxD.CUX2801012:4.CMD_QUERY_RET").State(1);
var wert = dom.GetObject("CUxD.CUX2801012:4.CMD_RETS").State();
if (wert == 0) { wert = "Keine";}
dom.GetObject("PV Fehlernummer").State(wert);
Gruß
RaspberryPI 3B+ PivCCU3. LEDs und Taster an GPIO´s, Fenstersensoren, Rolladenaktoren, Sirene,HQ WebUI, CuxD, XML-API, E-Mail, USB Zählersensor am Raspberry, OpenWeatherMap.API, 1 Wire Temperatursensoren.
WallBe Pro Ladebox und Solaredge Solaranalage via ModBus Anbindung. CarWings/NissanEV anbindung.
SMA Sunny Boy Storage.
WallBe Pro Ladebox und Solaredge Solaranalage via ModBus Anbindung. CarWings/NissanEV anbindung.
SMA Sunny Boy Storage.