lumapu / ahoy

Various tools, examples, and documentation for communicating with Hoymiles microinverters
https://ahoydtu.de
Other
948 stars 222 forks source link

Feature Request: Hoymiles HMS 800W-2T Support for built-in DTUBI WiFi-Models #1189

Open T3mplate-wow opened 11 months ago

T3mplate-wow commented 11 months ago

Hey, I am one of the „lucky“ guys who bought a HMS 800W-2T. This is the one with included wifi. I am wondering if this device is not compatible to a DTU anymore (because of the WIFI) or if this is just not tested. Or does anybody know if there is any other way to get the data out without the cloud?

julianlelle commented 4 months ago

Ich habe es nun endlich geschafft, den Router und das Passwort einzutragen. Danach habe ich auch zugriff übers Netzwerk und kann alle Daten in die DTU eintragen. Jedoch löscht es dann irgendwann wieder alle Daten aus der DTU. Zum Beispiel bei IP Adresse steht dann xxx.xxx.xx.x. Und auch die Zeit löscht es raus, wann das Update stattfinden soll.

Was kann ich da machen? Es scheint, als würden die Daten von irgendwas überschrieben werden.

Hat jemand eine Idee?

elsbrock commented 3 months ago

Das Projekt hier hats hinbekommen, funktioniert problemlos.

malloy139 commented 2 months ago

Please correct me if I'm wrong, but all the projects mentioned in this thread are based on connecting the inverter to the home WiFi with a Hoymiles account and have the limitation that they only get new data every half a minute. Is there a project that connects directly to the internal AP and retrieves new data every second or so like the app does?

suaveolent commented 2 months ago

No, these projects all communicate with the integrated DTU of the inverter, or the DTU sold by Hoymiles. You do not need a hoymiles account for that. The limitation is imposed by the DTU itself.

With these projects, you can either directly connect to the DTU, or connect your DTU to your wifi and communicate via your wifi router with the DTU.

muhkuhgh commented 2 months ago

When accessing the HMS800W directly with the S-Miles-App via the inverters own Wifi-AP I get nearly realtime updates.. is that a totally different not yet reverse engineered API?

stefan123t commented 2 months ago

Ich bin auf folgendes Projekt gestoßen, um Daten vom HMS-800W-2T zu kommen: https://github.com/ohAnd/dtuGateway Wenn man die .bin auf den ESP 8266 falshed ( ich hab das per Browser gemacht https://esp.huhn.me/ ) erhält man eine Weboberfläche und eine api. Denke hier kann man sicher in der Zukunft ein Display mit reinbekommen, so das einem die Daten, wie bei den AhoyDTUs mit Display angezeigt werden. Ich habe mir jetzt noch nicht angeschaut, wie viel Speicher vom ESP belegt ist. Aber vielleicht kann man das auch auf einen ESP32 portieren.

Hier mal ein Screenshot (aktuell aber ohne Verbindung zum HMS) Screenshot 2024-03-15 092609

@lumapu das ist m.E. ein weiterer erfolgversprechender Ansatz um auch die Hoymiles HMS 800W-2T und andere Modelle mit DTUBI in Ahoy / openDTU zu integrieren.

Hier noch eine Zusammenfassung ddr hier gelisteten Projekte die evtl. für Hoymiles HMS-WiFi Series in Frage kommen um mit der darin enthaltenen DTUBI (built-in WiFi DTU) zu kommunizieren:

Die Projekte basieren mW alle auf den protobufs die wir aus dem S-Miles Installer APK extrahiert haben. Die sprechen im Installer Modus direkt mit der DTUBI also dem WLAN chip der HMS WiFi Serie.

Wenn man also eine defekte irgendwo bekommt könnte man die Inverter Seite genauer untersuchen.

Welche der protobuf Implementierungen man bevorzugt ist Geschmackssache:

Was das Active Power Limit angeht senden die mW alle das selbe NetCommand an die DTUBI. Man kann das Limit permanent oder temporär setzen und den Wert absolut in W oder relativ in % angeben.

stefan123t commented 2 months ago

When accessing the HMS800W directly with the S-Miles-App via the inverters own Wifi-AP I get nearly realtime updates.. is that a totally different not yet reverse engineered API?

We reverse engineered the S-Miles Installer APK somewhere in fall 2023 at the beginning of this Issue / Thread. So the protobuf Protocol we rev'ed may be a bit outdated and one may have to rip the latest protobuf definitions from the Dalvik APK once more.

But then I doubt that it should be much different. The timing is probably set to every 30 seconds or even more for most DTUBI solutions above. Why would you practically want to query & control your inverter more frequently ? It usually takes about 30 seconds till my imverter reaches a new Power Limit in DPL Dynamic Power Limit mode and the Shelly Pro3EM sees the change on the grid side of my installation.

muhkuhgh commented 2 months ago

Screenshot_20240707-151730 Under "Toolkit" connected to the inverters Wifi you get nearly realtime e. g. Power data (refreshes more often than every second)

I need it for my battery/zero-feed-in.

redm123 commented 2 months ago

Hier noch eine Zusammenfassung ddr hier gelisteten Projekte die evtl. für Hoymiles HMS-WiFi Series in Frage kommen um mit der darin enthaltenen DTUBI (built-in WiFi DTU) zu kommunizieren:

Die Projekte basieren mW alle auf den protobufs die wir aus dem S-Miles Installer APK extrahiert haben. Die sprechen im Installer Modus direkt mit der DTUBI also dem WLAN chip der HMS WiFi Serie.

Thanks for that listing! It's still not entirely clear to me how these work, though. I'm trying to figure out wether the 800W is something for me. The main question is: Can I query data without the Hoymiles could? So do these projects communicate directly with the inverter via protobuf, or just with some cloud API? If the direct, would the inverter be a normal device in my Wifi network, or would it need to run in some AP mode? (Which probably means I'd need a dedicated device talking to the inverter and relaying the information into my network somehow). Would the inverter still (need to) talk to the Hoymiles cloud?

stefan123t commented 1 month ago

@redm123 yes you need to dedicate one of your local wifi devices to "talk" to the HMS-800W only. This will open the Access Point to the DTUBI being active on the HMS-800W and use the protobuf NetCommands which the above S-Miles Installer app also uses. This way you have no connection between the HMS-800W (DTUBI) to your normal local network and therefor no route to the internet / S-Miles Cloud.

The DTUBI will nevertheless still try to reach Mom Corporation / Hoymiles and you may be able to either fake the S-Miles Cloud endpoints or overwrite the settings of the DTUBI to reach out to another "CDN" server of your liking. As the S-Miles Cloud uses almost the same protobuf NetCommands as the S-Miles Installer App this is possible too. However most of the above listed Apps, Plugins and Code drops are not taking this approach. AFAIK only the rovo89 one has generated both protobuf APIs.

redm123 commented 1 month ago

Thanks for the clarification.

therefor no route to the internet / S-Miles Cloud.

Indeed, cutting off the cloud by design, that's a nice side effect.

you may be able to either fake the S-Miles Cloud endpoints or overwrite the settings of the DTUBI to reach out to another "CDN" server of your liking. As the S-Miles Cloud uses almost the same protobuf NetCommands as the S-Miles Installer App this is possible too.

In this case the inverter could just "normally" join my wifi, right (i.e. no installer AP mode)? That might be an interesting approach, as I would not need an extra device and could just run the "DTU service" on my server, I guess..