tbnobody / OpenDTU

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters
GNU General Public License v2.0
1.77k stars 495 forks source link

OpenDTU on Olimex ESP32-POE-ISO - No Connection #1455

Open commyonline opened 10 months ago

commyonline commented 10 months ago

What happened?

Hallo zusammen, ich bekomme mit dem Olimex-Board keine Verbindung zum HM-1500. Der WR ist gebraucht gekauft und hat ein Zertifikat für die Drosselung auf 600W dabei. Das Board war neu, ist aktuell geflashed und hat die .json File als Konfig geladen. Die Belegung mit dem NRF Board ist entsprechend angepasst. Im Ersten Versuch hatte ich in der Belegung einen Fehler (MISO und CE vertauscht) kann dadurch etwas beschädigt sein?

Wenn ich den WR mittels 2 Modulen provisorisch auf der Terrasse starte leuchtet die grüne LED im 4sec Rhythmus. Startet ich nun die OpenDTU Hardware blinkt der WR im 2sec Rythmus. (Status DTU erkannt, oder?) Allerdings sagt die OpenDTU, dass keine Verbindung hergestellt werden konnte. Bzw. Das diese seit dem Boot nicht mehr stattgefunden hat:

Bildschirmfoto 2023-10-29 um 14 12 05

Allerdings bekomme ich keine Daten und keine Verbindung auf der OpenDTU angezeigt. In der Konsole läuft Folgendes: 14:23:12.997 > All missing 14:23:12.997 > Nothing received, resend whole request 14:23:12.997 > TX SystemConfigPara Channel: 61 --> 15 83 77 60 84 80 12 17 60 80 05 00 65 3E 5C B9 00 00 00 00 00 00 00 00 89 75 27 14:23:13.248 > RX Period End 14:23:13.248 > All missing 14:23:13.248 > Nothing received, resend whole request 14:23:13.248 > TX SystemConfigPara Channel: 75 --> 15 83 77 60 84 80 12 17 60 80 05 00 65 3E 5C B9 00 00 00 00 00 00 00 00 89 75 27 14:23:13.498 > RX Period End 14:23:13.498 > All missing 14:23:13.498 > Nothing received, resend whole request 14:23:13.498 > TX SystemConfigPara Channel: 3 --> 15 83 77 60 84 80 12 17 60 80 05 00 65 3E 5C B9 00 00 00 00 00 00 00 00 89 75 27 14:23:13.702 > RX Period End 14:23:13.702 > All missing 14:23:13.702 > Nothing received, resend count exeeded 14:23:13.702 > Fetch inverter: 116183776084 14:23:13.702 > Request SystemConfigPara 14:23:13.755 > TX RealTimeRunData Channel: 23 --> 15 83 77 60 84 80 12 17 60 80 0B 00 65 3E 5C C1 00 00 00 00 00 00 00 00 45 78 90 14:23:13.758 > Websocket: [/livedata][5] disconnect

To Reproduce Bug

Auf dem Olimex habe ich ein NRF Board aus der Bucht mit ca. 40mm Leitungen gelötet. Verbindungen mehrfach nachgeprüft. Der NRF wird im OpenDTU erkannt und Status ist konfiguriert/verbunden/nRF24L01+. Zusätzlich auf Anregung aus anderen Issus habe ich es außerdem ohne POE getestet und die Hardware per USB versorgt. Auch ein Keramikkondensator 1uF am NRF Board hilft nichts.

IMG_8273

Expected Behavior

Hier die Systemdaten. Vielleicht hat jemand einen Tipp oder sieht das Problem.

Bildschirmfoto 2023-10-29 um 14 12 36 Bildschirmfoto 2023-10-29 um 14 12 18 Bildschirmfoto 2023-10-29 um 14 12 53

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

v23.10.9

Relevant log/trace output

No response

Anything else?

No response

coltc50 commented 10 months ago

Also bei mir klappt die Verbindung auch nur mit einem alten Huawei-Handy-Netzteil per USB. Ich habe allerdings einen Adafruit HUZZAH32 - ESP32 Feather am NRF24L01+ hängen. Habe schon alle möglichen Netzteile und USB-Kabel durch. Komischerweise ging es auch am USB Port einer alten FB7340. Ich habe aber am Gartenhaus auf dem die Module liegen eine FB7362 in Betrieb und hier wird über den USB keine Verbindung aufgebaut. Kondensatoren habe ich auch schon durchprobiert...

Sorry, hilft Dir zwar nicht weiter, aber wie gesagt probiere mal alle möglichen Handynetzteile durch. Mit Glück kannst Du mit einem eine Verbindung herstellen. Mich würde mal interessieren warum das Funkmodul da so wählerisch ist...

broth-itk commented 10 months ago

Das ist ein 100nF Kondensator. 104 = 10 + 4 Nullen = 10 0000 = 100000pF = 100nF = 0.1µF Bitte Elko parallel schalten und eine kleine Induktivität (z.B. Ferrit) in die Stromversorgung des Moduls (Zuleitung).

Entweder der DC/DC Wandler auf dem Board macht Störungen und hindert den Empfang oder das Modul crasht weil es nicht genügend Energie zum Senden bekommt.

Vorausgesetzt natürlich, dass Anschluss und Konfiguration passt.

turrican944 commented 10 months ago

Moin

PXL_20230828_181631488

Nehme mal einen etwas größeren Kondensator. Ich hatte so eine olimex auch Mal am Laufe und die lief problemlos allerdings hatte ich 100uF oder 470uF (weiß nicht genau was ich genommen hatte). Da ich die HM Wechselrichter durch einen HMS getauscht habe, hab ich den olimex umgebaut, funktioniert mit dem hms aber genauso so.

So sieht meine mit Cmt2300a aus. Das nrf Funkmodule saß aber an der gleichen stelle.

e-bits commented 10 months ago

Moin

PXL_20230828_181631488

Nehme mal einen etwas größeren Kondensator. Ich hatte so eine olimex auch Mal am Laufe und die lief problemlos allerdings hatte ich 100uF oder 470uF (weiß nicht genau was ich genommen hatte). Da ich die HM Wechselrichter durch einen HMS getauscht habe, hab ich den olimex umgebaut, funktioniert mit dem hms aber genauso so.

So sieht meine mit Cmt2300a aus. Das nrf Funkmodule saß aber an der gleichen stelle.

Hi @turrican944,

Genau sowas suche ich auch? Sieht sehr chic aus. Gratualtion! Wo hast du die Platine her auf welcher der EBYTE Chip sitzt? Kann man die irgendwo kaufen?

Gruäss e-bits

turrican944 commented 10 months ago

Moin Die habe ich fertig lassen bei JLCPCB. Have noch welche liegen Schreib mir Mal ne Email.

commyonline commented 10 months ago

Hi @Gerd-Watzmann,

der "Trick" Save im Netzwerk-Menü sorgt bei mir nicht für eine kurzfristige Verbindung. Allerdings vermute ich auch, dass es nicht (nur) ein Hardware Problem ist. Bei jedem Neustart der Hardware scheint er kurz die Verbindung zum WR gehabt zu haben. In den kommenden Tagen teste ich noch etwas mit einer Ferritperle, Kondensator und dem Verdrillen von MOSI/MOSI. Alternativ bestelle ich noch ein anderes Funkmodul.

turrican944 commented 10 months ago

Hast du es mit einem dicken Elko nun probiert? Wenn nein mach Mal einen ran.

broth-itk commented 10 months ago

Auf dem Board ist ja schon ein anderer DC/DC Wandler der aus den 50V PoE die Versorgung für den Controller erzeugt.

Wie schon vor einer Woche geschrieben macht es ggf. Sinn die Versorgung des Funkmoduls über einen LC Filter zu "glätten".

Hilfsweise das Funkmodul mit einem externen Netzteil versorgen. GND verbinden nicht vergessen...

broth-itk commented 10 months ago

Bitte Hinweise auf Seite 7 des Datenblatts von CMT2300A beachten, gilt aber auch für andere Funkmodule:

https://www.cdebyte.com/pdf-down.aspx?id=429

image image image image image

broth-itk commented 10 months ago

Die Hinweise sind durchaus ernst gemeint und sollten auch berücksichtigt werden. Ignoranz führt zu diversen Fehlern.

Auf dem ESP32-POE-ISO Board gibt es einen DC/DC Wandler der Störungen verursacht, leitungsgekoppelte und elektromagnetische durch den internen Übertrager.

commyonline commented 10 months ago

Das stimmt und dessen bin ich mir bewusst. Allerdings lässt sich das Board auch per USB versorgen ("ohne PoE") und auch dort arbeitet das Funkmodul nicht. Auch "ohne Ethernet", mittels Übertragung im ESP-eigenen WLAN kommt keine Verbindung zum WR zustande. Einen Elko hatte ich bereits dran (220uF). Für den Betrieb unter PoE muss mal vermutlich EMV-technisch "einiges tun" - aber da die OpenDTU auch so nicht ins Laufen kommt vermute ich, dass es vielleicht auch einen Bug geben könnte.

Ich werde nochmal das NRF-Board wechseln, Leitungen kürzen, 100nF+Elko(ca.10uF) anlöten, Längsinduktivität in VCC einfügen und MISO/MOSI verdrillen. Melde mich danach.

commyonline commented 10 months ago

Hallo zusammen, ich habe nochmal folgendes umgebaut und getestet: Ferrit-Perle in Serie zu VCC, auf dem NRF-Board 100nF Kerko + 220uF Elko. Zusätzlich an der Stiftleiste des Olimex VCC 1uF Kerko und Leitungen VCC+GND sowie MISO+MOSI verdrillt. Fotos folgen. Das Modul läuft über USB (Powerbank) und Zugang erfolgt über ESP-eigenes default-WLAN. NRF+-Chip ist erkannt und Konfiguriert. Letzte Verbindung zum WR ist jedesmal zum Bootzeitpunkt. Siehe folgende Screenies. Die Konsole gibt nun allerdings weniger aus als bisher. (vgl. Konsolenausgabe erster Issue-Post) Eine Sache ist mir noch aufgefallen: Beim Speichern der Netzwerkeinstellungen kommt folgene Warnung: apiresponse.undefined (siehe Foto)

Habe nun erstmal ein fertiges OpenDTU bestellt um meine Anlage zu betreiben. Über Einschätzungen wäre ich trotzdem dankbar.

Bildschirmfoto 2023-11-08 um 12 18 51 Bildschirmfoto 2023-11-08 um 12 19 04 Bildschirmfoto 2023-11-08 um 12 16 37
Gerd-Watzmann commented 10 months ago

Man sollte das Thema "Antenne" / Polarisation auch nicht völlig unterschätzen. Ich z.B. habe nur ca. 3m Abstand zwischen den beiden Wechselrichtern und der DTU, aber es liegt eine Stahlbetondecke dazwischen. Ich bekomme mit aufgesteckter Stummelantenne in aufrechter Position an einer bestimmten Stelle eine zuverlässige Verbindung. Eine schräge oder liegende Antenne funktioniert nicht wirklich, und mit den NRF-Boards mit Printantenne kommt grundsätzlich überhaupt keine Verbindung zustande. Das selbe Verhalten mit unterschiedlichen ESP-Boards, sowohl unter AhoyDTU wie auch OpenDTU, mit und ohne Pufferung der 5V für das Funkmodul, verlötetet oder mit Steckverbindungen, und Sendeleistung auf "max". Letzteres hilft wohl nur in einer Richtung - oder gibt es eine Möglichkeit, die Sendeleistung der Wechselrichter zu beeinflussen?

Ich hatte eine Weile gebraucht, um die endgültige Konfiguration für den operativen Einsatz mit Ethernet zu finden. Jetzt läuft's, Gehäuse drum und im Schrank versteckt - der WAF ist ja schließlich auch ein oft unterschätzter Parameter ;-)

commyonline commented 10 months ago

Hallo nochmal. Ich kann einen Erfolg berichten: Nachdem ich ein anderes Funkmodul (SparkFun Transceiver Breakout, nRF24L01+) verbaut habe funktioniert die Verbindung zum WR. Dieses Modul hat einen eigenen Spannungsregler (LDO). Dies scheint der Entscheidende Punkt zu sein.

Weiterer Funfakt: Mit dem "alten Funkmodul" konnte ich zu keinem Zeitpunkt eine Verbindung aufbauen. Allerdings konnte ich erfolgreich Power-Limits an den WR senden. Auch wenn die Rückmeldung nicht dargestellt wurde - der WR hatte das Limit zuverlässig übernommen.

Gerd-Watzmann commented 10 months ago

Ja, die Funkmodule ... YMMV kann man da nur sagen. Und das auch ganz ohne die Problematik der Spannungsversorgung - die kommt "on top", aber die kann man sich ja mit den Elkos und ggf. anderen Maßnahmen entschärfen.

BTW: Kann man den Sendepegel am WR eigentlich auch regulieren? Es ist ja nur die halbe Miete, wenn man ihn an der DTU auf "max" stellt ...