User Tools

Site Tools


fhem:lico

Phillips LivingColors (Gen 1) with FHEM

Mir fiel eine Phillips LivingColors Lampe der 1. Generation in die Hände. Diese bei Bedarf mit einer seperaten Fernbedienung anzuschalten ist eher unpraktisch. Mein Ziel war daher die Lampe mit FHEM zu verheiraten und per andFHEM (Danke an Author Matthias Klaas für die Implementierung meiner Sonderwünsche)

http://www.knutsel.org/ hat ein Arduino Shield zur Steuerung im “Angebot” (nicht immer lieferbar). Im Prinzip besteht das Shield aus einem vorgefertigten Funkmodul und einer Menge Elektronik um zum wandeln der Spannung des 5V Arduino auf 3.3V des Funkmoduls. Ich vereinfachte den Aufbau durch die Beschaffung eines 3V Arduino Pro Mini.

Die Software von knutsel http://www.knutsel.org/2010/04/11/using-the-cc2500-arduino-shield/ habe ich unverändert weiterverwendet nachdem die ersten Versuche fehlschlugen den Code nach LUA (zur Nutzung auf einem ESP8266 zu portieren. Der serielle Port des Arduino hängt an einem Raspberry Pi auf dem FHEM läuft (muss erstnoch in den Bootoptionen aktiviert werden). Es hilft dabei wenn kein anderes Gerät an GPIO 17 hängt (UART-RST).

In FHEM kann man das Gerät als ECMD bzw. ECMDDevice definieren, dabei handelt es sich um das Interface und die darüber ereichbare Lampe.

Das Funkinterface:

define lico ECMD serial /dev/ttyAMA0@9600
attr lico classdefs licoclass=/opt/fhem/own/licoclass.classdef
attr lico requestSeparator ^@
attr lico room lico

Die zugehörige Klassendefinitionsdatei entspricht dabei

params devID
set off cmd {"f%devID\n"}
set on cmd {my $col=ReadingsVal("%NAME","RGB","FFFFFF");;join('',join('-', "n%devID",sprintf("%03d",hex(substr($col,0,2))),sprintf("%03d",hex(substr($col,2,2))),sprintf("%03d",hex(substr($col,4,2)))),"\n")}
set RGB cmd {fhem "setreading %NAME RGB %rgbvals";;join('',join('-', "w%devID",sprintf("%03d",hex(substr("%rgbvals",0,2))),sprintf("%03d",hex(substr("%rgbvals",2,2))),sprintf("%03d",hex(substr("%rgbvals",4,2)))),"\n")}
set RGB params rgbvals

Die Lampe

define lico0 ECMDDevice
attr lico0 IODev lico
attr lico0 class licoclass 0
attr lico0 realtimePicker 1
attr lico0 room Wohnzimmer,lico
attr lico0 userReadings RGB
attr lico0 verbose 5
attr lico0 webCmd RGB:on:off
attr lico0 widgetOverride RGB:colorpicker,RGB
fhem/lico.txt · Last modified: 2016/11/26 22:55 by 00joshi