[gelöst] Sengled in Wifilight?

Begonnen von scooty, 01 Mai 2015, 11:56:34

Vorheriges Thema - Nächstes Thema

scooty

Hallo zusammen,

motiviert durch den Thread "Sunricher SR 2820 Wifi" habe ich ein wenig Re-Engineering für die Wifi-LED "Boost" von Sengled betrieben.
Hoffe natürlich, dass diese Infos ihren Weg in das WifiLight Modul finden und sich jemand findet, dieses zu bewerkstelligen?
Meine Kenntnisse reichen dazu leider nicht aus, stehe jedoch gerne für jegliche Testaktivitäten (könnte auch für die Integrationsarbeiten eine "Sengled Boost" leihweise gerne zur Verfügung stellen) zur Verfügung.

Zunächst wäre es (zumindest für mich) interessant, die LED über FHEM mit den Grundfunktionen steuern zu können (on, off, dim); werden alle weiteren Funktionen (auch der anderen Modelle) überhaupt in FHEM benötigt (stelle die Frage einfach 'mal in den Raum)?

LED-Infos:
Hersteller: Sengled
Modell: Boost, Dimmbare E27 Weiß-LED mit Wifi-Repeater, irgendwelche Farb- oder Weißton-Anpassungen sind über die App nicht vorgesehen
App-Infos: "Boost" im PlayStore

Allgemeine Infos:
Bin wie im Sunricher-Thread vorgegangen, habe ein wenig bei Benutzung der Smartphone-App in meinem Netzwerk gesnifft (Android / Paket Capture)und versucht aus den Daten sinnvolles herauszuziehen, über die "TCP UDP Terminal"-App konnte ich mit selbst erstellten Steurungsfolgen erfolgreich Kommandos an die Boost senden. Ob auch eine Rückmeldung von der Boost kommt kann ich leider nicht so genau erkennen.

Eigene IP-Adressse: 192.168.0.136
Sengled Boost IP-Adresse/Port: 192.168.0.116 / Port 9060 UDP

Sniff-Resultate:
On
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 64

Off
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 00

SetDim 52 (ausgehend von Switch On [=Dim 100?])
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 34

SetDim auf 0 (ausgehend von Dim 52)
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 00

SetDim auf 52 (ausgehend von Dim 0)
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 34

DimUp auf 99 (ausgehend von Dim 52)
0d 00 02 00 01 c0 a8 00 88 c0 a8 00 74 c0 a8 00 88 c0 a8 00 74 01 00 01 00 00 00 64 63


Sieht ja schon 'mal ziemlich regelmäßig aus, also weitere Analyse:
On
Hex
0d 00 02 00 01 c0 a8 00 88  c0 a8 00 74  c0 a8 00 88  c0 a8 00 74  01 00 01 00 00 00 64 64
Dec
13 0 2 0 1 192 168 0 136 192 168 0 116 192 168 0 136 192 168 0 116 1 0 1 0 0 0 100 100


Damit ergibt sich für mich folgende Systematik für ein Steuerungskommando (nennt man das Doppelbyte?):

0d 00 02 00 01 = <5 Doppelbyte: Initialisierung, immer gleich>
c0 a8 00 88 = <4 Doppelbyte: IP-Adresse Sender>
c0 a8 00 74 = <4 Doppelbyte: IP-Adresse Sengled>
c0 a8 00 88 = <4 Doppelbyte: IP-Adresse Sender>
c0 a8 00 74 = <4 Doppelbyte: IP-Adresse Sengled>
01 00 01 00 00 00 = <6 Doppelbyte: Kommando-Init, immer gleich>
64 = <1 Doppelbyte: Kommando SetDimLevel, immer gleich (nur für diese Modell?)>
64 = <1 Doppelbyte: DimLevel> (in diesem Fall=100%)

Ich hoffe, dies macht alles so Sinn.

Für FHEM-Kommandos müssten die Steurungskommandos für die Boost-LED also wie folgt aussehen
(mit der "TCP UDP Terminal"-App erfolgreich getestet) :
set SENGLED on
0d 00 02 00 01 <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> 01 00 01 00 00 00 64 64

set SENGLED off
0d 00 02 00 01 <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> 01 00 01 00 00 00 64 00

set SENGLED dim <DimLevel>
0d 00 02 00 01 <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> 01 00 01 00 00 00 64 <DimLevel in Hex>

set SENGLED dimup
0d 00 02 00 01 <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> 01 00 01 00 00 00 64 <Reading DimLevel plus A(hex)>

set SENGLED dimdown
0d 00 02 00 01 <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> <4 Doppelbyte: IP-Adresse Sender> <4 Doppelbyte: IP-Adresse Sengled> 01 00 01 00 00 00 64 <Reading DimLevel minus A(hex)>


Wie gesagt, würde mich freuen, wenn diese Erkenntnisse in das WifiLight-Modul einfließen könnten.
Falls noch etwas an Infos fehlt, meldet euch gerne.

Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Hallo Andreas,

ZitatIch hoffe, dies macht alles so Sinn.
macht es ;) Das Protokoll sieht sehr geradlinig aus. Gute Vorarbeit !

ZitatZunächst wäre es (zumindest für mich) interessant, die LED über FHEM mit den Grundfunktionen steuern zu können (on, off, dim); werden alle weiteren Funktionen (auch der anderen Modelle) überhaupt in FHEM benötigt (stelle die Frage einfach 'mal in den Raum)?
mMn nein, das wär dann auch kein Wifilight Thema mehr. Wifilight bildet genau das ab was Du schreibst. Auf dieser Basis werden dann weitere Funktionen wie langsames dimmen (ramp) oder blinken (queue) in software abgebildet.

Magst Du noch mal testen ob die "Absender adresse" überhaupt von der bulb geprüft wird ? Also: was passiert wenn Du da testweise mal 0 0 0 0 reinschreibst ?

"on" und "off" wird in Deinen Beispielen ja konsequent über dim 0 und dim 100 abgebildet. Um sicher zu gehen: die app hat keinen weiteren button dafür ? (Einige Lampen haben da noch einmal eine eigene Seuquenz, dann würde app aus - fhem ein nicht funktionieren)

Kannst Du was zum timing sehen ? (Einige Lampen brauchen mindesten xx ms zwischen zwei Seuquenzen ... )

vg
Jörg



scooty

#2
Hallo Jörg,

vielen Dank, dass Du Dich der Sache annimmst!
Zitat von: herrmannj am 01 Mai 2015, 12:52:27
Magst Du noch mal testen ob die "Absender adresse" überhaupt von der bulb geprüft wird ? Also: was passiert wenn Du da testweise mal 0 0 0 0 reinschreibst ?
Klar mag ich testen.
Resultat: es ist egal, ober die IP-Adresse des Senders im Steuerungskommando drin ist,
<4 Doppelbyte: IP-Adresse Sender>
kann also immer
00 00 00 00
sein.

Zitat von: herrmannj am 01 Mai 2015, 12:52:27
"on" und "off" wird in Deinen Beispielen ja konsequent über dim 0 und dim 100 abgebildet. Um sicher zu gehen: die app hat keinen weiteren button dafür ? (Einige Lampen haben da noch einmal eine eigene Seuquenz, dann würde app aus - fhem ein nicht funktionieren)
Doch, die App hat eine On/Off Button, aber eine Betätigung zeigt die gleichen Steuerungskommandos wie dim 0 oder dim 100.

Ein Ergänzung zu meinen Schlussfolgerungen in obigem Beitrag gibt es doch noch.
Und zwar in der Verwendung der letzten beiden Doppelbytes:
- Sobald eines der letzen beiden Doppelbytes 00 ist, wird die Lampe ausgeschaltet (egal, was im anderen Doppelbyte steht)
- Sobald in beiden Doppelbyte Werte größer 00 drin sind, wird der kleinere Wert zum Setzen der Dimstufe benutzt
- Dimstufe 100% wird somit NUR durch setzen der beiden Doppelbyte auf 64 64 erreicht
Beispiele:
00 00 LED aus
32 64 setzt 50% Dimlevel
64 32 setzt auch 50% Dimlevel
64 64 setzt 100% Dimlevel


Der Einfachheit halber würde ich erst einmal in der Umsetzung das erste Doppelbyte immer mit 64 setzen und nur das letzte Doppelbyte verändern, also:
64 00 LED aus
64 xx setze DimLevel auf xx %
64 00 LED an


Zitat von: herrmannj am 01 Mai 2015, 12:52:27
Kannst Du was zum timing sehen ? (Einige Lampen brauchen mindesten xx ms zwischen zwei Seuquenzen ... )
Leider nein, ein Bewegen des Sliders in der App zum herunter(oder war es rauf?)-dimmen brachte nur die Ergebnisse im angehängten Screenshot. Für mich ist daraus leider nicht ersichtlich welche Art von Verzögerung erforderlich sein könnte.

Sehe gerade im Screenshot, dass das vorletzte Doppelbyte doch mit anderen Werten größer als 64 belegt werden kann, aber ich glaube, dass die o.a Steuerkommandos wohl ausreichen, oder?

Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Hi,

passt, ich setz mich später mal ran.

In Deinem screenshot sscheint es als ob das letzte byte immer 0x64 ist und das vorletzte der level. Ich setze das so ein, fängt vielleicht unterschiedliche fw der segled auf. (Größer 0x64 konnte ich im screenshot nicht sehen)

Darfst Dir schon mal einen Namen ausdenken :)

vg
jörg



scooty

Zitat von: herrmannj am 01 Mai 2015, 15:44:20
passt, ich setz mich später mal ran.
Freut mich. Nur kein Stress wegen Umsetzung...
Zitat von: herrmannj am 01 Mai 2015, 15:44:20
In Deinem screenshot sscheint es als ob das letzte byte immer 0x64 ist und das vorletzte der level. Ich setze das so ein, fängt vielleicht unterschiedliche fw der segled auf. (Größer 0x64 konnte ich im screenshot nicht sehen)
Alles klar, hast da sicherlich mehr Erfahrung als ich bei sowas.
Zitat von: herrmannj am 01 Mai 2015, 15:44:20
Darfst Dir schon mal einen Namen ausdenken :)
wird ja immer besser hier, man darf man sich sogar 'was wünschen.  ;)
Wie wär's einfach mit "SENG"?

Vielen Dank schonmal,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

#5
Hi,

update
update force https://raw.githubusercontent.com/herrmannj/wifilight/master/controls_wifilight.txt

signatur
define name WifiLight White SENGLED:192.168.0.116

habe leicht abgewandelt SENGLED genommen.
Ich hab einen mode gesetzt bei dem einige Befehle (on, off) 3x wiederholt werden. Timing sind 50ms.

Wenn es funktionert dann schau mal bitte ob der Helligkeitsanstieg bei set name on 20 liniear aussieht.

vg
joerg




scooty

Hallo Jörg,

absolut top, vielen Dank!
Funktioniert alles ohne Probleme.

Helligkeitsanstieg bei "on 20" sieht nach meinem (zugegebenmaßen vielleicht laienhaften) Empfinden linear aus.

Echt Wahnsinn, wie schnell Du das alles umgesetzt hast, meinen Respekt und herzlichen Dank dafür,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Hi,

na denn. Danke fürs sniffen. Richtig cool wäre noch wenn Du die SENGLED im wiki ergänzen könntest :-D.

Btw, gerade für die SENGLED BOOST, speziell wegen dem repeater, macht eine fhem Anbindung ja echt auch viel Sinn. Sonst müsste man die ja generell über die app schalten. GöGa's Lieblingslösung wäre das nicht.

Ich habe gelesen das die relativ kaltes Licht macht. Wie ist da Dein empfinden ? Rein rechnerisch finde ich die LED sonst eine sehr gute Lösung wenn man das WLAN soweiso verlängern möchte. Funktioniert das "mackenfrei" ?

vg
jörg

scooty

Hallo Jörg,

Benutzerkonto für das Wiki habe ich gerade beantragt und werde den Artikel ergänzen.

Das Licht finde ich ganz ok, aber so etwas ist ja immer ein ziemlich subjektives Empfinden.

Mit der Repeater Funktion bin ich soweit (habe die Sengled ja noch nicht lange) zufrieden, bisher keine Stablitätsprobleme.

Danke nochmal und viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

Hi Andreas,

vielen Dank und viele Grüße
Jörg