Was ist die einfachste art und weise aus einem Neubau einen Altbau zu machen? Richtig, Smart Home Geräte kaufen.
Man kauft ein Gerät, mit App und allem schnick und schnack, baut es ein und ist glücklich. 

Aus welchen gründen auch immer beschließt der Hersteller nun den Server für die App nichtmehr bereit zu stellen. 
Alles gut, man hat ja beim Kauf drauf geachtet dass die App keinen Server braucht um mit dem intelligenten Leuchtobst zu kommunizieren. 
So vergehen dann einige mal "Hell, Dunkel, Hell, Dunkel, Hell, Dunkel, ..." und auf einmal hat man den Salat:

MIST! Un nu? 

In diesem fall hat der Hersteller nicht beschlossen den Server abzuschalten, sondern sich gleich Insolvent zu melden. 
Noch schlechter...

Also ist auch kein rankommen an Anleitungen, Beschreibungen, Service, usw. 
Noch viel schlechter... 

Eine Möglichkeit wäre ein altes Smartphone mit selbiger app auszustatten, niemals ein update zu machen und selbiges dann immer mit durch die Gegend zu schleppen. Auch blöd.

Also entstand die Idee der Lampe mal auf die Frequenzen zu schauen und zu gucken ob sich da nicht was bekanntes wiederfindet. 

Eine Runde Wireshark zum mitnehmen bitte!

Nach viel hin und her und gegucke, nichts zu sehen. Hä? 
Zwischen Lampe und Smartphone, kein einziges Paket. Das Licht ging jedoch fröhlich An und Aus. 
So langsam glaube ich an "digitalen Autismus" Smartphone und Lampe scheinen einfach nicht mit mir kommunizieren zu wollen. 

Nun ja, erstmal 2m machen und dann nochmal mit frischem Gehirn auf das ganze gucken. 

Nach ein paar Tagen fiel mir dann auf wie dämlich ich denn war. 

Mein WiFi hat ein 2,4GHz und ein 5GHz Netz. Mit der gleichen SSID. Die Lampe spricht nur mit dem 2,4GHz Netz. Und wo hab' ich Dussel geguckt? Na sicher, auf 5GHz. 
Also nochmal von vorne, und siehe da, Smartphone und Lampe reden tatsächlich miteinander. 

Die beiden unterhalten sich über eine TCP Verbindung auf Port 8899.

Vom Hersteller "Lead Energy" gibt es mehrere verschieden Steuergeräte für verschiedene Lampen, Panels, Stripes, ...

Da ich bei mir ausschließlich Panels in Weiß bzw. Warmweiß verbaut habe, habe ich auch nur PDW Steuergeräte. 
Mit diesen konnte ich da also alles testen. 
Andere Steuergeräte wie PDC und die für einfarbige Lampen, habe ich nicht, und konnte ich somit auch nicht testen.
Aber hier nochmal die verschiedenen Typen:

- Dynamic White ("PDW"): Weiße LEDs mit einstellbarer Farbtemperatur (warmweiß ... kaltweiß), getestet mit PDW62
- Dynamic Color ("PDC"): RGBW-LEDs, z.B. PDC30
- Static White ("SW"): Monochrom weiße LEDs, vermutlich z.B. LED Strip Set SSW68 Wifi

Nun folgte ziemlich viel ziemlich langweiliges Reverse Engineering das mich bestimmt die ein oder anderen Haare gekostet hat. 
Alle Informationen stecken in einem TCP Pakte von 12 Byte länge. 

Auseinandergebaut sieht das etwa so aus:

0x559980a4WWwwXXxxYYZZaaaa

WWww = bei mir bisher immer: 0x0200 (PDW Steuergeräten)
XXxx = Befehl
YY = Wert
ZZ = Checksumme = (WW + ww + XX + xx + YY) & 0xff

 

Nun zu den Einzelnen Befehlen:

An / Aus (PDW-, PDC- und SW-Trafos, also alle):
XXxx = 0x0212
YY = An: 0xab Aus: 0xa9
Lässt sich nicht durch Dimmen einschalten, wenn mit diesem Befehl ausgeschaltet.

 

Dimmen (Nur PDW-Trafos):
XXxx = 0x0833
YY = Dimmwert in 64 Stufen (0x00..0x40)
Anmerkung: 0x00 ist aus und lässt sich durch Dimmen wieder einschalten.

 

Farbtemperatur (Nur PDW-Trafos):
XXxx = 0x0836
YY = Temperatur von kalt zu warm in 32 Stufen (0x00..0x20)

 

Lange Googelei  brachte noch weitere infos zum Vorschein, die aber ungetestet sind. 

Dimmen (Nur PDC-Trafos):
XXxx = 0x084c
YY = Dimmwert in 63 Stufen (0x01..0x40)
Anmerkung: 0x00 ist vermutlich wie bei den PDW-Trafos "aus" und lässt sich durch Dimmen wieder einschalten; konnte aber ohne Lampe nicht getestet werden.

Dimmen (Nur SW-Trafos):
XXxx = 0x0838
YY = Dimmwert in 255 Stufen (0x01..0xff)
Anmerkung: 0x00 ist vermutlich wie bei den PDW-Trafos "aus" und lässt sich durch Dimmen wieder einschalten; konnte aber ohne Lampe nicht getestet werden.

HSV-Rad (Nur PDC-Trafos):
XXxx = 0x0101
YY = HSV-Wert in 95 Stufen (0x01..0x60)
Anmerkung: Mangels Lampe schwer zu sagen wo 0 Grad sind - müsste geprüft werden!

W-Taste (Nur PDC-Trafos):
XXxx = 0x0205
Wert = 0x8a oder 0x8b
Anmerkung: Funktion unbekannt - vermutlich weiße LEDs an/aus

Damit lässt sich arbeiten!
Also ran an den Speck.

Da ich ein Apfeltelefon habe, muss natürlich etwas her was auch auf dem Apfelgerät läuft.
Somit entstand die erste Version der "Lead-Energy Control App". 

Die Ansteuerung und die eigentliche App sind auf GitHub zu finden:
Ansteuerung
iOS-App

Zwischenzeitlich ist auch noch eine Version für einen ESP32 entstanden. Damit kann man zum Beispiel einen Akkubetriebenen Lichtschalter bauen. 
Auch das ist auf GitHub zu finden.

Lead-Energy Arduino Library

So ist der Aktuelle stand. 

Die App ist im Moment noch etwa unpraktisch. Man muss die IP der Lampe kennen um sie zu steuern. Aber hey, man kann sie steuern!

Da ich auch nicht unendlich zeit habe, wird es wohl in näherer Zukunft keine Komfortable App geben, aber wer sich beteiligen möchte, immer gerne doch. 
Am besten über GitHub.