Ich möchte ein dummy definieren, welches RGB-Werte in der Form RRGGBB annimmt, z.B. A2357F. Das scheint erst einmal trivial, also klar, jedes dummy kann das. Nun möchte ich aber mit dem colorpicker den Wert einstellen - das ist mir bislang nicht gelungen. Ich vermute nun, dass es da gar keine Lösung gibt. Muss ich nun ein neues Modul definieren gemäß https://wiki.fhem.de/wiki/Color (https://wiki.fhem.de/wiki/Color) definieren?
Des weiteren möchte ich noch den HSV-Wert als zusätzliche Readings haben - das löst man vermutlich am besten mit einem notify, sobald sich der Status (RGB-Wert) ändert.
Probiere mal bitte
attr setList rgb:colorpicker,RGB
was ist denn Dein Ziel ?
vg
joerg
Und was hast du bisher probiert? Eigentlich brauchst du nur einen dummy mit setlist und readinglist.
Zitat von: CoolTux am 25 Juli 2017, 16:16:50
Probiere mal bitte
attr setList rgb:colorpicker,RGB
Zitat von: igami am 25 Juli 2017, 17:06:13
Und was hast du bisher probiert? Eigentlich brauchst du nur einen dummy mit setlist und readinglist.
attr setList rgb:colorpicker,RGB
attr readingList RGB
Das funktioniert soweit (ich benötige jedoch ein reading State und STATE kann aus dem Webfrontend nur noch in Form von z.B. "rgb 44AA55" gesetzt werden, ohne den Zusatz rgb geht es nicht - kann ich mal für's erste ignorieren, auch wenn ich es noch nicht verstanden habe, ggf. mit notify korrigieren, denn Kommandozeileneingabe "set testdummy 44AA55" funktioniert).
Zitat von: herrmannj am 25 Juli 2017, 16:28:55
was ist denn Dein Ziel ?
vg
joerg
Ich möchte unbedingt meine Haussteuerung uf 2 Raspberries aufteilen: auf einem laufen alle wichtigen Dinge, wie z.B. "Weil wir einen Kaminofen haben, darf Dunstabzugshaube nur eingeschaltet werden, wenn mind. ein Fenster geöffnet ist", weiterhin läuft dort auch die gesamte Bedienoberfläche für's Tablet, weil auch die Rollladensteuerung zu den wichtigen Dingen zählt. Auf einem 2. Raspberry laufen die "Spielereien", wie z.B. all meine bunten LEDs mit WifiLight für Wellness und Terrasse - aber auch anderes. Da ich während der Entwicklung auch mal Programmierfehler mache, kann es vorkommen, dass meine Frau kochen will und der Dunstabzug nicht funktioniert. Durch die Trennung will so etwas vermeiden.
Nun brauche ich also eine RGB-Variable, die mittels FHEM2FHEM dann WifiLight steuert - reines Steuern wäre kein Problem, aber ich möchte auch die Anzeige haben.
Zitat von: ujaudio am 25 Juli 2017, 17:38:41
attr setList rgb:colorpicker,RGB
attr readingList RGB
jetzt hast du einmal rgb und einmal RGB ;)
Danke, mit 2x RGB funktioniert alles einwandfrei.
Darf ich da mal einhaken? Ich habe ein Sonoff-Gerät, das auch Farben beherrscht (Sonoff B1). Dessen Farbe möchte ich einstellen. Das würde mit MQTT geschehen können, man muss dazu ein sogenanntes Topic einrichten. Das geht (so mehr oder weniger), ich möchte aber die Farbe nicht als Text, sondern mit einem colorpicker auswählen. Mir ist nun nicht klar, wie ich bei einem beliebigen (!) Gerät, das eben kein dummy ist, einen Colorpicker hinzufügen kann. Geht das?
Ich habe folgendes versucht:
Internals:
IODev Mosquitto
NAME Sonoff_B1
NR 141
STATE outgoing publish sent
TYPE MQTT_DEVICE
READINGS:
2017-10-05 22:35:21 Color E76E000000
2017-10-05 22:33:27 Command Unknown
2017-10-05 22:35:21 Dimmer 91
2017-10-05 21:54:39 Fade on
2017-10-06 13:38:04 LWT Offline
2017-10-05 22:26:08 LedState 0
2017-10-05 22:28:08 LedTable on
2017-10-06 08:58:28 POWER on
2017-10-06 08:58:28 RESULT {"POWER":"on"}
2017-10-06 16:50:50 RGB "FFFFFF"
2017-10-05 21:57:17 Speed 6
2017-10-06 16:58:38 state RGB
2017-10-06 16:58:38 transmission-state outgoing publish sent
message_ids:
publishSets:
:
topic cmnd/sonoff_b1/POWER
values:
on
off
sets:
off
on
subscribe:
tele/sonoff_b1/LWT
stat/sonoff_b1/RESULT
tele/sonoff_b1/COLOR
subscribeExpr:
^tele\/sonoff_b1\/LWT$
^stat\/sonoff_b1\/RESULT$
^tele\/sonoff_b1\/COLOR$
subscribeReadings:
stat/sonoff_b1/RESULT:
cmd
name RESULT
tele/sonoff_b1/COLOR:
cmd
name RGB
tele/sonoff_b1/LWT:
cmd
name LWT
Attributes:
IODev Mosquitto
publishSet on off cmnd/sonoff_b1/POWER
stateFormat transmission-state
subscribeReading_LWT tele/sonoff_b1/LWT
subscribeReading_RESULT stat/sonoff_b1/RESULT
subscribeReading_RGB tele/sonoff_b1/COLOR
webCmd on:off:RGB
widgetOverride RGB:colorpicker,RGB
und ich sehe den Colorpicker, aber wenn ich eine Farbe auswähle, passiert nichts. Die Farbe im Reading RGB bleibt FFFFFF. Auch das Reading Color ändert sich nicht. Kann mir da jemand helfen?
in der fhem.cfg.demo gibt es beispiele für farbige lampen die mit einem readingsProxy umgesetzt sind und neben rgb auch noch hsv bzw. farbtemperatur verstehen. inklusive icons und colorpicker.
für beliebige geräte geht es wenn das device prinzipiell kommandos zum setzen der farbe versteht. beispiel im wiki unter color.
wenn die kommandos zum setzen der farbe aus irgendeinem grund nicht kompatibel sind kann man sich über cmdalias so ziemlich alles zurecht biegen. oder man nimmt die readingsProxy beispiele von oben und setz sie auf das jeweilige device an.
Sorry, ich muss nochmal nachfragen. Ich kriege es nicht hin, weil ich die allzu knappen Erläuterungen auch nicht verstehe. Ich habe ein readingsproxy; erste Frage: kann ich das denn auch so beschreiben:
defmod Sonoff_readingsProxy readingsProxy Sonoff_B1:(Color|POWER)
wenn Sonoff_B1 die zwei Readings POWER und Color hat? Steht explizit nicht da, aber ich nehme mal an "ja".
Dann kommt SetList, das habe ich so definiert
attr Sonoff_readingsProxy setList on:noArg off:noArg rgb:colorpicker,rgb
und ich hoffe mal, das geht auch. Aber bei colorpicker hört es schon auf. Ich muss das auch als widgetOverride definieren, mache das so
attr Sonoff_readingsProxy widgetOverride rgb:colorpicker,rgb
und verstehe die Erklärung in der commandref überhaupt nicht:
ZitatLeerzeichen separierte Liste von Name/Modifier Paaren, mit dem man den vom Modulautor für einen bestimmten Parameter (Set/Get/Attribut) vorgesehene Widgets ändern kann. Folgendes ist die Liste der bekannten Modifier:
und da steht colorpicker nicht drin (nur unten bei den Beispielen). Gibt es das also nicht? Zudem beginnen in den widgetOverrides bei den Erklärungen alle Einträge mit einem Doppelpunkt, unten steht aber bei den Beispielen auf einmal "state" davor: Welche Bedeutung hat das state dort? Was darf auch davor stehen, was nicht? Darf colorpicker nur mit uzsu verwendet werden? Oder geht es auch ohne? Der Wiki-eintrag ist noch furchtbarer. Es nervt etwas.
Ich hänge mir hier mal dran: Ich möchte eine Homekit RGBW LED in FHEM spiegeln und dazu zuerst einmal einen dementsprechenden Dummy in FHEM anlegen:
Mit
defmod rgbwdummy dummy
attr rgbwdummy genericDeviceType light
attr rgbwdummy homebridgeMapping On=state,valueOn=on,valueOff=off,cmdOn=on,cmdOff=off
attr rgbwdummy room Homekit
attr rgbwdummy setList on off
attr rgbwdummy webCmd on:off
klappt schon mal on/off.
Nun möchte ich noch Helligkeit und Farbe haben. Was brauche ich dazu in homebridgemapping, setList und webCmd?
Wenn das alles passt, würde ich im zweiten Schritt die "echte" und "gespiegelte" LED in der Home App zusammen gruppieren und müsste dann, falls ich in der Home App schalte, die Werte in FHEM sehen.
Bei mir funktioniert eine HM LED-Leiste mit folgendem:
attr wz_Leiste alexaName Leds
attr wz_Leiste genericDeviceType light
attr wz_Leiste homebridgeMapping On=wz_Leiste_Dim:state,valueOff=off,cmdOn=on,cmdOff=off \
Brightness=wz_Leiste_Dim:pct,cmd=pct\
Hue=wz_Leiste_Color:color,minValue=0,maxValue=360,max=100,cmd=color\
Saturation=wz_Leiste_Color:color,cmds=0:color+100