NEWS
[gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden
-
@nobbiman Ich würde das immer erst mit einem Register testen. Idealerweise eines bei dem man sicher weis das der WR hergibt. Ist die Verdrahtung der beiden Kabel A und B richtig angeklemmt. Evtl einfach mal tauschen.
Hier ein Bild der Verdrahtung: -
@mane444 Danke für deine Rückmeldung, leider bin ich heute Abend unterwegs, meine aber, die Verdrahtung genauso gemacht zu haben. Das prüfe ich morgen.
Kannst du etwas zum Thema der Ports und des korrekten Eintrags sagen? -
@nobbiman So, ich habe nun die Verdrahtung nochmals geprüft und auch den Durchgang gemessen - alles so, wie es sein soll. Die PIN-Belegung in der Beschreibung ist meiner Meinung nach nicht so ganz eindeutig, ich denke aber, es müsste so sein, wie im Bild 1 dargestellt und zwar die Verdrahtung auf PIN 3 und 4 dargestellt, da ich einen solchen Rundstecker habe.
Mittlerweile habe ich auch nochmals an den Adressen "gespielt" und experimentiere nur noch mit einer Adresse (3001 = PV power total). Im Ergebnis bleibt die Verbindung nun zwar bestehen und es gibt keine Fehlermeldungen mehr, aber es wird kein Objekt im ioBroker unter "input registers" angelegt, demzufolge erhalte ich auch keine Daten. Mindestens leite ich daraus ab, dass die Porteinstellungen doch korrekt sind.
Beim Versuch, mit mehreren anderen der 4-stelligen Adressen, werden auch keine Objekte in ioB erzeugt.
Welchen Einfluss haben denn die Angaben wie Typ (z.B. Unsigned 16 bi Big Endian) oder Rolle (z.B. value oder state) beim Registereintrag? Können diese Einstellungen auch das Anlegen eines Objektes verhindern, dann würde ich auch hier alle Varianten durchtesten?Sobald ich ein 5-stelliges Register angebe (z.B. 33001), bricht die Verbindung zum Device wie ursprünglich angegeben ab.
Kann mir noch jemand bei diesem nächsten Schritt weiterhelfen?
-
@nobbiman ich denke du bist auf dem richtigen Weg.
Wenn du bei den Adapter Einstellungen Aliases benutzen anhakst dann solltest du die 33000 Register haben
Ohne Aliase sind es die 3000er.
Du hast evtl beim 3000 Register den falschen Typ gewählt. Bei mir ist das "Unsigned 16Bit (Big Endian)"Hier mal meine Registerliste:
_address name description unit type len factor offset formula role room cw isScale 30109 RemoteCtrlEn uint16be 2 1 0 level false false 30110 RemoteCtrlPow uint16be 2 1 0 level false false 30120 Battery Type 0 Lead acid 1 Lithium battery uint16be 2 1 0 level false false 33001 Inverter Status 0:warten; 1:normal; 3:Fehler " " uint16be 1 1 0 level false false 33002 Ppv Eingangsleistung PV W uint32be 2 0.1 0 level false false 33004 Upv1 Spannung PV1 V uint16be 1 0.1 0 level false false 33005 Ipv1 Strom PV1 A uint16be 1 0.1 0 level false false 33006 Ppv1 Eingangsleistung PV1 W uint32be 2 0.1 0 level false false 33008 Upv2 Spannung PV2 V uint16be 1 0.1 0 level false false 33009 Ipv2 Strom PV2 A uint16be 1 0.1 0 level false false 33010 Ppv2 Eingangsleistung W uint32be 2 0.1 0 level false false 33024 Pac Ausgangsleistung AC W int32be 2 0.1 0 level false false 33026 Fac Ausgangsfrequenz Hz uint16be 2 0.01 0 level false false 33027 Vac1 Spannung L1 V uint16be 1 0.1 0 level false false 33028 Iac1 Strom L1 A uint16be 1 0.1 0 level false false 33029 Pac1 Leistung L1 VA uint32be 2 0.1 0 level false false 33031 Vac2 Spannung L2 V uint16be 1 0.1 0 level false false 33032 Iac2 Strom L2 A uint16be 1 0.1 0 level false false 33033 Pac2 Leistung L2 VA uint32be 2 0.1 0 level false false 33035 Vac3 Spannung L3 V uint16be 1 0.1 0 level false false 33036 Iac3 Strom L3 A uint16be 1 0.1 0 level false false 33037 Pac3 Leistung L3 VA uint32be 2 0.1 0 level false false 33039 Vac12 Spannung L1-L2 V uint16be 1 0.1 0 level false false 33040 Vac23 Spannung L2-L3 V uint16be 1 0.1 0 level false false 33041 Vac31 Spannung L3-L1 V uint16be 1 0.1 0 level false false 33042 Ptouser Ausgangsleistung Verbrauch AC W uint32be 2 0.1 0 level false false 33044 Ptogrid Ausgangsleistung Netz AC W uint32be 2 0.1 0 level false false 33046 Ptoload Ausgangsleistung Laden AC W uint32be 2 0.1 0 level false false 33048 Time_total Betriebszeit s uint32be 2 0.5 0 level false false 33050 Eac_today Wirklarbeit Heute kWh uint32be 2 0.1 0 level false false 33053 Eac_total Wirkarbeit gesamt kWh uint16be 2 0.1 0 level false false 33055 Epv_total Wirkarbeit PV gesamt kWh uint16be 2 0.1 0 level false false 33057 Epv1_today Wirkarbeit Heute PV1 kWh uint16be 2 0.1 0 level false false 33059 Epv1_total Wirkarbeit gesamt PV1 kWh uint16be 2 0.1 0 level false false 33061 Epv2_today Wirkarbeit Heute PV2 kWh uint16be 2 0.1 0 level false false 33063 Epv2_total Wirkarbeit gesamt PV2 kWh uint16be 2 0.1 0 level false false 33087 DeratingMode uint16be 1 1 0 level false false 33088 PVISO PVISOValue kOhm uint16be 1 1 0 level false false 33089 L1 DCI L1 DCI mA uint16be 1 0.1 0 level false false 33090 L3 DCI L2 DCI mA uint16be 1 0.1 0 level false false 33091 L3 DCI L3 DCI mA uint16be 1 0.1 0 level false false 33094 Temp1 Inverter IPM Temperatur °C uint16be 1 0.1 0 level false false 33095 Temp2 Inverter Temperatur °C uint16be 1 0.1 0 level false false 33096 Temp3 Boost Temperatur °C uint16be 1 0.1 0 level false false 33097 Temp4 Reserve Temperatur °C uint16be 1 0.1 0 level false false 33098 Temp5 Commmunication broad Temperatur °C uint16be 1 0.1 0 level false false 33099 P Bus Voltage P Bus interne Spannung V uint16be 1 0.1 0 level false false 33100 N Bus Voltage N Bus interne Spannung V uint16be 1 0.1 0 level false false 33101 IPF Inverter Ausgang PF uint16be 1 1 0 level false false 33102 RealOPPercent Ausgangsleistung % % uint16be 1 1 0 level false false 33104 OPFullwatt Ausgansleistung Limit max W uint16be 2 0.1 0 level false false 33106 Fault code Fehlercode uint16be 1 1 0 level false false 33107 Warn code Warnungscode uint16be 1 1 0 level false false
MOD-EDIT: Code in code-tags gesetzt!
-
@mane444 OK, ich vermute mal, dass ich die Farbe der Verbindung überschätzt habe: Schaut man auf das Fehlerprotokoll, so wird die Verbindung ja stets auf- und abgebaut (Disconnect/Connect):
modbus.0 2024-07-20 16:38:09.186 info Disconnected from slave 192.168.2.48 modbus.0 2024-07-20 16:38:08.191 warn [1] Poll error count: 7 code: {"err":"timeout","timeout":10000} modbus.0 2024-07-20 16:38:08.187 error Client in error state. modbus.0 2024-07-20 16:38:08.186 error Request timed out. modbus.0 2024-07-20 16:38:08.185 warn Error: undefined modbus.0 2024-07-20 16:37:58.182 info Connected to slave modbus.0 2024-07-20 16:36:58.177 info Disconnected from slave 192.168.2.48 modbus.0 2024-07-20 16:36:57.178 warn [1] Poll error count: 6 code: {"err":"timeout","timeout":10000} modbus.0 2024-07-20 16:36:57.177 error Client in error state. modbus.0 2024-07-20 16:36:57.176 error Request timed out. modbus.0 2024-07-20 16:36:57.174 warn Error: undefined modbus.0 2024-07-20 16:36:47.171 info Connected to slave
Aber mit dem Anlegen von Objekten im ioB wird es langsam spannend, da es erste Erfolge gibt.
Die Aliase hatte ich bereits angehakt, offenbar jedoch nicht den korrekten Typ gewählt!
Nun habe ich folgende Situation:
Ich habe einmal deine 5 Register (33001-33006) abgekupfert
und finde nun in den Objekten ebenfalls die gewünschten Einträge, allerdings (noch?) ohne Werte
Was fehlt denn nun wohl noch? -
@mane444 Kann es sein, dass man im WR die Modbus-Funktion aktivieren muss?
In einem Thread, den ich im Zusammenhang mit der Ursachensuche der Fehlermeldungclient in error state
fand, kam diese Aussage. Der Thread stand im Zusammenhang mit einem SMA-Wechselrichter.
Beim Growatt-WR finde ich auch nach intensiver Suche keine entsprechende Einstellmöglichkeit. -
Was mir aufgefallen ist, du hast beim Waveshare noch einen falschen Port angegeben:
Bei mir steht hier:
-
@mane444 Ich verstehe von Netzwerktechnik zu wenig, als dass ich qualifiziert antworten könnte.
Im Ergebnis bekomme ich immer noch keine Daten.
Müssen denn die Ports gleich sein?
Die Device-IP ... .48 ist doch die des Waveports, die Destination IP, die des ioBrokers, der bei mir auf einem RasPi läuft. -
@nobbiman sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
die Destination IP, die des ioBrokers, der bei mir auf einem RasPi läuft.
richtig!
aber der Port muss der modbus Port der im Adapter steht sein, nicht die 8081!
8081 ist das Webinterface des adminIch verstehe von Netzwerktechnik zu wenig
deswegen empfehle ich immer wenn möglich auf diese zusätzliche Ebene RS45aufETH zu verzichten
-
@homoran sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
deswegen empfehle ich immer wenn möglich auf diese zusätzliche Ebene RS45aufETH zu verzichten
Hätte ich gerne gemacht, aber ich habe leider nur einen seriellen Ausgang am Wechselrichter. Ich experimentiere mittlerweile mit dem 3. Adapter und das seit Monaten, es will einfach nicht gelingen, dem WR Daten zu entlocken. Wahrlich, meine Geduld wird arg strapaziert, ich will aber nicht aufgeben.
Die Waveshare-Konfiguration sollte nun nach euren Empfehlungen korrekt sein
Kann jemand noch etwas zur Geräte-ID sagen, wie muss sie lauten oder wo bekomme ich die her?
Im ioB habe ich die Standard-ID = 1 belassen! -
@nobbiman sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
aber ich habe leider nur einen seriellen Ausgang am Wechselrichter.
das ist ja auch ok.
Wenn möglich dann mit USB2RS485 direkt mit dem iobroker Host verbinden.
Anfangs hatte ich dafür einen Slave genommen, jetzt sitzt der gesamte iobroker im Keller -
@nobbiman sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
Kann jemand noch etwas zur Geräte-ID sagen, wie muss sie lauten oder wo bekomme ich die her?
Die Geräte ID ist in der Modbus Konfiguration des Endgeräts eingestellt oder einstellbar.
Das wäre dein Wechselrichter -
@homoran sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
Das wäre dein Wechselrichter
Daran hatte ich auch schon gedacht und hatte die ID aus dem Growatt-Adapter im ioB-Modbusadapter eingetragen. Der Growatt-Adapter bekommt ja seine Daten über den China-Server, den ich mit dem Waveshareadapter umgehen möchte.
Auch wenn ich die dort gefundene ID
(1397806) in die ioB-Modbuskonfiguration des Waveshare eintrage, laufen immer noch keine Daten auf! -
@nobbiman sagte in [gelöst] Waveshare RS485 to Eth nicht im Netzwerk zu finden:
die dort gefundene ID
ist die ID des Wechselrichters, nicht des WR-Modbus.
Die ID kann nur von 1-256 sein. -
@homoran Danke für die Unterstützung, ich muss jetzt leider für heute weg, weiß aber immer noch nicht, wo ich die ID ablesen soll
-
@nobbiman Die Geräte ID im IOB Modbusadapter entspricht der Com Adresse im Wechselrichter. Die ist Standardmäßig auf 1. Kann aber im WR geändert werden. WR Handbuch 7.2.2
Bitte immer nach einer Änderung im WR oder im Waveshare den Modbus Adapter im IOB neu starten.
-
@nobbiman Die ID steht normal auf dem Typenschild der Modbus-Geräte, oder, was ich auch schon hatte: Die steht vom Werk auf z.B. 1 und lässt sich per Tool vom Hersteller ändern.
-
@peterfido Die Lösung lautet:
Bei den Verbindungsparmeter ist "TCP" und nicht "RTU over TCP" einzustellen, ein Zufallsergebnis was funktioniert, warum auch immer - ich bin wirklich zufrieden.
Dank an alle, die mich unterstützt haben!Nachtrag: Leider entdecke ich erst jetzt und zu spät, dass @mane444 in diesem Thread am 28. Jan. 2024, 16:12, auf diese Lösung hingewiesen hat - habe ich übersehen - Mist!