NEWS
Modbus adapter
-
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
-
-
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.