AdapterRequests
AdapterRequests copied to clipboard
Adapter Huawei SUN2000-(3KTL-10KTL)-M1 LUNA2000-(5-30)-S0 DTSU666-H Photovoltaikkombination
What kind of device or service you would like to see an adapter for? Add name and company of the device, including links to the device and any additional informations[...] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Photovoltaik Anlage inkl. Smart Power Sensor und Akkuspeicher von HUAWEI Wechselrichter SUN2000-(3KTL-10KTL)-M1 https://support.huawei.com/enterprise/de/fusionsolar/sun2000ma-pid-22755755 Akkuspeicher LUNA2000-(5-30)-S0 https://support.huawei.com/enterprise/de/fusionsolar/fusionsolardg-pid-23448309 Smart Power Sensor DTSU666-H https://support.huawei.com/enterprise/en/fusionsolar/sun2000l-pid-22027611?category=operation-maintenance ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Is an official API including documentation is available? If yes please add links and informations[...] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Es handelt sich um eine ModBUS Schnittstelle https://support.huawei.com/enterprise/en/fusionsolar/smartlogger-pid-21294677?category=configuration-commissioning&subcategory=configuration-guide ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Are other libraries for an integration available? Ideally in JavaScript/npm, but also other programming languages are interesting, add Links please ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ https://library.loxone.com/detail/huawei-sun2000-inverter-with-smartdongle-modbus-tcp-332/overview ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Is this device already integrated in other Smart Home systems? Add Links please ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Home Assistant: https://github.com/Emilv2/huawei_solar https://community.home-assistant.io/t/integration-solar-inverter-huawei-2000l/132350/1300 As standalone: https://solaranzeige.de/phpBB3/viewtopic.php?t=170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Is this device already integrated in homebridge? Might the ham adapter together with the homebridge plugin be sufficient? Please try it and add infos ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Hab hierzu leider nichts gefunden (Sorry no founds) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Additional context Add any other context or screenshots about the feature request here. If the topic was discussed in ioBroker forum please include the link too. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Diskussion im IOBroker-Forum https://forum.iobroker.net/topic/53005/huawei-sun2000-iobroker-via-js-script-funktioniert ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Vielen Dank!
After you created the issue vote for yourself in the first post of the issue using the "+1"/"Thumbs up" button
@RoHa78 Der Wechselrichter nutzt ModBus und kann darüber eingebunden werden (Google einmal nach SUN2000 ModBus)
@RoHa78 Der Wechselrichter nutzt ModBus und kann darüber eingebunden werden (Google einmal nach SUN2000 ModBus)
Leider scheint der ModBus-Adaper vom IOBroker damit nicht zu funktionieren siehe https://forum.iobroker.net/topic/46048/huawei-sun2000-mit-modbus-adapter-in-iobroker-einbinden Und Scripting / NoteRed beherrsche ich leider nicht.
Wäre dennoch interessant ob das ein Problem/Fehler vom Modbus Adapter ist und mit einem zukünftigen Update gelöst werden könnte. Dazu müsste man aber mal mind (Debug)Logs, die Modbus Spec vom WR und die (Register)Einstellungen der Instanz liefern damit es sich ein Entwickler ansehen kann. Das ganze natürlich als Issue des Modbusadapters.
Edit: hier gibt es schon eines zu Huawei WR: https://github.com/ioBroker/ioBroker.modbus/issues/250
Hi zusammen, nur zur info, falls jemand statt Modbus lieber die Cloud nehmen will (oder in Kombi, zwecks Anreicherung mit zusätzlichen Infos), ich habe gerade einen veröffentlicht:
https://github.com/KornSW/ioBroker.fusionsolar
https://forum.iobroker.net/topic/59422/new-adapter-huawei-fusionsolar-api
bei interesse gerne mal testen ;-)
Grüße, Tobias PS: habs mit Modbus leider auch nicht hinbekommen - würde es allerdings auch bevorzugen!
Hallo zusammen, Ich habe mich recht ausführlich mit Modbus auseinander gesetzt. Und bin dabei einen Adapter zu schreiben, der die Interessanten Modbusregister in den ioBroker übernimmt. Aber ebend das Gerät an sich darstellt. Ist hier noch bedarf? Bzw. Bräuchte ich irgendeine Mitwirkung um die Geräte in den Adapter zu integrieren. Frage: Wir reden über Modbus TCP? Oder?
Grüße
@Icke-de Ja das ist korrekt, beim o.g. Wechselrichter handelt es sich um Modbus TCP. Der Befehlsatz sollte unter https://support.huawei.com/enterprise/en/fusionsolar/smartlogger-pid-21294677?category=configuration-commissioning&subcategory=configuration-guide downloadbar sein. Diverse Links zu diesem Wechselrichter (inkl. Akku) sind von mir im ersten Post vermerkt. Da ich softwaremäßig nicht allzugut bewandert bin kann ich diesbezüglich nur als Tester unterstützen.
Eine Möglichkeit die ich aktuell nutze und ebenfalls auf Modbus TCP besteht ist das Projekt auf https://solaranzeige.de/phpBB3/viewtopic.php?t=170, ist aber standalone. IOBroker wäre mir jedoch deutlich sympatischer...
Anbei ein "kleiner" Auszug aus der DB von Solaranzeige dieser Anlage:
Testen reicht mir da völlig aus. Wenn du Lust und Zeit hast. Die Modbusintegration bei meinem Adapter kann zum Testen über ein NodeJS Projekt laufen, Um erst einmal zu schauen, ob die Werte richtig ankommen. So habe ich das mit meinem SMA TP 8 zumindest gemacht, bevor ich das Ganze im ioBroker eingebunden habe. Kannst du bitte einen direkten Link auf die Modbusbeschreibung setzen ? Ich habe oben bei Huawai geschaut, weiß aber nicht genau welches Dokument genau gemeint ist.
Habe folgende direkte URL für die Beschreibung:
https://support.huawei.com/enterprise/en/doc/EDOC1100050690?idPath=9452479%7C21439560%7C7921563%7C21102414%7C21294677
Sollte dann fogendes Dokument angezeigt werden, das dann runtergeladen werden kann:
Hab auch mal angefangen in NodeRed das Ganze umzusetzen, funktioniert zwar, bin aber hier noch nicht sehr weit:
Ja, das habe ich auch gefunden. Was allerdings die Frage aufwirft willst du den Sun2000 oder den Smartlogger per Modus ansprechen? Das sind wenn ich das richtig geblickt habe, 2 verschiedene Geräte. Sorry, ich muss das für mich nur erst einmal rund haben. Zur Erklärung bei mir ist auch ein Smartmeter zusätzlich verbaut, was die Kommunikation zum SMA Portal (Sunny Portal) übernimmt, was grundsätzlich auch per Modbus abgefragt werden kann, habe aber den WR implementiert. Also spreche den direkt an. Bei Huawei gibt es in dem PDF (2.5) einen Verweis auf eine eigene Modbus Beschreibung für den Sun2000.
So wie ich das verstehe, sammelt der Wechselrichter die Daten vom Smartlogger. Dieser wiederum ist mit einem sog. SDongle mit dem Netzwerk verbunden. Über diese Schnittstelle können dann die Daten allesamt sowohl von Wechselrichter, Akku und Smartmeter abgefragt werden. Habe hierzu noch folgenden Link gefunden https://photomate.zendesk.com/hc/en-gb/article_attachments/8560845348253/SDongle_V100R001C00SPC133_Release_Documents.zip Hierin enthalten ist ein kompletter Dokumentensatz von diesem SDongle. Darin befindet sich auch das Dokument SDongleA V100R001C00 MODBUS Interface Definitions.pdf. Mit diesen Angaben sollte man dann über diesen SDongle die kompletten Daten abfragen können. Wenn ich die wenigen Adressen, die ich in NodeRed verwendet habe, mit denen vergleiche, die in o.g. Doku stehen, stimmen die miteinander überein, und das scheint ja zu funktionieren ;)
Ok, dein NodeRed Script (nennt man das Script?) wirft auch Daten aus? Du hast also eine valide Datenausgabe, mit der du dann die Adapterwerte prüfen kannst?
Dann bau ich das was du brauchst in den Adapter ein. 😉
Zur Erläuterung: der Adapter bzw. Die Modbus Integration ist nicht fix, kann also auch erweitert werden, nur nicht so wie im Modbusadapter, dass man einzelne Register selber hinzufügen kann, dass passiert alles in dem NodeJS Modul (also im Java Script). Ich wollte keinen Adapter parallel zum Modbus Adapter. Meine Idee galt es die Modbusgeräte wie oben gezeigt in eine Struktur zu bringen die das Gerät an sich wieder spiegelt. Der Typ ist in der Config einzustellen.
Super, das hört sich gut an. Habe mal die Daten zusammengestellt, die ich bisher über "www.Solaranzeige.de" geliefert bekomme. Huawei MEASUREMENTS.pdf
@RoHa78 : kennst du dich en bisschen mit NodeJS aus?
Bitte teste mal folgendes: (installierte NodeJS 18.16.0 LTS vorausgesetzt)
Clone dir bitte folgendes Repro mit: https://github.com/Icke-de/modbus_inverter.git
git clone https://github.com/Icke-de/modbus_inverter.git
Wechsle in das Verzeichnis: [dein Verzeichnis]\modbus_inverter
npm install (Abhängigkeiten werden installiert)
Wechsle in das Unterverzeichnis "examples".
Öffne die Datei "test_modbusregister.ts" mit einem Editor deiner Wahl.
Passe folgende Werte entsprechend deiner Konfiguration an:
let ipAddress = ""; let modbusPort = 502; let unitId = 1;
(Achtung: ipAddress ist ein string daher bitte in "", Port und unitId ist vom typ number)
Datei speichern und in die Konsole wechseln: cmd oder powershell in einem Windows system
Gehe wieder in das Verzeichnis cd [dein Verzeichnis]\modbus_inverter\examples
führe ts-node test_modbusregister.ts aus.
Ich habe das Modul in TypeSript umgesetzt bzw. Erweitert (ist eine Implementierung für SMA Devices gewesen, das habe ich als Grundlage verwendet) In meinem Jugendlichem Leichtsinn würde ich meinen die Ausgabe zeigt dir die Werte an, die in deinem Node Red Script vorhanden sind. Ich bin gespannt was passiert.
Bin gerade noch unterwegs, melde mich aber umgehend, wenn ich am testen bin.
Habe nun versucht, das Ganze zum Laufen zu bringen, leider nur mit mäßigem Erfolg:
Bereits bei npm install sind etliche Fehler angezeigt worden (installierte NodeJS 18.16.0 sollte passen, siehe hierzu das angefügte LOG)
habe mich hier nicht beirren lassen und weiter gemacht.
Bei Punkt ts-node test_modbusregister.ts hat er die ts-node nicht gefunden:
2023-06-04T17_15_27_422Z-debug-0.log
Hast Du eine Ahnung an was das liegen kann oder was ich hier falsch mache (mein IOBroker läuft auf einem Raspi, dort habe ich das Ganze auch getestet)?
Muss ich mir genauer anschauen. Wichtig ist, dass die DEV-dependencies mit installiert werden, da ts-Node ebenfalls ein Modul ist. Anderen falls könntest du ts-node auch separat installieren. npm install ts-node. Könnte aber auch sein, dass ich das bei mir (Windows) global mit -g installiert habe. Gleiches gilt für TypeScript. Das habe ich auch global installiert.
Moin,
ich habe gerade kurz das mit Node und npm auf einer leeren Ubuntu Maschine probiert.
Was ich dabei gemerkt habe, ist das anscheinend ts-node nicht mit installiert wurde. Das dann bitte noch , wenn du im root Verzeichnis ([dein Verzeichnis]\modbus_inverter) bist mit npm install ts-node installieren.
Das sollte soweit funktionieren.
Alternativ kannst du schauen, mit tsc -v ob TypeScript installiert ist. Dann im Verzeichnis Examples tsc test_modbusregister.ts ausführen. Dadurch wird die .ts in eine .js konvertiert. die kannst du dann mit node test_modbusregister.js starten.
Hallo @Icke-de,
habe nun versucht ts-node w.o. zu installieren. Hat diesbezüglich keine Fehler angezeigt. Aufruf von tsc -v ist leider fehlgeschlagen.
Hab das Gefühl, das da was verbogen ist ...
Dann fehlt da noch TypeScript. Ich würde allerdings nicht deinen ioBroker nehmen, nicht da was kaputt geht ;-). Theoretisch sollte das funktionieren, aber zum Testen habe ich meinen Windows Rechner genommen. Und aber auch eine VM mit Ubuntu. Ich würde schau mal, dass ich einen Rechner nehme wo noch nichts weiter mit Node gemacht wurde. Das muss funktionieren. NodeJS und NPM verhalten sich ja erst einmal nicht unterschiedlich. Die genaue Reihenfolge bzw. Befehle schicke ich dann.
Habe nun mittlerweile ein jungfräuliches Ubuntu 22.04 in einer VM. Wie soll ich weiter vorgehen?
OK, dann mal los:
apt updateapt upgradeapt install nodejsnode -v (output: v18.7.0)apt install npmnpm -v (output: 8.18.0)git -v (output: git version 2.37.2)cd /optgit clone https://github.com/Icke-de/modbus_inverter.gitls(output: root@test-node:/opt# ls modbus_inverter)cd modbus_inverter/npm installapt install ts-nodets-node -v (output: v10.9.1)cd examplesls(output: sunny_island6-0.ts sunny_tripower-8.ts test_modbusregster.ts)nano test_modbusregister.ts(IP Adresse eintragen in die "") mit Strg-o (speichern) Strg-x (beenden)ts-node test_modbusregister.ts
Ich habe das bei mir mit ts-node sunny_tripower-8.ts getestet, das kam dann raus.
root@test-node:/opt/modbus_inverter/examples# ts-node sunny_tripower-8.ts
Seriennummer wird ausgelesen!
3014711683
DeviceClass wird ausgelesen!
Solar-Wechselrichter
2840.236
46.462
0
0
OK (ok)
Achso wichtig ist vielleicht noch. Ich habe mit root gearbeitet. Daher brauchte ich sudo nicht immer vorschreiben. Möglicherweise musst du das machen. Bei dir funktioniert auch nur test_modbusregister.ts. Das sunny...ts Script ist natürlich auf meinen WR konfiguriert. Viel Erfolg.
Sorry, dass ich mich jetzt erst wieder melde.
Habe o.g. Schritte bis einschließlich Punkt 12 durchführen können, musste aber noch nodejs von Standardversion 12.22.9 auf die 18.7.0 updaten müssen. hat soweit ohne Fehler geklappt.
Bei der Installation von ts-node hat er dann gestreikt weil anscheinend irgendwelche Pakete kaputt waren. ein apt update und apt upgrade haben hier aber keine neuen Dateien installiert.
Ausgabe von apt install ts-node
Kann man das irgendwie beheben?
Weiß nicht so 100% ob das was hilft. Aber ein boot tut immer gut. Starte die Maschine einmal neu. Dann könntest du npm auf die latest version update. npm install -g npm@latest (bei mir hat er allerdings auch erst nach einem reboot die aktuelle Version angezeigt. node -v sollte dann 9.6.7 auswerfen. Schau mal ob du dann ts-node installieren kannst.
Ist schon komisch bei meinem Ubuntu wurde npm in 8.18.0 installiert, bei dir 8.15.0. Dabei ist 9.6.7 aktuell. Ich komme eigentlich aus der Windows Welt, Hab mich auch nicht wirklich mit den ganzen Paketmanager und Repertoires befasst.
(Was im übrigen bedeutet, dass ich mich noch damit befassen muss, wie man einen Adapter, wenn er funktional und fertig ist veröffentlicht, dass auch andere was davon haben ;-).)
Aber alles zu seiner Zeit :) Probiere das mal bitte
Hat leider nicht funktioniert, habe auch noch mal die Abhängigkeiten fixen lassen und sowohl nodejs als auch npm auf die aktuellsten stabilen Versionen aktualisiert, ts-node ließ sich dann leider immer noch nicht installieren. Werde morgen mal googlen oder vielleicht das Ganze mit einem Raspi ö.ä. aufsetzen. Melde mich wieder wenn ich da weitergekommen bin. Erstmal aber vielen Dank für Deine Unterstützung!
Mittlerweile bin ich etwas weiter, nachdem ich nun statt Ubuntu Debian in der VM habe (liegt auch näher am Raspbian ;)) Die Ganzen Pakete laufen soweit, ts-node "Hello world" läuft ebenfalls. IP vom Wechselrichter (DongleA) ist eingetragen, Parameter stimmen mit meinem funktionierenden NodeRed überein, sämtliche sonstigen Master sind deaktiviert.
Bei test_modbusregister.ts fehlt noch das "i" im Name.
Da nach ca. 5min Wartezeit noch keine Reaktion erfolgt ist, hab ich das Script abgebrochen.
Entweder es kommen keine Daten oder irgendwas mit der Initialisierung ist noch nicht ganz i.O.
Viele Grüße
Hi, Das mit dem I habe ich gesehen, dachte aber ich hab das oben in der Beschreibung falsch geschrieben und da auch korrigiert. Jetzt sehe ich das ich die Datei schon falsch benannt habe. Pass ich dann auch mal an. Eigentlich ist es so, das zumindest eine response kommt 'kann keine Verbindung aufbauen' und das dann in einer Schleife. Ich schau nachher nochmal drauf, ob ich da einen groben Fehler gemacht habe. Was ich damit sagen will ist, dass eigentlich eine Reaktion kommen muss. Gleiches würde passieren, wenn du sunny_tripower8.ts starten würdest, außer auf der IP 192.168.178.123 antwortet ein Gerät auf Port 502. ;-). Wie gesagt ich schau nochmal und Push ggf. noch was in das Repro. So Remote Support ist echt schwierig ;-). Aber das passt schon. Ich brauch ne einfachere Art Geräte zu testen. Welche IP hat dein Gerät? Ich hab für meine Test einen Modbus Slave eingesetzt, dann würde ich das gleich so einstellen. Achso die UnitID / SlaveID müsste ggf. angepasst werden.
Hallo, Unit-ID sollte passen, siehe Rückmeldung von NodeRed: "Client -> fsm connected after state init Get More About It By Logging [email protected]:502 default Unit-Id: 1" Was nimmst Du als Modbus Slave, ist das eine separate Hardware oder nur Software?
eine Software, EasyModbusTCP Server Simulator. Aber das Script sollte etwas ausgeben, Garnichts ist falsch. Wenn du beispielsweise die IP änderst kommt sowas hier.
PS C:\Work\node_projects\testHuawei\modbus_inverter\examples> ts-node .\test_modbusregister.ts Connect to: 192.168.178.90 Couldnt connect to 192.168.178.90:502 Couldnt connect to 192.168.178.90:502 Couldnt connect to 192.168.178.90:502 Couldnt connect to 192.168.178.90:502 PS C:\Work\node_projects\testHuawei\modbus_inverter\examples>
Ich hab das "Connect to:" hinzugefügt, ist eine Consolen Ausgabe in der Funktion die aufgerufen wird. Und das i im Dateinamen habe ich hinzugefügt ;-) bitte beachten.
Hab's nun nochmals getestet, Connection kommt zustande, jedoch nach längerer Wartezeit (3-4min) hab ich abgebrochen (Script ist 2x gestartet worden -> siehe Screenshot).
Jetzt wäre interessant, ob überhaupt was kommt oder der Wechselrichter gar nicht reagiert.