NEWS
Modbus adapter
-
Hallo Zusammen,
ich habe mich nun schon ein bisschen mit dem Thema auseinandergesetzt. Leider komme ich nicht weiter.
Ich nutze einen ioBroker-Pi und zum ansprechen meines vsm-103 Zählers eine Silicon Labs VCP USB Serial Bridge CP2102. Diese wird auch im io.Broker erkannt und als Device /dev/ttyUSB0 angezeigt.
Ich habe einen VSM-103 im Einsatz. Datenblatt hier:
https://produktinfo.conrad.com/datenbla … AEHLER.pdf
Bei Volkszähler habe ich dazu auch etwas gefunden:
https://wiki.volkszaehler.org/hardware/ … redirect=1
Nur fehlt mir der Ansatz, wie ich diese Informationen nun im ioBroker eingeben kann um das zum laufen zu bekommen…
Könnte mir hierbei jemand auf's Pferd helfen?
Hier noch ein Auszug des Logfiles:
modbus.0 2018-05-01 23:26:04.923 warn Poll error count: 3 code: "App Timeout" modbus.0 2018-05-01 23:25:59.689 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:25:58.866 warn Poll error count: 2 code: "App Timeout" modbus.0 2018-05-01 23:25:58.716 warn Poll error count: 1 code: {"err":"timeout"} modbus.0 2018-05-01 23:25:58.683 warn Error: undefined modbus.0 2018-05-01 23:25:53.661 info Connected to slave modbus.0 2018-05-01 23:25:52.955 info starting. Version 1.1.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.12.0 modbus.0 2018-05-01 23:25:52.859 info States connected to redis: 127.0.0.1:6379 modbus.0 2018-05-01 23:25:48.647 info terminating modbus.0 2018-05-01 23:15:47.352 info List of port: [{"comName":"/dev/ttyAMA0"},{"manufacturer":"Silicon Labs","serialNumber":"0001","pnpId":"usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0","vendorId":"10c4","produ modbus.0 2018-05-01 23:11:47.048 info List of port: [{"comName":"/dev/ttyAMA0"},{"manufacturer":"Silicon Labs","serialNumber":"0001","pnpId":"usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0","vendorId":"10c4","produ modbus.0 2018-05-01 23:08:58.026 error Reconnect did not help, restart adapter modbus.0 2018-05-01 23:08:58.025 warn Poll error count: 14 code: {"err":"timeout"} modbus.0 2018-05-01 23:08:53.017 info Connected to slave modbus.0 2018-05-01 23:07:53.011 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:07:52.013 error Reconnect did not help, restart adapter modbus.0 2018-05-01 23:07:52.011 warn Poll error count: 13 code: {"err":"timeout"} modbus.0 2018-05-01 23:07:52.009 warn Error: undefined modbus.0 2018-05-01 23:07:47.001 info Connected to slave modbus.0 2018-05-01 23:06:52.187 warn Poll error count: 12 code: "App Timeout" modbus.0 2018-05-01 23:06:46.983 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:06:46.174 warn Poll error count: 11 code: "App Timeout" modbus.0 2018-05-01 23:06:45.984 warn Poll error count: 10 code: {"err":"timeout"} modbus.0 2018-05-01 23:06:45.980 warn Error: undefined modbus.0 2018-05-01 23:06:40.972 info Connected to slave modbus.0 2018-05-01 23:05:46.165 warn Poll error count: 9 code: "App Timeout" modbus.0 2018-05-01 23:05:40.960 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:05:40.155 warn Poll error count: 8 code: "App Timeout" modbus.0 2018-05-01 23:05:39.960 warn Poll error count: 7 code: {"err":"timeout"} modbus.0 2018-05-01 23:05:39.957 warn Error: undefined modbus.0 2018-05-01 23:05:34.953 info Connected to slave modbus.0 2018-05-01 23:04:40.147 warn Poll error count: 6 code: "App Timeout" modbus.0 2018-05-01 23:04:34.941 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:04:34.130 warn Poll error count: 5 code: "App Timeout" modbus.0 2018-05-01 23:04:33.942 warn Poll error count: 4 code: {"err":"timeout"} modbus.0 2018-05-01 23:04:33.938 warn Error: undefined modbus.0 2018-05-01 23:04:28.927 info Connected to slave modbus.0 2018-05-01 23:03:34.127 warn Poll error count: 3 code: "App Timeout" modbus.0 2018-05-01 23:03:28.910 info Disconnected from slave 127.0.0.1 modbus.0 2018-05-01 23:03:28.086 warn Poll error count: 2 code: "App Timeout" modbus.0 2018-05-01 23:03:27.921 warn Poll error count: 1 code: {"err":"timeout"} modbus.0 2018-05-01 23:03:27.904 warn Error: undefined modbus.0 2018-05-01 23:03:22.884 info Connected to slave modbus.0 2018-05-01 23:03:22.168 info starting. Version 1.1.1 in /opt/iobroker/node_modules/iobroker.modbus, node: v6.12.0 modbus.0 2018-05-01 23:03:22.089 info States connected to redis: 127.0.0.1:6379
-
Hoffe es gibt über kurz oder lang einen iobroker.modbus adapter update welcher dann auch über Serial mehrer Adressen abfragen kann…
hab das mal im Adapter Test Forum angefragt... `
habe ein issue bei Github aufgemacht… `
-
Also du hattest natürlich recht…ich kann nicht mehrere Instanzen über einen USB Rs232-Rs485 Konverter laufen lassen. Die zusätzlichen 2 Adapter bleiben dann im Status gelb...
In der Zwischenzeit könntest Du es auch mal mit Node-Red versuchen.
Mit diesem Adapter habe ich mich noch nicht auseinader gesetzt…werde ich die Tage mal machen...Danke für den Hinweis....
-
Ich nutze einen ioBroker-Pi und zum ansprechen meines vsm-103 Zählers eine Silicon Labs VCP USB Serial Bridge CP2102. Diese wird auch im io.Broker erkannt und als Device /dev/ttyUSB0 angezeigt. `
Kann dieser Adapter denn RS-485 ? Konnte auf die schnelle mit Google dazu nichts finden.
Desweiteren solltest du mal Screenshots deiner Adapter Einstellungen Posten.
Gibt es für den Zähler auch eine Übersicht welche Modbus Adressen verwendet werden können?
-
Ich nutze einen ioBroker-Pi und zum ansprechen meines vsm-103 Zählers eine Silicon Labs VCP USB Serial Bridge CP2102. Diese wird auch im io.Broker erkannt und als Device /dev/ttyUSB0 angezeigt. `
Kann dieser Adapter denn RS-485 ? Konnte auf die schnelle mit Google dazu nichts finden.
Desweiteren solltest du mal Screenshots deiner Adapter Einstellungen Posten.
Gibt es für den Zähler auch eine Übersicht welche Modbus Adressen verwendet werden können? `
Hi und sorry dass meine Antwort ein wenig gedauert hat,ja der wandelt von USB auf RS485. Wird ja auch erkannt und ist als dev/ttyUSB0 auswählbar. Das habe ich bereits getan. Sonst ist alles default, da ich nun nicht mehr weiterweiß. Das was ich zu dem Zähler gefunden habe, habe ich per link mit gepostet. Frage 1: Reichen die von mir zusammen getragenen Informationen aus um den Zähler abzufragen? Wenn nein was benötige ich dafür noch?
Frage 2: Wie muss ich was wo eintragen, damit ich Werte auslesen kann?
Danke für Eure Mühe und Zeit!
-
Also wenn ich nach deinem Adapter Google und dann mal dieses Datensheet nehme: https://www.silabs.com/documents/public … CP2101.pdf --> steht da nichts von RS-485 und bloß weil der Adapter unter Linux/iobroker erkannt wird bedeutet es ja nicht das er die erforderlichen beherrscht.
Ein paar Modbus Adressen stehen ja auf der Volkszählerseite, hast du z.B. mal versucht die Adresse "16" auszulesen?
Screenshots deiner bisherigen Einstellungen würde da helfen.
-
Also wenn ich nach deinem Adapter Google und dann mal dieses Datensheet nehme: https://www.silabs.com/documents/public … CP2101.pdf --> steht da nichts von RS-485 und bloß weil der Adapter unter Linux/iobroker erkannt wird bedeutet es ja nicht das er die erforderlichen beherrscht.
Ein paar Modbus Adressen stehen ja auf der Volkszählerseite, hast du z.B. mal versucht die Adresse "16" auszulesen?
Screenshots deiner bisherigen Einstellungen würde da helfen. `
So, hier mal die Screenshots:
und hier die vom Hersteller gerade eingetroffene Schnittstellenbeschreibung:
Ich hoffe das hilft
-
Also wenn ich nach deinem Adapter Google und dann mal dieses Datensheet nehme: https://www.silabs.com/documents/public … CP2101.pdf --> steht da nichts von RS-485 und bloß weil der Adapter unter Linux/iobroker erkannt wird bedeutet es ja nicht das er die erforderlichen beherrscht.
Ein paar Modbus Adressen stehen ja auf der Volkszählerseite, hast du z.B. mal versucht die Adresse "16" auszulesen?
Screenshots deiner bisherigen Einstellungen würde da helfen. `
Hier noch ein Link zu dem USB zu RS485 Adapter:
-
Verkabelt hast du es richtig mit Abschlußwiderständen?
Parität laut Doku:
Geschwindigkeit usw. stimmt mit dem überein was im Zähler eingestellt ist?
Der Wert für "16" ist ein Float Wert laut der Doku.
Wenn bei "Eingangsregister" nichst kommt, das mal unter "Holding Register" eintragen. Musste ich bei meinen Zählern machen.
-
Verkabelt hast du es richtig mit Abschlußwiderständen?
Parität laut Doku: Parity Even.jpg
Geschwindigkeit usw. stimmt mit dem überein was im Zähler eingestellt ist?
Der Wert für "16" ist ein Float Wert laut der Doku. Adresse 16.jpg
Wenn bei "Eingangsregister" nichst kommt, das mal unter "Holding Register" eintragen. Musste ich bei meinen Zählern machen. `
Ähh, Abschlusswiederstände? :shock:Verkabelt hab ich richtig. Aber Wiederstände habe ich nicht benutzt.
Welches Float soll ich denn Deiner Meinung nach nehmen?
-
Kann ich der Anleitung nicht entnehmen, probieren!
Gesendet von iPhone mit Tapatalk Pro
-
Hallo zusammen,
ich würde gerne meinen EPEVER Solar-Regler Tracer1210AN im Wohnwagen in iobroker einbinden.
Hierzu scheint das modbus genau der richtige Adapter zu sein, aber ich komme durch das Protokoll-Wirrwar einfach nicht durch, stehe hier absolut am Anfang Auch die Anleitungen im Internet zum Thema Modbus brachten mich nicht auf den richtigen Kurs, oder ich habe das falsche gelesen.
Vielleicht kann mir hier von den Modbus-Profis ja jemand eine kleine Starthilfe geben:
Das Protokoll ist hier beschrieben:
http://www.solar-elektro.cz/data/dokume … otocol.pdf
Der Solarregler hört mittels der eBox WIFI (http://www.epsolarpv.com/en/index.php/P ... /am_id/139) auf TCP-Befehle.
Aber egal was ich wo eingebe, es funktioniert einfach nicht:
(ich habe mit 16 bit und 32 bit einfach mal was ausgewählt und mehrere Optionen getestet, aber vermutlich bin ich hier sogar total auf dem Holzweg)Das Log meint dazu nur:
modbus.0 2018-05-13 13:09:46.816 warn Poll error count: 3 code: "App Timeout"
modbus.0 2018-05-13 13:09:41.581 info Disconnected from slave 11.11.11.254
modbus.0 2018-05-13 13:09:40.743 warn Poll error count: 2 code: "App Timeout"
modbus.0 2018-05-13 13:09:40.609 warn Poll error count: 1 code: {"err":"timeout"}
modbus.0 2018-05-13 13:09:40.576 warn Error: undefined
modbus.0 2018-05-13 13:09:35.536 info Connected to slave 11.11.11.254
Hmmm….
Danke schonmal für eure Tipps!
Beste Grüße,
Jürgen
-
Das wird so nichts werden denke ich.
Wenn ich das richtig verstehe Spricht der Regler Modbus über RS485 und dein WIFI Teil wandelt das in eine schöne APP/Browser anzeige um. Spuckt aber auf der WIFI Seite kein Modbus mehr aus.
Wenn du das in iobroker haben willst musst du entweder schauen was die App in Verbindung mit dem WIFI Controller macht oder Iobroker direkt an den RS485 Anschluß des Solarreglers anschließen.
-
Oh, schade. Das erklärt natürlich, warum so gar nichts funktioniert…
Danke dennoch für die schnelle Antwort!
Ich habe mal die Pakete mitgelesen, die die App an das WiFi Modul sendet, aber rauslesen geschweige denn rekonstruieren kann ich das nicht.
Gibt es denn einen RS485 zu WiFi-Adapter, der Modbus kann?
Oder lässt sich sowas mit einem ESP8266 realisieren?
Über den RJ45 Port werden auch 5V ausgegeben, da könnte ich problemlos einen ESP dranhängen.
Hmm, sieht mir nach einer Bastellösung aus...
-
Gibt es denn einen RS485 zu WiFi-Adapter, der Modbus kann? `
Gibt es bestimmt.. alles ein frage des Geldes.
Mit ESP habe ich mich noch nie beschäftigt.
Gesendet von iPhone mit Tapatalk Pro
-
Nach etwas Recherche habe ich nun herausgefunden, dass das WiFi-Modul offenbar doch modbus spricht:
Ich habe auf meinem PI einen USB-Port emuliert (socat pty,link=/dev/ttyUSB0 tcp:11.11.11.254:8088) und dann mittels folgendem Script die Daten ausgelesen:
https://github.com/toggio/PhpEpsolarTracer
~/PhpEpsolarTracer-master# php example_cli.php Info Data ---------------------------------- 00 Manufacturer: EPsolar Tech co., LtdTriRon1210 01 Model: V01.42+V01.22. Rated Data ---------------------------------- 00 PV array rated voltage: 100V 01 PV array rated current: 10A 02 PV array rated power: 260W 03 Battery rated voltage: 24V 04 Rated charging current: 10A 05 Rated charging power: 260W 06 Charging Mode: 2 07 Rated load current: 10A RealTime Data ---------------------------------- 00 PV array voltage: 14.5V 01 PV array current: 0.15A 02 PV array power: 2.23W 03 Battery voltage: 13.15V 04 Battery charging current: 0.17A 05 Battery charging power: 2.23W 06 Load voltage: 13.15V 07 Load current: 0A 08 Load power: 0W 09 Battery temperature: 25.07°C 10 Charger temperature: 28.89°C 11 Heat sink temperature: 28.89°C 12 Battery SOC: 75% 13 Remote battery temperature: 0°C 14 System rated voltage: 12V 15 Battery status: 0 16 Equipment status: 11 [...]
So, also das funktioniert.
Jetzt muss ich nur noch herausfinden wie es funktioniert um es in Iobrokers modbus abzubilden.
-
Ok, erster Milestone.
Mit Serial auf den emulierten ttyUSB0 geht es, mittels TCP geht es nicht - jemand ne Idee?
Aber jetzt brauche ich nochmal die Modbus-Profis im Bezug auf die 32bit Daten:
Volt und Ampere sehen schon gut aus, check!Aber die Watt-Angabe stimmt noch nicht…
So habe ich es aktuell konfiguriert:
Unter http://www.solar-elektro.cz/data/dokume … otocol.pdf steht:
` > (4)For the data with the length of 32 bits, such as power, using the L and H registers represent the low andhigh 16 bits value,respectively. e.g.The charging input rated power is actually 3000W, multiples of 100 times,
then the value of 0x3002 register is 0x93E0 and value of 0x3003 is 0x0004. `
Ähh, wie ist das in iobroker zu konfigurieren??Mit 32bit scheint es alleine nicht zu funktionieren.
Jemand ne Idee?
-
Kann es denn sein das bei der Watt Angabe nur der Faktor falsch ist?
-
Sieh mal hier, da habe ich das gleiche Problem gehabt:
-
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
-