lumapu / ahoy

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

FeatureRequest: HMS Support + Parallele Nutzung von NRF24L01+ und CMT2300A #904

Closed MiniOh closed 11 months ago

MiniOh commented 1 year ago

Hallo,

ich weiß, es gibt bereits einige Themen dazu. Dennoch hier die Frage ob es auch mit Ahoy, ähnlich wie beim OpenDTU Projekt möglich sein wird, auf einem ESP32 die beiden Antennen NRF24L01+ und CMT2300A parallel zu betreiben?

Bei mir ist noch die Beschaffung eines Inverters offen, und ich würde gerne einen HMS 1800 nutzen, sollte in Zukunft die Nutzung einer DTU mit beiden Antennen möglich sein.

Danke schon mal vorab, für die hoffentlich positive Rückmeldung.

Beste Grüße

lumapu commented 1 year ago

ja genau, das ist schön integriert, schaue einfach später nach einem Branch HMS

MiniOh commented 1 year ago

Oh, super. Wusste gar nicht dass das schon soweit ist.

Da ich eh nur ESP32 nutze, sollte das ja für mich passen.

Gibts eine PIN Belegung für die zweite Antenne?

lumapu commented 1 year ago

ja ist eine Testversion: https://github.com/lumapu/ahoy/tree/hms

Pinbelegung ist relativ frei wählbar, ich habe hier leider keine Erfahrung und auch noch nicht getestet, ob beides gleichzeitig geht.

MiniOh commented 1 year ago

Sorry für dei wahrscheinlich blöde Frage. Wie komme ich in der HMS Branch zu einer dem .bin File? Unter Actions gibts die Branch nicht, um das fertge File herunterzuladen, oder?

MiniOh commented 1 year ago

ja ist eine Testversion: https://github.com/lumapu/ahoy/tree/hms

Pinbelegung ist relativ frei wählbar, ich habe hier leider keine Erfahrung und auch noch nicht getestet, ob beides gleichzeitig geht.

Das Testen kann ich gerne übernehmen, sobald die Antenne ankommt. Der Inverter sollte diese Woche noch kommen.

lumapu commented 1 year ago

hier ist die bin gebaut aus dem aktuellen Stand: Getestet habe ich es jetzt über Wochen hinweg mit einem HMS 2000 4T, ein weiterer Test mit 3x HMS 2000 4T wurde auch schon gemacht.

230425_ahoy_0.6.10_HMS_esp32.bin.zip

MiniOh commented 1 year ago

Super. Besten Dank. Dann werde ich auch mal etwas damit spielen.

Gibts die Antennen auch irgendwo in Deutschland zu kaufen, oder kommen die aktuell alle noch aus China?

lumapu commented 1 year ago

meinst du Funkmodule oder Antennen?

MiniOh commented 1 year ago

Funkmodule, sorry.

lumapu commented 1 year ago

melde dich beim Kontakt auf Ahoydtu.de, ich hab was da

MiniOh commented 1 year ago

hier ist die bin gebaut aus dem aktuellen Stand: Getestet habe ich es jetzt über Wochen hinweg mit einem HMS 2000 4T, ein weiterer Test mit 3x HMS 2000 4T wurde auch schon gemacht.

230425_ahoy_0.6.10_HMS_esp32.bin.zip

Hallo,

ich hatte heute mal die 0.6.10 HMS getestet. Grundconfig war ok. Ich habe dann den NRF24L01+ aktivert. Danach habe ich in der Config CMT2300A aktivert (ohne dass ein Funkmodul verkabelt ist) Anschließend war die DTU nicht mehr per IP erreichbar.

Auch seriell erhalte ich folgende Meldug: "Serial port is not ready. Close any other application using it and try again."

Ne Idee?

MiniOh commented 1 year ago

OK, ich kann es noch etwas detailierter eingrenzen.

Ich habe nochmal mit einem ESP32 DEVKIT1 geteset.

Grundkonfig OK.

NRF24 verkabelt, CMT2300A noch nicht vorhanden.

Test 1: Nur NRF24 aktiviert und Pins konfiguriert.

Reboot, alles OK, Meldung NRF24 is connected.

Test 2: NRF24 aktiviert und Pins konfiguriert und zusätzlich das Häkchen bei "CMT2300A Enable" Pins des CMT2300A auf OFF / default

Reboot, DTU nicht mehr erreichbar, auch nicht seriell. Nur über Halten des Boot Buttons wieder flashbar.

Test 3: NRF24 aktiviert und Pins konfiguriert und zusätzlich das Häkchen bei "CMT2300A Enable" Pins des CMT2300A auf 12, 13, 14 (beliebig)

Reboot OK, DTU noch erreichbar, allerdings ist mit zusätzlich aktivem CMT2300A, die NRF24 nicht mehr ereichbar. Meldung "your NRF24 module can't be reached, check the wiring and pinout"

Hilft das evtl. bei der weiteren Entwicklung der HMS Branch? Oder ist generall kein Parallelbetrieb von HM und HMS Invertern geplant?

Danke schon mal vorab.

MiniOh commented 1 year ago

Gibts bereits eine Version nach der 0.6.10 für HMS? Kannst du nochmal die .bin bereitstellen?

mc-0815 commented 1 year ago

Hi,

vermutlich für euch eine dumme Frage, aber wo finde ich eine Wiring Schaubild für eine ESP32 oder ESP8266 und dem Funkmodul CMT2300A? Habe heute einen HMS-1600 und möchte gern loslegen.

Vielen Dank,

lumapu commented 1 year ago

Bei mir hängt das Modul am VSPI (SCK und MOSI)

Daraus ergibt sich als feste Pins, ESP zu CMT: D23 - SDIO D18 - SCK

und frei wählbar: D17 - CSB D26 - FCSB D34 - GPIO3

lumapu commented 1 year ago

Gibts bereits eine Version nach der 0.6.10 für HMS? Kannst du nochmal die .bin bereitstellen?

Ja kann ich, allerdings hat sich da bisher nicht wirklich was verändert.

lumapu commented 1 year ago

Oder ist generall kein Parallelbetrieb von HM und HMS Invertern geplant?

Doch ist schon geplant, genau dieses Setup habe ich hier auch an Wechselrichtern. Plan ist Mi, HM und HMS zu unterstützen.

mc-0815 commented 1 year ago

Bei mir hängt das Modul am VSPI (SCK und MOSI)

Daraus ergibt sich als feste Pins, ESP zu CMT: D23 - SDIO D18 - SCK

und frei wählbar: D17 - CSB D26 - FCSB D34 - GPIO3

Vielen Dank.

MiniOh commented 1 year ago

Oder ist generall kein Parallelbetrieb von HM und HMS Invertern geplant?

Doch ist schon geplant, genau dieses Setup habe ich hier auch an Wechselrichtern. Plan ist Mi, HM und HMS zu unterstützen.

Guten Morgen,

vielen Dank für die Info und die tolle Hilfe. Wie auch schon per Mail kommuniziert, funktioniert bereits mit der 0.6.10 HMS, der Parallelbetrieb von HM und HMS.

grafik

lumapu commented 1 year ago

Wie auch schon per Mail kommuniziert, funktioniert bereits mit der 0.6.10 HMS, der Parallelbetrieb von HM und HMS.

würdest du dafür mit uns noch dein Pinout teilen?

MiniOh commented 1 year ago

Wie auch schon per Mail kommuniziert, funktioniert bereits mit der 0.6.10 HMS, der Parallelbetrieb von HM und HMS.

würdest du dafür mit uns noch dein Pinout teilen?

Hallo, ja, natürlich.

Der CMT ist auf dein Board gelötet, der NRF manuell auf die Pins des ESP32 gelötet.

grafik

MiniOh commented 1 year ago

image

MiniOh commented 1 year ago

So, ich habe testweise auch mal meine produktiven Inverter eingebunden. Scheint auch alles sauber zu funktionieren.

grafik

Argafal commented 1 year ago

Hier noch ein pull request, der die gleichzeitige Nutzung von NRF und CMT auch auf dem Fusion v2 Board (und anderen S3/C3/S2 basierten Boards) ermoeglicht: https://github.com/lumapu/ahoy/pull/935

Fusion v2 pinout Einstellungen:

image

commandermatz commented 1 year ago

hier ist die bin gebaut aus dem aktuellen Stand: Getestet habe ich es jetzt über Wochen hinweg mit einem HMS 2000 4T, ein weiterer Test mit 3x HMS 2000 4T wurde auch schon gemacht.

230425_ahoy_0.6.10_HMS_esp32.bin.zip

Diese Version läuft nicht auf einem 8266?

MiniOh commented 1 year ago

Nein

MiniOh commented 1 year ago

Nur mal zur Info. Bei mit läuft die HMS Version 0.6.10 seit 2 Wochen fehlerfrei mit 6 HM und 2 HMS Invertern.

@lumapu Gibts bereits eine neuere .bin?

leowinterde commented 1 year ago

Nur zum Verständnis, sind die HMS und HMT (#233) von der Kommunikation her gleich?

lumapu commented 1 year ago

@LeoWinterDE Ja beide verwenden ein 868MHz Protokoll und benötigen den Funkchip CMT2300A

@MiniOh sehr cool, freut mich dass es so gut läuft.

hier ist die Version, die auf den neuesten Sourcen basiert 0.6.15: 230527_ahoy_esp32_hms_hmt_0.6.15.bin.zip

MiniOh commented 1 year ago

@lumapu

Es gibt doch noch etwas, was mit dem HMS Invertern nicht ganz passt. Einer der beiden HMS, liefert abends beim "Offline gehen" Zero Yield Day Werte, wodurch dann auch die Total Yield Day nicht mehr passt.

Hast du eine Idee an was das liegen könnte?

grafik

Es ist der "letzte" Inverter der Offline ging, welcher dann 0 bei Yield Day liefert, falls das hilft.

grafik

Olli

lumapu commented 1 year ago

ich denke es liegt an wechselnden Lichtverhältnissen in der Dämmerung. Der Wechselrichter ist schon mal aus und hat alles vergessen, dann bekommt er nochmal genug Saft um noch eine Nachricht zu schicken, leider durch den vorherigen reset mit falschen Informationen. Wir könnten eine Unterdrückung von diesen Nachrichten einbauen, sie wären leicht erkennbar.

MiniOh commented 1 year ago

Ich weiß was du meinst. Das ist bei mir bisher nur einmal passiert bei extrem dunkler Bewölkung vor der Dämmerung. Aber keinesfalls unter "normalen" Verhältnissen.

In den letzten Monaten kam das nie vor. Lediglich jetzt an 3 aufeinanderfolgenden Tagen, und auch nur mit den HMS.

MiniOh commented 1 year ago

@lumapu

Hey,

heute ist das nicht passiert. Ich bin testweise aber wieder zurück zur HMS 0.6.10 Die letzten beiden Tage, also das Verhalten auftrat, war die HMS 0.6.15 installiert. Zufall, oder hat sich da etwas diesbezüglich verändert?

Beste Grüße

lumapu commented 1 year ago

@MiniOh mich wundert, dass dein NRF Pinout geht, da du HSPI und VSPI gemischt hast. Hier mein Vorschlag: grafik

MiniOh commented 1 year ago

Danke für den Hinweis. Bisher klappt das einwandfrei, zumindest mit der 0.6.10.

jho59 commented 11 months ago

Bei mir hängt das Modul am VSPI (SCK und MOSI)

Daraus ergibt sich als feste Pins, ESP zu CMT: D23 - SDIO D18 - SCK

und frei wählbar: D17 - CSB D26 - FCSB D34 - GPIO3

Ich bin etwas überrascht ... Da der ESP32 sowohl Daten zum Funkmodul senden als auch von dort empfangen muss, müssten doch sowohl MOSI als auch MISO verbunden sein? Das ist bei Verwendung eines CMT2300A aber nicht der Fall. Wie bekommt der ESP32 in dem Fall Daten? Und was ist mit einem SPI-ChipSelect? Wenn der CMT2300A an VSPI angeschlossen ist, wäre das der GPIO5 ... GPIO34 fungiert in dem Fall als IRQ?

Grüße, Jürgen

schluss123 commented 11 months ago

Hi Lumapu, Wäre es möglich, alle PinOUT Konfigurationen frei definierbar zu machen? Auf meiner PCB sind die festen Pins, ESP zu CMT: D23 - SDIO und D18 - SCK als direkte Leiterbahn zum NRF24L01+ ausgestaltet, OpenDTU läuft damit, Ahoy leider nicht mehr. Ich kann die GPIOs 18 und 23 NICHT zum CMT2300A routen.

image

Danke.

lumapu commented 11 months ago

@jho59

Wie bekommt der ESP32 in dem Fall Daten?

Der Mosi Pin wird ganz besonders eingestellt in diesem Fall. Das CMT Modul verwendet den Pin bidirektional, war für uns auch neu und eine gewisse Zeit ein Blocker während der Entwicklung.

lumapu commented 11 months ago

@schluss123 werde ich mir anschauen. Hast du einen ESP32 mit 30 oder 38 Pins?

schluss123 commented 11 months ago

@schluss123 werde ich mir anschauen. Hast du einen ESP32 mit 30 oder 38 Pins?

@lumapu : Ich nutze meistens die 38poligen ESPs, gelegentlich auch die 30poligen im Evo-Board. 38 bevorzugt. Danke Dir.

Jakobi88 commented 11 months ago

@lumapu Ähnliches Problem bei mir - SCK liegt auf dem HSPI GPIO 12 und SDIO liegt ebenfalls auf dem HSPI GPIO 14. Dito 38 Pin ESP32.

lumapu commented 11 months ago

@schluss123 @Jakobi88 macht bitte einen neuen Issue dafür auf - so geht die Info verloren, da dieser Issue beim nächsten Release zugemacht wird. (wegen fixed dev)

schluss123 commented 11 months ago

added at #1046

Agerter commented 10 months ago

Hallo welche Antenne kann ich für den CMT2300A Funkchip verwenden geht da nur diese große Antenne oder reicht es auch ein kleine Antenne mit IPX Anschluss und einem Kabel zu verwenden

jho59 commented 10 months ago

@Agerter: Zunächst einmal sollte die Antenne für 800 - 900 MHz geeignet sein. Eine WLAN-Antenne für 2,4 GHz hätte vermutlich höhere Verluste. "Groß" und "klein" sind bei Antennen irrelevant, da geht es darum, welchen Antennengewinn in dBi der Anbieter angibt. Antennengewinn bedeutet aber auch, dass die Antennen eine gewisse Richtwirkung hat. Man muss sie dann evtl. auf den Wechselrichter ausrichten.

Der IPX-Anschluss ist für max. 30 Steckvorgänge spezifiziert. Es spricht nichts dagegen eine 800 MHz-Antenne mit Kabel und IPX-Stecker zu verwenden. Nur sollte man die Antenne idealerweise 1mal anschließen und es dann so lassen. Eine Antenne mit SMA-Steckverbindung und eine Knickstelle zum Ausrichten ist da praktischer.

schluss123 commented 10 months ago

"Geeignet" und "Verluste" sind zwar schöne Worte, aber vielleicht nicht ganz die Antwort, die der Ersteller hatte: der CMT2300A wird bei einer Mittenfrequenz von 850 MHz betrieben, das ergibt eine Wellenlänge von ca. 35cm. Die verwendete Antenne sollte dann ein viertel, halbes oder ganzes der Wellenlänge sein, um "optimal" an die Frequenz angepasst zu sein. Also sollte die Drahtlänge der Antenne : 35 oder 17,5 oder 8,75 cm lang sein. Einen wirklichen Antennengewinn hat keine dieser Antennen, da sie sehr wenig Richtwirkung haben und bei dBi immer gegen einen isotropen Strahler definiert wird. Eine WLAN-Antenne mit einer Mittenfrequenz von 2.450 MHz hat eine Wellenlänge von 12,2 cm. Nicht optimal für 860 MHz. Also am besten einen IPX-Verbinder auf SMA-Einbaubuchse fest verbauen und dann einen Antennendrahtstummel mit SMA-Stecker bauen.

lumapu commented 10 months ago

@schluss123 bist du dir sicher mit den 8.75cm? Ich dachte immer das muss noch ein Korrekturfaktor oä. gerechnet werden. Ehrlich gesagt kenne ich mich hier garnicht aus, aber kenne von anderen Projekten eine Drahtlänge von 8.3cm Auch online Rechner haben mir das ausgespuckt.

schluss123 commented 10 months ago

@lumapu Du hast Recht, es gibt noch einen Verkürzungsfaktor, aber bei den Reichweiten, die wir für die WRs brauchen, müsste auch eine nasse Spaghetti als Antenne reichen.

Agerter commented 10 months ago

ok heisst das ich kann so ne 2.4ghz Antenne verwende und habe Reichweiten Einbußen.. für ein Balkonkraftwerk im Haus sollte das doch reichen oder?

jho59 commented 10 months ago

Probiere es einfach aus und berichte dann, wie es funktioniert.

Ich habe einen ESP32 nur mit CM2300A laufen und eine Antenne für die 860 MHz am Funkmodul. Entfernung zum Wechselrichter ca. 3,5 m durch eine 30 cm dicke Ytongwand bzw. durch das Fenster. RX success 984, RX no answer 3, RX fragments 2946 - ich hätte da ein anderes Verhältnis erwartet. Entfernung zum Router ähnlich, aber zwei Innenwände. wifi_rssi zwischen -61 und -63.