NEWS
S0 - Signal mit Wemos D1 Mini erzeugen?
-
Hallo Sven,
wenn ich Deine Schilderung richtig verstanden hab, dann liegt bei Dir ein Missverständnis bzgl. eines S0 Eingangs vor. Den solltest Du Dir noch einmal anschauen auch um Deiner WP keinen Schaden zuzuführen. Oben habe ich aber auch bereits Auszüge und Schaltungen gezeigt.
Der Punkt ist dass der S0 Eingang Deiner Wärmepumpe die Spannungsversorgung für den S0-Ausgang (wo auch immer der herkommt) liefert.
Der S0 Ausgang schaltet die Spannung kommend vom S0 Eingang wieder durch zum Ausgang um dort detektiert zu werden.Du gibst aktuell vom Raspberry (S0 Ausgang) eine "Fremdspannung" (3,3V) darein und davon würde ich Abstand nehmen!
Prinzipiell liefert der Raspberry aber nichts anderes wie ein angediskutierter ESP. Wenn Du ihn als S0-Ausgang bereits konfiguriert hast (durch was auch immer), dann könntest Du aus meiner sicht versuchen mit so einem Optokoppler-Modul ihn an den S0 Eingang Deiner Wärmepumpe zu bringen.Per IObroker den Raspberry als S0-Ausgang zu konfigurieren, hab ich bisher noch nicht gesehen und keine Ahnung ob es da etwas Fertiges gibt oder es extrem aufwendig wird. Bei Letzterem könnte man ja auf Idee kommen doch einen ESP8266 zu benutzen und vom IObroker per MQTT (über WLan) die Infos über den Überschuß an den ESP zu schicken. Der macht dann dann über den Optokoppler ein S0 daraus. Klingt etwas umständlich, aber halbwegs schon mal hier durchdiskutiert.
Was hier als MCU bezeichnet wird, ist dann dein RPI:
-
@dieter_p
Hallo zusammen
Ich bin mir auch ein S0 Signal am erstellen. Ich habe bereits etwas Software auf einem ESP32 erstellt, damit ich das Signal erzeugen kann. Über MQTT gebe ich die kW Info dem ESP32 an (die Info betreffs aktueller kW Einspeisung beziehe ich vom Wechselrichter) und ich dann per S0 Signal der WP weiterleiten kann (bisher habe ich nur eine LED am ESP32 am Blinken; sobald ich die korrekten Komponenten für den S0 Ausgang angeschlossen habe, prüfe ich dies dann noch mit einem Oszilloskop).
Jetzt muss ich "nur" noch die Hardware dafür zusammenlöten.
Wegen den Schemas hier bin ich auf diesen Forumsbeitrag von Euch gekommen. Habt ihr dies inzwischen bereits im Betrieb und welche Komponenten verwendet ihr? Welchen Optokoppler, welchen Widerstand und welche Diode? Gibt es bestimmte Anforderungen an die Diode, sollte dies z.B. eine general purpose Diode oder eine Schottky Diode sein oder ...? Gibt es bestimmte Anforderungen an die Diode?
Und ich habe den Eindruck, dass in den oberen Schaltungen nur der Widerstand hinzugefügt wurde und die Diode noch fehlt. Oder ist diese nicht erforderlich?
Vielen Dank! -
Hi Mistral,
Ich habe zwei ESP8266 mit jeweils einen EL817 dafür verwendet.
Am einfachsten ist es, wenn du dir ein Modul holst, wie es @Dieter_P in seinem 2 Beitrag verlinkt hat und den Widerstand am Ausgang ersetzt durch einen 100Ohm-Widerstand.
Habe das ganze seit Februar in Betrieb und läuft einwandfrei.
Was ich allerdings sagen muss: solltest du die Dinger in der Wärmepumpe verbauen, so wie ich das getan habe, nimm entweder ESP32 oder führe die WLAN-Antenne der ESP aus dem Gehäuse heraus.
Kommt zwar nicht häufig vor, aber hin und wieder gibts Probleme mit dem Signal…LG
Bernd -
@bernd-schwaiger
Hi Bernd
Vielen Dank für Deine Antwort!
Ja, das Modul habe ich mir auch überlegt und finde ich eigentlich auch gut. Nur habe ich bei diesen Modulen bisher kein Schaltplan gefunden. Ich weiss daher nicht, welche Widerstände verbaut sind und ob die Diode vorhanden ist. z.B. wurde in einem früheren post erwähnt, dass der Widerstand darin zu gross ist ("Die Optokoppler musste ich sowieso auslöten, da der verbaute Widerstand am Optokoppler-Modul zu hoch war."). Daher ist meine Annahme, dass es einfacher ist, die Komponenten direkt einzeln zu verwenden und zu löten.
Hast Du eventuell einen Schaltplan betreffs diesen Komponenten?
Meine Annahme zur Zeit: 220 Ohm Widerstände (habe ich bereits) + 4N35 als Optokoppler (habe ich auch bereits) + noch eine Diode; wobei ich mir insbesondere bei der Diode unschlüssig bin, was die Anforderungen sind und ob eine "normale" Diode verwendet werden kann (z.B. 1N4007) oder ob Schottky Diode (z.B. 1N5817) besser ist; oder ob beide oder keine davon gut sind.
Ist Dir bekannt, ob dies gut ist? Vielen Dank!
P.S.: Ja, ESP32 habe ich dafürgeplant. Dafür habe ich die Software dafür ich inzwischen erstellt. Die LED zumindest blinkt bereits so, wie diese aus meiner Sicht sollte (habe ich zum Testen statt der S0 Schaltung bisher angeschlossen). Und auch beim ESP32 habe ich die WLAN Verbindung "überwacht" und führe bei Bedarf disconnect() und reconnect() durch. -
@mistral
Hi nochmal,Ich denke du möchtest sowas:
Hier die quelle:
https://www.bastelgarage.ch/1-kanal-el817-optokoppler-12vIch habe bei mir keine Dioden verbaut. Kann es sein, dass die Diode auf die du anspricht, die LED ist, welche anzeigt, ob der Eingang des Optokopplers versorgt wird?
-
@bernd-schwaiger
Hi Brend
Vielen Dank!
Ich habe das obere Bild (von Wikipedia) dazu verwendet und wie folgt markiert:- Blau: die Diode, welche ich den Eindruck habe, dass diese fehlt. (meine Annahme: dass diese ein "Verpolschutz" ist. Wenn die Anschlüsse korrekt sind, ist diese daher eventuell nicht erforderlich.)
- Grün: Sollte dieser Widerstand nicht 200 Ohm sein (da Du 100 Ohm angegeben hast als Ausgangswiderstand)?
Zu Deiner Quelle: Die R1 mit 470 Ohm scheinen mit etwas sehr hoch zu sein. Üblicherweise sind dort so ca. 200 Ohm und dies bei einem 5V Signal (zumindest was ich so als S0 Schaltungen im Internet und mit Optokopplern gefunden habe). Ein ESP8266 hat, wie ein ESP32, 3.3V Signale. Bei 3.3V würde ich den Widerstand eher tiefer (als diese 200 Ohm bei 5V) vermuten. Kennst Du eventuell eine Formel, mit welcher dies nachgerechnet bzw. geprüft werden kann? Wobei wenn es funktioniert und der Optokoppler zuverlässig schaltet, würde ich den Widerstand wahrscheinlich auch nicht reduzieren.
Vielen Dank!P.S.: Meine Nachricht etwas aktualisiert (nach meinem aktuellen Verständnis; ich bin nicht sicher, ob dies korrekt ist):
- Der Widerstand muss mindestens so hoch sein, dass der ESP8266 oder ESP32 etc. den Strom an den GPIOs auch liefern kann.
- Gemäss https://cdn-reichelt.de/documents/datenblatt/A500/EL817-EVL.pdf hat Dein Optokoppler einen minimalen CTR von 50%.
- Gemäss https://www.eevblog.com/forum/beginners/calculating-resistor-for-optocoupler/ muss auf der Inputseite so viel Strom, wie auf der Outputseite erforderlich ist, geteilt durch minimalen CTR.
- Gemäss https://de.wikipedia.org/wiki/S0-Schnittstelle ist der maximale current der S0 Schnittstelle bei 8mA.
- ... damit sollte auf der Inputseite 16mA bei diesem Optokoppler maximal durchfliesen können. Mit 3.3V und 470 Ohm komme ich jedoch nur auf 7mA. Ich hätte bei diesem Optokoppler daher eventuell einen 180 Ohm Widerstand genommen oder einen Optokoppler, mit einem minimalen CTR von 100%, wie der 4N35.
- Dies kann aber natürlich dennoch funktionieren, z.B. falls Du Klasse B bei Deinem Gerät hast (max. 2mA) oder wenn Du den Optokoppler in einem Bereich hast, wo der CTR höher ist, als der minimale CTR, auch 8mA ist nur der maximal zugelassene Wert, Dein angeschlossenes Gerät kann weniger benötigen, ...
-
- ... damit sollte auf der Inputseite 16mA bei diesem Optokoppler maximal durchfliesen können. Mit 3.3V und 470 Ohm komme ich jedoch nur auf 7mA. Ich hätte bei diesem Optokoppler daher eventuell einen 180 Ohm Widerstand genommen
Hi, denke bitte auch daran, was ein ESP8266/ESP32 GPIO liefern kann. Mit den 7mA bist Du nah am Maxmum der ESPs.
oder einen Optokoppler, mit einem minimalen CTR von 100%, wie der 4N35.
kann man machen
-
@dieter_p
Vielen Dank!ESP32 scheint genug liefern zu können. Ich habe keine genauen Angaben gefunden, aber meistens steht so 250mA für alle GPIOs zusammen. 20mA an einem einzelnen GPIO (und nichts weiteres angeschlossen) scheint mir damit problemlos möglich zu sein. Ich habe aktuell ESP32 und einen 4N35 mit einem 220 Ohm Widerstand geplant. Damit habe ich max. 15 mA am Ausgang des ESP32. Und da dieser 4N35 mindestens 100% CTR hat, sollten die max. 8mA am Ausgang für die S0 Schnittstelle problemlos möglich sein. Eventuell nehme ich daher sogar einen noch grösseren Widerstand (z.B. 330 Ohm). Dann habe ich immer noch 10mA, was immer noch grösser ist, als die max. 8mA.
Findest Du dies auch sinnvoll?ESP8266 können weniger Strom pro GPIO liefern. Ich habe unterschiedliche Angaben gefunden, am meisten so um die 12mA, aber ob dies stimmt, weiss ich nicht. Ein 180 Ohm Widerstand an einem ESP8266 wäre damit zu tief, stimmt. Ich habe den ESP8266 bisher nicht so angeschaut, da ich einen ESP32 dafür verwenden (werde).
ESP32: Vor allem auch sonst, da ich die Software dazu selber geschrieben habe und auch die dual cores sowie FreeRTOS für diese Applikation sehr nützlich finde.P.S.: Und muss nicht noch die forward voltage des Optokopplers abgezogen werden? Wenn diese z.B. 1.2V ist, dann sind von den 3.3V nur noch 2.1V über dem Widerstand. Dann bleiben nur noch 9mA bei einem 220 Ohm Widerstand - womit ich doch bei diesen 220 Ohm bleiben dürfte, falls dies korrekt ist.
-
@mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:
@dieter_p
Vielen Dank!ESP32 scheint genug liefern zu können. Ich habe keine genauen Angaben gefunden, aber meistens steht so 250mA für alle GPIOs zusammen. 20mA an einem einzelnen GPIO (und nichts weiteres angeschlossen) scheint mir damit problemlos möglich zu sein. Ich habe aktuell ESP32 und einen 4N35 mit einem 220 Ohm Widerstand geplant. Damit habe ich max. 15 mA am Ausgang des ESP32. Und da dieser 4N35 mindestens 100% CTR hat, sollten die max. 8mA am Ausgang für die S0 Schnittstelle problemlos möglich sein. Eventuell nehme ich daher sogar einen noch grösseren Widerstand (z.B. 330 Ohm). Dann habe ich immer noch 10mA, was immer noch grösser ist, als die max. 8mA.
Findest Du dies auch sinnvoll?Klingt für mich plausibel. Komme gerade aber leider nicht dazu genauer rein zu gucken und mach das auch nicht täglich
Vom Prinzip, hatte ich nur auch etwas von 10mA im Kopf für die GPIOS und der Optokoppler ist am Eingang zu behandeln wie eine LED. Die hätte zwar meist gerne etwas mehr aber mit 10mA bekommt man sie auch zum leuchten
Für den OptoKoppler würde ich einen Blick noch auf die maximale Leistung/Strom werfen der da durch gehen darf. Die Spannung mit 80V scheint bei Deinem Typ unkritisch. Generell lieber einen Vorwiderstand größer wählen und dann probieren. Der Optokoppler kostet 20Cent aber den S0-Eingang zB an einer WP würde ich mir nicht schießen wollen, daher lieber einen Vorwiderstand größer und wenn er nicht mehr sicher detektiert reduzieren.
-
@dieter_p sagte in S0 - Signal mit Wemos D1 Mini erzeugen?:
Der Punkt ist dass der S0 Eingang Deiner Wärmepumpe die Spannungsversorgung für den S0-Ausgang (wo auch immer der herkommt) liefert.
sicher?
ich kenne S0 Eingänge nur so, dass dort ein S0 Signal angelegt wird und je nach Impulsfrequenz in dem Getät eine Aktion stattfindet
-
@dieter_p
Vielen Dank für Deine Antwort!
Daher schaue ich dies so genau an, damit dies kein Risiko für den Eingang der WP sein sollte. Daher tendiere ich auch eher darauf, den Ausgangswiderstand auf 200 Ohm zu setzen (statt den oben erwähnten 100 Ohm).
Was mir aber nicht gerade klar ist: Wieso meinst Du, dass die WP defekt geht, wenn der Vorwiderstand zu klein ist? Der Strom seitens der WP muss doch eigentlich durch den Widerstand seitens der WP genügend reduziert sein (und dort bereits auf einen Maximalstrom von 8mA reduziert sein), damit dies für die WP immer "sicher" sein sollte? Oder verstehe ich dies nicht korrekt? Spontan hätte ich jetzt eher vermutet, dass dies seitens der WP nicht korrekt funktioniert, falls der Optokoppler für die WP diese 8mA nicht liefern könnte, die WP dies jedoch benötigen würde. -
@homoran
Ich habe das gleiche Verständnis, wie Dieter_P:
Screenshot gemäss wikipedia, grün markiert habe ich die Seite der S0 Schnittstelle der WP:
Damit ist die Spannungsquelle auf der Seite der WP. Bei Klasse A ist bei S0+ bei der WP damit 27V vorhanden bzw. 15V, falls Klasse B.
Damit ist dies deutlich anders, als wenn Signale sonst per GPIO "mitgeteilt" werden. Daher ist es auch nicht erlaubt, ein GPIO (mit Spannungsquelle) direkt an einen S0 Anschluss z.B. einer WP anzuschliessen, da sonst die S0 Schnittstelle ziemlich sicher kaputt gehen dürfte (da 2 Spannungsquellen damit kurzgeschlossen werden).
Dies zumindest mein Verständnis.
-
@mistral sagte in S0 - Signal mit Wemos D1 Mini erzeugen?:
Ich habe das gleiche Verständnis, wie Dieter_P:
Screenshot gemäss wikipedia, grün markiert habe ich die Seite der S0Prinzipiell stimme ich dem zu!
Aber nicht bei einem S0-EingangEDIT:
@Dieter_P oder meinst du die Versorgung am anderen Ende der Leitung, wo der S0-Ausgang ist soll über den S0 Ei gang der WP laufen? -
EDIT:
@Dieter_P oder meinst du die Versorgung am anderen Ende der Leitung, wo der S0-Ausgang ist soll über den S0 Ei gang der WP laufen?Nö, die S0-Verbindung ist per Standard ein abgestimmtest System. Dabei liefert der S0-Eingang die Spannungsversorgung und der S0-Ausgang funktioniert nur als ein "Ventil" um die Signale zu takten und zurück auf den Eingang zu geben.
Dass es auch Eingänge gibt dies nicht tun, ist mir bewusst, aber bevor ich anfange da irgendwelche Fremdspannungen reinzubringen, halte ich mich zu erst an den Standard (hier die sicherere Nummer ohne etwas zu zerstören) oder schaue ins Handbuch der WP was denn tatsächlich vorliegt
Hier dürfte auch ein Hinweis auf Klasse A oder B zu finden sein.Edit: Wie wir schon mal besprochen hatten, hat Udo da sehr wertvolle Dinge generiert. siehe einen S0 Eingang hier und der Recom 5V auf 24V DC/DC Wandler im Eingang um 24V aktiv auf das S0-System zu geben.
-
@mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:
@dieter_p
Vielen Dank für Deine Antwort!
Daher schaue ich dies so genau an, damit dies kein Risiko für den Eingang der WP sein sollte. Daher tendiere ich auch eher darauf, den Ausgangswiderstand auf 200 Ohm zu setzen (statt den oben erwähnten 100 Ohm).
Was mir aber nicht gerade klar ist: Wieso meinst Du, dass die WP defekt geht, wenn der Vorwiderstand zu klein ist? Der Strom seitens der WP muss doch eigentlich durch den Widerstand seitens der WP genügend reduziert sein (und dort bereits auf einen Maximalstrom von 8mA reduziert sein), damit dies für die WP immer "sicher" sein sollte? Oder verstehe ich dies nicht korrekt? Spontan hätte ich jetzt eher vermutet, dass dies seitens der WP nicht korrekt funktioniert, falls der Optokoppler für die WP diese 8mA nicht liefern könnte, die WP dies jedoch benötigen würde.Ich quote diese Nachricht, da anschliessend diverse Meldungen waren.
Vielen Dank bereits! -
@mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:
@mistral said in S0 - Signal mit Wemos D1 Mini erzeugen?:
@dieter_p
Vielen Dank für Deine Antwort!
Daher schaue ich dies so genau an, damit dies kein Risiko für den Eingang der WP sein sollte. Daher tendiere ich auch eher darauf, den Ausgangswiderstand auf 200 Ohm zu setzen (statt den oben erwähnten 100 Ohm).
Was mir aber nicht gerade klar ist: Wieso meinst Du, dass die WP defekt geht, wenn der Vorwiderstand zu klein ist? Der Strom seitens der WP muss doch eigentlich durch den Widerstand seitens der WP genügend reduziert sein (und dort bereits auf einen Maximalstrom von 8mA reduziert sein), damit dies für die WP immer "sicher" sein sollte? Oder verstehe ich dies nicht korrekt? Spontan hätte ich jetzt eher vermutet, dass dies seitens der WP nicht korrekt funktioniert, falls der Optokoppler für die WP diese 8mA nicht liefern könnte, die WP dies jedoch benötigen würde.Ich quote diese Nachricht, da anschliessend diverse Meldungen waren.
Vielen Dank bereits!Auch gerade zwischen "Tür und Angel" stimme ich Dir da zu.
Vergleichst Du die Wikipedia S0 Schaltung ist dort der S0-Bus mit 20mA beschrieben.
Auch im Eingang gibt es einen Widerstand der den Stromfluß begrenzt bevor es raus geht zum S0-Ausgang.
In der S0-Eingangschaltung von Volkszähler ist dieser Widerstand mit 1,2kOhm beschrieben, was bei 24V genau die 20mA ergibt.Bei 27V Klasse A bist du mit 1,2kOhm+200Ohm auch wieder genau bei 20mA.
Aktuelles Fazit. der Widerstand im S0-Ausgang schützt primär den Optokoppler im Ausgang und reduziert weiter <20mA.
Ergänzend scheint er Auswirkung auf die sichere Detektierung zu haben (Thema: Signalverlauf im Anstieg) aber das ist ungeprüft.VG
-
@dieter_p
Vielen Dank!
Ich werde dies auch noch mit einem Labornetzteil (mit 30V) testen, bevor ich dies an die WP anschliesse und die Signale auch noch mit einem Multimeter prüfen. Beides bereits bestellt. Und bevor ich dies an die Wärmepumpe anschliesse, werde ich die Komponenten noch "verlöten" (aktuell nur auf einem breadboard) und dann nochmals prüfen. Danke für Deine zwischen "Tür und Angel" Zustimmung.Für mich daher vor allem noch offen, weshalb die Diode hier bisher nicht besprochen wurde, da diese aus meiner Sicht in der bisherigen Diskussion fehlt. Und ob dies eine "normale Diode" sein kann oder eine Schottky Diode sein sollte. So rasch scheinen mir die Signale auch nicht zu sein, dass dies eine Schottky Diode benötigen würde. Ich denke, ich beginne mit einer normalen Diode und wechsle auf eine Schottky Diode, sofern im Oszilloskop die Flanken zu wenig steil sind. Oder weiss jemand von Euch, was korrekt ist? Danke!
-
@dieter_p sagte in S0 - Signal mit Wemos D1 Mini erzeugen?:
Dabei liefert der S0-Eingang die Spannungsversorgung und der S0-Ausgang funktioniert nur als ein "Ventil" um die Signale zu takten und zurück auf den Eingang zu geben.
das bedeutet aber, dass das S0 Signal, dann nie von zwei Empfängern genutzt werden kann
-
@homoran said in S0 - Signal mit Wemos D1 Mini erzeugen?:
@dieter_p sagte in S0 - Signal mit Wemos D1 Mini erzeugen?:
Dabei liefert der S0-Eingang die Spannungsversorgung und der S0-Ausgang funktioniert nur als ein "Ventil" um die Signale zu takten und zurück auf den Eingang zu geben.
das bedeutet aber, dass das S0 Signal, dann nie von zwei Empfängern genutzt werden kann
Soweit für mich kein Widerspruch zur Norm:
-
So rasch scheinen mir die Signale auch nicht zu sein, dass dies eine Schottky Diode benötigen würde. Ich denke, ich beginne mit einer normalen Diode und wechsle auf eine Schottky Diode, sofern im Oszilloskop die Flanken zu wenig steil sind. Oder weiss jemand von Euch, was korrekt ist?
Nein, kann ich dir nicht mit letzter Gewissheit beantworten. In der Norm steht dazu nix und aus der Schaltung sehe ich da einen Verpolungsschutz, der aber Potential hat das eigentliche Signal zu "versauen". Daher die steile These, dass man darauf auch ggf verzichten kann, wenn man in der Lage ist S0+ und S0- richtig anzuschließen.
Im mikrocontroller-Forum wurde bei der Aufgabe als S0-Ausgang auf eine 1N4148 verwiesen. Um die Signalflanken nicht zu stark zu verfälschen klingt das nach einer Option.