Osram Lightify

Begonnen von Laffer72, 27 Oktober 2014, 12:53:12

Vorheriges Thema - Nächstes Thema

justme1968

noch ein kleines update:

- aus der getDevices antwort werden einige der parameter in das format der devices konvertiert und im device gesetzt
- nach dem on oder off kommando wird der status abgefragt

damit sollten jetzt z.b. die farbigen lampen icons funktionieren und die ersten device readings passen.

das subType attribut ist noch von hand passend zu setzen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Laffer72

Hallo andre,

danke für Deine Umsetzung.
Habe jetzt meine Lightify Bridge wieder reaktiviert und meine LEDS neu darauf angelernt. Mit der App (Android) funtioniert die Erkennung, Kopplung und das Schalten wunderbar.
Dein Modul erkennt auch scheinbar die meinen Bridge, aber beim Senden erkenne ich keine Antwort.
Ein
set Lightify raw 07 00 00 13 00 00 00 00 01
liefert mir leider kein Ergebnis, weder im Event-Monitor ist etwas zusehen, noch im Logfile.

Mein Device:
define Ligthify LIGHTIFY 192.168.178.45

Logfile:
2015.01.30 15:45:09 3: Lightify: connected to 192.168.178.45
2015.01.30 15:45:09 3: Lightify: sending:07 00 00 13 00 00 00 00 01


Vielleicht mache ich auch etwas falsch.
Komme grad nicht weiter.

Viele Grüße

Reinhard
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

justme1968

ich kann leider nichts dazu sagen. ich habe kein lightify gateway. nur meine hue bridge. vielleicht kann markus355 dir weiter helfen.

unabhängig davon ist das modul noch lange nicht so weit das man es produktiv nutzen könnte. es geht wirklich nur on und off in moment.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

LordVoodoo

#48
Hallo zusammen,

ich habe ein kleines Problem bei der Einbindung von Osram-Lightify-Glühbirnen. Sie werden partout nicht von der Philips Hue Bridge erkannt:

Es geht um zwei Lightify CLA 60 RGBW (EAN 4052899926097) und zwei CLA 60 Tunable White (EAN 4052899926165).

Was habe ich schon probiert:
- Reset der Hue Bridge
- Reset der Lightify-Lampen
- Distanz zwischen Birne und Bridge stark verringert (unter 30cm)
- Desktop-Anwendung Hue Light Finder für Windows ausprobiert
- Birnen einschalten während des Suchvorgangs als auch Suchvorgang gestartet bei eingeschalteten Birnen

Habe ich irgendetwas nicht berücksichtigt? Die Bridge hat die neueste Firmware drauf, die Lampen sind Neuware.
Die drei Philips-RGB-Lampen verrichten ihren Dienst tadellos.

Danke für eure Hilfe.

sw

@LordVoodoo

Ich verwende den Lampstealer http://www.everyhue.com/?page_id=167 oder (einfacher):
per telnet Port 30000 mit der Bridge verbinden. Dort dann
[Link,Touchlink]
eintippen. Die zu koppelnde Lampe (immer eine zur Zeit) muss sich unmittelbar neben der Bridge befinden.
Danach in der HUE App nach neuen Lichtern suchen -> sollten jetzt gefunden werden.

Ab da geht weiter in fhem  :D

So habe ich Lightify RGBW Bulbs und ein Stripe erfolgreich mit der HUE Bridge gekoppelt.

tomas123

#50
ich habe mir auch mal das Protokoll zwischen den Lampen und dem Gateway Port 4000 angesehen

seltsamerweise schließt mein Gateway regelmäßig den Port 4000 und reagiert dann auch nicht mehr auf Pings
die Lightify App kann dann das Gateway aber immer noch über das Internet steuern (d.h. es erscheint kein Stromstecker in der Wolke des Verbindungslogos)

Ich habe bisher nicht herausbekommen nach welcher Logik der Port 4000 open/closed ist

das sieht dann so aus
$ ping 192.168.1.46
PING 192.168.1.46 (192.168.1.46): 56 data bytes
ping: sendto: Host is down
Request timeout for icmp_seq 369
ping: sendto: Host is down
Request timeout for icmp_seq 370
ping: sendto: Host is down
Request timeout for icmp_seq 371
ping: sendto: Host is down
Request timeout for icmp_seq 372
ping: sendto: Host is down
Request timeout for icmp_seq 373
Request timeout for icmp_seq 374
64 bytes from 192.168.1.46: icmp_seq=375 ttl=255 time=43.218 ms
64 bytes from 192.168.1.46: icmp_seq=376 ttl=255 time=2.668 ms
64 bytes from 192.168.1.46: icmp_seq=377 ttl=255 time=2.588 ms
64 bytes from 192.168.1.46: icmp_seq=378 ttl=255 time=3.156 ms
64 bytes from 192.168.1.46: icmp_seq=379 ttl=255 time=2.732 ms
64 bytes from 192.168.1.46: icmp_seq=380 ttl=255 time=2.631 ms
64 bytes from 192.168.1.46: icmp_seq=381 ttl=255 time=3.395 ms
64 bytes from 192.168.1.46: icmp_seq=382 ttl=255 time=2.658 ms


als schneller Test zum Testen der Verbindung aus der Bash (hier OSX) hat sich netcat bewährt:
$ echo '14 00 00 36 04 00 00 00 42 94 c9 00 00 26 18 84 01 ff 01 ff 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 36 04 00 00 00  00 01 00 40 94 c9 00 00  |...6.......@....|
00000010  26 18 84 00                                       |&...|


ein Befehl und der Antwort beginnt immer nach dem gleichen Muster (2 Byte Paketlänge , 00=Senden / 01=Antwort, Befehlsnummer, Zähler etc)

z.B. Aufbau des Kommandos Lampe An/Aus

0f 00                     Anzahl der Bytes des Paketes minus 2
      00                  00 = Sende an Gateway (Command ) / 01 = Antwort vom Gateway (Statusmeldung)
         32               welcher Befehl
            nn            Counter
               00         00 / 01 (unknown)
                  00 00   unknown
05 88 d9 00 00 26 18 84   Address
01                        Data 01=an oder 00=aus


das letzte Byte einer Antwort ist 00 bei Erfolg und 01 bei Error (z.B. Lampe nicht erreichbar)

bei der Helligkeit gibt das vorletzte Byte das Tempo der Überblendung an

0x31= Helligkeit einstellen (Achtung: Helligkeit 0 ist dunkel, obwohl Status=ON):
a) 11 00 00 31 nn 00 00 00      —> Header,  nn beliebiger Counter
b) 05 88 d9 00 00 26 18 84     —> Adresse der Lampe
c) 64                                         —> ## = 0 -  0x64 (=100%)
d) 05 00                                   —> ## = 0 .. 0xff Stufen der Überblendung (0=sofort) 

Beispiel:
$ echo '11 00 00 31 02 00 00 00 f7 8c d9 00 00 26 18 84 64 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 31 02 00 00 00  00 01 00 f5 8c d9 00 00  |...1............|
00000010  26 18 84 00                                       |&...|

tomas123

#51
Dich habe mal Dein aktuelles Modul getestet.
Wie Laffer72 oben beschrieb, wird das Lightify Gateway erkannt, aber beim parsen der Antwort scheint etwas nicht zu passen.
Ich denke es fängt schon mit den ersten zwei Bytes an:
Diese kennzeichnen die Länge das Paketes minus zwei Byte (bzw. die nach dem zwei Bytes für die Paketgröße noch folgenden Bytes)

meine Schritte

define Ligthify LIGHTIFY 192.168.1

GUI:


CFGFN
CONNECTS 1
DEF 192.168.1.46
FD 15
Host 192.168.1.46
LAST_CONNECT 2015-02-11 22:52:46
NAME Ligthify
NR 33
NTFY_ORDER 50-Ligthify
STATE Connected
TYPE LIGHTIFY



ich kann jetzt meine Osram Lampen mit ein/ausschalten mit
[set] Ligthify [raw] 0f 00 00 32 01 00 00 00 f5 8c d9 00 00 26 18 84 00
und
[set] Ligthify [raw] 0f 00 00 32 01 00 00 00 f5 8c d9 00 00 26 18 84 01

aber es wird nicht für jede lampe ein fhem device angelegt

Mein Log:


2015.02.11 22:52:46 3: Ligthify: connected to 192.168.1.46
2015.02.11 22:52:46 3: Ligthify: sending:07 00 00 13 00 00 00 00 01
2015.02.11 22:53:09 1: PERL WARNING: Use of uninitialized value $orig in string ne at ./FHEM/30_LIGHTIFY.pm line 231.
2015.02.11 22:53:09 1: PERL WARNING: Use of uninitialized value $attrVal in string ne at ./FHEM/30_LIGHTIFY.pm line 231.
2015.02.11 22:58:45 3: Ligthify: sending:070000131000000001
2015.02.11 22:59:15 3: Ligthify: sending:0f00003201000000f58cd9000026188400
2015.02.11 22:59:24 3: Ligthify: sending:0f00003201000000f58cd9000026188401




hier mal mal die vollständige Antwort auf die Statusanfrage "07 00 00 13 00 00 00 00 01" für  3 Lampen


$ echo '07 00 00 13 10 00 00 00 01' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  87 00 01 13 10 00 00 00  00 03 00 ff ff 40 94 c9  |.............@..|
00000010  00 00 26 18 84 0a 01 02  03 01 00 03 00 01 64 8e  |..&...........d.|
00000020  0a ff ff ff ff 47 65 6f  72 67 27 73 20 5a 69 6d  |.....Georg's Zim|
00000030  6d 65 72 00 00 cf d7 03  88 d9 00 00 26 18 84 02  |mer.........&...|
00000040  01 02 03 07 02 05 00 00  24 8e 0a 01 ff 01 ff 46  |........$......F|
00000050  6c 75 72 20 6f 62 65 6e  00 00 00 00 00 00 00 89  |lur oben........|
00000060  85 f5 8c d9 00 00 26 18  84 02 01 02 03 07 02 05  |......&.........|
00000070  00 00 64 8e 0a ff ff ff  ff 46 6c 75 72 20 75 6e  |..d......Flur un|
00000080  74 65 6e 00 00 00 00 00  00                       |ten......|

// nur die Antwort in Hex
87 00 01 13 10 00 00 00 00 03 00
A2 25 40 94 C9 00 00 26 18 84 0A 01 02 03 01 02 03 00 01 64 31 0B 01 FF 31 FF 47 65 6F 72 67 27 73 20 5A 69 6D 6D 65 72 00 00
CF D7 03 88 D9 00 00 26 18 84 02 01 02 03 07 02 05 00 00 2D 8E 0A FF FF FF FF 46 6C 75 72 20 6F 62 65 6E 00 00 00 00 00 00 00
89 85 F5 8C D9 00 00 26 18 84 02 01 02 03 07 02 05 00 00 30 B3 0A FF FF FF FF 46 6C 75 72 20 75 6E 74 65 6E 00 00 00 00 00 00



im Detail die Antwort:


(1) Header                 
Lenght Antw Cmd Cnt             03 Lampen ?                   
87 00  01   13  10  00 00 00 00 03 00

(2) für jede Lampe eine Zeile ( irgendein ?? scheint den Lampentyp anzeigen )
hier RGB-LED
A2 25                         Zigbee 16 Bit short adress (wenn Lampe nicht im Netz eingelogt: FF FF), google nach: zigbee zll short address
      40 94 C9 00 00 26 18 84 HW-Adresse der Lampe
                              ??          ??    ??    ON Hel Temp R  G  B     Name-String
                              0A 01 02 03 01 02 03 00 01 64 31 0B 01 FF 31 FF 47 65 6F 72 67 27 73 20 5A 69 6D 6D 65 72 00 00


normale LED
short |HW Adresse             ??          ??    ??   Off Hel Temp R  G  B     Name-String
CF D7 03 88 D9 00 00 26 18 84 02 01 02 03 07 02 05 00 00 2D 8E 0A FF FF FF FF 46 6C 75 72 20 6F 62 65 6E 00 00 00 00 00 00 00

justme1968

#52
ich hab mal versucht die neuen erkentnisse einzubauen. in der angehängten version gibt es folgende änderungen:

- beim send raw müssen die ersten drei byte (also 2 byte länge und 1 byte richtung) weg gelassen werden.
  dieser teil wird jetzt automatisch ergänzt.

- ich habe den fehler der nicht empfangenen nachrichten behoben. es hatte nichts mit dem parsen zu tun.
  eventuell lag hier auch das problem des hängenden gateways weil die nachrichten nicht ausgelesen wurde.

- zusätzlich zu on und off kann man nun auch bri bzw. pct verwenden um eine lampe zu dimmen

- damit die devices angelegt werden muss autocreate aktiv sein.


natürlich gibt es gleich weitere fragen:
 
- kannst du ungefähr sagen wie die zeitangabe beim dimmen skaliert?

- kannst du mal versuchen das format der kommandos zum ändern der farbe und farbtemperatur rauszufinden?
  ich vermute eines davon ist kommando 0x36 und das andere 0x33

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ich habe noch einen kleinen fehler gefunden der nach dem autocreate einen fhem neu start nötig gemacht hat damit weitere nachrichten verarbeitet werden.

die angehängte version hat das problem nicht mehr.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tomas123

#54
wow, was für eine schnelle Antwort  :)

http://192.168.1.41:8083/fhem?detail=autocreate meldet "STATE active" ist
reload 30_LIGHTIFY.pm

... und die Devices werden eingelesen. (Great!!)
Die Steuerung on/off geht auch.

Was bedeutet die Glühbirne mit dem Fragezeichen? (Ein Klick drauf schaltet immer die Lampe ein)

[set]HUEDeviceF58CD90000261884[bri bzw. pct] geht nicht, da das grüne Eingabefeld mit einer 0 gesperrt ist

>kannst du ungefähr sagen wie die zeitangabe beim dimmen skaliert?
00 = sofort auf volle Helligkeit 0x64
$ echo '11 00 00 31 02 00 00 00 f5 8c d9 00 00 26 18 84 64 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 31 02 00 00 00  00 01 00 f5 8c d9 00 00  |...1............|
00000010  26 18 84 00                                       |&...|


und mit 0x20 auf Helligkeit 0x01
$ echo '11 00 00 31 02 00 00 00 f5 8c d9 00 00 26 18 84 01 20 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 31 02 00 00 00  00 01 00 f5 8c d9 00 00  |...1............|
00000010  26 18 84 00                                       |&...|

dauert ca. 4 Sekunden

>kannst du mal versuchen das format der kommandos zum ändern der farbe und farbtemperatur rauszufinden?

aus meinen Notizen etwas unformatiert


0x36= Farbe der RGB-LED setzen:
a) 14 00 00 36 nn 00 00 00     —> Header,  nn beliebiger Counter
b) 03 88 d9 00 00 26 18 84     —> Adresse der Lampe
c) ## ## ##                              —> ## definiert die RGB Farbe im Hex System
d) ff 00 00                                —> ff  ist Pflicht, 00 Anzahl der Überblendstufen, 00

Beispiel:
$ echo '14 00 00 36 04 00 00 00 40 94 c9 00 00 26 18 84 01 ff 01 ff 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 36 04 00 00 00  00 01 00 40 94 c9 00 00  |...6.......@....|
00000010  26 18 84 01                                       |&...|

Hinweis:
- RGB lässt sich auch bei den weißen Lampen setzen, ändert aber nicht die Farbe
- man kann in RGB Überblendstufen (vorletztes Byte) einstellen, aber die Farbübergänge sind zum Teil recht rau


0x33= Farb-Temperatur einstellen (Lampe muss dazu "On" sein, ansonsten Fehlermeldung im letzten Antwort-Byte):
a) 12 00 00 33 nn 01 00 00      —> Header, nn beliebiger Counter
b) 03 88 d9 00 00 26 18 84     —> Adresse der Lampe
c) 26 18 84 00                          —> little endian 0x1826=6128Kelvin  / 0x0A8C = 2700K
d) 84 00                                   —>  hier 0x84 Stufen Überblendung (0=sofort)

Beispiel
$ echo '12 00 00 33 02 01 00 00 f5 8c d9 00 00 26 18 84 8C 0A 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 33 02 01 00 00  00 01 00 f5 8c d9 00 00  |...3............|
00000010  26 18 84 00                                       |&...|


// wenn Lampe am Netz aber Status Off -> Fehlermeldung 01
$ echo '12 00 00 33 02 01 00 00 f5 8c d9 00 00 26 18 84 8C 0A 00 00' | xxd -r -p | nc 192.168.1.46 4000 | hexdump -C
00000000  12 00 01 33 02 01 00 00  00 01 00 f5 8c d9 00 00  |...3............|
00000010  26 18 84 01                                       |&...|


justme1968

das ? ist ein symptom des letzten kleinen problems. wenn du die version aus dem nächsten post nimmst und fhem neu startest sollte das ? weg sein und das icon die farbe der lampe haben.

ein klick aufs icon toggled zwischen ein und aus.

wenn du den den subytpe im device auf colordimmer bzw. extcolordimmer setzt sollten die webCmd passend gefühlt werden.

was meinst du mit gesperrtem eingabefeld?

gib das pct bzw. bri kommando einfach mal auf einer telnet verbindung ein. 

farbe und farbtemperatur schaue ich mir morgen an.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tomas123

ok, Lampensymbol funktioniert
Unsere posts haben sich überschnitten.

>was meinst du mit gesperrtem eingabefeld?
Ich habe FHEM heute Abend erstmalig installiert. 
Das Teil ist ein Schieberegler  :-[ und ich wollte was eingeben

Readings sind ok:

bri 254
colormode hs
ct 370 (2702K)
hue 0
onoff 1
pct 100
reachable 1
rgb ffffff
sat 0
state on


Trotzdem hängt es noch:
Der PCT-Schieberegler zeigt korrekt 100 an. Wenn ich ihn auf 50 schiebe und [set] drücke, dann ändert sich die Helligkeit nicht, aber der Regler springt zurück auf 100.

Vielen Dank!!

justme1968

der regler springt zurück weil das gateway den alten wert zurück meldet und keinen neu gesetzten.

schau mal ins fhem log ob das richtige kommando gesendet wird.

es müsste nacheinander einschalten, dimmen und statusabfrage gesendet werden.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tomas123

Zitat von: justme1968 am 12 Februar 2015, 00:38:33
gib das pct bzw. bri kommando einfach mal auf einer telnet verbindung ein. 

leider ohne Wirkung
RGB nur zum Testen

$ telnet 192.168.1.41 7072
fhem> get HUEDeviceF58CD90000261884 RGB
ffffff
fhem> set HUEDeviceF58CD90000261884 pct 20


Logfile eines Helligkeitsverstellung mit Schieberegler in der GUi
2015.02.12 01:00:15 3: Ligthify: sending:0f00003200000000F58CD9000026188401
2015.02.12 01:00:15 3: Ligthify: sending:1100003100000000F58CD900002618842e0500
2015.02.12 01:00:15 3: Ligthify: sending:070000130000000001
2015.02.12 01:00:15 3: Ligthify: received: 1200013200000000000100f58cd9000026188400

tomas123

Da scheint etwas beim parsen nicht zu passen.

Lampe mit der Osram App auf 23% gedimmt.

Logfile sagt korrekt:
2015.02.12 01:10:17 3: Flur unten: F58CD90000261884:8985, onoff: 1, dim: 23, ct: 2702, rgb: FFFFFF

aber Status Seite meldet:

CFGFN
DEF    F58CD90000261884
ID F58CD90000261884
INTERVAL 60
IODev Ligthify
NAME HUEDeviceF58CD90000261884
NR 35
STATE on
TYPE HUEDevice
modelid
name
swversion
type
uniqueid

Readings
bri 254 2015-02-12 00:42:17
colormode hs 2015-02-12 00:42:17
ct 370 (2702K) 2015-02-12 00:42:17
hue 0 2015-02-12 00:42:17
onoff 1 2015-02-12 01:09:56
pct 100 2015-02-12 01:09:56
reachable 1 2015-02-12 01:12:17
rgb ffffff 2015-02-12 01:12:17
sat 0 2015-02-12 00:42:17
state on 2015-02-12 01:12:17