|
|
||
Stimmt natürlich... SMA nimmt Standardmäßig die 126 als Unit ID für Sunspec (Unit ID für Modbus + 123). Die Unit ID kann ich bei der Regelung von Nibe natürlich nicht angeben :/ Auf welche Unit ID achtet die Regelung überhaupt? Gibt es sonst eine Möglichkeit einen Modbus Server bereitzustellen der einfach die Daten 1 zu 1 umsetzt auf die passende Unit ID? Ich vermute die 1 wenn das nicht weiter von Nibe beachtet wurde ^^ |
||
|
||
Bei mir verweist der Link in myUplink noch immer auf das Changelog von 2.4.3. https://www.nibe.eu/myuplink_changelog Habt Ihr vielleicht einen besseren Link für mich? Die Sunspec Modbus Funktionalität würde mich schon sehr reizen.. 😀 Habt Ihr schon irgendwo Doku dazu gefunden? Eine technische Beschreibung wäre praktisch. Mein Fronius kann seine Werte z.B. in zwei Modi publizieren: Als Float oder als Integer mit Skalierungsfaktor in einem eigenen Register... |
||
|
||
Ich Finde die auch nicht mehr. Ich kann auch keinen Verbindungsversuch der WPWP [Wärmepumpe] zum WR WR [Wechselrichter] festellen (Wireshark) |
||
|
||
Hab genau wegen diesem Thema schon letzte Woche dem Nibe-Support geschrieben, bekam das hier zurück: "We have unfortunately received a bug which means that the version history is not displayed correctly, our developers are working on it and expect it to be fixed soon." |
||
|
||
Same. Wenn die schon devs brauchen um release-notes upzudaten und sich hier ein "bug" einschleichen kann verstehe ich so manchen quirks mit den firmware-releases ^^ |
||
|
||
Eine Woche vergangen und die "developers" haben es immer noch nicht geschafft, EINE Datei auf dem Server auszutauschen, was für ein trauriger Verein... Technik Note 1, Software Note 5 |
||
|
||
Hab deswegen Anfrage geschickt, heute das bekommen: "Hi we must apologize for the delay, the the release note is now published" Vielleicht hatten sie es einfach vergessen. |
||
|
||
So, heute war's bei mir dann auch so weit, aus heiterem Himmel ist die Steuerung abgestürzt, kein Werte mehr über Modbus, am Display kein Datum mehr, keine Anzeigen... hab jetzt erst mal neu gestartet, da selbst auf "Firmwareupdate" keine Reaktion mehr kam... Firmware V2.4.3 |
||
|
||
und nach Neustart alles wieder gut? Ich bin nun schon eine Weile auf 2.2.1 weil bei der schießt sich die WW WW [Warmwasser]-Ladung bei mir nicht ins aus, und ich kanns auf Auto laufen lassen. Bisher zum Glück keine Abstürze noch |
||
|
||
ja, jretzt läft sie wieder ganz normal... |
||
|
||
Der Changelog ist Aktualisiert |
||
|
||
Ich hab schon gehofft, ich bleib verschont... ... aber heute war ich auch dran - sie hat sich aufgehängt. Die Start-Screens haben noch funktioniert aber beim Aufruf der Menüs nur mehr ein leerer Schirm. Keine Modbus-Daten mehr. Ich hatte FW 2.4.3. Nach einem Reboot war zum Glück wieder alles da. Hab die Gelegenheit gleich genutzt um auf 2.5.1 upzugraden. Proceeding with fingers crossed... |
||
|
||
Bei den Neuerungen wird ein neues Modbus-Register erwähnt: • Possibility to read out instantaneous power use via modbus register 2157 Funktioniert bei mir aber nicht. Wenn ich es als Input-Register ansprechen will (wäre logisch), erhalte ich eine Illegal function Modbus Exception, so wie bei den anderen nicht belegten Registern. Wenn ich es als Holding-Register auslese, kommt 0 zurück, obwohl gerade Warmwasser gemacht wird. Hat hier schon jemand Erfolg gehabt? |
||
|
||
Ich hab mir das neue (nicht funktionierende) Modbus-Sunspec Feature mal genauer angesehen... Wenn man richtig mitsnifft (Port Mirroring oder RSPAN), sieht man schon die Modbus-Requests zum Wechselrichter und dann erkennt man auch gleich, dass Eure Vermutung mit der falschen Unit-ID stimmt. Das Problem ist, dass der Wechselrichter fix mit der Modbus Unit-ID 0 angesprochen wird: Frame 1: 78 bytes on wire (624 bits), 78 bytes captured (624 bits) on interface 0 Ethernet II, Src: 58:7a:62:80:ba:4e (58:7a:62:80:ba:4e), Dst: FroniusS_24:70:c7 (00:03:ac:24:70:c7) Internet Protocol Version 4, Src: 10.0.0.11 (10.0.0.11), Dst: 10.0.0.12 (10.0.0.12) Transmission Control Protocol, Src Port: 59310 (59310), Dst Port: mbap (502), Seq: 1, Ack: 1, Len: 12 Modbus/TCP Transaction Identifier: 31473 Protocol Identifier: 0 Length: 6 Unit Identifier: 0 Modbus Function Code: Read Holding Registers (3) Reference Number: 40000 Word Count: 2 Viele Modbus Devices ignorieren die Unit-ID, aber mein Fronius braucht die Unit-ID 1, sonst antwortet er nicht. Basierend auf den von der Nibe mitgesnifften Daten kann ich das Verhalten mit modpoll reproduzieren: Nibe request (Unit ID 0) $ modpoll -0 -r 40000 -t4 -c2 -1 -o 5 -a0 10.0.0.12 modpoll 3.9 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2020 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: MODBUS/TCP, FC3 Slave configuration...: address = 0, start reference = 40000 (PDU), count = 2 Communication.........: 10.0.0.12, port 502, t/o 5.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave... Reply time-out! Funktionierender Request (Unit ID 1) $ modpoll -0 -r 40000 -t4 -c2 -1 -o 5 -a1 10.0.0.12 modpoll 3.9 - FieldTalk(tm) Modbus(R) Master Simulator Copyright (c) 2002-2020 proconX Pty Ltd Visit https://www.modbusdriver.com for Modbus libraries and tools. Protocol configuration: MODBUS/TCP, FC3 Slave configuration...: address = 1, start reference = 40000 (PDU), count = 2 Communication.........: 10.0.0.12, port 502, t/o 5.00 s, poll rate 1000 ms Data type.............: 16-bit register, output (holding) register table -- Polling slave... [40000]: 21365 [40001]: 28243 👉 Nibe sollte also die Modbus-Unit-ID konfigurierbar machen. In der Zwischenzeit könnte ich mir vorstellen, dass man mit einem "Rewriting-Modbus-Reverse-Proxy" zu einem recht schnellen Erfolg kommen könnte. Z.B. schaut es so aus, als könnte man diesen Python Proxy mit wenig Aufwand aufbohren, so dass er die Unit-ID umschreibt: https://github.com/tiagocoutinho/modbus-proxy Wenn mir irgendwann an einem Wochenende fad ist, probier ich das vielleicht. Mal schauen, wie weit man dann kommt. |
||
|
||
Anbei meine aktuelle iobroker Modbus Liste für v3.4.9 _address name description unit type len factor offset formula role room cw isScale 7 BT3 Rücklauf °C uint16be 1 0.1 0 value false false 8 BT7 Brauchwasser Oben °C uint16be 1 0.1 0 value false false 9 BT6 Brauchwasser °C uint16be 1 0.1 0 value false false 10 BT10 Sole in °C int16be 1 0.1 0 value false false 11 BT11 Sole aus °C int16be 1 0.1 0 value false false 12 BT12 Kondenstaorvorlauf °C uint16be 1 0.1 0 value false false 13 BT14 Heissgas °C uint16be 1 0.1 0 value false false 14 BT15 Flüssigkeitsleitung °C uint16be 1 0.1 0 value false false 37 BT25 Temperatur °C uint16be 1 0.1 0 value false false 38 BT50 Raumtemperatur °C uint16be 1 0.1 0 value false false 1046 Inverterfrequenz Inverterfrequenz hz uint16be 1 0.1 0 value false false 1047 Invertertemperatur Invertertemperatur °C uint16be 1 0.1 0 value false false 1084 Kompressorstarts Kompressorstarts uint16be 1 1 0 value false false 1102 GP1 Heizungspumpe % uint8be 1 1 0 value false false 1533 GP2 Solepumpe % uint8be 1 1 0 value false false 1536 Betriebszeit Betriebszeit Gesamt h uint16be 1 1 0 value false false 1690 Vorlauf Vorlauf °C uint16be 1 0.1 0 value false false Leider habe ich ein Problem mit Register 40/41 Volumenstrom... Sobald ich 40 oder 41 eintrage mit egal welchem Datentyp steigt der Adapter aus :( |
||
|
||
Habe einen Proxy auf Java-Ebene geschrieben. Soweit klappt es auch bis darauf das die Nibe auf den Register 40102 + 40103 zugreift. Die Register sind alle hierbei +1... 24-07-2021 17:51:55:317 | Fetched Multiple Registers 40000 counting 2 24-07-2021 17:51:55:361 | Fetched Multiple Registers 40004 counting 16 24-07-2021 17:51:55:391 | Fetched Multiple Registers 40098 counting 2 24-07-2021 17:51:55:423 | Fetched Multiple Registers 40107 counting 1 24-07-2021 17:51:55:457 | Fetched Multiple Registers 40108 counting 1 24-07-2021 17:51:55:496 | Fetched Multiple Registers 40083 counting 2 24-07-2021 17:51:55:530 | Fetched Multiple Registers 40103 counting 2 24-07-2021 17:51:55:539 | Fetched Multiple Registers 40103 counting 2 Die beiden letzten scheinen ein Problem aktuell :( Update: ---- Nun greift die WPWP [Wärmepumpe] die Werte sekündlich bei mir ab, die beiden fehlenden Register bei SMA habe ich ersteinmal mit -1 zurückgegeben. 24-07-2021 18:48:01:444 | Fetched Multiple Registers 40000 counting 2 24-07-2021 18:48:01:481 | Fetched Multiple Registers 40004 counting 16 24-07-2021 18:48:01:512 | Fetched Multiple Registers 40098 counting 2 24-07-2021 18:48:01:543 | Fetched Multiple Registers 40107 counting 1 24-07-2021 18:48:01:580 | Fetched Multiple Registers 40108 counting 1 24-07-2021 18:48:01:612 | Fetched Multiple Registers 40083 counting 2 24-07-2021 18:48:01:643 | Fetched Multiple Registers 40103 counting 2 24-07-2021 18:48:01:670 | Fetched Multiple Registers 40093 counting 3 24-07-2021 18:48:01:750 | Fetched Multiple Registers 40052 counting 16 Komisch ist das obwohl ich Anfragen nur weiterleite und nicht selber bearbeite die Werte in der Heizung nicht passen. Einige sind meine ich an der Character Grenze und andere anscheinend nicht richtig sortiert. Die PV Leistung ist aktuell 901W und die WPWP [Wärmepumpe] meldet 39321W Die Seriennummer des Wechselrichters ist durcheinander gewürfelt. Die Temperatur zeigt 6553,5 an genau wie die Spannung VPV-1. Das ist mir alles zu blöd so langsam :( |
||
|
||
Habe es soweit :) Klappt nun alles, die Temperatur wird von meine Wechselrichter nur leider nicht ausgegeben. Und der Produzierte Strom ist nicht fertig da ich nicht weiß welcher Zeitraum hier gemeint ist :( Und der zweite String wird auch nicht abgerufen ^^ |
||
|
||
So weit bin ich jetzt auch, Die Werte von der PV stehen jetzt in der Wärmepumpe. Durch/mit einer S7-1200 Die Nibe hält sich aber noch nicht an die Sunspec. Ich musste die Werte einzeln zuweisen Hier kann man die Modbus Adressen vom SunSpec ableiten hxxp://github.com/sunspec/models/tree/master/smdx Die Adressen sind nicht bei allen Wechselrichtern fix. Wenn man sich aber an das Protokoll hält müsste es aber bei allen SunSpec Wechselrichtern direkt klappen. Ohne Offset/Faktoren usw. Die können auch ausgelesen werden die kwh werden auch Falsch zusammengerechnet. Die Wörter musste ich schon drehen. Aber wenn das 2. wort über 32768 ist. Ist dieser in der Nibe Negativ. Also int anstatt uint verwendet |
||
|
||
Hi, ich möchte mich jetzt dann auch an der Sunspec-Integration versuchen. Das ganze soll bei mir über eine S7-1500 laufen, da mein WR WR [Wechselrichter] kein Sunspec kann. Wo finde ich denn in dem github-Beitrag die Sunspec-Spezifikationen? Bin da irgendwie nicht fündig geworden. |
||
|
||
Bei 40000 fängt es mit den 4 chars "SunS" an. Dann folgt https://github.com/sunspec/models/blob/master/smdx/smdx_00001.xml Dann https://github.com/sunspec/models/blob/master/smdx/smdx_00101.xml 40000 = S 40001 = u 40002 = n 40003 = S 40004 = 1 (für Datenblock in smd _00001xml) 40005 = 66 (Datenblock hat 66 Byte) ... Normal weiter mit beliebigen Datenblöcken. Am Anfang immer die Nr und die länge. daran hält sich die WPWP [Wärmepumpe] aber noch nicht. Ich habe hinter dem CommonBlock einfach ein Array mit Integer angelegt. Die mit Zahlen hochgezählt. Und dann geschaut je nach Nr welche Adresse die Richtige ist. wichtig beim Siemens Baustein den Offset von 40000 einstellen. Bei den kWh die Wörter tauschen. Von ein paar XML hab ich schon UDT's gemacht, gerade Laptop nicht an... |
||
|
||
Vielen Dank für deine Erklärungen. Ich hatte heute leider nicht viel Zeit und hab mich nur noch ein Bisschen zum Thema Sunspec umgesehen. Dabei bin ich auf folgende Seite gestoßen: https://sunspec.org/certified-registry/ Hier findet man verschiedene Geräte, die Sunspec unterstützen und zu den Geräten auch, welche Sunspec-Modelle diese unterstützen. Dort gibt’s dann auch die entsprechende Excel, in der die Parameter + Adresse aufgeführt sind. Gibt’s von Nibe denn schon nähere Infos, mit welchen Sunspec-Modellen sie überhaupt arbeiten? Ich meine, es würde ja keinen Sinn machen, Modelle bereit zu stellen, die später nicht genutzt werden. Gruß debabbe |
Beitrag schreiben oder Werbung ausblenden?
Einloggen
Kostenlos registrieren [Mehr Infos]