WeMos D1 mini als WLAN-Sensor/-Aktor

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Ardubert Homedu
Beiträge: 142
Registriert: 17.07.2016, 10:40
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von Ardubert Homedu » 07.11.2019, 13:23

ALLES klar :D

Und da sehe ich wieder einmal das mir massiv das elektrotechnische
Grundwissen zu fehlen scheint für meine Projekte :(

Also scheint da gar nicht zu gehen in meinem fall das ich vom Wemos das pwm ausgebe
und an den Arduino Anschließe und das mit Analog Read auswerte weil es nicht
Sauber genug wäre? Ja?

Muss denn immer alles so kompliziert sein für so eine einfache Funktion... :roll:

Und ein ESP32 kann ein solches Signal ausgeben?

Oder muss ich wirklich eine neue Steuerung bauen die ich direkt ansprechen kann...
Aber das bekomme ich nicht gebacken mit webserver und Poti und lüfter und servo... im leben nicht

cmjay
Beiträge: 2373
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 250 Mal
Danksagung erhalten: 348 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von cmjay » 07.11.2019, 14:03

Du nimmst einen WeMos, lässt den ein (passendes) PWM ausgeben und das wandelst du dann mit dem verlinkten PWM to Voltage Converter Modul in eine dir genehme DC Spannung um. Den Wemos kannst du ja problemlos z.B. per http requests von der CCU aus steuern. Was dir nicht erspart bleiben wird, ist einen entsprechenden Webserver auf dem Wemos einzurichten. Da gibt es aber bestimmt schon gebrauchsfertige Sketches für eine webbasierte Servosteuerung im Netz zu finden. Einfach mal suchen.

Trotzdem nochmal der Kommentar:
Ich verstehe die Motivation, deine bisherige Steuerung so unverändert zu behalten, aber was du da vor hast ist eigentlich ein klassischer Fall von "Von-hinten-duch-die Brust-ins-Auge". :wink:
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Ardubert Homedu
Beiträge: 142
Registriert: 17.07.2016, 10:40
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von Ardubert Homedu » 07.11.2019, 14:13

Also besser etwas neues?!
Dann fällt der wemos schonmal raus weil man da nicht 2 Poti anschließen kann...
Oder ich verzichte auf die potis und schließe da nur Servo und mosfet für den Lüfter an... Rest muss dann über scetch...
Und das muss dann über http laufen... Wert 0 bis 100

Puhhh
Ob ich da nochmal wochenlang jeden Abend opfern will...

Da muss ich mich erst mal hinsetzen und suchen ob ich was in der groben Richtung finde... Mit fehlen halt die basics und die Zeit für sowas....
Die Geschichte mit dem homeduino und später wemos haben mich schon wochenlang gestresst .. eher Monate

cmjay
Beiträge: 2373
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 250 Mal
Danksagung erhalten: 348 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von cmjay » 07.11.2019, 14:28

Mal eine Alternative ohne Notwendigkeit zur Erzeugung von (zusätzlichen) Steuerspannungen:

So wie ich das verstehe brauchst du nur deinen bestehenden Arduino, der den Servo steuert, mit einem WLAN- bzw. Ethernet-Shield ausstatten und einen entsprechenden Sketch mit Webserver neu aufziehen. Der Sketch muss natürlich auch so angepasst werden, dass er noch die Eingaben über die angeschlossenen Potis zur manuellen Steuerung verarbeitet.
Erforderliche neue Hardware: 1x Ethernet-Shield oder WLAN-Shield.
Und einige Programmierarbeit - je nachdem, ob sich schon was "Halb-fertiges" im Netz finden lässt oder nicht.

Aber ich kenne natürlich nicht deinen Kompetenz-Level bzgl. Arduino-Programmierung und kann daher nicht abschätzen, wie schwierig sich die Sache für dich darstellt.
Auf welche Weise du dein Vorhaben umsetzen willst kannst nur du entscheiden.
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Ardubert Homedu
Beiträge: 142
Registriert: 17.07.2016, 10:40
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von Ardubert Homedu » 07.11.2019, 15:16

Ganz klar, sehr schwierig ...

Mein Level ist wohl höchstens 1,5 von 10

cmjay
Beiträge: 2373
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 250 Mal
Danksagung erhalten: 348 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von cmjay » 07.11.2019, 15:31

Ich hätte noch eine andere, für dich ziemlich sehr leicht umzusetzende Idee auf Basis eines PWM to Voltage Converter Moduls.
Die wäre, einfach den HM-LC-Dim1PWM-CV Dimmer zu nehmen und dessen Ausgang mit einem PWM to Voltage Converter auf die gewünschte DC-Spannung zu konvertieren. Leider scheitert diese einfache Idee momentan daran, dass die PWM-Frequenz des HM-LC-Dim1PWM-CV bei ca. 200Hz liegt*, der verlinkte China-Konverter aber eine Frequenz im Bereich von 1kHz-3kHz erwartet. Einen Konverter für den 200Hz-Bereich habe ich leider noch nicht finden können.

* Die technischen Specs auf der ELV Seite sagen zwar "200Hz-1kHz", aber in entsprechenden ELV-Forenbeiträgen spricht der ELV-Support einmal von 200Hz und ein anderes mal von 400Hz. Gehe also mal stark davon aus, dass 1kHz nicht möglich ist.

UPDATE: Es müsste funktionieren :!:
Gemäß Artikel Homematic Know-How Teil 22
https://files.elv.com/bilder/journal/20 ... teil22.pdf
kann man in der WebUI die PWM Frequenz bis auf 1 kHz anheben.

Code: Alles auswählen

Homematic PWM-Dimmer (HM-LC-Dim1PWM-CV)
Dieser flache Funk-Dimmer ermöglicht das Dimmen
von 12- und 24-VDC-LED-Anordnungen per PWM. Die Ansteuerung
kann von allen Sendern und Zentralen des Homematic Systems
sowie über eine Taste am Gerät selbst erfolgen. Bei der Ansteuerung
über die Zentrale CCU2 kann hier als Komfortmerkmal die PWM-Frequenz
zwischen 200 und 1000 Hz eingestellt werden, um, je nach LED, ein unerwünschtes
Flimmern, das besonders an den Bereichsgrenzen auftreten
kann, zu unterdrücken.
Was wieder einmal zeigt, dass der ELV Technik Support relativ wenig Ahnung von den verkauften Produkten hat ...
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Benutzeravatar
TomT
Beiträge: 565
Registriert: 19.11.2014, 15:13
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von TomT » 08.11.2019, 06:40

ok, jetzt habe ich es verstanden :-)
Da ich das Gebastel wie cmjay auch schon schrieb für von-hinten-durch-die-Brust-ins Auge halte
fragen wir mal so :

- Kannst du ohne geeignete Vorlagen überhaupt den Wemos so programmieren, daß er die UART abfragen und auswerten kann?
- Ist am Arduino die UART frei zur Nutzung?

Es ist nämlich per CuxD ziemlich einfach möglich, Webrequests von der CCU zum Wemos zu schicken.
Eine einfache Beschreibung zum Schlten eines ESP8266 mittels CuxD findest du hier : https://forum.iobroker.net/assets/uploa ... e-cuxd.pdf .
Das könnte man ohne Probleme dann auch erweitern....
Diese könnten 2 Infos liefern, nämlich Servostellung und Lüftergeschwindigkeit. (2 Hilfsvariablen der CCU)

Diese könntest du am Wemos auslesen und dann entsprechende Werte per UART an den Arduino schicken.
Der Arduino filtert diese aus und stellt dir dann passend in deinem Programm den Servo und den Lüfter.

Voraussetzung ist, du kriegst den Programmcode dazu in dein vorhandenes Programm integriert.
Da ich vermute, das du das selbst geschrieben hast, sollte das wohl nicht das Problem sein, oder traust du dir das nicht zu?

Wenn deine StandardUART am Arduino schon belegt ist, kannst du eine zusätzliche Software Serial an jedem freien Pin des Arduino nutzen.
Da du ja eigentlich auch nur die Richtung WEMOS zu ARDUINO brauchst und der Wemos nur 3,3V liefert kommst du ohne Levelshifter aus.
Dem Arduino reicht als Eingang (RX) auch 3,3V.
So bräuchtest du keine zusätzliche Hardware ausser dem Wemos....

Grüße
Tom

EDIT : Welcher Arduino genau ist es denn eigentlich? Nano oder Micro oder????

EDIT2 :
Noch eine Möglichkeit wäre, am Arduino mittels einer Programmschleife das PWM Signal auszuwerten und dementsprechend weiter zu verarbeiten.

Funktionsweise grob :
Schleife starten und den Pin, wo das PWM Signal anliegt für einen gewissen Zeitraum per DigitalRead abfragen.
Beim Wechsel von LOW auf HIGH Pegel einen Zähler starten und dann solange erhöhen lassen, bis der nächste HIGH (!!!!) Pegelwechsel erreicht wird.
Also nicht einfach nur beim ersten LOW aufhören mit der Schleife, sondern weiter...
Der Zähler beinhaltet die gesamte Laufzeit von High bis zu High. Einen Weiteren Zähler dann solange erhöhen, bis der 1. LOW Pegel kommt.
Mit dem Gesamtzähler und dem "HIGH"-Zähler hast du nun den DUTY CYCLE deines Signals.
Da du ja die Frequenz deines PWM Signals kennst, kennst du auch die Laufzeitbeschränkung der Schleife.
Denn wenn beide Zähler identisch groß sind ist es 100% PWM, wenn beide Zähler 0 sind, dann ist die PWM auch 0.
Das müsste in den Arduino in dein Programm mit rein. Die PWM Frequenz des Wemos sollte nicht sehr hoch gewählt werden, denn die Abfrage und assuwertung innerhalb der Schleife braucht Zeit. Kommt natürlich auch drauf an, wie genau (sprich welche Auflösung) du brauchst...

PaulM
Beiträge: 315
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 126 Mal
Danksagung erhalten: 35 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von PaulM » 12.11.2019, 17:17

Fehlermeldung: ISR not in IRAM

nur für den Fall, dass andere vor demselben Problem stehen:

Ein WeMos D1 mini überträgt seit etwa 2 Jahren die Sensorwerte (gezählte Impulse) von einer Wasseruhr zur CCU

Nun wollte ich auch von einer zweiten Wasseruhr die Sensorwerte erfassen. Der praktisch gleiche Sketch liess sich zwar hochladen, brachte aber im seriellen Monitor die Fehlermeldung "ISR not in IRAM". Meine aktuelle Arduino-Version (oder einer Bibliotheksversion) ist strikter als früher.

Eine zusätzliche Zeile, bei mir vor dem Setup, war die nach langer Suche gefundene Lösung:

Code: Alles auswählen

void ICACHE_RAM_ATTR NAMEderInterruptServiceRoutine(); // letting the compiler know about where to put the function - RAM
Mit Mut und Entschlossenheit gegen Intoleranz

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 70 Mal

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von klassisch » 12.11.2019, 18:07

Vielen Dank für die Info!

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: WeMos D1 mini als WLAN-Sensor/-Aktor

Beitrag von jp112sdl » 12.11.2019, 18:37

Mir war gar nicht bewusst, dass es jemals ohne das Attribut ICACHE_RAM_ATTR ging. :shock:

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“