Anleitung: Nativer HomeKit LED-Strip mit MagicHome Controller

  • Ich habe, wie die Meisten hier im Forum, so einige Geräte über eine Homebridge in HomeKit gebracht und bin mit der Funktion im Allgemeinen sehr zufrieden.


    Jedoch brauche ich an dieser Stelle wohl nicht die Vorteile eines nativen HomeKit Devices aufzählen. Kürzere Aktualisierung- und Reaktionszeiten sowie Unabhängigkeit von einer Bridge und einem Raspberry sind zumindest zwei davon.


    Daher habe ich mich in den letzten Tagen damit auseinander gesetzt, das ein oder andere Gerät meiner "Sammlung" auf anderen Wegen in HomeKit zu bringen.


    Wie in meiner zuletzt hochgeladenen Anleitung: Nativer HomeKit Zwischenstecker mit Sonoff Basic bereits beschrieben, bin ich hier auf RavenSystem gestoßen. Eine alternative Firmware für Geräte, die auf dem ESP8266 basieren, um diesen eine direkte Einbindung in HomeKit zu ermöglichen.


    Nachdem ich in der vorangegangenen Anleitung erfolgreich einen nativen HomeKit Zwischenstecker zum Laufen brachte, war mein nächstes Ziel nun, meine LED-Strips, die beispielsweise eine Hintergrundbeleuchtung für meinen Fernseher bilden, ohne eine Homebridge in HomeKit zu integrieren.


    Bisher habe ich für LED-Strips die MagicHome Controller verwendet und diese über das homebridge-magichome Plugin in HomeKit gebracht.


    Im Folgenden zeige ich die benötigen Schritte, um einen MagicHome RGBW Controller nativ HomeKit fähig zu machen.



    Genutzte Hardware:


    Raspberry 3B+ mit Raspbian Buster

    MagicHome RGBW Controller

    FT232RL FTDI TTL zu USB Adapter

    Mini USB Kabel

    3x Jumper Kabel male<->female

    4x Jumper Kabel male<->male

    Breadboard

    Lötkolben

    Beliebige RGBW LED Kette


    Wichtig: Vor Punkt 4 wird das Netzteil des Controllers nicht angeschlossen. Wir arbeiten hier mit 12V, gefährden mit zwei linken Händen also anders als bei der vorherigen Anleitung nicht unser Leben. Bei falscher Reihenfolge oder Nichtbeachtung von Schritten gefährden wir jedoch das Leben des Controllers sowie unseres Adapters!


    Wir gehen in der Anleitung davon aus, dass der genutzte Adapter bei Anschluss an den Raspberry die Bezeichnung ttyUSB0 hat. Mit dem Befehl

    Code
    cd /dev && ls

    schaut ihr nach, ob dies bei euch ebenfalls so ist.



    Vorbereitungen:


    Zuerst laden wir aus dem Wiki die Datei fullhaaboot.bin herunter und legen sie auf unserem Raspberry im Standard-Nutzer Verzeichnis /home/pi ab.


    Außerdem benötigen wir noch das esptool auf unserem Raspberry und installieren dieses über:

    Code
    sudo pip install esptool


    Als Nächstes müssen wir unseren MagicHome Controller mit dem FTDI Adapter verbinden. Dazu löten wir uns einfach vier Jumper Kabel an die folgenden Punkte:

    Zur Übersicht nutze ich hier farbige Kabel.

    Nach Schritt 11 können die Jumper Kabel jederzeit wieder vom Controller entfernt werden.


    Als Nächstes leiten wir GND, RX & TX unseres FTDI Adapters mit weiteren Jumper Kabeln auf ein Breadboard (Man könnte theoretisch auch ohne Breadboard arbeiten und den Controller direkt mit dem Adapter verbinden, so ist es aber deutlich einfacher, wie man gleich sehen wird)


    und verbinden den Adapter über das Mini USB Kabel mit dem Raspberry (die LED des Adapters leuchtet nun).



    Los gehts:


    Es ist nun ganz wichtig, die folgenden Schritte nacheinander und exakt in dieser Reihenfolge zu machen!


    1. GND von Controller an GND von FTDI Adapter

    2. RX von Controller an TX von FTDI Adapter und TX von Controller an RX von FTDI Adapter

    3. GPIO00 von Controller an GND von FTDI Adapter

    4. Das 12V Netzteil des Controllers anschließen


    5. Nach 2-3 Sekunden GPIO00 wieder von FTDI Adapter trennen


    Der Controller befindet sich nun im "Flash-Mode" und kann von uns angesprochen werden.


    6. Löschen des Flash Speichers

    Code
    esptool.py -p /dev/ttyUSB0 erase_flash


    7. Das 12V Netzteil trennen und den Controller erneut in den "Flash-Mode" bringen, dazu einfach wieder bei Punkt 3 starten


    8. Nun die neue Firmware auf den Controller flashen

    Code
    esptool.py -p /dev/ttyUSB0 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin


    9. 12V Netzteil trennen


    10. RX & TX von Controller vom FTDI Adapter trennen


    11. GND von Controller vom FTDI Adapter trennen (GND wird zuletzt getrennt)


    12. Nun können wir den Adapter bei Seite legen, er wird nicht mehr benötigt. Den Controller verbinden wir erneut mit dem 12V Netzteil. Er baut nun einen Hotspot "HAA-..." auf, mit dem wir uns von unserem iPhone aus verbinden.


    13. In der, sich öffnenden Weboberfläche tragen wir in das Feld "JSON Config" folgenden String ein:

    Code
    {"c":{"b":[{"g":0,"t":5}]},"a":[{"t":30,"r":14,"g":05,"v":12,"w":13,"b":[{"g":0}]}]}

    Der Haken bei „Auto OTA Updates“ ist optional und ermöglicht dem Controller, Updates von den Github Servern zu laden.


    14. Haben wir alle Eingaben gemacht, können wir danach unser WLAN auswählen und den Vorgang durch Eingabe des Kennwortes und anschließende Auswahl der „Save“ Schaltfläche abschließen.


    15. Der MagicHome RGBW Controller ist nun nativ HomeKit-fähig und kann über den Code 021-82-017 in HomeKit hinzugefügt werden. ;):thumbup:


    7 Mal editiert, zuletzt von Sebbo187 () aus folgendem Grund: Anleitung dem Update des Entwicklers entsprechend angepasst

  • Justman "g":05 ist hier das Selbe wie "g":5, hier wird der Anschluss für "G“ (RGBW) definiert, der standardmäßig auf dem GPIO05 liegt. Die Config ist also einwandfrei, auch wenn ein möglicher Editor (ungetestet) anderes sagt..😉👍


    Edit: Ich habe mir den (untersten) Editor nun einmal angeschaut. An sich eine coole Sache, jedoch geht dieser laut Beschreibung unter dem Auswahlfeld bei den MagicHome Controllern von der falschen Belegung aus (R:15, G:13, B:12, W:14). Diese Belegung habe ich ursprünglich auch an anderen Stellen gefunden und zuerst getestet. Der Controller leuchtet hier aber höchstens diffus und schonmal gar nicht in den Farben, die man in Home wählt.

    Die korrekte Belegung lautet „R:14, G:05, B:12, W:13“, nur so leuchtet der Light Strip auch in den korrekten Farben. Zum Test einmal rot, grün, blau und weiß nacheinander schalten und begeistert sein.😉

    Daher entspricht meine Config keinem (veralteten?) Template, sondern der tatsächlichen Belegung der Controller (mit mehreren Controllern getestet und anhand der Bezeichnung eines Schaltbildes bestätigt).😃

    2 Mal editiert, zuletzt von Sebbo187 ()

  • Hallo, ich bin schon lange auf der Suche nach einem Homekit rgb Controller und habe mich nun extra hier angemeldet. Besteht denn eventuell die Möglichkeit, dass mir freundlicherweise jemand einen Controller programmieren und anschließend verkaufen kann? 🙈 ich besitze leider nicht so ein rapsberry und erst recht nicht die nötigen Kenntnisse das um zu setzen 😅


    ich habe halt schon knapp 10m led Strip angebracht und würde jetzt ungern das alles neu machen nur um es HomeKit fähig zu machen 🙈


    Mfg Patrick.

  • Hallo alle zusammen,


    da mich das Thema auch interessiert hat, hab ich nach der fantastischen Anleitung auch meinen Magic Home Adapter mit einer neuen Software beglückt. Hat auch soweit alles super geklappt. Das einzige, meine Farben stimmen nicht. Ich habe leider nur den RGB Controller. Kann mir jemand sagen, wie dann der json Code lauten muss? Und wie kann ich diesen jetzt nochmal ändern? Software noch einmal neu installieren?


    Schöne Grüße

  • Hallo Tottihomekit,


    Die Konfiguration für den RGB Controller lautet

    Code
    {"c":{"b":[{"g":0,"t":5}]},"a":[{"t":30,"r":14,"g":05,"v":12,"b":[{"g":0}]}]}


    PS: Hat man einen RGBW Controller und möchte damit einen RGB Strip steuern kann man den fünften Pin frei lassen und den Controller mit dieser Config ebenfalls von einem RGBW zu einem RGB machen (falls mal nötig, nur als Info am Rande😉).


    Viele Grüße

  • Hallo Sebbo187,


    vielen Dank für die schnelle Antwort, werde ich heut Abend gleich mal ändern. Gibt es die Möglichkeit, die Config zu ändern? Oder muss zwingend der Controller neu programmiert werden?


    Schöne Grüße

  • Man muss den Controller nicht neu programmieren, es gibt verschiedene Wege in den sogenannten Setup Mode zu kommen.

    1. den led streifen in der HomeApp 10x an und aus machen, wenn er dann nicht mehr erreichbar ist in der App weißt du das es erfolgreich war. Dann einfach die IP Adresse in einen Browser deiner Wahl eingeben Und du kannst alle Einstellungen ändern.

    2. den Controller vom Strom trennen, wieder anschalten und binnen 3 Sekunden wieder vom Strom trennen. Beim Nächsten starten ist der Controller auch im Set up mode


    Hoffe das hilft :)

  • ja die Antwort hilft mir sehr. Habe jetzt die Configuration geändert aber ich habe immer noch das Problem, dass die Farben nicht richtig übergeben werden. Wenn ich in Home App die Farbe grün eingebe, bekomme ich rot angezeigt. Bei Blau bekomme ich Grün, und jetzt das komische, bei rot bekomme ich auch Grün. :/


    Noch eine Anmerkung: wenn ich Siri bitte, die Farbe auf Rot zu stellen, ist der Streifen aus.

  • Tottihomekit

    Du hast in diesem Fall vermutlich gar nichts falsch gemacht, sondern der Hersteller selbst.. Kann es sein, dass der Controller vor dem Flash Vorgang in der offiziellen App ebenfalls falsche Farben zeigte?😉

    Du könntest nun testweise 05 in der Config gegen12 tauschen.


    Teste mal:

    Code
    {"c":{"b":[{"g":0,"t":5}]},"a":[{"t":30,"r":14,"g":12,"v":05,"b":[{"g":0}]}]}

    🤔

  • Das heißt aber ja schonmal dass der angegebene Pin für Grün passt 👍🏼
    Bei der config muss dann beim Rotwert: 12 (falls das der pin ist, der grade bei blau ist) stehen.

    Dann sollten die beiden Farben gehen.

    Welche config hast du gerade bei dir ?


    EDIT: wenn du die letzte Config von Sebbo hast, dann müsste dein blau wert: 13 sein.

    Also

    Grün: 12

    Blau: 13

    Rot: 05

    Einmal editiert, zuletzt von PhilippCF ()

  • Code
    {"c":{"b":[{"g":0,"t":5}]},"a":[{"t":30,"r":05,"g":12,"v":13,"b":[{"g":0}]}]}


    Damit sollten grün und rot schonmal korrekt reagieren, bei blau bin ich mir noch nicht sicher..😄


    Wir kommen schon noch zum Ziel...😉

  • Moin Moin,


    ich hätte mal noch eine weiterführende Frage. Vielleicht kann. mir die ja jemand adhoc beantworten. Gibt es die Möglichkeit, den Controller (oder auch ein Switch mit RavenSystem) in ioBroker einzubinden? Oder würde das wieder nur mit z.B. Tasmota und MQTT funktionieren?


    Schöne Grüße

  • Tottihomekit Ohne Erfahrung mit ioBroker zu haben, denke ich, dass native HomeKit Geräte dort nicht eingebunden werden können.

    Die genutzte Firmware baut auf den „Apple HomeKit accessory server“ und ist daher wohl als solches zu sehen. Die Nutzung in ioBroker wird also voraussichtlich nicht möglich sein..🤔