Osram Lightify

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

Vorheriges Thema - Nächstes Thema

justme1968

danke.

alle Rampe und transition zeiten sind sache des controllers und laufen autonom ab.

je nach leuchtmittel lassen sich die reinen rgb farben nicht darstellen. der farbraum der rgbw leuchtmittel ist meist so optimiert das die weisstöne besser darstellbar sind als mit den 'normalen' rgb leds. eventuell gibt es hier auch unstimmigkeiten zwischen philips und osram. rgb ist auch nicht der native farbraum der bridge. das ist eigentlich xy und hsv. beim der umrechnung von rgb erwischt man an den grenzen oft farben die nicht mehr im darstellbaren farbraum liegen.

am besten versuchst du erst mal mischfarben (z.b. f01010) über den colorpicker und tastest dich dann langsam an die extrem werte ran. der hue slider sollte auch einen guten überblick geben.

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

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

Damian

Zitat von: justme1968 am 21 Januar 2015, 09:42:58
danke.

alle Rampe und transition zeiten sind sache des controllers und laufen autonom ab.

je nach leuchtmittel lassen sich die reinen rgb farben nicht darstellen. der farbraum der rgbw leuchtmittel ist meist so optimiert das die weisstöne besser darstellbar sind als mit den 'normalen' rgb leds. eventuell gibt es hier auch unstimmigkeiten zwischen philips und osram. rgb ist auch nicht der native farbraum der bridge. das ist eigentlich xy und hsv. beim der umrechnung von rgb erwischt man an den grenzen oft farben die nicht mehr im darstellbaren farbraum liegen.

am besten versuchst du erst mal mischfarben (z.b. f01010) über den colorpicker und tastest dich dann langsam an die extrem werte ran. der hue slider sollte auch einen guten überblick geben.

gruss
  andre

Danke für die Infos.

Ich habe mir Hue-, Pct-slider und paar Buttons für den ct modus über webcmd gebastelt. Damit kann ich herumexperimentieren. Der Colorpicker funktioniert bei Osram nicht für alle Farbkombinationen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

justme1968

der colorpicker arbeitet zur zeit rein rgb basiert und nimmt zur zeit auch (noch) keiner rücksicht auf auf den möglichen farbraum. für die osram lampen ist er noch nicht mal veröffentlicht.

einige slider und preset buttons sollten auch als default angelegt werden. hat das für die led strips auch funktioniert?

wenn du den slider im ct modus benutzt ist der hintergrund verlauf noch verkehrt herum. das muss ich noch reparieren. wenn du color statt ct verwendest stimmt der verlauf aber die initialisierung und der longpoll update gehen nicht weil es kein zugehöriges reading gibt.

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

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

Damian

Zitat von: justme1968 am 21 Januar 2015, 19:34:20

einige slider und preset buttons sollten auch als default angelegt werden. hat das für die led strips auch funktioniert?


Das tuen sie wahrscheinlich auch. Ich hatte eine nicht mehr aktuelle FHEM-Version, da hat erst mal nichts mit slidern oder colorpicker funktioniert. Zu diesem Zeitpunkt hatte ich aber schon das webcmd-Attribut definiert. Nach dem Update waren auch all die vermissten Sachen da.

So wie es für mich aussieht, unterstützt der Controller nur den ct-modus oder eben die Ansteuerung der RGBs. Eine beliebige Mischung der weißen und der RGB-LED´s wird, denke ich, nicht möglich sein. Die API von HUE habe ich mir noch nicht angeschaut.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

justme1968

über das api kann man wählen ob ct oder hsv oder xy angegeben wird.

ob das leuchtmittel dann im hsv und xy mode die weissen leds mit verwendet bzw im ct modus die farbigen dazu mischt hängt vom leuchtmittel ab. nicht von der bridge.

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

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

Damian

Zitat von: justme1968 am 21 Januar 2015, 19:47:49
über das api kann man wählen ob ct oder hsv oder xy angegeben wird.

ob das leuchtmittel dann im hsv und xy mode die weissen leds mit verwendet bzw im ct modus die farbigen dazu mischt hängt vom leuchtmittel ab. nicht von der bridge.

gruss
  andre

Klar. Im ct-Modus, werden die blauen und roten LED´s bei den stripes entsprechend der gewählt Temperatur automatisch mitgenutzt. Im hs- bzw. xy-Modus werden bei den osram stripes die weißen offenbar nicht benutzt  - zumindest konnte ich das bei mir nicht beobachten.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Laffer72

#36
Hallo andre,

hab mir jetzt die GU10 Strahler von Lightify zugelegt. Die Kopplung war kein Problem.
Die ID lautet:PAR16 50 TW
Sie werden als "color temperatur light" eingebunden.

Leider kann ich sie aber nicht ausschalten. Weder mit pct oder bri oder off gehen die Lampen aus. Ein Restglimmen ist immer noch vorhanden. Hast Du da vielleicht eine Ahnung woran das liegt? Mit der Hue-App klappts auch nicht.

Viele Grüße

Reinhard

UPDATE: Sorry, war wohl etwas voreilig. Ausschalten funktioniert mit set HUEDevice pct 0 doch.
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

markus355

#37
Hallo zusammen,

ich seit kurzem Besitzer des Osram Lightify Systems (Gateway, 2x Bulbs) und ebenfalls daran interessiert es in FHEM zu integrieren.
Da es bisher noch keine offizielle API gibt habe ich mir am Wochenende den Netzwerk Traffic zwischen iOS App und Lightify Gateway angesehen und sehr erfreuliche Erkenntnisse gemacht :)

Das Gateway bietet eine lokale API, in Form einer simplen TCP Socket Verbindung auf Port 4000. Darüber konnte ich bereits die angemeldeten Bulbs, die Gruppen und jeweils die Zustände auslesen. Zudem lassen sich die Lampen ein-/ausschalten sowie die Farbe/Temperatur/Helligkeit ändern.
Bisher ist das ganze allerdings noch etwas unschön, da ich das verwendete Protokoll noch nicht herausbekommen habe und daher Hex Nachrichten schicken muss (falls es überhaupt eine Standardprotokoll ist).

Daher nun meine Frage, die vor allem an den Entwickler des HUE Moduls gerichtet ist. Welche konzeptionellen Schritte oder generellen Anpassungen sind deiner Meinung nach nötig um das HUE Modul für das Lightify Gateway zu portieren?
Ich habe mir bereits den Code der Module angeschaut, kann aber mangels FHEM Erfahrung und Zeit bisher noch nicht sehr viel damit anfangen.
So wie ich es verstanden habe müsste man das HUEBridge Modul für die Kommunikation über einen Socket anpassen. Zudem müsste man die JSON Objekte und Nachrichten aus HUEDevice.pm in das Hex Format des Lightify Gateway übersetzen. Kommt das soweit hin?

Falls jemand Interesse an den Hex Daten und den bisherigen Erkenntnissen zu den Funktionen der einzelnen Nachrichten-Bytes hat, kann ich diese gerne weiterleiten.

Viele Grüße,
Markus



justme1968

das klingt sehr interessant.

poste doch mal was du schon hast.

man könnte z.b. ein eigenes bridge modul schreiben das mit dem hue device modul spricht aber dann das protokoll für due osram bridge sendet.

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

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

herrmannj

Zitat von: justme1968 am 26 Januar 2015, 14:10:37
das klingt sehr interessant.

poste doch mal was du schon hast.

man könnte z.b. ein eigenes bridge modul schreiben das mit dem hue device modul spricht aber dann das protokoll für due osram bridge sendet.

gruss
  andre
Hi,

yepp, post bitte mal den sniff.

vg
jörg

markus355

Hey,
hier schonmal meine Notizen zum verwendeten Protokoll. Ist noch sehr unordentlich und unstrukturiert aber hilft sicher als Anhaltspunkt. Den Sniff werde ich erst heute Abend posten, habe den gerade nicht zur Hand.


getDevices
07 00 00 13 01 00 00 00 01

byte 0 - 3: message type getDevices
byte 4: fortlaufende Nummer für alle gesendeten Nachrichten (wird vom Server ignoriert)
byte 5:
byte 6:
byte 7:
byte 8:
byte 9: immer 01

return: devices mit ihrem aktuellen status

getDevices Response:

byte 1 unterschiedlich bei 2 oder einer angemeldeten Lampe (bei einer Lampe immer gleich)
33 bei einer angemeldeten Lampe
5D bei 2 angemeldeten Lampen
byte 2 – 3: immer gleich 01 13
byte 4-8: ist 00
byte 9: Anzahl der Geräte
byte 10: ist 00
byte 11: ??
byte 12: ??
byte 13 - 20: Device ID
byte 21 - 27: ??
byte 27: evtl flag ob Farben unterstützt werden?
byte 28: ??
byte 29: status des devices 00 für aus 01 für an
byte 30: dimmer wert in Prozent; 64 entspricht 100 %
byte 31 - 32: Farbtemperatur weiß;
8C 0A -> 0% warmweiß (2700K)
64 19 -> 100% kaltweiß (6500K)
8C 0A -> little endian, 0A 8C entspricht 2700 in Hex
byte 33: Farbwert für rot 0-255
byte 34: Farbwert für grün 0-255
byte 35: Farbwert für blau 0-255
byte 36: Platzhalter FF vor Name?
byte 37 - 52:  16 byte Name
name endet 2 byte nach letztem Buchstaben (letzte 2 byte: 00 00)


getGroupInfo:
08 00 00 26 04 00 00 00 01 00

byte 0 - 4: message type getGroupInfo
byte 4: fortlaufende Nummer über alle gesendeten Nachrichten
byte 5:
byte 6:
byte 7:
byte 8: Gruppennummer
byte 9: immer 00

getGroupInfo Response:
22 00 01 26 04 00 00 00 00 02 00 47 72 75 70 70 65 20 30 32 00 00 00 00 00 00 00 01 F4 07 00 00 AA 3E B0 7C

byte 0 - 4: message type getGroupInfo
byte: 5 - 8: 00
byte 9: Gruppennummer
byte 10: 00
byte 11 - 26: Gruppenname
byte 27 - 35: Device ID der ersten zugehörigen Lampe
byte 28 - ...: jeweils 9 byte für weitere Device IDs


getGroups:
06 00 00 1E 01 00 00 00

byte 0 - 3: message type getGroups
byte 4: fortlaufende Nummer über alle gesendeten Nachrichten
byte 5:
byte 6:
byte 7:

getGroups Repsonse:
1B 00 01 1E 01 00 00 00 00 01 00 01 00 57 6F 68 6E 7A 69 6D 6D 65 72 00 00 00 00 00 00

byte 0: unterschiedlich bei 2 oder einer Gruppe
byte 1 - 4: Nummer? gleich bei mehreren Calls und bei unterschiedlichen Gruppen
byte 5 - 8: ist 00
byte 9: Anzahl der Gruppen
byte 10: ist 00
byte 11: Nummer der Gruppe
byte 12: ist 00
byte 13 - 28: 16 byte Gruppenname

bytes 11 - 28 bilden eine Gruppe; für jede weitere Gruppe 18 zusätzliche bytes

onOffDevice:
0F 00 00 32 07 00 00 00 D1 9A C9 00 00 26 18 32 01

byte 0 - 3: message type toggleDevice
byte 4: fortlaufende Nummer
byte 5 - 7: ist 00
byte 8 - 15: Device ID
byte 16: Status 00 -> aus; 01 -> an


justme1968

#41
ich hab dir mal einen mini anfang eines möglichen moduls angehängt.

es macht eine verbindung zu port 4000 des im define angegebenen host auf.

du kannst dann mit set <device> raw <hex daten> daten hin schicken und siehst im log die antworten.

mehr macht das modul noch nicht.

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

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

markus355

#42
Morgen,

vielen Dank andre, für das Modul und die schnelle Hilfe, es funktioniert perfekt.
Ich habe nun 2 dummys für meine beiden Lampen angelegt und das Gateway per define in der config angelegt. Konnte dann per notify den on/off state der dummys an die jeweiligen "set <device> raw <hex:on:off>" commands koppeln und die Lampen perfekt schalten. Dimmen funktioniert ebenfalls :)

Hier nun noch den Sniff des Traffics zwischen Gateway und iOS App.
Zu meinem Setting:
- 1x Osram Classic A60 RGBW   (Name: Deckenlampe WZ; Device-ID:  D1 8E C9 00 00 26 18 84)
- 1x Osram Classic A60 tunable white   (Name: Bogenlampe WZ; Device-ID:  F4 07 00 00 AA 3E B0 7C)

Der Sniff enthält in der ersten Spalte die Hex-Adresse. Die linksbündigen Zeilen wurden von iOS an das Gateway geschickt, die eingerückt andersherum (Gateway -> iOS).

Ich habe folgende Aktionen während des Captures durchgeführt:
1) App geöffnet, gewartet bis alle Devices und Gruppen angezeigt wurden
2) Beide Lampen ein-/ausgeschaltet (Nachrichten beginnen mit 0F 00 ...)
3) Helligkeits-Wert (Dimmer) beider Lampen geändert (Nachrichten beginnen mit 11 00...)
4) Farbtemperatur beider Lampen geändert (Nachrichten beginnen vermutlich mit 12 00...)
5) Farbe der Deckenlampe geändert (Nachrichten beginnen vermutlich mit 14 00...)

Die Werte für die Aktionen 3-5 wurden jeweils über die Slider in der App eingestellt und somit wurden mehrere Nachrichten während der Bewegung des Slider geschickt.

Damit solltet ihr schonmal einen guten Eindruck in die generelle Kommunikation zwischen Gateway und App bekommen. Weitere Test folgenden dann vermutlich am Sonntag. Da werde ich die einzelnen Nachrichten-Typen (12 00..., 14 00...) dann nochmal verifizieren und weitere Aktionen wie "Device hinzufügen", "Gruppe ändern" etc. ausprobieren.

Grüße,
Markus

justme1968

ich hab das modul mal ein klein wenig aufgebohrt.

nach dem connect wird die getDevices nachricht automatisch los geschickt und  es gibt jetzt eine parse funktionen die versucht die antwort zu parsen.

schau mal ob hier vernünftige daten im log landen.

wenn das geht könnte man im nächsten schritt die fhem devices für die lampen anlegen und dann diese an und aus schalten.

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

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

justme1968

#44
und noch ein kleines update:

- wenn die getDevices antwort kommt wird für jede lampe ein fhem device angelegt
- dieses fhem device kann man mit set on bzw set off schalten. andere kommandos gehen noch nicht bzw. werden ignoriert.

es werde noch keine weiteren antworten vom gateway ausgewertet.

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

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