Skip to end of metadata
Go to start of metadata

Im Internet gibt bekommt man unter der Bezeichnung H801 WLAN LED Dimmer kostengünstiges Modul, dass über WLAN angesteuert werden kann.

Eigenschaften H801:

  • 5 Kanäle
  • WLAN ist über den ESP8266 integriert
  • 5-24V Betriebsspannung
  • ca. 8-12 € bei Ali Express; ca. 15 € bei eBay

Links mit Informationen:

http://www.schatenseite.de/2016/05/17/lichtsteuerung-mit-esp8266-und-mqtt/

https://de.aliexpress.com/wholesale?catId=0&initiative_id=SB_20170224090935&SearchText=H801+WLAN+Dimmer

 

Ich selber habe mich erst ein wenig mit der mitgelieferten Firmware auf dem ESP8266 beschäftigt. Da diese aber über Hex-Werte angesteuert wird, bin ich recht schnell zu dem Schluss gekommen, dass ich diese ersetzen muss. Da ich bereits einige Erfahrung mit dem ESP8266 bei anderen Projekten gemacht hatte viel mir das nicht allzu schwer.

Was benötigt ihr?

  1. Pin-Header um diesen auf der Platine aufzulöten (siehe auch das oben verlinkte Video)
  2. Einen USB auf Serial Konverter ( ich selber habe diesen hier: https://www.exp-tech.de/catalogsearch/result/?q=EXP-R11-055)
  3. Arduino IDE (https://www.arduino.cc/en/main/software) - Ich verwende die Version 1.66
  4. ESP8266 Core Bibliotheken (https://github.com/esp8266/Arduino)
  5. ESP8266 FS (File System) Erweiterung (https://github.com/esp8266/arduino-esp8266fs-plugin/)

 

Eine kurze Anleitung:

Hier die Einstellungen, die ich in der Arduino IDE eingestellt habe. Besonders zu achten ist auf "Flash Size". Das Modul hat "nur" einen Speicher von 1MB. Wenn ihr mehr einstellt, wird es nicht funktionieren.

 

Beim ersten Flashen müsst ihr über die serielle Schnittstelle (im Bild unten blau) gehen. Später könnt ihr auch "over the air" flashen.

Um den ESP in den Flashmodus zu bekommen müsst ihr die Kontakte (im Bild unten rot) verbinden und dann die Stromversorgung anschließen. Kurz nachdem die ihr die Spannung angelegt habt, könnt ihr die Brücke wieder entfernen.

Ihr könnt den H801 entweder über die grünen Anschlüsse mit 5-24 V versorgen oder ihr gebt im über die serielle Schnittstelle 3,3V (Achtung der USB hat 5V).

 

Wenn der ESP8266 im Flashmodus ist, könnt ihr die neue Software drauf spielen. Achtet dabei darauf, dass in der Arduino IDE unter Werkzeuge/Port der richtige Port ausgewählt ist an dem auch euer USB auf Seriell Konverter angeschlossen ist.

Die Software besteht aus 2 Konponenten

  1. Ein paar Dateien im Sketchverzeichnis (Data) - Die Erklärung der Dateien erfolgt weiter unten
  2. Der Software = alle anderen Dateien (Die Software ist sicher nicht perfekt und man kann einiges sicher professioneller gestalten. Aber sie tut was sie soll. Wer möchte darf gerne weiter entwickeln)

Ihr müsst natürlich erst den Sketch in der Arduino IDE laden.

Es macht Sinn zunächst die Dateien auf den ESP8266 zu laden. Da hier die Zugangsdaten für den Access-Point drin sind und er sonst einen eigenen Access-Point auf macht, wenn er sich nicht einwählen kann.

Das macht ihr über den Menüpunkt "Werkzeuge/ESP8266 Sketch Data Upload". ACHTUNG hierbei darf der serielle Monitor NICHT eingeschaltet sein.

Nachdem die Dateien drauf sind, am besten den H801 noch mal stromlos machen und neu booten (denkt daran die rot markierten Kontakte zu schließen, sonst startet der H801 nicht im Flashmodus).

Danach kann dann die eigentliche Software geflasht werden. Das funktioniert über "Sketch/ Hochladen".

Danach startet der ESP neu. Die "rot" Bücke sollte jetzt nicht mehr drauf sein. Wenn doch, macht das auch nichts. Ihr müsst sie nur entfernen und dann noch mal die Spannung neu anlegen.

Am besten beobachtet man jetzt über den seriellen Monitor, ob alles richtig funktioniert. Hier gebe ich einige Ausgaben aus. Z.B. ob er sich im den angegebenen Access-Point eingewählt hat.

Ab jetzt könnt ihr des ESP8266 auch über WLAN flashen. Dazu muss zum einen die "rote" Brücke nicht geschlossen werden, zum anderen muss unter "Werkzeuge/Port" der virtuelle Port eingestellt werden. Wenn dieser nicht direkt angezeigt wird, einfach mal die IDE neu starten.

 

Was ist sonst noch wichtig zu wissen:

  • Wenn sich der ESP8266 nicht in den angegebenen Access-Point einwählen kann, öffnet er seinen eigenen Access-Point. Hier kann man sich dann über die im Sketch angegebenen Daten einwählen. Im Hintergrund sucht er allerdings weiter nach dem richtigen Access-Point. Wenn er diesen findet, macht er einen Soft-Reset. Das verfahren hat sich bei mir bewährt.
  • Ich vergebe bei mir im Access-Point eine statische IP-Adresse für den H801. Ihr könnt den Sketch sicher auch so umbauen, dass er sich selbst eine IP-Adresse vergibt. Habe das bei mir nie gemacht. Auch mit einer dynamischen IP-Adresse habe ich keine Erfahrungen gemacht. Hier müsstet ihr dann über den DNS Namen gehen.

 

Wie kann der H801 angesteuert werden?

Schalten der Farbkanäle mit:
http://[IP-Adresse]/ledcontrol?rgb=[bbbgggrrr]&w1=[www]&w2=[www]
bbb - Wert von 0-100 für blau
rrr - Wert von 0-100 für rot
ggg - Wert von 0-100 für grün
www - Wert von 0-100 für weiß Kanal 1 und Kanal 2
Die Parameter 'rgb', 'w1' und 'w2' sind optional und können einzeln oder in Kombination verwendet werden
Beispiele
http://192.168.2.54/ledcontrol?rgb=092100033
http://192.168.2.54/ledcontrol?w1=42&w2=82

Ändern und speichern der Dämpfung für die Wechselgeschwindigkeit:
http://[IP-Adresse]/setdaempfung?daempfung=[0-n]
http://192.168.2.48/setdaempfung?daempfung=10

Sinnvolle Werte sind etwa zwischen 1 und 20

Ändern von Werten:
http://[IP-Adresse]/set?hostname=[HOSTNAME]
z.B.: http://[IP-Adresse]/set?hostname=RGBWW-Controller

Abrufen des aktuellen Status:
http://[IP-Adresse]/status

Restart per Software:
http://[IP-Adresse]/restart

Diese Hilfeseite aufrufen
http://[IP-Adresse]/help

 

Beschreibung der Dateien im Ordner "Data":

  • cl_conf.txt
    Hier stehen die Zugangsdaten für den Access-Point drin in den sich der H801 einwählen soll.
    In der ersten Zeile steht die SSID (nichts davon und nichts dahinter)
    In der zweiten Zeile steht das Passwort (nichts davon und nichts dahinter)
    Die Werte können aktuell nicht per HTTP Befehl geändert werden.
  • cl_name.txt
    Hier steht NUR der Name drin unter dem der H801 im Netzwerk registriert wird.
    Auch in der Arduino IDE wird er unter Port unter diesem Namen geführt.
  • daempfung.txt
    Hier steht der Wert drin, der die Wechselgeschwindigkeit bei Änderung der 5 Kanäle verwendet wird.

 

Wie in der Loxone Software HTTP-Befehle abgesetzt werden beschreibe ich hier nicht. Dazu gibt es bereits genügend Anleitungen.

 

Wer möchte darf hier gerne weiter entwickeln und die neuen Versionen hier ablegen.

Wer möchte darf die Anleitung auch gerne vervollständigen und optimieren.

 

 

H801_Control.zip

 

Update auf Version 1.5

Neue Funktionen:

  • WiFi Manager - nach dem flashen wird ein Accesspoint aufgemacht, der unter 192.168.4..1 erreichbar ist.
  • OTA-Update (Online Update über die Arduino Software).
  • Hilfeseite - Nachdem der H801 im lokalen Netzwerk eingerichtet ist, kann eine Hilfeseite unter der IP-Adresse des Gerätes aufgerufen werden http://[IP-H801] oder http://[IT-H801]/help
  • Am H801 kann ein DHT22 angeschlossen werden. Der DHT wird an den GPIO3 (TX) angeschlossen. Dieser ist direkt über den Header (siehe Bild oben; blau umrandet) zugänglich (3. von unten im Bild). Bei mir funktioniert die Spannungsversorgung über die 3,3V, die ebenfalls am Header erreichbar sind.
    Ich hatte dabei das Problem, das die angeschlossenen LEDs immer kurz geflackert haben, wenn die Temperatur aus dem DHT22 gelesen wurde. Erst nach langem versuchen habe ich hierfür eine einfache Lösung gefunden.
    Damit das Flackern weg geht muss in der DHT Library in der Datei "DHT.cpp" (Version 1.3.1) in der Routine "DHT::read(bool force)" die Zeile 178 "InterruptLock lock;" auskommentiert werden. Die Library findet sich im Regelfall im Verzeichnis "[SKETCHVERZEICHNIS]\libraries\DHT_sensor_library".
  • Der H801 sendet in regelmäßigen Abständen ein "Alive Signal" ich habe die Erfahrung gemacht, dass damit die Reaktionszeit bei Änderungen verbessert wird. Ich selber sende das UDP Paket direkt zum MIniserver. Dort kann ausgewertet werden. ob das Gerät online ist.
  • Weitere Funktionen sind über die Hilfeseite erklärt.

Die in der Version 1 oben beschriebene Config-Datei ist mit dieser Version nicht mehr notwendig.

H801_Control_2.0.zip




Alternativer Code:

Ein "einfacherer" Code findet sich hier [1]:

sourceforge.net H801

Nachteil:

  • nur DHCP
  • WLAN Passwort im Code

Vorteile:

  • 1000Hz PWM Frequenz
  • 5000 Abstufungen (ca. 12bit)
  • UDP Ansteuerung
  • schlanker Code
  • WiFiManager wird verwendet
  • OTA Update ist möglich

Verwandte Artikel

31 Comments

  1. Wenn der H801 bei dir über DHCP keine IP bekommt, du aber auch keine statische vergibst, wie kommst du denn erstmalig drauf nach dem flashen? Bzw. wo bekommt er die IP dann her? 

  2. Gibt es eine Möglichkeit eine Bestimmte Stimmung als startzustand zu erstellen. Zb. Beim einschallten Hell

  3. Hallo,

    Ist es möglich dass nach dem grossen WIFI Update die Automatische Einbindung ins Netzwerk nicht mehr funktioniert? Seit dem Update sperrt mein Netzwerk den "Neu"-Verbindungsaufbau des H801.

    Gruss Heubi

    1. Was genau meinst du mit "nach dem großem WIFI Update"?

      1. Es gab da doch kürzlich das Update: https://www.wi-fi.org/security-update-october-2017

        Ich weiss nicht ob es zusammenhängt aber seit diesem Update auf meiner Unifi Infrastruktur funktioniert die Prozedur der "ERSTEN" Anlernung an das WIFI nicht mehr. Er sperrt mir den H801 als "Intruder AP". 

        Gruss Heubi

  4. Danke für die nette Demo,

    wäre es möglich, etwas zum Aufbau zu sagen bezüglich unerwünschter Funk-Signale ?

    Ansonsten könnte man vielleicht die Architektur dahingehend ändern.

    Zweiter Punkt wäre eine Bluetooth-Ansteuerung....oder wenn man es mit einer einfachen IR-Hand-Fernbedienung kombinieren könnte.

    Als Drittes ist die saubere separate Color-Rod-Funktion hervorzuheben, die andere einfache LED-Controller so nicht haben...jedenfalls kenne ich keine. Die Apps dieser anderen haben diese einfache Schieber-Funktion für jeden Kanal nicht.

    Soweit sind das meine Fragen/ Ideen die ich beisteuern kann.

    Danke und Gruss,

    Jörg

     

     

  5. Ich habe mir das jetzt auch mal so weit installiert. Funktioniert auch recht gut.

    Das einzige was bei mir ein wenig probleme macht ist wenn ich per Taste Hoch oder Runter Dimme.

    Dann ist es alles irgendwie verzögert. Dimme ich hoch klappt das, will ich dann danach runter dimmen geht das erst mit ner Verzögerung von ca. 2 - 3 Sekunden. Will ich dann direkt aus schalten  geht das auch nur mit Verzögerung.

    Ich vermute mal dass das Problem darin besteht dass der Wert von der Loxone zu oft per Http Befehl geändert wird.

    Hat noch wer das Problem ? Und was kann man dagegen machen ?`Im Grunde hätte ich in der Loxone gerne Programmiert dass der Http Befehl nur alle 0,1 oder 0,2 Sekunden raus geht, finde da aber nix zu.

    Gruß

    Iksi

    1. Hat sonst keiner damit Probleme ???

      1. für 0,1 oder 0,2 Sekunden könntest ein "workaround" mit Analogspeichern bauen

        ansonsten den "alternativen Code" verwenden, mit UDP

        1. Da verstehe ich die Ansteuerung gemäß Doku noch nicht so ganz.

          Wie steuere ich denn da W1 und W2 an ???

          1. Als Notlösung könntest du:

            Virtuellen Ausgang anlegen, z.B.: /dev/udp/192.168.1.21/30977

            Virtuellen Ausgangagangsbefehl anlegen mit \xfb\xeb\x00\x00\x00\xf0\x00\x4e\x6d\x23\x00 → für w1

            Virtuellen Ausgangagangsbefehl anlegen mit \xfb\xeb\x00\xff\x6d\x00\x00\x4e\x6d\x23\x00 → für türkis z.B.

            Ansonsten Fragen etc. besser hier im Forum:

            https://www.loxforum.com/forum/german/software-konfiguration-programm-und-visualisierung/70434-wifi-rgbw-integrieren

             

             

             

             

  6. Ich bin ein Anfänger in Loxone Programmierung.
    Ich habe den Dimmer entsprechend den Anweisungen neu programmiert und es funktioniert einwandfrei.
    Könnte jemand mit der korrekten Implementierung des http virtuellen Ausgangs von loxon helfen?

    Grüße

    1. Ich meld mich heute Abend und kann gern bisschen Starthilfe geben ;)

      ---

      Also:

      1. Virtuellen Ausgang anlegen. (z.B. "H801 Aussenbeleuchtung")
        1. Adresse:   http://IP des H801
        2. Verbindung nach Senden schließen anhaken
      2. 2 virtuelle Ausgangsbefehle anlegen
        1. RGB H801 Aussenbeleuchtung
          1. bei Befehl ein: /ledcontrol?rgb=<v>
        2. W H801 Aussenbeleuchtung
          1. bei Befehl ein: /ledcontrol?w1=<v>
      3. Je Ausgangsbefehl Haken entfernen bei "Als Digitalausgang verwenden"!!
      4. Die Ausgänge an den Lichtsteuerungsbaustein ziehen und Szenen / Stimmungen nach Wunsch konfigurieren

      Einfach probieren, bei Konfigurationen dieser Art macht man nichts kaputt (wink)

  7. Ich habe gerade ein Weihnachtsgeschenk bekommen!
    Das Set funktioniert einwandfrei.

    Danke.

  8. Hallo zusammen,


    ich bekomme folgenden Kompilierungsfehler:

    'loadhostname' was not declared in this scope

    Kann mir jemand einen Schubs in die richtige Richtung geben....?


    Grüße, Clubsport

  9. Hallo zusammen,

    ich nutze die sourceforge.net H801 Variante. Soweit läuft es super! Allerdings habe ich ein kleines Problem. Das Netzteil für die Stromversorgung ist über ein Relais angeschlossen. Einfach um den H801 nach bedarf auch einfach mal abschalten zu können. Schalte ich nun den Strom an, fangen die LED Panels an zu blicken. Eine Steuerung ist leider nicht möglich. Erst wenn ich Steuerkanäle (RGBWW) einmal abziehe und dann wieder anstecke funktioniert alles wie es soll. Bis zum nächsten Strom- Aus. Hat jemand das gleiche Problem? Irgend eine Idee?

    Danke euch,

    Volker

    1. Hallo, ich habe auch die sourceforge variante, jedoch scheitere ich bei der ansteuerung per upd, sowohl mit w1,w2 als auch mit rgb. kannst du mir bitte helfen? LG

  10. Sollte jemand interesse haben, ich habe die H801_control so umgebaut das der wifimanager verwendet werden kann, und aber die H801 per Http ansprechbar sind. 

    1. Ich hätte Interesse!

      Kannst du mir die Firmware zukommen lassen oder hier veröffentlichen? Wie läuft dein Ansteuerung, auch so  http://[IP-Adresse]/ledcontrol?rgb=[bbbgggrrr]&w1=[www]&w2=[www]  ?

      Danke!

  11. H801_Control+http_WifiManager.rarHallo, anbei die Firmware, vorgehensweise ist 1:1 wie bei der obigen, jedoch benötigt man die Daten im Ordner Data nicht. Sobald geflashgt wurde erstellt der H801 einen Accesspoint mit dem man sich dann verbinden kann. Anschliessend wird eine Internetseite geöffnet wo man dann sein WLAN Netzwerk verbinden kann

    1. Danke!!

      Ich hab es jetzt an 2 PCs versucht aber ich krieg es einfach nicht hin. Ist zwar off topic aber.. vielleicht weiß einer Rat:

      Beim Kompilieren / Hochladen mit Arduino : Bis hier ist alles ok

      Compiling library "ESP8266mDNS"

      dann kommt 

      Compiling library "WiFiManager"

      und dann der Fehler: 

      C:\Users\Administrator\Documents\Arduino\libraries\WiFiManager\WiFiManager.cpp: In member function 'void WiFiManager::setupConfigPortal()':

      Ich vesuch echt mich mehr in Arduino einzuarbeiten aber irgendwas überseh ich. Bibliotheken und Board sind korrekt, Sketch übertragen funktioniert auch. Arduino 1.6.13 + 1.8.8. Wenns hier zu viel wird gern sonst auch privat oder ins Forum verschieben..

      1. das klingt so als ob der WifiManager fehlt.

        Probier mal https://github.com/tzapu/WiFiManager

        unter dem Punkt QuickStart.

        LG

        1. Ich hab im Arduino Boardverwalter den ESP8266 auf 2.5.0. beta3 hochgezogen, dann ging es. Danke trotzdem (wink) Klappt nun alles wunderbar.


    2. Max

      Hallo,
      ich habe es geflashed bekommen. Allerdings passiert danach gar nichts. Wenn ich die Verbindung trenne und auch den Jumper wieder rausnehme, strom drauf gehe blitzt die Grüne LED kurz auf und die rote leuchtet ganz schwach.
      Wenn ich mich mit Puuty verbinde oder mit dem Seriel Monitor sehe ich aber nur hieroglyphen.
      Ein Wifi finde ich nicht, wenn ich auf meinem Laptop oder iPhone danach suche. Ne Idee??
      Ich mache jetzt schon 5 Abende daran rum (sad)

      1. Welche der hier mittlerweile 3 genannenten Softwaren verwendest du?

  12. Danke für das tolle Projekt, die schöne Beschreibung und die konstant weiterentwickelte Software!

    Hab's gestern ausprobiert - lief sofort (smile)

    Hat schonmal jemand versucht, die 1000Hz-PWM-Frequenz der am Ende erwähnten 'einfacheren' Variante von Sourceforge hier zu integrieren? Bingt das irgendwelche Komplikationen? (auch 12bit-Auflösung wäre eine tolle Erweiterung)

  13. @ Sebastian

    Die letzte Firmware als .rar Datei lässt sich nicht entpacken...

    Grüße, Andreas

    1. Mit 7-zip geht es. (Bei mir ging es damit jedenfalls.)

  14. Jetzt geht's. Hab 7zip neu installiert ...

  15. Ich hab auch einen H801 hier liegen und würde diesen gern flashen.
    Jedoch komm ich mit der Arduino IDE (Version 1.6.6) nicht klar. Wie bekomm ich die ESP8266-Bibliotheken dort hinein?
    Ohne kann ich im Bordverwalter den ESP nicht auswählen.

  16. Hallo zusammen,

    in der Arduino-Welt bin ich noch recht neu, hab aber schon einige Objekte - wenn ausreichend beschrieben - umsetzen können.
    Was ich bei diesem HowTo vermisse, ist eine echte Schritt für Schritt-Anleitung, mit denen auch Anfänger zurecht kommen. 
    Welche Fehlermeldungen alleine bei der Kompilierung des Programms in Arduino-IDE aufgetreten sind, will ich hier gar nicht erst aufzählen, da fängts schon an, dass ich die Bibliothek FS.h nirgends finde. Da hilt es nix, wenn im Sketch steht: "//this needs to be first, or it all crashes and burns... " In Githup gibts zwar das Programm in Textform, aber wohl nicht zum Download. Auch andere Bibliotheken waren nicht ganz einfach zu finden. Schlussendlich hab ich dann die Fehlermeldung erhalten, dass ich von ArduinoJson Version5 auf Version6 upgraden soll. 
    Ganz ehrlich, da bin ich dann ausgestiegen.
    Es wär wirklich ein suuuuper Objekt, einen H801-RGBWW-Dimmer mit Loxone zum Laufen zu bringen, aber für Anfänger ist das leider mit dieser Anleitung nicht zu schaffen. 
    Leider hab ich keine andere annähernd verständliche Anleitung (auf Deutsch) im Netz gefunden. 
    Klar kommen jetzt vermutlich wieder Kommentare wie: Wenn Du die Fehler nicht beschreibst können wir dir nicht helfen, aber darum gehts mir jetzt ehrlich gesagt nicht.
    Ich würde mir nur wünschen, wenn ein Tutorial geschrieben wird, dass man auch auf die Leute Rücksicht nimmt, die mit der Materie erst anfangen. Vielleicht fühlt sich ja noch jemand dazu berufen, obige Anleitung zu überarbeiten, so dass man auch aktuell (siehe Thema ArduinoJson5 oder 6) damit zurecht kommen kann. Und wenn eine Bibliothek bei Github nicht Verfügbar ist, diese ggf. als Download hier zur Verfügung zu stellen.

    Ich würde mich jedenfalls freuen und einige meiner Bekannten auch.

    Nicht böse sein, ich will hier niemandem "auf den Schlipps treten". Ich brauch einfach nur mehr bzw. klareren Input.