hoylabs / OpenDTU-OnBattery

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters, VE.Direct devices, battery management systems, and related peripherals
GNU General Public License v2.0
309 stars 66 forks source link

[Gelöst] mit HUAWEI Relais hängt meine DTU unregelmäßig auf #1373

Open Manos1966 opened 2 days ago

Manos1966 commented 2 days ago

What happened?

Es ist bereits drei Mal passiert seitdem ich Release 2024.10.22 installiert habe, deswegen melde ich es, falls noch andere es bemerkt haben. Ich habe nichts geändert, außer das neue Release 2024.10.22 zu installieren.

Mit circa 3-4 Tage Abstand, kann ich auf die OpenDTU nicht zugreifen. Nur das Entfernen der Stromzufuhr hilft.

NRF24+, HUAWEI, CANbus (Pylontech), OpenDTU Uhrzeit für geplanten Neustart 12:00, Relais fuer HUAWEI Power

Ich versuche mehr Infos zu sammeln.

01 02 03 04 05 06

To Reproduce Bug

Nicht möglich, ich versuche mehr Infos zu sammeln

Expected Behavior

Bei der vorherigen Version ist es nie passiert. Ich habe auch nichts an der Hardware oder Einstellungen geaendert.

Install Method

Pre-Compiled binary from GitHub releases

What git-hash/version of OpenDTU-OnBattery?

2024.10.22

What firmware variant (PIO Environment)?

generic_esp32s3_usb

Relevant log/trace output

No response

Anything else?

No response

Please confirm the following

Manos1966 commented 2 days ago

UPDATE: Es koennte Sein, dass @knopers1 den moeglichen Grund gefunden hat Das Problem hatte ich aber nicht mit dem vorherigen Release, daher bin ich nicht sicher, dass es daran liegt (das Relais geht mehrmals am Tag ohne Problem ein und aus). Es ist aber eine Moeglichkeit die ich pruefen muss.

Moin, die Wahl des Relais ist nicht optimal, auch wenn es für den Anfang gut funktioniert....! Es ist ein mechanisches Relai was auch verschleissen kann, der Anlaufstrom der Spule zieht kurzzeitig die Boardpannung runter. Und es ist wieder ein separates Teil, das in das Gehäuse der Steuerung passen muss. Es gibt besseres..... Halbleiterrelai (SSR.) Aus einzelnen wenigen Bauteilen lässt sich ein Ersatz nachbauen, das kompakter und vor allem nicht zu verschleissen ist. Oben drauf, lassen sich die drei Widerstände, Led, und das Relai (AQY212) selbst auf die Lochrasterplatine auf kleinstem Raum intergrieren. AQY212GH.PDF Anbei Datasheet als PDF, falls sich einer näher interessiert, sowie ein Stromnlaufplan passend dazu. Viel Erfolg beim Nachbauen.

solidState

knopers1 commented 2 days ago

@Manos1966 bis jetzt habe ich mit der letzten Release überhaupt keine Probleme! Das, was Du versuchen kannst ist:

1: das Steckernetzteil selbst, ich gehe davon aus, dass Du den ESP32-s3 über die USB-C Schnittstelle angeschlossen hast- stimmt das so? Welche Spannung kannst Du am GPIO 5V messen? Ein stabiles Netzteil ist die Vorraussetzung, dass dein ESP stabil funktioniert. Gerade jetzt, wo auch die Relais mit der Spule zum Einsatz gekommen sind. Ein schwaches, nicht sonderlich stabiles Netzeil taugt nur bedingt etwas , wenn man damit ein Handy Akku aufladen möchte. Dort ist die Stabilität nicht wichtig, da ein Akku auch mit unsaubarer DC Spannung voll geladen wird. Du brauchst etwas gutes! Schau bei Amazon nach, für ca. 8€ gibt es einige namhafte mit 20 Watt Leistung. Das mag auch viel oder zu viel sein, aber ein starkes Netzteil geht einfach nicht so schnell in die Knie, wenn es kurzzeitig stark belastet wird. Die Zuleitung zum ESP ? - auch da etwas hochwertiges...

2: Kondensator: Um die Spannung zusätzlich zu stabilisieren, kannst Du am 5V GPIO gegen die GND einen Folienkondensator einbauen. Hast Du einen bereits verbaut? 100nF (Keramik) und 20µF oder mehr (Elko). Schau zu, dass du die Elkos auch für passende Spannung bekommst (5-15V). Der Keramik gibt die Spannung sehr zeitig ab, die dicke Folie eher spät, dafür aber hat das Teil eine ordentliche Ladung um die abgesackte Spannung nach oben zu stabilisieren.

3: Das Relai vorerst abklemmen und beobachten. Die alten Relai´s mit der Spule sind nicht optimal, deshalb habe ich dort die Schaltung zur Verfügung gestellt, um eben die Probleme mit dem Verschleiss oder der Spannungsversorgung zu minimieren. So auf die schnelle als fertiges Board? Da müsste ich suchen... Schau nach einem SSR!

Eventuell das da: 1

2

Viel Erfolg!

Manos1966 commented 2 days ago

Danke @knopers1

ich habe ein 5V 3A Netzteil angeschlossen. Liefert stabil 5,1V und 0,3A ABER, ich werde gucken was passiert, wenn die Relais sich ein/aus schalten (ich habe vergessen zu erwähnen, ich habe zwei, eins für die 48V HUAWEI und eins für die 12V Lüfter 😁) 5V Netzteil a 5V Netzteil b

Die Idee mit dem ELKO ist gut, ich habe genug davon, von 20µF bis 700µF Ich habe noch keinen, weil ich sicher war, dass der ESP32-S3 mit Micro-C Stecker viel mehr Strom verträgt, als die alten...

Danke für die Suche ❤️ ich werde mir ein paar S.S.R. bestellen (und im Wiki addieren)

Die vierte Option wäre zurück auf die vorletzte Firmware Version zu gehen und sehen ob das Problem wieder eintritt.

knopers1 commented 2 days ago

@Manos1966 so einfach ist es nicht, dein Messinstrument ist dazu nicht geeignet. Vor allem ist es viel zu träge! Ein Osziloskop müsstest Du schon haben, ein Taskkopf als Trigger... dann würdest du etwas sehen. Dein Power Supply macht einen wertigen Eindruckt, trotzdem kann er auch defekt sein. Nichts hält ewig... Dir bleibt nichts viel über, als die Teile nacheinander austauschen!

Hast Du die Spannung am GPIO +5V gemessen? Die Spannung ist wichtig, da sie unter dem anderen am LDO (Leistungsregler) anliegt, der die 5V zu 3.3V umwandelt. Ich konnte bei mir gerade 4,4V messen, hatte aber volle 3.3V nach dem LDO! Die Netzteilspannung habe ich aber nicht gemessen, vermutlich waren es die 4.4V, die ich am Gpio 5V gemessen habe...

Ich würde erst bei dem Relai anfangen, das SSR dürfte keinen Pik beim Ein/Schalten erzeugen. Danach die Elkos und Probelauf...

EDIT: das Solid State Relay habe ich ebenfalls bestellt, ich bekomme es aber in ca, 2 Wochen (China). Damit ersetze ich den aktuell verbauten mit Spule... Dann ist auch Ruhe im Kasten, stabiler und langlebiger allemal.

Manos1966 commented 2 days ago

ein Kaleidoskop ? 😝 das sind Aufgaben weit ueber meine Gehaltsklasse @knopers1 😆

Mein Punkt (=Hoffnung) war, da das Netzteil mit nur 10% Prozent seiner maximalen Leistung läuft, die Stromversorgung stabil sein sollte.

Ich werde die Spannung am GPIO messen.

Ich werde auch das zweite 3,3V Relais (Luefter) abschalten. Braucht man nicht wenn die HUAWEI <1000W produziert.

Wichtig ist auch, dass du keine Probleme mit der 2024.10.22 hast. Wir haben die gleiche Hardware (ausser CANbus?).

S.S.R. bestelle ich heute.

So oder so, so lange ich den Fehler nicht reproduzieren kann, ist alles schwierig. Danke fuer deine Hilfe!

knopers1 commented 1 day ago

Hast Du ebenfalls das Relai eingebaut? IMG_0912

Ich habe mich dort mit dem Jumper schnell verrant, und hatte den anders als im Bild gesteckt. Folgendes ist passiert! Das Relai hat angezogen, ist aber gleich wieder abgefallen. Das hat er mehrmalls in der Minute gemacht. Mir ist es leider nicht gleich aufgefallen, da die Steuerung in der Garage ist. Bis ich den Fehler entdeckt habe, hatte mein Shelly zwei Mal wegen Überlast >1000 Watt abgeschaltet! Das Relai hängt bei mir an 3.3V.

Wenn das Relai anzieht, wird die AC Seite durch das Netzteil ordentlich belastet. Dies hatte ich auch an meiner Beleuchtung in der Garage gesehen. (kurzes flackern der Lampe). Die AC Seite hat wieder einen Einfluss auf das Netzteil für die 5V Spannungsversorgung des ESP´s... Und hier stoßen wir wieder auf das 5V Netzteil und die Elkos, sofern das Huawei und dein 5V Netzteil am selben Stromkreis angeschlossen sind. Das Netzteil muss es abkönnen, und unterstützen kannst Du es mit den Elkos am 5V Gpio. Wenn im Fehlerfall die Spannung am LOD unter 2.8V des ESP´s fällt, wird ein Reset ausgelöst, und dein ESP startet neu. Im schlimmsten Fall, bleibt es einfach stehen!

Ich hatte tatsächlich schon überlegt einen Anlaufstrombegrenzer zu bestellen.

2

1

Nachdem aber das Relai richtig angeschlossen ist, gibt es keine Probleme bei mir. Ich lass es deshalb vorerst sein.

Manos1966 commented 1 day ago

Guten Morgen @knopers1 ich nutze noch das andere Relais (x2 🙈 ) ohne High/Low Jumper. Das Problem hatte ich schon am Anfang (Wackel-Kontakt), trotzdem blieb meine OpenDTU stabil (aber damals war nur ein Relais (nicht zwei) angeschlossen!

Meine Shelly schaltet den 230V Eingang der HUAWEI, die auf Minimum programmiert ist (3Ax50V=150W) und auf meine 36A 230V Leitung haengt, daher haette die Shelly nichts bemerkt. Deswegen, vielen Dank fuer deine Erklaerung ❤️

Also, als erstes, entferne ich das Relais fuer die Luefter (wird nicht gebraucht). Zweites, ELKO anschließen (was ist lieber? ELKO direkt auf dem Relais, oder am ESP32)? Drittens, die S.S.R. Relais installieren. Wiki habe ich schon ergänzt.

Relais 3 3V - C

knopers1 commented 1 day ago

@Manos1966 ja, den Shelly Plug habe ich auf der AC Seite des Huaweis eingebaut und den Strom auf 1000 Watt begrenzt. Trotzdem haut es richtig rein, sobald das Relai angezogen wird.

Den Elko kannst Du einbauen wo du möchtest, da der VCC und GND des Relai´s parallel zum ESP32 verdrahtet sind. Demnach spielt es keine Rolle, wo die Elkos eingebaut sind. Ich würde es am ESP32 setzten, da dort auch die Lochrasterplatine passend da ist. Das SSR Relai ist da schon gut aufgehoben, da keine großen Ströme zumindest auf das 5V Netzteil des ESP´s beim Zuschalten da sind.

Der Anlaufstrombegrenzer könnte in dem Fall die AC-Seite unterstützen. Aber wie gesagt, bei mir läuft es ohne....

knopers1 commented 1 day ago

die Idee mit dem Shelly auf der AC-Seite des Huaweis ist echt Klasse. Aus dem ioBroker kann ich den Shelly über einen Script erst dann einschalten, wenn überhaupt ein Überschuss zu erwarten ist. Heute ist wohl hier vor Ort ziemlich dunkel und nass, der Shelly bleibt heute automatisch aus.

1

2 3

Deshalb an der Stelle risen Dank dafür, es ist eine geile und sinvoller Ergänzung. Damit ist die Steuerung des Huaweis gleich doppelt so gut.

Solarteur commented 1 day ago

Bei mir läuft seit Monaten - noch als ESP32 mit 4 MB - OpenDTU-OnBattery störungsfrei, auch mit 2024.10.22.

Meine Konfiguration ist:

Die Funktion "Slot detect"/An- und Abschalten des Huawei-Netzgerätes habe ich über einen Optokoppler realisiert, nicht von mir "erfunden", wurde in einem Forum gefunden.

Die Schaltung dazu sieht wie folgt aus:

Slot_detect_Optokoppler

Die Anode der LED des Optokopplers (Pin 1) ist mit + 3,3 V verbunden, die Kathode über einen Widerstand 470 Ohm mit dem GPIO "Power" verbunden. Die beiden Anschlüsse "Slot detect" werden mit den Pins 3 und 4 des Optokopplers verbunden. Wie schon geschrieben, läuft seit Monaten störungsfrei. Zum Typ des Optokpplers: EL 817C wurde eingesetzt, weil er gerade vorhanden war.

Edit: Vielleicht sollte dieses "Issue" nach "Discussions" verschoben werden.

knopers1 commented 1 day ago

@Solarteur sehr gut....Du hast ja aber dort noch einen Fehler drin, da Du den Slot Detect (Kabel ws,sw) gegen GND des Netzteils schalten muss und nicht untereinander. Des Weitern fehlt ewentuell die Anzeige, dass dein Power Gpio An/Aus ist?, die ist in der unteren Schaltung da. Ein Pulldown Widerstand fehlt noch, wenn dein Power Gpio erneut wieder Low ist, solltest Du den auch definiert gegen die GND ziehen, ein R10K ist dabei sehr hilfreich. (siehe die untere Schaltung) 3

2

Manos1966 commented 1 day ago

Ein Pulldown Widerstand fehlt noch, wenn dein Power Gpio erneut wieder Low ist, solltest Du den auch definiert gegen die GND ziehen, ein R10K ist dabei sehr hilfreich. (siehe die untere Schaltung)

Ist das Deutsch? 🙈 🤣🤣🤣🤣🤣 ... ich bin froh ich kann etwas fertiges aus China bestellen 😄

Spass bei Seite, vielen Dank @knopers1 und @Solarteur fuer die Vorschlage. Dank Euch habe ich (wahrscheinlich) das Problem gefunden und sogar die moegliche Loesung. Noch wichtiger, ich kann sicher sein, das Problem liegt an meiner HW und nicht an der OpenDTU SW 💯

Edit: Vielleicht sollte dieses "Issue" nach "Discussions" verschoben werden.

Einverstanden! @schlimmchen Bernhard, ist eine Verschiebung moeglich?

Solarteur commented 13 hours ago

@knopers1

Du hast recht, in meiner Skizze oben war ein Fehler - hier die Korrektur:

Slot_detect_Optokppler

Der Ansteuerteil für die LED des Optokopplers ist bei mir genau so in Betrieb.

Fall 1: Der ESP32 GPIO "Power" ist "High", wenn das Huawei-Netzteil nicht aktiviert sein soll. Die Anode und die Kathode der LED liegen auf + 3,3 V --> der Phototransistor des OK wird nicht angesteuert.

Fall 2: Der ESP32 GPIO "Power" ist "Low", wenn das Huawei-Netzteil aktiviert sein soll. Die Anode der LED liegt auf + 3,3 V und die Kathode auf 0 V --> der Phototransistor des OK wird angesteuert und das Huawei-Netzteil ist aktiviert.