WLAN Dimmer

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

So, 18.03.18, 16:49

Hallo zusammen,

Würde mich über Rückmeldung freuen, falls hier jemand schon mal einen ESP8266/NodeMCU übers WLAN per IOS-App gesteuert hat. Er soll ein PWM Signal ausgeben an den Dimmereingang an einer KSQ.

Gruß,
Dieter
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

So, 18.03.18, 17:31

Einen ESP8266/NodeMCU übers WLAN gesteuert, ja. Aber von iOS hab ich keine Ahnung. Im einfachsten Fall läuft aus den ESP ein Web-Server und den kannst Du auch per Browser steuern. Das ist zunächst mal unabhängig vom Betriebssystem. Kommt halt auch drauf an, wie genau Du das haben willst... WLAN kann heißen, der ESP macht sein eigenes (fungiert als Access Point), oder hängt an deinem Router als Station und wird dann z.B. mit einer festen IP angesprochen.
Für ersteres gäbe es hier ein Beispiel (zwar für eine RGB LED, aber das ist ja nur PWM mit 3 Kanälen ;) ): http://cassiopeia.hk/rgb-wifi/
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

So, 18.03.18, 18:00

Erstmals Danke, wenn dann hatte ich unter anderem dich im Verdacht :wink:
Siehe auch mein Crosspost im roten Forum dazu hier

Ja, das ganze soll schon über App angesteuert werden, mein NodeMCU habe ich schon erfolgreich ins heimische WLAN eingebunden, OTA Update tut auch :D

- auf dem ESP aufgesetzten Webserver, das ist ja wohl auch dein Vorschlag. Aber wie und wie die Ansteuerung über eine App gehen soll ist mir rätselhaft. Vermutlich selber stricken, das will ich aber sicher nicht.
- Blynk wäre wohl eine Möglichkeit. Die App sieht schick und einfach zu bedienen aus. Aber da muss ich aber wohl entweder einen eigenen Server dazu aufsetzen, oder die Daten über die Cloud schicken.
- ich schon mal etwas zu einem Project McLightning gesehen. Auch hier stellt sich mir die Frage: wie steuere ich das über eine App an.
- gibt es weitere Alternativen? Es gibt doch x CE-Dimmermodule mit App :?

Gruß,
Dieter
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

So, 18.03.18, 18:11

Es gibt doch x CE-Dimmermodule mit App
Ja. Wirklich schwer ist das auch nicht. Möglicherweise könntest Du auch eine solche App nehmen und damit 'Deinen' ESP steuern. Problem ist halt, dass Apps von irgendwelchen Herstellern eher keine Angaben zum Protokoll veröffentlichen und selbst schreiben willst Du die App ja nicht. Das ist bei iOS auch leider etwas 'nervig'. Du braucht extra eine Entwickler-Lizenz von Apple (AFAIK kostenpflichtig). Bei Android (und Windows Phone - RIP :( ) kann man dagegen seine selbst geschriebenen Apps auch ohne App Store auf's Phone bekommen.
auf dem ESP aufgesetzten Webserver, das ist ja wohl auch dein Vorschlag. Aber wie und wie die Ansteuerung über eine App gehen soll ist mir rätselhaft.
In dem Fall brauchst Du ja nicht unbedingt eine App. Einfach den Standard-Web-Browser auf dem Phone öffnen, passende Web-Seite (die IP-Adresse des ESP) laden und Wert einstellen.
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

So, 18.03.18, 18:26

Borax hat geschrieben: Möglicherweise könntest Du auch eine solche App nehmen und damit 'Deinen' ESP steuern. Problem ist halt, dass Apps von irgendwelchen Herstellern eher keine Angaben zum Protokoll veröffentlichen und selbst schreiben willst Du die App ja nicht.
Nee, nee. Ich gebe keiner China-App meine SSID und Passwort fürs WLAN.
Borax hat geschrieben: In dem Fall brauchst Du ja nicht unbedingt eine App. Einfach den Standard-Web-Browser auf dem Phone öffnen, passende Web-Seite (die IP-Adresse des ESP) laden und Wert einstellen.
Brauchen zur Funktion nicht, zur Usability doch :(
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

So, 18.03.18, 18:32

Ich gebe keiner China-App meine SSID und Passwort fürs WLAN.
Kann ich verstehen.
Brauchen zur Funktion nicht, zur Usability doch
Dann wirst Du vmtl. nicht drum rum kommen, die App selbst zu schreiben. Oder Du suchst Dir einen App-Entwickler der das schnell mal schreibt. Wie gesagt, bei iOS kann ich Dir nicht helfen. Windows Apps habe ich schon selbst geschrieben, Android Apps mache ich möglicherweise demnächst (wenn mein Windows Phone 'stirbt'), aber mit Apple hab ich nichts am Hut.
Siehe: http://www.giga.de/downloads/ios-11/tip ... und-tipps/
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Di, 20.03.18, 22:10

Ich komme doch noch mal auf die Webserver zurück. So wie ich das verstanden habe, braucht es auf der Website in meinem Fall ja nur einen Slider. Und der braucht dann Java wenn er Werte zurückgeben soll. Und das geht auf dem Esp8266 noch?
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Di, 20.03.18, 22:35

Nein. Java ist nicht nötig. Hier geht es um JavaScript. Das wird im Browser ausgeführt (ohne Java run time). Der Webserver liefert nur das script (letztlich ein einfacher Text - siehe z.B.: https://github.com/dimsumlabs/nodemcu-h ... index.html was allerdings für deinen Fall schon unnötig kompliziert ist, weil ja hier 3 Werte also R, G, B dargestellt und übermittelt werden müssen), was der Browser (respektive dessen javascript engine) ausführt. Der ESP bekommt dann nur einen einfachen 'Wert' (respektive im RGB Beispiel 3 Werte) zurück. Der ESP muss sich daher weder um den Slider, dessen Darstellung noch um Klick-Events o.ä. kümmern.
[Edit]
Na, schon weiter gekommen?
Wegen App vs. Website: Die meisten Leute erkennen den Unterschied sowieso nicht... Wir hatten in der Arbeit auch mal so eine 'ähnliche' Fragestellung. Und bei der Umfrage kam dann letztlich raus: Für den normalen User ist eine App ein Icon auf dem Smartphone. Der Unterschied 'echte' App oder Browser Shortcut Link (mit Icon) auf dem Home Screen war fast allen egal (bzw. gar nicht verständlich - wenn da ein entsprechendes Icon ist, dann ist das eine App!).
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Sa, 24.03.18, 12:18

Borax hat geschrieben: Wegen App vs. Website: Die meisten Leute erkennen den Unterschied sowieso nicht... .
Diese Tendenz habe ich auch gerade :D

Dank empfehlenswerten Beginner's guide to ESP8266 und nach lösen der üblichen Fallstricke kann ich schon mal die Helligkeit der eingebauten LED hoch und runter drehen.

Feedback gibt es noch keines, also wenn ich von zwei Geräten aus zugreife, meint der zweite immer noch 100% auch wenn der erste es ausgeschaltet hat.
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Sa, 24.03.18, 16:53

Gratuliere!
Feedback gibt es noch keines, also wenn ich von zwei Geräten aus zugreife, meint der zweite immer noch 100% auch wenn der erste es ausgeschaltet hat.
Das dürfte auch gar nicht so einfach sein, das zu ändern. Weil von allein würde ja das zweite Gerät die Web-Seite auch nicht neu laden. Und erst dann könnte man den aktuellen Wert anzeigen. Das ginge sonst höchstens mit Websockets oder Multicast. Wäre mir aber viel zu aufwändig.
Wegen App vs. Website (respektive WAF):
Mit einem 'favicon' (was nichts anderes als ein passendes Bildchen ist) kann das wirklich nur noch der Fachmann unterscheiden...
Ich hab das mal auf meinem Windows Phone getestet:
LichtSteuerungsApp.png
LichtSteuerungsApp.png (44.01 KiB) 12408 mal betrachtet
Passend zum Betriebssystem/Browser erstellen kann man diese favicons mit einem frei verfügbaren Generator:
https://realfavicongenerator.net/
Ich hab das mal mit einem Kerzenicon getestet. Da kannst Du aber bestimmt was besseres finden ;)
Den code für den ESP (einschließlich html) kann ich Dir gerne schicken. Einfach per PN nachfragen
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Sa, 24.03.18, 17:50

Borax hat geschrieben: Das dürfte auch gar nicht so einfach sein, das zu ändern. Weil von allein würde ja das zweite Gerät die Web-Seite auch nicht neu laden. Und erst dann könnte man den aktuellen Wert anzeigen. Das ginge sonst höchstens mit Websockets oder Multicast. Wäre mir aber viel zu aufwändig.
zum Glück nicht: dieses Beispiel in Ajax ist als proof-of-concept schon mal geeignet. Wenn man auf einem Gerät den Schieber ändert, bewegt sich der andere mit :D

Noch verstehe ich den Code aber nicht :( Bin mich aber gerade am einlesen.


Edit:
aber gleich noch eine Frage hintendran: der ESP braucht so 2-3 Sekunden zum Booten. In der Zeit ist das Ausgangssignal ja also entweder 0 oder 1, aber ich werde kaum den letzten Dimmerwert als PWM ausgeben können, oder? Sprich, ich brauche noch einen Attiny, der das eigentliche PWM macht und Änderungen kommen über den ESP rein?
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Sa, 24.03.18, 23:48

der ESP braucht so 2-3 Sekunden zum Booten.
Ja. Respektive zum Booten eigentlich weit weniger als eine Sekunde. Nur zum verbinden mit dem Router schon einige Sekunden. Kann man beschleunigen, wenn man feste Werte (IP Adresse, Gateway...) vorgibt. Vom Router muss dann der ESP halt immer die gleiche IP bekommen.
Sprich, ich brauche noch einen Attiny, der das eigentliche PWM macht und Änderungen kommen über den ESP rein?
Versteh ich nicht ganz. Der ESP kann schon auch selbst das PWM Signal ausgeben. Damit er was empfangen kann, muss er ja sowieso laufen. Also muss er ja sowieso dauerhaft mit Strom versorgt werden. Und dann fallen die paar Sekunden eigentlich nicht ins Gewicht.
aber ich werde kaum den letzten Dimmerwert als PWM ausgeben können, oder
Warum nicht? Wenn der ESP doch per Schalter ausgeschaltet wird, musst Du halt dafür sorgen, dass der letzte Dimmerwert im Flash gespeichert wird. Dann kann der auch nach dem Booten gelesen werden und auch gleich ausgegeben werden. Dafür braucht der ESP ja noch keine Verbindung zum WLAN.
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

So, 25.03.18, 09:25

Borax hat geschrieben: Versteh ich nicht ganz. Der ESP kann schon auch selbst das PWM Signal ausgeben. Damit er was empfangen kann, muss er ja sowieso laufen. Also muss er ja sowieso dauerhaft mit Strom versorgt werden. Und dann fallen die paar Sekunden eigentlich nicht ins Gewicht.
Warum nicht? Wenn der ESP doch per Schalter ausgeschaltet wird, musst Du halt dafür sorgen, dass der letzte Dimmerwert im Flash gespeichert wird. Dann kann der auch nach dem Booten gelesen werden und auch gleich ausgegeben werden. Dafür braucht der ESP ja noch keine Verbindung zum WLAN.
Die Lampe hat nicht Standby und die ganze Zeit Strom, sondern klassisch ein/aus Schalter. Nach Einschalten 1s auf Licht warten zu müssen (oder Flutbeleuchtung zu haben), ist nicht im Sinne des Erbauers :D

Aber ich werde mal ein Basic-Setup versuchen, und probieren wie lange es wirklich braucht, bis es gleich Licht wird

Ich stelle übrigens fest, daß selberschreiben in JS, AJAX und HTML meine derzeitigen Kenntnisse deutlich übersteigen. Und reines Trial&Error über den ESP ist extrem mühsam.
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

So, 25.03.18, 11:23

sondern klassisch ein/aus Schalter.
Ok. Dann musst Du entweder über einen Default-Wert starten (so mach ich das bei mir: Start immer mit 60%). Oder Du musst nach jeder Änderung den aktuellen Wert im Flash speichern (dann brauchst Du aber einen Ringbuffer - sonst wird da zu viel 'geschrieben'). Oder eine Ausschaltverzögerung (dicker Kondensator) verwenden und wenn die Stromversorgung weg ist, schnell noch den letzten Wert speichern.
Ich stelle übrigens fest, daß selberschreiben in JS, AJAX und HTML meine derzeitigen Kenntnisse deutlich übersteigen. Und reines Trial&Error über den ESP ist extrem mühsam.
Geht mir ähnlich. Daher würde ich eben eine eher pragmatische Lösung verwenden: Start immer mit einem bestimmten Wert. Sync zwischen verschiedenen Geräten gibt es nicht. Hauptsache es funktioniert, ist einfach zu bedienen und sieht halbwegs gut aus.
[Edit]
Ich hab mal das oben verlinkte Ajax Beispiel angeschaut. Es beruht darauf, dass jede Sekunde beim Server (ESP) ein neuer Wert abgefragt wird. Damit wird der Slider dann aktualisiert.
setTimeout('process()',1000);
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

So, 25.03.18, 18:05

Borax hat geschrieben: Ok. Dann musst Du entweder über einen Default-Wert starten (so mach ich das bei mir: Start immer mit 60%).
Gute Idee, meist läuft sie eh immer auf einer Einstellung.
Geht mir ähnlich. Daher würde ich eben eine eher pragmatische Lösung verwenden: Start immer mit einem bestimmten Wert. Sync zwischen verschiedenen Geräten gibt es nicht. Hauptsache es funktioniert, ist einfach zu bedienen und sieht halbwegs gut aus.
hmm, das ist nicht so ganz mein Wunsch. Mal sehen, ob sich hier doch jemand rumtreibt, der da mehr Ahnung hat.
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

So, 25.03.18, 22:56

Naja... Das mit der Sync pro Sekunde ist ja nicht soo schwierig. Mir wäre es zwar nicht so wichtig, aber das ist noch halbwegs einfach machbar.
Mal sehen, ob sich hier doch jemand rumtreibt, der da mehr Ahnung hat.
Am ehesten im ESP Forum oder auf Github o.ä. Hier im Forum wohl kaum. Das ist ein reines WEB Client - Server Kommunikations-Problem. Mit LEDs hat das ja quasi nichts zu tun.
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Mo, 26.03.18, 13:25

hmm, das ist nicht so ganz mein Wunsch.
Was genau ist denn Dein Wunsch? Vielleicht kann ich Dir da doch (ein wenig) weiter helfen.
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Mo, 26.03.18, 18:51

Borax hat geschrieben:
hmm, das ist nicht so ganz mein Wunsch.
Was genau ist denn Dein Wunsch? Vielleicht kann ich Dir da doch (ein wenig) weiter helfen.
Was ich derzeit weiß:
- OTA Update, eigener AP wenn nicht automatisch eingewählt
- laden der Webpage-Daten vom eigenen SPIFFS
- Rückmeldung vom ESP zu Webseiten
- Optik des Sliders wie hier (aus Iphone Einstellungen), nur senkrecht
IMG_0480_1.PNG
Was ich derzeit nicht abschätzen kann: was passiert, wenn ich mein WLAN Passwort ändere? Es kann ja nicht sein, das ich wegen Hartcodierung des SSID/Passwort neu kompilieren und aufspielen muss.

Falls du mich da unterstützen kannst wäre super :D
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Mo, 26.03.18, 23:00

- OTA Update hab ich noch nie versucht. War mir irgendwie 'unsympatisch'.
- eigener AP wenn nicht automatisch eingewählt ist kein großes Problem. Da gibt es reichlich Beispiele dafür (hängt auch mit dem letzten Punkt zusammen).
- laden der Webpage-Daten vom eigenen SPIFFS mach ich sowieso immer. Bilder ohne File-System zu übertragen ist viel zu mühsam...
- Optik des Sliders wie hier... Das sollte auch machbar sein, wobei ich da nicht ganz so fit (und auch nicht 100% sicher) bin. Und ich hab kein Iphone um das zu testen. 'Mein' Test-Slider (siehe Bild oben) schaut auch nicht überall gleich aus (auf Firefox und Windows Phone schon, auf meinem Desktop mit IE11 dagegen nicht). Du kannst ja mal die W3Schools Custom Slider Seite anschauen/testen: https://www.w3schools.com/howto/howto_j ... slider.asp Die Icons links und rechts von dem Slider sind wiederum kein Problem.
Was ich derzeit nicht abschätzen kann: was passiert, wenn ich mein WLAN Passwort ändere?
In dem Fall kann sich der ESP ja nicht mit den gespeicherten Werten mit Deinem WLAN verbinden und kann dann als Fallback in den AP Modus wechseln. Dann kannst Du Dich auf diesem AP anmelden und die neuen Werte (WLAN Passwort und ggf. SSID) neu eingeben. Diese werden dann in einer Config-Datei gespeichert. Beim nächsten Reset startet der ESP dann mit dem neuen WLAN Passwort.
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Di, 27.03.18, 17:30

Borax hat geschrieben:- OTA Update hab ich noch nie versucht. War mir irgendwie 'unsympatisch'.
Ist richtig nett wenn ein Update im verbauten Zustand eingespielt werden muss, und deutlich schneller als USB. Minimaler Zusatzaufwand würde ich sagen, aber für den Testmodus nur bedingt zu gebrauchen wenn man auf die serielle Rückantwort angewiesen ist.
Borax hat geschrieben:- Optik des Sliders wie hier... Das sollte auch machbar sein, wobei ich da nicht ganz so fit (und auch nicht 100% sicher) bin. Und ich hab kein Iphone um das zu testen. 'Mein' Test-Slider (siehe Bild oben) schaut auch nicht überall gleich aus (auf Firefox und Windows Phone schon, auf meinem Desktop mit IE11 dagegen nicht). Du kannst ja mal die W3Schools Custom Slider Seite anschauen/testen: https://www.w3schools.com/howto/howto_j ... slider.asp Die Icons links und rechts von dem Slider sind wiederum kein Problem.
Auch die Slider sind optisch OK.
Beispiele für die einzelnen Teilprobleme hätte ich, nur zusammenbauen kann ich nicht :(
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Mi, 28.03.18, 13:51

nur zusammenbauen kann ich nicht
Ok. Mal sehen wie viel Lust ich darauf habe ;) Ist das mit der Sync pro Sekunde für verschiedene Geräte auch 'Pflicht' ?
Dieses Punkte: Optik des Sliders, File-System, Config Datei kann ich Dir relativ schnell zusammenstellen (weil ich das ja schon weitgehend habe). Das mit der Sync pro Sekunde müsste ich erst testen. Das gleiche gilt für das OTA Update.
Noch was:
Optik des Sliders wie hier (aus Iphone Einstellungen), nur senkrecht
Also willst Du den Slider senkrecht dargestellt haben? Hell oben oder unten? Ist leider wohl auch Browser / Betriebssystem abhängig: https://stackoverflow.com/questions/159 ... vertically (Da ist aber nur von IE, Firefox, Chrome und Opera die Rede. Safari und/oder iPhone sind da nicht mal erwähnt)
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Mi, 28.03.18, 20:15

Ich habe heute etwas daran gebastelt und das Ajax-Grundgerüst mit OTA-Update, Multi-WFI, SPIFFS, etc. gepimpt. Und das erstaunliche: es läuft noch :lol:

Jetzt habe ich den einfachen Slider und die CSS Variante parallel auf dem ESP, aber nur mit ersterem kann ich die LED steuern :( An den HTML und JS Konstrukten habe ich mir bisher die Zähne ausgebissen. Neben ein paar anderen kleinen Nebenschauplätzen, die gerade aber nicht funktionsrelevant sind.

Auslesen der Anmeldedaten aus einem File sollte ich wiederum selber hinkriegen - da habe ich mich nur noch nicht eingelesen
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Mi, 28.03.18, 21:20

Ok. Dann bist Du ja schon ziemlich weit. Die Frage wäre jetzt wo und wie ich dir jetzt helfen kann...
dieterr
Hyper-User
Hyper-User
Beiträge: 1142
Registriert: Mo, 04.01.16, 18:16

Do, 29.03.18, 18:22

Borax hat geschrieben:Die Frage wäre jetzt wo und wie ich dir jetzt helfen kann...
Nun, die folgenden zwei Probleme bekomme ich nicht gelöst, falls du da was helfen könntest, wäre super:
- einbinden des Config-file mit Einwahldaten zum laden / speichern (klappt doch nicht so einfach)
- Umbau des Einfachsliders im JS auf die CSS-Variante

Allerdings mit dem Posten eines Codeschnipsels ist es nicht getan, ich habe mal das ganze Projekt gepackt und hier eingefügt, sowie ein JS-Slider Beispiel an dem ich herumprobiert habe.
AJAX_OTA_Full2 (Kopie).zip
(51.39 KiB) 269-mal heruntergeladen
Ich werde mich mal daran machen, die Dimmcharakteristik von linear an die menschliche Lichtempfindlichkeit anzupassen. Ich habe was dazu schon gesehen, muss es jetzt nur wieder finden :D
Borax
Star-Admin
Star-Admin
Beiträge: 11980
Registriert: Mo, 10.09.07, 16:28

Do, 29.03.18, 23:12

Bzgl. Dimmcharakteristik: Geht halbwegs einfach mit einer einfachen quadratischen Funktion. Noch präziser wäre es mit einer Gamma Funktion (AFAIR x^2.2 ). Macht aber keinen soo großen Unterschied.
Den code schau ich mir dann mal an. Wird aber vmtl. erst nach Ostern was...
Antworten