Hallo zusammen...
ich stehe gerade vor dem Problem, ein Gerät steuern zu wollen welches RGB nutzt. Als Input habe ich aber hue Farbwerte.
Details:
SIDOH HUB empfängt von einer RGB-CCT Fernbedienung hue Farbwerte wenn man den Farbkreis nutzt.
Gesteuert werden soll ein Shelly RGBW2. Dieser möchte gerne set GERÄT rgb und dementsprechend auch RGB Werte.
Beispiel, Eventmonitor INPUT Fernbedienung:
2020-05-14 10:23:00 MQTT2_DEVICE MQTT2_milight_0x143F_2 hue: 318
2020-05-14 10:23:00 MQTT2_DEVICE MQTT2_milight_0x143F_2 hue: 294
2020-05-14 10:23:00 MQTT2_DEVICE MQTT2_milight_0x143F_2 hue: 267
2020-05-14 10:23:01 MQTT2_DEVICE MQTT2_milight_0x143F_2 color_temp: 361
2020-05-14 10:23:01 MQTT2_DEVICE MQTT2_milight_0x143F_2 color_temp: 346
2020-05-14 10:23:02 MQTT2_DEVICE MQTT2_milight_0x143F_2 color_temp: 301
2020-05-14 10:23:03 MQTT2_DEVICE MQTT2_milight_0x143F_2 brightness: 31
2020-05-14 10:23:03 MQTT2_DEVICE MQTT2_milight_0x143F_2 brightness: 77
Nun würde ich mir was notify ähnliches bauen wollen um den Befehl direkt an die entsprechende Lampe zu senden.
Das ganze an sich ist kein Problem aber wie bekomme ich es sinnvoll und einfach hin, den hue Wert in RGB an den Shelly weiter zu reichen?
Kann man das mit einem colorpicker automatisch umwandeln oder nutzen?
Danke für jede Info und Gruß,
87Insane
Den Wiki-Eintrag Color (https://wiki.fhem.de/wiki/Color) kennst Du ? Die Umwandlungsfunktion weiter unten auf der Seite ?
Grüße Markus
Wie KölnSolar schreibt: In Color.pm gibt es ein paar Funktionen, mit denen man konvertieren kann, siehe z.B. auch den auskommentierten Code hier: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2492 (https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L2492).
Hier brauchst du das aber vermutlich nicht, der Hub kann auch andere Formate liefern, insbesondere ein "kalkuliertes RGB" (bitte selbst mal testen, ob bzw. welche Felder da auswählbar sind.
Hatte im Hub geschaut und finde da keine Einstellungen zu. In welchem Menü sind die?
Den Wiki Eintrag habe ich mir vorhin mehrfach angesehen aber bin da noch nicht wirklich durchgestiegen. Hatte mir auch im SVN die mqtt Templates angesehen, in der Hoffnung da was zu finden. Allerdings brachten mir die Funde nichts da ich die Syntax nicht ganz nachvollziehen kann.
Settings -> MQTT -> group state fields.
Auswahl (gem. API-Doku (https://sidoh.github.io/esp8266_milight_hub/branches/latest/#tag/Settings/paths/~1settings/put)):
Zitatgroup_state_fieldsArray of strings (GroupStateField) Items Enum: "state" "status" "brightness" "level" "hue" "saturation" "color" "mode" "kelvin" "color_temp" "bulb_mode" "computed_color" "effect" "device_id" "group_id" "device_type" "oh_color" "hex_color"
Würde auf hex_color tippen.
So wie ich das verstehe ist damit nur gemeint, was gesendet wird in den periodischen Updates. Egal was ich da anklicke oder auch nicht, ändert sich der Output nicht.
Wärest du so lieb und würdest mir deine SIDOH HUB MQTT Konfig mal komplett senden? Denke das würde einige interessieren....
Hast du mir die Info, wie man die komplett abruft? (Ist wenn, dann aber auch "unter Vorbehalt"; das ist alles irgendwann entstanden und funktioniert. U.a. deswegen hatte ich in dem "war..."-Thread mal geschrieben, dass es sinnvoll wäre, jemand (=jemand anderes!) würde sich die Mühe machen, das mal genau auszugucken, was man eigentlich wirklich braucht (und was ggf. auch nicht)...).
Und macht das Ding periodische updates? Afaik nur, wenn man schaltet. Dabei wird nach meinen Erfahrungen auch in den Differenzmeldungen (so die aktiviert sind? = "state"-Topic-branch) alles _geänderte_ mitgeschickt (bzw. eben nur das), und der "states"-Zweig enthält eben alles (oder anders rum).
Screenshots, abschreiben oder vermutlich eher deine Vorgehensweise: http://ip/settings
Hier versuche ich ja gerade zu verstehen aber das ist bisher nicht ganz klar in meinen Augen.
Anbei meine Settings. Hab alles vor MQTT weg genommen (bei mir sollte alles default laut Doku sein):
"mqtt_server":"192.168.20.3",
"mqtt_username":"benutzername",
"mqtt_password":"tollesPW123",
"mqtt_topic_pattern":"milight/:hex_device_id/:device_type/:group_id",
"mqtt_update_topic_pattern":"milight/updates/:hex_device_id/:device_type/:group_id",
"mqtt_state_topic_pattern":"milight/states/:hex_device_id/:device_type/:group_id",
"mqtt_client_status_topic":"milight/LWT",
"simple_mqtt_client_status":false,
"discovery_port":48899,
"listen_repeats":3,
"state_flush_interval":10000,
"mqtt_state_rate_limit":500,
"mqtt_debounce_delay":500,
"packet_repeat_throttle_sensitivity":0,
"packet_repeat_throttle_threshold":200,
"packet_repeat_minimum":3,
"enable_automatic_mode_switching":false,
"led_mode_wifi_config":"Fast toggle",
"led_mode_wifi_failed":"Fast toggle",
"led_mode_operating":"Off",
"led_mode_packet":"Flicker",
led_mode_packet_count":3,
"hostname":"gw_milight",
"rf24_power_level":"MAX",
"rf24_listen_channel":"LOW",
"wifi_static_ip":"",
"wifi_static_ip_gateway":"",
"wifi_static_ip_netmask":"",
"packet_repeats_per_loop":10,
"home_assistant_discovery_prefix":"",
"wifi_mode":"n",
"default_transition_period":500,
"rf24_channels":["LOW",
"MID",
"HIGH"],
"device_ids":[],
"gateway_configs":[],
"group_state_fields":["state",
"status",
"device_id",
"group_id",
"device_type",
"oh_color"],
"group_id_aliases":{}}
Ok, ich schau mal, aber das dürfte ziemlich identisch sein.
Hier fehlt aber das "hex_color"?
Egal ob ich es an habe oder nicht. Es ändert nichts. Hatte vor der Settings Seite nur eben anstelle von HEX mit OH getestet ob da denn was passiert.
hue,rgb,color etc. verliere immer die Lust wenn ich mich damit beschäftigen wollte ;D.
Hier mal eine Definition an der ich vor rd. 2-3 Monaten wegen rgb rumgespielt habe, keine Ahnung ob das korrekt ist, es gibt aber auf 2 wegen einen rgb-Wert, mein ich, kann auch daneben liegen.
i. A. die Einstellungen in der Bridge (1.10.5.).
defmod MQTT2_Mi_Wecklicht MQTT2_DEVICE milight_0x8D56_1
attr MQTT2_Mi_Wecklicht IODev MQTT2_Server
attr MQTT2_Mi_Wecklicht alexaName jupiter
attr MQTT2_Mi_Wecklicht comment To switch device also on when changing brightness, change payload pattern to {"status":"ON","$EVTPART0":"$EVTPART1"} or add a new element to setList, similar to brightness, e.g.brightness_on and change payload pattern as described.\
\
color_b:0 color_g:0 color_r:0
attr MQTT2_Mi_Wecklicht devStateIcon {zigbee2mqtt_devStateIcon255($name,"hex",1)}
attr MQTT2_Mi_Wecklicht eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/
attr MQTT2_Mi_Wecklicht genericDeviceType light
attr MQTT2_Mi_Wecklicht group Wohnzimmer
attr MQTT2_Mi_Wecklicht homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
attr MQTT2_Mi_Wecklicht icon light_control
attr MQTT2_Mi_Wecklicht jsonMap level:brightness
attr MQTT2_Mi_Wecklicht model esp_milight_hub_rgbw_bulb
attr MQTT2_Mi_Wecklicht readingList milight/states/0x8D56/rgbw/1:.* { json2nameValue($EVENT,'',$JSONMAP) }\
milight/updates/0x8D56/rgbw/1:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_Mi_Wecklicht room MQTT2_DEVICE
attr MQTT2_Mi_Wecklicht setExtensionsEvent 1
attr MQTT2_Mi_Wecklicht setList on:noArg milight/0x8D56/rgbw/1 {"status":"ON","level":"40"}\
on_transition:slider,3,10,3600 milight/0x8D56/rgbw/1 {"status":"ON","transition":$EVTPART1}\
off:noArg milight/0x8D56/rgbw/1 {"status":"OFF"}\
off_transition:slider,3,10,3600 milight/0x8D56/rgbw/1 {"status":"OFF","transition":$EVTPART1}\
brightness:colorpicker,BRI,0,1,100 milight/0x8D56/rgbw/1 {"level":"$EVTPART1"}\
hue:colorpicker,HUE,0,1,359 milight/0x8D56/rgbw/1 {"$EVTPART0":"$EVTPART1"}\
command:uzsuSelectRadio,Weiss,Nacht milight/0x8D56/rgbw/1 {"$EVTPART0":"$EVTPART1"}\
sun:noArg milight/0x8D56/rgbw/1 {"status":"ON","transition":600}
attr MQTT2_Mi_Wecklicht userReadings Test2:color_r.* {Color::rgb2hex(ReadingsVal($name,"color_r",255),ReadingsVal($name,"color_g",255),ReadingsVal($name,"color_b",255))}, hue:bulb_mode.*white {"0"},\
test {my $hue=ReadingsVal($name,"hue","0");;;;($hue eq "100")?"FFFFFF":Color::hsv2hex(($hue/100),1,1)},\
rgb {my $path = (split("#",ReadingsVal($name,"color","")))[1];; }
attr MQTT2_Mi_Wecklicht webCmd brightness:hue:command
attr MQTT2_Mi_Wecklicht webCmdLabel Helligkeit\
:Farbe\
:Modus\
:
setstate MQTT2_Mi_Wecklicht OFF
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 Test2 FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 brightness 56
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 bulb_mode color
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:40:13 color #FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 color_b 0
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 color_g 102
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 color_r 255
setstate MQTT2_Mi_Wecklicht 2020-04-23 19:39:05 command set_white
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 device_id 36182
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 device_type rgbw
setstate MQTT2_Mi_Wecklicht 2020-05-12 22:50:45 effect white_mode
setstate MQTT2_Mi_Wecklicht 2020-03-16 14:18:09 group_id 1
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 hue 24
setstate MQTT2_Mi_Wecklicht 2020-03-21 18:41:51 on_transition set 93
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 rgb FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 state OFF
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 status OFF
setstate MQTT2_Mi_Wecklicht 2020-03-24 18:44:47 sun set
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:48:03 test 8EFF00
Gruß
Thomas
Ah, ok. Hatte mich damit (OH-Color etc.) nie intensiver beschäftigt, aber lt. dem hier https://github.com/sidoh/esp8266_milight_hub/issues/375#issuecomment-453783262 (https://github.com/sidoh/esp8266_milight_hub/issues/375#issuecomment-453783262) müßte man den Rest "deselektieren":
You'll find a new oh_color option under state fields. De-select the other color fields, enable this one, and see if it works for you.
Das ganze scheint auch im Sinne einer Prioritätenliste abgearbeitet zu werden, siehe ab hier: https://github.com/sidoh/esp8266_milight_hub/blob/master/lib/MiLightState/GroupState.cpp#L837 (https://github.com/sidoh/esp8266_milight_hub/blob/master/lib/MiLightState/GroupState.cpp#L837)
Von daher ist der Weg über userReadings wohl der zielführendste, aber bitte mit trigger... (Wenn man den Wert wirklich braucht, was ich beim FB-Modus für andere Devices mal anzweifeln würde; notfalls kann man den dann auf dieselbe Weise im Perlcode dann ableiten, wenn man ihn tatsächlich für einzelne Zieldevices braucht!).
AhhhH!
Jetzt verstehe ich das und das geht auch... Super! Sogar noch besser als ich dachte. Der Wert beim scrollen über das Farbrad verändert sich bei hue die ganze Zeit. Bei computed color kommt r g b im jeweils eigenem reading. Bei hex kommt rgb soweit ich das erkennen kann. Aber immer erst dann, wenn man die letzte Farbe gewählt hat/das Rad los lässt. Das ist gut das man so nicht sinnlos durch die Gegend triggert.
Ergebniss hex color:
color #00FF77
Ergebniss computed color:
color_b 29
color_g 0
color_r 255
Ergebnis oh color:
Keine Ahnung was das macht. Bei mir nichts.
Man darf wohl am besten eh immer nur eins wählen. Interessant den SIDOH Hub auch noch ein wenig besser zu verstehen. Ich muss mich da noch ein wenig mehr rein denken. Aber ich glaube es macht Sinn mal mehr über diesen HUB zu sprechen und diesen ggf. etwas aus zu weiten in FHEM. Sicher gibt es da einiges an Ideen :)
PS: Und ich meine sogar zu glauben, dass der color Picker in FHEM die # sogar mit nehmen würde. Ich brauch die also nicht mal rauß filtern. Sowas habe ich zumindest im Hinterkopf...
Zitat von: 87insane am 14 Mai 2020, 17:14:08
Super! Sogar noch besser als ich dachte. Der Wert beim scrollen über das Farbrad verändert sich bei hue die ganze Zeit. Bei computed color kommt r g b im jeweils eigenem reading. Bei hex kommt rgb soweit ich das erkennen kann. Aber immer erst dann, wenn man die letzte Farbe gewählt hat/das Rad los lässt. Das ist gut das man so nicht sinnlos durch die Gegend triggert.
???
Das liest sich so, als hättest du erst gedacht, es wäre ein völlig blöder Vorschlag, sich die Bridge mal näher anzusehen... Ich mache ja durchaus hin und wieder "Weiß noch nicht so recht, ob und wie das geht"-Vorschläge, aber der gehörte eigentlich ausdrücklich nicht in diese Kategorie, und auch die Hardware zusammenzustöpseln ist keine große Kunst.
Bin etwas enttäuscht... (aber vor allem froh, dass du bestätigst, dass das wirklich "nett" und "easy" ist :P ).
Ne ne neeee....
Ich weiß nicht warum aber es ging vorhin echt nicht. Hab den ganzen Kram aber auch erstmal ein paar Stunden bei Seite gelegt und dann nochmal. Dabei bin ich zu den Ergebnissen gekommen. Was ich meine mit genauer ansehen usw ist die Gestaltung von genau dem worüber wir hier reden. Von den Prios wusste ich nichts.... Ist aber wichtig und interessant zu wissen.
Hab mittlerweile gemerkt das die Werte, wie rgb usw nur gesendet werden, wenn auch der jeweilige Channel auf der FB als ON gekennzeichnet ist. Ist dieser OFF, gibt es nur die doofen Werte.
Sprich hue, brightness ohne Level usw..
Also musste ich mir selber helfen und wandel diese nun auch selber um über Userreadings.
_hex_color:hue:.* {Color::hsv2hex((ReadingsVal($name,"hue","0")),1,1)},
_brightness_pct:brightness:.* {sprintf("%00.0f",(ReadingsVal($name,"brightness","0")/2.55))},
_color_temp_pct:color_temp:.* {sprintf("%00.0f",((ReadingsVal($name,"color_temp","0")-153)/2.17))}
_hex_color wandelt die hue Farbe in Hex um und ist somit gegen meinen Shelly verwertbar.
_brightness_pct wandelt die werte 0-255 in Prozent um und lässt mich so meine Rollos steuern oder aber diesen Wert an Shellys usw weitergeben.
_color_temp_pct wandelt den Bereich 153-370 in Prozent um... Gleiches wie auch bei _brightness_pct.
Diese Werte kommen also auch wenn der Channel OFF ist und ich kann somit auf der FB mehrere Geräte steuern anstelle nur eines....
Ist ja nett, aber irgendwie "zu Fuß".
Warum packst du die Umwandlungslogik nicht in myUtils-Code? Dann wird genau dann ausgewertet, wenn du es auch wirklich brauchst... Oder gibst du das per "Einzelnotify" weiter?
Was die FB angeht, kenne ich diese spezielle nicht selbst, aber alle anderen mehrkanaligen MiLight-FB's, die ich habe, brauchen immer erst ein "ON", um die "Schaltebene" zu wechseln, sonst kommt der "brightness"...-Wert schlicht unter einem anderen Topic. Von daher verstehe ich die Logik hinter deiner Aussage mit den "mehrere Geräte" noch nicht ganz.
Ich weiß keinen besseren Weg. Sieht so aus das ja auch nur gewandelt wird, wenn jemand an der FB spielt.
Die FB sendet immer in dem Channel in dem sie ist. Wenn sie off oder on gesetzt wird in einer Zone, funkt sie dort auch. Da ich aber z.B. mit den unteren Tasten einfach andere Räume aktiviere, dabei aber die Zone absichtlich auf off stelle. Somit werden dann nur noch die normalen Werte aktualisiert. Deswegen habe ich mir die Umwandlung selber gebaut. So habe ich auch keine Nebeneffekte vom Hub. Ich habe da mittlerweile fast alles aus, was man bei Group state fields einstellen kann. Für meinen Zweck macht es so am meisten Sinn.
Ich habe mir die Zonen bisher als Decken-Licht (Zone 0), Rollo (Zone 1), LED Leuchten (Zone 2) eingestellt.
Damit ich aber nun nicht nur das wz Rollo steuern kann, habe ich zB eine der unteren Funktionstasten genommen und diese setzt dann in ein Reading zB wz_rollo anstelle von wz_rollo und ich kann dann dieses Rollo via Helligkeitsregler auf der FB in % steuern.
Mit
jsonMap level:brightness
wird
_brightness_pct:brightness:.* {sprintf("%00.0f",(ReadingsVal($name,"brightness","0")/2.55))}
überflüssig.
Na ja, wenn ich das richtig verstanden habe, geht es weniger um den Namen, sondern eher darum, dass diese Umrechnung stattfindet.
@87insane:
Bei mir ist die für 255=>100 (bzw. =>99 für ZWave ;) ) hier drin: https://github.com/rejoe2/FHEM/blob/master/99_myUtils_MiLight.pm#L155.
Verstehe ehrlich gesagt nicht, warum du das Rad neu erfindest und nicht das vielleicht unvollständige Rad aus den obigen myUtils verbesserst bzw. weitere Anwendungsszenarien dazupackst.
Wenn mehr Leute das nutzen, kann ich den Code gerne nach contrib packen und als "add-on" zu dem Fernbedienungs-attrTemplate verteilen (analog zu dem, was wir bei ebus auch machen)! Ich will mich im Moment allerdings nicht mit den Untiefen des Codes auseinandersetzen, sondern bitte dann um vollständige Zuarbeit incl. commandref! Das "Original" war nur mal entstanden für die Dinge, die ich selbst brauchte.
Da es durchaus Leute geben kann, die das "neben" den bekannten direkten Steuerungsmöglichkeiten für Leuchtmittel haben wollen, halte ich allerdings das Wegfiltern von Events/Sendedaten für nicht zielführend.
Achso, verstehe, jetzt erst, du hast noch gar kein level Reading 0-255 ;), dann einfach in den Einstellungen auch anklicken. Das brightness Reading hat man immer auch wenn man es nicht anwählt.
Dann brauchst auch kein jsonMap das ist klar.
Sry, habs mir jetzt nochmal angeschaut.
brightness liefert Werte von 0-255, level 0-100, mit dem jsonMap landet level in brightness, wie hier gewünscht oder nicht? ein brightness-Reading von 0-100.
Zum Verständnis die Readings ohne jsonmap:
setstate MQTT2_Mi_Wecklicht ON
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 Test2 FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 brightness 255
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 bulb_mode color
setstate MQTT2_Mi_Wecklicht 2020-05-14 15:40:13 color #FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 color_b 0
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 color_g 102
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 color_r 255
setstate MQTT2_Mi_Wecklicht 2020-04-23 19:39:05 command set_white
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 device_id 36182
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 device_type rgbw
setstate MQTT2_Mi_Wecklicht 2020-05-12 22:50:45 effect white_mode
setstate MQTT2_Mi_Wecklicht 2020-03-16 14:18:09 group_id 1
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 hue 24
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 level 100
setstate MQTT2_Mi_Wecklicht 2020-03-21 18:41:51 on_transition set 93
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 rgb FF6600
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 state ON
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 status ON
setstate MQTT2_Mi_Wecklicht 2020-03-24 18:44:47 sun set
setstate MQTT2_Mi_Wecklicht 2020-05-15 14:12:30 test 8EFF00
Sry, leider ist der ganze Thread hier etwas aus dem Zusammenhang gerissen:
Es geht darum, eine bestimmte Fernbedienung (hier: die mit 7 Kanälen (GLEPTO ?)) dazu zu verwenden, ganz andere Geräte zu steuern. In dem Zusammenhang will 87insane eben erst in dem "Zwischendevice" einen 0-100-level-Wert haben, obwohl er das nur als brightness bekommt (der hub kann auch 100-er Werte senden, afaik).
MMn. ist aber das Bilden dieser Zwischenwerte unnötig.
Vielleicht noch zum allgemeinen Verständnis dieser bereits verlinkten myUtils:
Man nimmt die FB und legt für jeden Kanal (hier 0-7) ein MQTT2_DEVICE an. Da wir uns - im Unterschied zu normalen Lampen - nicht für den Gesamtzustand interessieren, wird alles direkt verworfen, was im "states"-Zweig kommt, es interessieren nur "updates" (dafür gibt es ein attrTemplate!).
Jetzt kann man für jedes dieser 7 "Kanaldevices" ein notify anlegen, das dann jeden Event (bzw. eine Auswahl der Events) an dem Kanaldevice abgreift und an eine bestimmte myUtils-sub weiterreicht.
Welche sub die richtige ist, bestimmt sich nach dem Zieldevice. Das wird mit in die sub übergeben, zusammen mit dem Event. Die sub leitet dann eben eine Aktion für das übergebene Zieldevice ab, that's all. Die Schwierigkeit die 87insane jetzt haben dürfte: Ich habe nur eine Funktion integriert, die eingehende CCT-Messages in RGBW-Anweisungen "umwandelt", dabei aber innerhalb der 0-255-Skala bleibt.
Lösungsmöglichkeit:
Einen weiteren (optionalen Parameter) einführen, aus dem sich ergibt, ob das Zieldevice "pct" spricht (=umrechnen, Command=pct) oder "brightness" (keine Umrechnung, Command=brightness).
Dabei muß aber das "Kanaldevice" gar nicht wissen, was das eigentliche Zieldevice "spricht" und daher eigentlich auch keinen Rechenwert vorhalten...
@TomLee:
level wird NUR gesetzt wenn die entsprechende Zone auf ON steht. brightness kommt aber auch wenn die Zone off ist. Deswegen MUSS ich selber rechnen. Ich habe eine FB. Auf dieser steuere ich z.B. Rollos via dem Helligkeitsregler. Das mache ich dann in Prozent da ich es auch so direkt dem Rollo übergeben kann. Unten auf der FB sind Taste wie Mode, Speed_up usw. Diese nutze ich um mir ein anderes Rollo zu wählen.
Beispiel: Die FB liegt IMMER im WZ. Deswegen ist der erste Knopf jeder Zone auch einer Funktion im WZ zugeordnet. Will ich nun aber Licht, Rollo oder so im z.B AZ steuern setze ich mir mit Tastendruck auf z.B. Mode ein Reading mit dem Wert des zu steuernden Raumes. Da jede Zone aber ein ON und OFF hat, was ich direkt auch zum ein und ausschalten des ersten Gerätes nutze, muss ich also im OFF Zustand der Zone, selber um rechnen. Im Zustand OFF einer Zone, kommen die Grund Daten wie brightness trotzdem in der Zone an und ich kann sie also verwerten.
@Beta-User: Ich habe NICHTS in meiner Utils. Ich habe bis heute nicht verstanden wofür auch. Habe mich aber auch nie groß damit auseinander gesetzt, da ich keine Vorteile kenne. Ich weiß nichts von dem bereits existierenden Rad, weswegen ich ja hier fragte.
Mein Szenario ist schon sehr speziell aber ich glaube das es viele Personen nutzen könnten, da wohl der ein oder andere User auch eine FB nutzen wollen würde mit solchen "Hey Arnold" Funktionen.
Wen es interessiert... Ich liefere natürlich auch alle Infos am Ende.
Bei mir geht bisher Rollo (Helligkeits Schiebregler auf FB wird in % an gewähltes Rollo weiter gegeben), LED (RGB, Helligkeit, Farbtemperatur oder ww/cw, Effekte), Deckenlicht Steuerung (An / Aus, wer dimmen wollen würde, geht natürlich auch. Hab nur keine solcher Leuchten). Zu steuernder Raum ist wählbar.
Das mit dem Rad:
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Fernbedienung_als_Input-Device_nutzen
Da steht schon eine ganze Zeitlang ein Link:
Zitat von: Beta-User am 09 September 2019, 15:28:47
Zwischenstand:
- die Basisfunktionen meines MPD lassen sich steuern (über Kanal 0, damit die on/off-Tasten besser zugänglich sind)
- 2 MiLight-Bulbs mit V5-Protokoll gehen vollständig (indirekt) mit der V6-remote zu steuern
- derselbe Code kann genutzt werden, um dimmbare HUEDevice's zu steuern (Farbe/Farbtemp: geht (Farbe: eventuell) noch nicht, weiß noch nicht, ob ich Farbtemperatur überhaupt brauche)
- Die Deckenlichter im Wohnzimmer (2*2 on/off Kanäle) belegen eine Steuerungsebene (in der Praxis: zwei ZWave switches), derzeit genutzt: 6 Tasten dieser Ebene. Mal schauen, ob ich da noch Szenen auf die verbleibenden 3 Slider legen will - mind. die Hellighkeits- und Saturation-Slider scheinen ziemlich exakt zu funktionieren, da sollten je 5 "virtuelle" Tasten möglich sein...
- und zu guter letzt: Zwei Rolläden (CUL_HM) und eine Jalousie (ZWave FGR-223, incl. Lamellenstallung 8) ) folgen auch der FB.
Einziges "Manko": Man muß teilweise die (on) Tasten (gewollt!) doppelt drücken, damit nicht das Aktivieren einer Belegungsebene gleich eventuell unbeabsichtigte Folgen in der Realität hat.
Soweit also erst mal: volle Zufriedenheit 8) , coole Sache. Auch die Reichweite ist für meine Zwecke völlig ausreichend (vergleichbar mit der WLAN-Ausleuchtung).
Du hast jetzt nur den link auf meine PBP-aktualisierte Fassung erhalten, aber inhaltlich ist das immer noch aktuell.
Die Vorteile der myUtils-Variante sind:
- Du hast nicht jedes Mal eine DEF-Änderung, wenn du am Code schraubst. myUtils in FHEMWEB bearbeiten, dort speichern, testen => kein Problem.
- Es ist etwas universeller gemacht und nicht zu hart mit einer bestimmten Art Zieldevice "verbandelt": ZWave-Rollo-Aktoren brauchen etwas andere Commands als HomeMatic, aber der Code weiß, mit wem er es zu tun hat und macht den Rest automatisch...
- Man kann es daher sehr gut teilen, ohne dass jeder wieder selbst von Grund auf am Rad feilen muß.
Aber wenn du eine andere gute Lösung hast: Auch interessant; ich habe das damals so zusammengeschustert, dass es für mich Sinn macht, aber das will nicht viel heißen...
Hab bei mir alles fertig nur keine Lust auf pc heute. Hab alles drin wie ich wollte. Damit das auch Anfänger hinbekommen habe ich das ganze mit mswitch gelöst. Gleiches geht natürlich auch mit notify, doif usw. Was ich für die FB so interessant finde ist das ich in mswitch, mit klicken was anpassen könnte. Ist also eine wunderbare Verwaltungs Übersicht für sowas.
Habe das auch über aktivierte Ebenen gestaltet. Ebene 0 = decken Lichter. Ebene 1 = Rollos, Ebene 2 LED Lichter. Hab zb die Mode, speedup Button missbraucht um innerhalb einer Ebene zb ein anderes Rollo oder Licht zu wählen.
Liefere das alles noch nach. Fummel gerade ein wenig an IKEA u zigbee2mqtt rum. Aber auch nur am handy aktuell.
Nun ja, da MSwitch nicht mehr via svn verfügbar ist, wäre das dann keine Lösung mehr, die ich via svn verteilen werde. Bin trotzdem mal gespannt, was da rausgekommen ist (auch wenn ich mit MSwitch gar keine Erfahrung habe).