Open jove01 opened 1 year ago
Hi, it appears, that the Modbus-Proxy itself can handle multiple devices / upstream hosts - but the Addon itself might not due to the UI design.
devices:
- modbus:
url: plc1.acme.org:502
listen:
bind: 0:9000
- modbus:
url: plc2.acme.org:502
listen:
bind: 0:9001
Maybe, it would be possible to implement this at least for the YAML configuration to allow additional devices to be configured? I am not sure, if this is really required within the UI settings - since most users would 'probably' use only one upstream host.
Hello Christoph Thank you for the answer. Can i edit direct in the Yaml-file and where ist the file located? Jürgen
Moin, gibt es schon hierzu eine Lösung? Bzw. wo könnte man die weiterführende Dokumentation finden, wenn man 2x Geräte über den Modbus-proxy einbinden möchte. Danke!
Same here, would be great if we could config several upstream hosts for this add-on
Ich wäre auch daran interessiert 3 Slaves (Batterie, Wallbox, Wechselrichter) anzubinden. Ich würde auch die Konfig selbst händisch anpassen, finde diese aber nicht in HA. Laut dem original Modbusproxy kann man die Konfig in eine extra YAML einpacken aber mir gelingt es nicht den Modbus Proxy mit dieser eigenen YAML zu starten.
https://github.com/tiagocoutinho/modbus-proxy
devices:
Assuming you saved this file as modbus-config.yml, start the server with:
$ modbus-proxy -c ./modbus-config.yml
Hat da jemand eine Idee wie man das im HA macht? Es sind also 2 Wege denkbar als Lösung. Anpassen der Add-On Konfiguration oder starten des Modbus-Proxy mit der eigenen YAML Datei. Ich bin bei HA noch neu.
hm... ich nutze den Modbus-Proxy selber inzwischen nicht mehr als Addon, sondern innerhalb eines eigenen Containers in meiner Proxmox-Installation... aber wäre es ggf. möglich, mehrere Instanzen des Addons parallel zu betreiben?
Hallo, gibt es hier schon neuere Infos oder Dokus? Hab nämlich genau das gleiche Problem. Aktuell benutze ich den Modbus-Proxy um meinen SE WR mit solaranzeige.de auszulesen und im HA mit evcc die Daten des WR zum Überschussladen zu verwenden. Demnächst wird ein weitere Wechselrichter dazukommen und ich würde gerne beide IP-Adressen über den Proxy laufen lassen! Die YAML-Datei für die Einstellungen kann man ja direkt über die UI von HA erreichen (3 Punkte rechts direkt in der Konfiguration vom modbus-proxy-AddOn) - aber die Form sieht etwas anders aus, als in vielen Dokumentationen zu finden. Momentan sieht das bei mir so aus:
Aber wie müsste ich denn diese YAML-Konfiguration anpassen, damit man hier eine zweite IP-Adresse anbinden kann? Hat da jemand einen Tipp für mich/uns? Der "Listenport" wäre dann natürlich 503 (oder ein beliebiger anderer), aber ich bräuchte eben einen zweiten Upstreamhost mit dem zugehörigen Upstreamport!
Wenn "alle Stricke reißen" und das leider über das HA-AddOn nicht geht (wäre sehr schade), würde ich auch mal versuchen in meinem Proxmox-System eine neue VM aufzusetzen, mit nur dem modbus-proxy, aber schöne wäre eben alles direkt in HA zu haben!
Danke schon mal für jede kleine Unterstützung.
Ich habe das Thema inhaltlich nicht mehr auf dem Schirm. Meine SE WRs etc werden direkt über die Modbus Funktionalität im Home Assistant ausgelesen (HACS Modul SE Multi oder so). Alle SE Devices sind intern so weit möglich über seriellen (485) ModBus verbunden. Ein WR ist als Leader (Master) konfiguriert, die anderen als Follower (Slave).
Das HA Modul spricht nur den Leader über TCP/IP ModBus an, die angehängten Follower werden dabei erkannt und mit ihrer ID abgefragt. Da ist m.W. kein Proxy für nötig.
Mein Kommentar hilft vermutlich nicht bei dem vorhandenen Problem. Thinking out of the Box?
... ja genau - Kommentar hilft leider nicht ;-) Wenn man nur einen Client hat, der den WR auslesen muss, dann braucht man keinen Proxy ;-) Spannend wird es eben, wenn 2 Clients einen WR auslesen sollen/müssen!
Das Setup scheint mir hier gerade etwas unklar ;) Ziel des Proxy ist es, mehrere clients mit einem modbus Interface zu verbinden.
Selbst wenn ein zweites Interface nun dazu kommt, bleiben können die clients sich nur auf das eine Gerät verbinden - für das zweite Interface würde man auch beim Client eine weitere Verbindung anlegen.
Man hätte also ein Setup wie dieses:
Client 1.1
Interface 1 ------
Client 2.1
Client 1.2
Interface 2 -------
Client 2.2
Das macht also nur dann Sinn, wenn auch am Client mehr modbus Verbindungen angelegt werden können.
Ich würde - sofern technisch machbar - auch dazu tendieren, die Wechselrichter ggf. untereinander zu verbinden. Dann sollte dies auch mit nur einem Interface im proxi funktionieren.
Also:
Client 1
WR1 -- WR2 ----
Client 2
Oder sehe ich das jetzt etwas falsch?
... ja - stimmt schon alles. Aber häufig hat man mehrere Modbus-Interfaces. In meinem Fall bei 2 SE-WR ist das evtl. nicht ganz so klar. Aber folgendes Beispiel:
SE WR mit IP-Adresse 1 / Port 502 und Wärmepumpe mit IP-Adresse 2 und Port 502 - das wären die modbus-Interfaces. Auf beide Geräte würde ich nun gerne 1x mit evcc und mit weiteren anderen externen Tools (z.B. solaranzeige.de) zugreifen. Von daher müsste der Proxy 2 Modbus-Interfaces hosten: 1x den SE WR an IP-Adresse 1 Port 502 z.B. auf dem Port 1502 von HA und 1x die Wärmepumpe an IP-Adresse 2 Port 502 auf dem Port 1503 von HA
evcc, solaranzeige.de und auch noch andere Tools würden sich ALLE je nach Zielgerät auf die HA-IP-Adresse mit Port 1502 (für den SE WR) oder Port 1503 (für die Wärmepumpe) verbinden.
OK, ja - so habe ich mir das gedacht. Ich fürchte allerdings, dass das addon dafür nicht ausgelegt ist - und ich bin mit noch noch nichteinmal sicher, ob die darunter liegende Software dies so abbilden kann (müsste ich jetzt aber nochmal schauen).
Im Zweifel würde ich, auch der Redundanz wegen aber einen zweiten Proxy einrichten. Fällt einer aus, bleibt der zweite davon unberührt.
Das ist letztendlich auch der Grund, warum ich von ha addon weg bin... (Klar, fällt der Host aus, ist alles nicht erreichbar, aber das ließe sich mit einem Cluster umgehen)
... die "darunter liegende Software" könnte das aus meiner Sicht ;-) - zumindest ist das so in dessen Doku beschrieben:
Von daher wäre es vermutlich wirklich "nur" eine Erweiterung der Konfigoberfläche im HA-AddOn bzw. die Anpassung der "Konverterfunktion" von der HA-AddOn-Config in die modbus-proxy-config. Da hab ich leider keine Ahnung was und wie das genau abläuft, aber irgendwie muss das HA-AddOn die config-YAML ein bisschen "umbauen", da die YAML im HA-AddOn und die Config-YAML direkt in der modubus-proxy-Software unterschiedliche Struktur bzw. anderes Aussehen haben! Aber eigentlich liegt's nur an der fehlenden Möglichkeit die Config entsprechend zu befüllen ;-)
So ist es. Ich habe eine angepasste Version mit zwei Modbus Hosts am laufen. Wenn ich Zeit finde erstelle ich mal einen Fork.
... ja genau - Kommentar hilft leider nicht ;-) Wenn man nur einen Client hat, der den WR auslesen muss, dann braucht man keinen Proxy ;-) Spannend wird es eben, wenn 2 Clients einen WR auslesen sollen/müssen!
Richtig, dein Problem hatte ich schon verstanden. Mein vorheriger Ansatz war auch so, dass ich meinte mit mehreren Clients (im ModBus Sinne eigentlich Master/Leader) auf den einen WR per ModBus TCP zugreifen zu müssen. Dafür hatte ich mich mit dem Proxy innerhalb HA rumgeschlagen. Nach reichlich Frust -> "Thinking out of the Box". Also lieber nur einen auf den WR zugreifen lassen und dann die Daten für die anderen Datenclients aus dem HA ziehen. KISS. Geht leider nur manchmal.
Nun haben wir die Hoffnung auf einen PR der den Proxyärger erledigt. Freut mich.
... hab durch Zufall heute mal meinen Modbus-Proxy im HA neu gestartet ;-) und dabei dieses Protokoll gesehen:
Wie vermutet wird wirklich einfach nur die Config für den eigentlichen modbus-proxy generiert :-))) - wäre wahrscheinlich daher auch nur eine "kleine" Anpassung in der Konfig-Oberfläche im HA-AddOn und im "Konverter" ;-)
Von daher macht es vermutlich schon Sinn, die Hoffnung noch nicht aufzugeben ;-) ...
Habe mal schnell einen Fork erstellt, mit dem man insgesamt drei Modbus Hosts anbinden kann... Eventuell will ja jemand testen ? https://github.com/TCzerny/ha-modbusproxy
Ich habe direkt einen Modbus Stick am Server sitzen. Würde das auch damit funktionieren? Wenn ja, wie würde eine Config dafür aussehen?
Habe mal schnell einen Fork erstellt, mit dem man insgesamt drei Modbus Hosts anbinden kann... Eventuell will ja jemand testen ? https://github.com/TCzerny/ha-modbusproxy
Ich denke, dass ich das hier brauchen werden, obschon ich keinen blassen Schimmer hatte, was SE bedeuten soll. Irgendwo in Deinen Zeilen stand dann was von Solar Edge.
Meine Modbuswelt ist aktuell noch klein und sollte laut Hersteller nicht funktionieren, weil der Wechselrichter mehr als 15 m Kabellänge weg vom Smartmeter steht.
SETUP
Die weiteren 2 Eastron Smartmeter Typ SDM72DM und die SDM72D S0 Version haben folgende "Randaufgaben"
Vor all denen bzw. über diesen Teilmengen Zählern thront der Eastron SDM 720 V3 Modbus Zähler, der neben 3 o.g. Verbrauchern auch den Strom aus den Growatt Wechselrichtern abdeckt.
Meine Herausforderungen:
Growatt SPH und das Smartmeter Eastron SMD630 V3 modubs sprechen Modbus miteinander. Ich bekomme via "Grott" HA Addon (Growatt Spezialität bzw. Proxy, der die Kommunikation aller Growatt Wechselrichter und deren WiFi Sticks abfängt, um sie per HA mqtt weiter zu kommunizieren und dann u.a. auch an Growatt weiterzuleiten, als sei nix gewesen.
Growatt SPH ist "modbus" Master 001 SDM630 V3 modbus ist Slave Adresse 002
So weit ich weiß, kann ich die Adresse des Growatt SPH nicht ändern und der wäre immer Master.
1. Herausforderung: Wie richte ich nun besagtes Smartmeter und SPH Hybrid Wechselrichter das in Verbindung mit der Pulsar Plus Wallbox ein?
Herausforderung: Was mache ich mit den weiteren Smartmetern, die bisher nur im Zählerschrank installiert wurden und wo jeweils 2 RJ45 Kabel herausgeführt worden sind?
Diesen Punkt erwähne ich aber nur am Rande (damit alle gleich wissen, dass da noch mehr modbus Kisten im Hause sind), denn mein Hauptanliegen ist die 1. Herausforderung, den Überschussstrom mit EVCC nutzen zu können
Letzter Punkt: Das Haus ist grob 25 m lang und inkl. Garage 10 m tief, nur damit man eine Größenvorstellung hat, denn am Übergang vom rechten Drittel zum mittleren des "Schuhkartons Haus" sitzt der Zählerkasten und ganz links unten dann 17 m weg der Hybridwechselrichter, was 30 Kabelmetern entspricht. Links oben von dem Schuhkarton sitzt dann die Wallbox auch wieder 25 Kabelmeter entfernt vom Zählerkasten und gut 20 m vom Hybrid WR.
Hier mal ein Bild des Schuhkarton mit einem "L Anbau"
Und beim Zeichnen fiel dann auch noch auf, dass es möglicher weise 2 weitere Modbusgeräte mit der Brauchwasserwärmepumpe und der Wärmepumpe gibt, die beide SG Ready sind und über 230V Leitung geschaltet werden im Überschussverbrauch. Beide stehen schon da, werden jetzt im Herbst eingebaut.
Das ist also meine Modbus Challenge (im kleinen, denn im großen wären es dann wohl auch noch am Ende 5 weitere kabelgebundene Growatt Netz Wechselrichter).
Wie muss ich mir nun die Verkabelung und Kommunikation wie Adressierung vorstellen, wenn nach dem Master Hybrid WR und dessen Slave Smartmeter nun auch noch ein weiterer "slave" (Master ginge ja wohl nicht) namens Pulsar Plus Wallbox hinzu käme ?
Für den Notfall hab ich mir 868 Mhz 4 Modbus Transceiver gekauft , von denen 1 Master sein kann und 3 als Slave konfiguriert würden, dann bin ich das Thema Kabel im Zweifel los.
Aber ich würde lieber Deinen Ansatz verfolgen und probieren, war auch schon auf Deiner Repository site , hab dort aber keine discussions gefunden oder übersehen.
Habe mal schnell einen Fork erstellt, mit dem man insgesamt drei Modbus Hosts anbinden kann... Eventuell will ja jemand testen ? https://github.com/TCzerny/ha-modbusproxy
installiert + 1x Sungrow SH + 1x Sungrow SG Wechselrichter via Modbus eingebunden ... (dritte Instanz auf Enabled) .. ist zumindest ohne Error gestartet .. mehr kann ich noch nicht sagen . bin aktuell am Aufbau
Danke schonmal dafür !
Habe mal schnell einen Fork erstellt, mit dem man insgesamt drei Modbus Hosts anbinden kann... Eventuell will ja jemand testen ? https://github.com/TCzerny/ha-modbusproxy
Habe es zwar nur mit 2 Geräten gleichzeitig getestet, aber funktioniert einwandfrei. Herzlichen Dank!
the fork of @TCzerny which accepts up to three client works fantastic! would be great to see this merged into the main repo @Akulatraxas
Hello I have 2 Slave (Homeassistant 192.168.178.56) Solvis WP 192.168.178.67 Sungrow WR 192.168.178.84
Both connected to tcp-port 502.
Both works in HA, but the connection is sometime a day broken.
First: What is the way to define 2 upstreamhost (so another user told)?
Second, i have general Problems to connect the slave to modbus proxy. What is the way (best in steps) for existing modbus-connection, that it works?
Thanks