NEWS
Modbus adapter
-
Hallo zusammen,
ich habe ein kleines Problem mit meinen Modbus Adaptern.
Kurz vorweg. Ich möchte meine 2 SMA Wechselrichter nach der Adresse der PV Erzeugung abfragen.
Die Adresse ist die 30775 und ist auch korrekt.
Modbus.0 Adapter installiert eingerichtet und klappt. Jede Sekunde kommt der neue Wert vom Wechselrichter an.
Modbus.1 Adapter installiert –> eingerichtet und der Wert wird einmal übertragen und dann nicht mehr. Verbindung ist laut Log in Ordnung.
Der andere Modbus wird fleißig geupdated jedoch der zweite nicht.
Was habe ich getestet
-
Modbus.2 Adapter installiert und nochmal getestet aber ohne erfolgt --> danach gelöscht
-
Modbus.0 Adapter gestoppt und nur Modbus.1 Adapter gestartet ohne erfolg --> weiterhin wird der Modbus.1 nicht sekündlich geupdated
-
Gesamten ioBroker neugestartet ohne erfolg
Jetzt kommt das kuriose:
Wenn ich die IP Adressen der Wechselrichter tausche und läuft weiterhin nur der erste Modbus.0 Adapter sauber.
Es kann also nicht an der Wechselrichterkonfiguration liegen.
Unter Allgemein ist auch alles gleich eingestellt bei beiden.
Habt ihr eine Idee warum der zweite Modbus Adapter nicht ebenfalls sekündlich die Werte bekommt / verarbeiten kann?
(die Werte ändern sich bei bei beiden Wechselrichtern sekündlich. Das kann ich im Webinterface bei beiden sehen)
Besten Dank und Grüße
Kevin
-
-
Seeehr Strange … Welche Version nutzt du ? Die letzte offizielle ist 1.1.1
-
Für alle Leser: v2.0.2 zum Testen auf GitHub verfügbar!
-
Je genau, die 1.1.1
Mein ioBroker läuft in einem Docker Container auf einem Synology NAS.
anbei ein paar Screenshots. Vielleicht hilft es dem ein oder anderen.
Version:
Modbus0
Modbus1
Objekte
Hier seht ihr noch das Problem.
PV Leistung im oberen wird jede Sekunde aktualisiert.
Die zweiet PV Erzeugung 1 kriegt initial den Wert und danach nur nach manuellen aktualisierungen
TCP Port des zweite Wechselrichter habe ich testweise mal auf 503 gestellt. Läuft auch im Modbus.0 einwandfrei damit.
Einen anderen Browser habe ich auch schon getestet
Danke Euch
Grüße
Kevin
-
Also zwei instanzen sollten sich nicht in die Quere kommen.
Auf jeden Fall kann mit einem Switch zu 2.0.2 (auch wenn risiko) besser der Fehler untersucht werden falls er dann noch da ist
-
ich kann den modbus gerne updaten.
meine installation steht noch am anfang und es ist nichts wichtiges drin.
über das "latest" update finde ich es noch nicht. Wie kann ich es im Admin Interface manuell anstoßen?
Grüße
kevin
-
AM bestne im anderen thread weiter, aber: Über "Custom Install" (Das Icon mit dem Github-Symbol/Katze). Dort modbus wählen und go
-
Hallo zusammen,
zunächst mal ein großes Danke an allen hier im Forum!
Habe hier schon viele Lösungen und Tipps gefunden.
Folgende Frage habe ich zum Modbus Adapter:
Zunächst noch eine kurze Erklärung wozu ich den Modbus Adapter verwende. Ich habe einen SMA-Wechselrichter den ich über Modbus anspreche. Funktioniert sehr gut. Da ich auch den Smartmeter-Adapter installiert habe wollte ich meine bisherige harte 70-Prozent-Regelung mit der weichen ersetzen (natürlich nach Rücksprache mit dem Stromanbieter).
Dies funktioniert auch, d.h. ich kann dem Wechselrichter die max. Wirkleistung in Prozent vorgeben. Dazu verwende ich das Holding Register (40016).
Der Wert wird auch im Wechselrichter geschrieben, dieser regelt die Leistung dann entsprechend runter. Jedoch wird über Holding Register der Wert ja auch wieder gelesen, dabei kommt keine sinnvolle Antwort zurück, da dieses Register nur zum schreiben gedacht ist.
Ist es möglich das lesen des Registers zu deaktivieren, oder evtl. ein WO(Write only)-Register einzufügen?
Vielen Dank schon mal im voraus.
Viele Grüße
Roland
-
Heyho Leute,
einmal @role,
solch eine Funktion habe ich noch nicht gefunden.
Ich habe da noch ein anderes Anliegen. Ich spiel derzeit viel mit Wago Modbus und ioBroker herum. Nach langem hin und her, hab ich endlich Modbus sowohl als Slave, als auch als Master zum laufen bekommen.
Docker mit ioBroker liegt bei mir auf einer NAS. Wago hängt im selben Netz und ist ModbusMaster im TCP-Protokoll.
Wago bietet die Möglichkeit einzelne Bits einer Modbusadresse auf true zu setzen.
Gibt es in IoBroker modbus schon eine Möglichkeit die Bits auf der anderen Seite einer Modbusadresse auszulesen. Damit möchte ich jetzt keine Dezimalzahl haben. Würde es nur Smart finden, 1 Adresse nutzen zu können, um 16 Geräte über Boolean anzusteuern.
Das ganze wird noch mit Alexa verbunden Und soll am Ende das ganze Haus nachmöglichkeit automatisieren. Da wäre es Schön bei den Bools Adressen einsparen zu können.
Anbei einmal eine Definition in der Wago:
Varname AT %MX0.0: BOOL;
hier würden wir das erste Bit der Adresse 12288 als Slave zur Verfügung stellen. Wenn ich allerdings mehrere Bits auf einer Adresse nutze, kann ich diese leider überhaupt nicht in IoBroker auslesen. Ich erhalte immer nur das erste Bit der Adresse. Und Wenn ich alles als Register bzw Word definiere, dass ich eine Dezimalzahl über Modbus Schicke, welche am Ende auch nur als Dezimalzahl ankommt, aber sich nicht weiter in Bits zerhacken lässt ohne weitere tools.
Jemand eine Lösung dazu oder ist Blue schon dabei soetwas zu implementieren?
Danke euch im Voraus.
-
Nutze Ananas zum tracen. http://www.tuomio.fi/ananas/
-
Hab mal die Neuste Version installiert. erhalte allerdings jetzt immer Fehler wenn ich online gehen möchte mit der Instanz.
! host.Fileserver 2018-07-10 14:03:18.462 error instance system.adapter.modbus.0 terminated with code 0 (OK)
! Caught 2018-07-10 14:03:18.461 error by controller[0]: port: 502 }
! Caught 2018-07-10 14:03:18.461 error by controller[0]: address: '192.168.1.56',
! Caught 2018-07-10 14:03:18.461 error by controller[0]: syscall: 'listen',
! Caught 2018-07-10 14:03:18.461 error by controller[0]: errno: 'EADDRNOTAVAIL',
! Caught 2018-07-10 14:03:18.460 error by controller[0]: code: 'EADDRNOTAVAIL',
! Caught 2018-07-10 14:03:18.460 error by controller[0]: at process._tickCallback (internal/process/next_tick.js:104:9)
! Caught 2018-07-10 14:03:18.460 error by controller[0]: at _combinedTickCallback (internal/process/next_tick.js:83:11)
! Caught 2018-07-10 14:03:18.459 error by controller[0]: at net.js:1417:9
! Caught 2018-07-10 14:03:18.459 error by controller[0]: at listen (net.js:1307:10)
! Caught 2018-07-10 14:03:18.459 error by controller[0]: at Server._listen2 (net.js:1258:19)
! Caught 2018-07-10 14:03:18.458 error by controller[0]: at exports._exceptionWithHostPort (util.js:1043:20)
! Caught 2018-07-10 14:03:18.458 error by controller[0]: at Object.exports._errnoException (util.js:1020:11)
! Caught 2018-07-10 14:03:18.457 error by controller[0]: { Error: listen EADDRNOTAVAIL 192.168.1.56:502
! modbus.0 2018-07-10 14:03:18.438 info terminating
! modbus.0 2018-07-10 14:03:18.423 error at process._tickCallback (internal/process/next_tick.js:104:9)
! modbus.0 2018-07-10 14:03:18.423 error at _combinedTickCallback (internal/process/next_tick.js:83:11)
! modbus.0 2018-07-10 14:03:18.423 error at net.js:1417:9
! modbus.0 2018-07-10 14:03:18.423 error at listen (net.js:1307:10)
! modbus.0 2018-07-10 14:03:18.423 error at Server._listen2 (net.js:1258:19)
! modbus.0 2018-07-10 14:03:18.423 error at exports._exceptionWithHostPort (util.js:1043:20)
! modbus.0 2018-07-10 14:03:18.423 error at Object.exports._errnoException (util.js:1020:11)
! modbus.0 2018-07-10 14:03:18.423 error Error: listen EADDRNOTAVAIL 192.168.1.56:502
! modbus.0 2018-07-10 14:03:18.420 error uncaught exception: listen EADDRNOTAVAIL 192.168.1.56:502
! modbus.0 2018-07-10 14:03:17.972 info starting. Version 2.0.7 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.14.2
! host.Fileserver 2018-07-10 14:03:16.577 info instance system.adapter.modbus.0 started with pid 19112 -
master oder Slave eingestellt?
-
IoBroker ist Slave und ALiases sind deaktiviert.
Ist als Host installiert.
Problem besteht ab Version 2.0.3 bei mir.
2.0.2 und 2.0.1 ist nicht mehr verfügbar. zumindest findet er die Dateien dafür nicht und version 1.1.1 läuft ohne große Probleme, abgesehen davon, dass mit der Wago schreiben, aber keine Werte gelesen kriege, trotz Functioncode prüfung etc.
Wago arbeitet als Master.
Glaub ich installiere gleich noch einmal die v1.1.1 und schmeiß den Wago Modbus Konfigurator an :lol:
Muss doch gehen, schreiben von 3 Adressen auf 12288-12290 und lesen von 3 Werten von 12291-12293.
-
Also sollte dazu auch erwähnen, dass unter 1.1.1 Werte schreiben kann.
Nur wenn dann geschriebene Werte vom Iobroker lesen möchte, fängt es an Probleme zu machen -.-
ich probier mal den Konfigurator aus, vllt. ist ja doch ein Wago Problem.
Aber wäre schon schön die neuste Version starten zu können.
-
Das heißt, die Wago schreibt in den modbus-adapter von außen? Trage, wenn die Modbus-Adapter als slave konfiguriert ist und auch so laufen soll, als Partner-Adresse die 0.0.0.0 ein. Natürlich kann nur ein modbus-Slave lokal auf dem Port 502 laufen. 2.0.6 hat da einen Fehler korrigiert.
Bei SMA-Wechselrichtern z.B. ist der modbus-Adapter der Master und pollt die Wechselrichter.
-
Stimmt, da hatte ich heute vormittag kurz was zu gelesen hier im Forum.
habs gerade mal unter der 1.1.1 ausprobiert und schwupps kann ich auch Variablen lesen.
Ich Probiers dann mal mit der neusten Version und Hoffe, dass sie startet.
-
Hallo,
ist es irgendwie möglich nur die Einstellungen des Modbusadapters (eingerichtete Adressen) zu exportieren und wieder zu importieren auf einem anderem ioBroker Host.
Vielen Dank vorab
Gruß 4Josh
-
Ja. Dazu in den „Objekte“-Bereich wechseln. Oben auf „Expertenmodus“ umschalten. Dann das Objekt „system.adapter.modbus.x“ mit x=der Nummer der Quellmodbus-Instanz öffnen. Dort im Reiter „nativ“ in den Bereichen discInputs, coils, inputRegs oder holdingRegs die gewünschten Datenstrukturen heraukopieren.
Diese können dann in einer neu angelegten Modbus-Instanz an gleicher Stelle wieder hineinkopiert werden. Anschließend Speichern und in Konfig prüfen, ob die Einstellungen angekommen sind.
-
Hallo,
ich hatte das Problem, dass manche Adressen nicht regelmässig aktualisiert wurden. Nach viel basteln und einem Wechsel auf die 2er Version von GitHub, was aber auch nichts daran geändert hat, habe ich erkannt woran es liegt.
Wenn mehr wie ein Leerzeichen im Namen ist tritt dieser Fehler auf. Nachdem ich die Leerzeichen durch Unterstriche ersetzt hatte lief es.
Vielleicht hilft diese Info ja dem ein oder anderen, der das gleiche Problem hat.
4402_2018-08-11_07_40_49-objects_-_iobroker.png -
Hallo, ich habe heute mein Raspy heruntergefahren und wieder hoch gefahren, seit dem meldet der Modbusadapter folgende Fehler..
Hat jemand ne Idee?
Habe nichts an den Einstellungen geändert…
modbus.0 2018-08-11 19:23:32.092 debug Cleaning up request fifo. modbus.0 2018-08-11 19:23:32.091 debug Clearing timeout of the current request. modbus.0 2018-08-11 19:23:32.079 info Disconnected from slave modbus.0 2018-08-11 19:23:31.081 warn Poll error count: 41 code: {"err":"timeout"} modbus.0 2018-08-11 19:23:31.081 error Request timed out. modbus.0 2018-08-11 19:23:31.080 warn Error: undefined modbus.0 2018-08-11 19:23:26.085 debug Poll holdingRegs DevID(1) address 8200 - 46 bytes modbus.0 2018-08-11 19:23:26.085 debug Poll device 1 modbus.0 2018-08-11 19:23:26.083 info Connected to slave modbus.0 2018-08-11 19:23:26.065 debug connect to serial /dev/ttyUSB0 with 9600 modbus.0 2018-08-11 19:23:20.067 debug Cleaning up request fifo. modbus.0 2018-08-11 19:23:20.066 debug Clearing timeout of the current request. modbus.0 2018-08-11 19:23:20.061 info Disconnected from slave modbus.0 2018-08-11 19:23:19.069 warn Poll error count: 40 code: {"err":"timeout"} modbus.0 2018-08-11 19:23:19.069 error Request timed out. modbus.0 2018-08-11 19:23:19.068 warn Error: undefined modbus.0 2018-08-11 19:23:14.070 debug Poll holdingRegs DevID(1) address 8200 - 46 bytes modbus.0 2018-08-11 19:23:14.070 debug Poll device 1 modbus.0 2018-08-11 19:23:14.068 info Connected to slave modbus.0 2018-08-11 19:23:14.045 debug connect to serial /dev/ttyUSB0 with 9600 modbus.0 2018-08-11 19:23:08.046 debug Cleaning up request fifo. modbus.0 2018-08-11 19:23:08.044 debug Clearing timeout of the current request. modbus.0 2018-08-11 19:23:08.039 info Disconnected from slave modbus.0 2018-08-11 19:23:07.042 warn Poll error count: 39 code: {"err":"timeout"} modbus.0 2018-08-11 19:23:07.042 error Request timed out. modbus.0 2018-08-11 19:23:07.041 warn Error: undefined modbus.0 2018-08-11 19:23:02.046 debug Poll holdingRegs DevID(1) address 8200 - 46 bytes modbus.0 2018-08-11 19:23:02.046 debug Poll device 1 modbus.0 2018-08-11 19:23:02.044 info Connected to slave modbus.0 2018-08-11 19:23:02.021 debug connect to serial /dev/ttyUSB0 with 9600 modbus.0 2018-08-11 19:22:56.022 debug Cleaning up request fifo. modbus.0 2018-08-11 19:22:56.021 debug Clearing timeout of the current request. modbus.0 2018-08-11 19:22:56.016 info Disconnected from slave modbus.0 2018-08-11 19:22:55.019 warn Poll error count: 38 code: {"err":"timeout"} modbus.0 2018-08-11 19:22:55.019 error Request timed out. modbus.0 2018-08-11 19:22:55.017 warn Error: undefined modbus.0 2018-08-11 19:22:50.026 debug Poll holdingRegs DevID(1) address 8200 - 46 bytes modbus.0 2018-08-11 19:22:50.025 debug Poll device 1 modbus.0 2018-08-11 19:22:50.024 info Connected to slave modbus.0 2018-08-11 19:22:50.001 debug connect to serial /dev/ttyUSB0 with 9600 modbus.0 2018-08-11 19:22:44.001 debug Cleaning up request fifo. modbus.0 2018-08-11 19:22:44.000 debug Clearing timeout of the current request. modbus.0 2018-08-11 19:22:43.993 info Disconnected from slave modbus.0 2018-08-11 19:22:43.009 warn Poll error count: 37 code: {"err":"timeout"} modbus.0 2018-08-11 19:22:43.008 error Request timed out. modbus.0 2018-08-11 19:22:43.007 warn Error: undefined modbus.0 2018-08-11 19:22:38.065 debug Poll holdingRegs DevID(1) address 8200 - 46 bytes modbus.0 2018-08-11 19:22:38.065 debug Poll device 1 modbus.0 2018-08-11 19:22:38.064 info Connected to slave modbus.0 2018-08-11 19:22:37.979 debug connect to serial /dev/ttyUSB0 with 9600