FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: NeuFehm am 01 März 2017, 12:32:08

Titel: RGB Colorpicker
Beitrag von: NeuFehm am 01 März 2017, 12:32:08
Liebe FHEM-Fans,
ich möchte einen Colorpicker zunächst als Dummy bauen, aber er funktioniert nicht.
define RGBLampe dummy
attr RGBLampe room LED
attr RGBLampe webCmd rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:toggle:on:off
attr RGBLampe widgetOverride RGB:colorpicker,RGB
define colorInit notify global:INITIALIZED {use Color}

Sieht jemand gleich den Fehler?
Titel: Antw:RGB Colorpicker
Beitrag von: justme1968 am 01 März 2017, 12:41:56
du brauchst ein setList attribut damit dein dummy ein rgb kommando bekommt und du musst im widgetOverride auch den kommando namen rgb verwenden statt RGB:attr RGBLampe setList rgb                             
attr RGBLampe widgetOverride rgb:colorpicker,RGB

bei einem dummy kannst du aber beides zusammen fassen und brauchst widgetOverride nicht:attr RGBLampe setList rgb:colorpicker,RGB
falls der rgb wert in ein rgb reading soll und nicht in state musst du noch readingList setzen.
Titel: Antw:RGB Colorpicker
Beitrag von: NeuFehm am 01 März 2017, 12:45:00
Woher wusstest Du das es funktioniert ;)
Vielen DANK!!!
Titel: Antw:RGB Colorpicker
Beitrag von: NeuFehm am 01 März 2017, 12:52:13
jetzt muss ich noch für das richtige Device (Eigenbau) eine classdef schreiben. Da ich bisher nur "on/off" -Fälle von Lampen hatte, denke ich, dass ich nun ein RGB-Commando einbinden muss in Form von:
set on cmd {hier der individuelle Befehl} # für das Anschalten...
set off cmd {hier der individuelle Befehl} # für das Ausschalten
set rgb cmd {hier der individuelle Befehl, der den Picker berücksichtigt} # für das Setzen der RGB-Werte

Stimmt meine Annahme?
LG Mirko
Titel: Antw:RGB Colorpicker
Beitrag von: justme1968 am 01 März 2017, 12:53:27
da ich dein device nicht kenne kann ich dir nicht sagen was du genau tun musst...
Titel: Antw:RGB Colorpicker
Beitrag von: NeuFehm am 01 März 2017, 13:16:35
Verstehe ich.
Es ist ein Eigenbaudevice. Ich muss dem folgenden String in ASCII senden:
#T!ledabczx(13)(10)
# = Mastererkennung; T = T_Modul; ! = Busadresse
led = Helligkeit mit 255 Schritten aller Ausgänge
a = Helligkeit Ausgang 1
b =  Helligkeit Ausgang 2
c = Helligkeit Ausgang 3
z = Geschwindigkeit der Änderung von 0 bis 255
x = Funktionsbyte (bit1 aktiviert die Rückantwort, bit2 schaltet Ausgang ein)
(13)(10) = Abschlusszeichen

Also im Falle von "set rgb 75FF91"
Aus meiner Sicht also:
set rgb cmd {chr(35).chr(84).chr(33).chr(108).chr(101).chr(100).chr(117).chr(255.chr(145).chr(255).chr(255).chr(13).chr(10)}

Da ich aber die Werte noch dem Picker anpassen muss, denke ich eher an sowas:
set rgb cmd {chr(35).chr(84).chr(33).chr(108).chr(101).chr(100).chr(hex(substr(_$,0,2))).chr(hex(substr(_$,2,2))).chr(hex(substr(_$,4,2))).chr(255).chr(255).chr(13).chr(10)}

weiß aber auch nicht ob die _$ in dem Fall den rgb-Wert enthält?
Aber vlt. ist das auch ein neues Thema?