Autor Thema: mqtt2.speech.template:TINT GU-10 white  (Gelesen 4181 mal)

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3671
  • ... wer sät, der erntet ...
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #60 am: 18 Oktober 2021, 18:02:47 »
Hab mich ausnahmsweise mal gern mit dem Thema Licht beschäftigt, aber nur weil ich mehrere Dinge die ich im Laufe der Zeit im MQTT2 Kontext mitgenommen habe hier mal in der Praxis umsetzen konnte.

Spricht was dagegen diese "Operationen" am MQTT2-Device vorzunehmen (im Template zu übernehmen), um sich das lästige homebridgeMapping zu sparen:

Zitat
defmod MQTT2_zigbee_gu10_3 MQTT2_DEVICE 0x00158d000340eac3
attr MQTT2_zigbee_gu10_3 userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 structexclude wzdl wzdl_map
attr MQTT2_zigbee_gu10_3 IODev MQTT2_Server
attr MQTT2_zigbee_gu10_3 alexaName decke3
attr MQTT2_zigbee_gu10_3 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_gu10_3 devicetopic zigbee2mqtt/0x00158d000340eac3
attr MQTT2_zigbee_gu10_3 event-on-change-reading state,pct,ct
attr MQTT2_zigbee_gu10_3 genericDeviceType light
attr MQTT2_zigbee_gu10_3 getList state:noArg state $DEVICETOPIC/get {"state":""}
attr MQTT2_zigbee_gu10_3 group Wohnzimmer
attr MQTT2_zigbee_gu10_3 icon light_control
attr MQTT2_zigbee_gu10_3 imageLink /fhem/deviceimages/mqtt2/404006-404008-404004.jpg
attr MQTT2_zigbee_gu10_3 jsonMap color_temp:ct\
color_temp_startup:ct_startup\
brightness:pct

attr MQTT2_zigbee_gu10_3 model zigbee2mqtt_light_cct
attr MQTT2_zigbee_gu10_3 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC:.* { $EVENT =~ m,brightness..(\d+), ? {"pct"=>sprintf('%.0f',$1/2.55)} : undef }
attr MQTT2_zigbee_gu10_3 room MQTT2_DEVICE,Wohnzimmer
attr MQTT2_zigbee_gu10_3 setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
off:noArg $DEVICETOPIC/set {"state":"OFF"}\
pct:colorpicker,BRI,0,5,100 {$EVTPART1=sprintf('%.0f',$EVTPART1*2.55);;qq($DEVICETOPIC/set {"state":"on","brightness":$EVTPART1})}\
ct_startup:coolest,cool,neutral,warmest,previous $DEVICETOPIC/set {"color_temp_startup":"$EVTPART1"}\
ct:colorpicker,CT,153,2,370 $DEVICETOPIC/set {"color_temp":"$EVTPART1"}\
effect:blink,breathe,okay,channel_change,finish_effect,stop_effect $DEVICETOPIC/set {"$EVTPART0":"$EVTPART1"}
attr MQTT2_zigbee_gu10_3 setStateList on off effect
attr MQTT2_zigbee_gu10_3 webCmd toggle:on:off:pct:ct
attr MQTT2_zigbee_gu10_3 webCmdLabel Helligkeit\
:

setstate MQTT2_zigbee_gu10_3 ON
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 color_mode color_temp
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 ct 250
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 ct_startup 65535
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 linkquality 191
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 pct 100
setstate MQTT2_zigbee_gu10_3 2021-10-18 17:43:11 state ON

Damit wird jetzt ohne homebridgeMapping der Slider und Status in der APP korrekt angezeigt und auch die Auswahl der Farbtemperatur ist möglich.
Das ON/OFF groß geschrieben wird ist Alexa egal, wie das mit Homebridge aussieht kann ich nicht testen, hab ich deinstalliert zur Zeit.
Für pct hab ich mich entschieden nachdem ich mir hier die Zeilen ab 1944 ff. angeschaut (nicht verstanden/begriffen) habe.
« Letzte Änderung: 18 Oktober 2021, 18:15:39 von TomLee »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16340
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #61 am: 18 Oktober 2021, 19:40:16 »
Also:
- das mit ct macht in jedem Fall Sinn und ist schon im svn :) .
- das nach pct zu ziehen, hatte ich "damals" aus irgendeinen Grund verworfen, vermutlich auch um Rundungsprobleme beim Hin- und Herrechnen nach Möglichkeit zu vermeiden. Da wir das mapping ja dann auch irgendwann hinbekommen hatten mit dem factor, sehe ich das jetzt nicht als den großen Nachteil an, und man muss nicht jedesmal rechnen, sondern nur, wenn man wirklich per Sprache steuert.

Bin im Moment noch nicht so recht überzeugt, ob sich das lohnt (weil wenn, dann relativ kurzfristig: alles...). Vielleicht äußert sich dazu ja mal noch jemand?

Ad #1944: Das sieht mir nach einer pauschalen Umrechnungslogik anhand des setter-Namens (und teilweise des TYPE) aus. RHASSPY macht das ähnlich, und vermutlich wäre es nicht die große Aktion, MQTT2_DEVICE und brightness als Bereich von 0-255 einzupflegen. Müßte man justme1968 mal anpingen, wie er das sieht. attrTemplate @m2 zieht das jedenfalls afaik stringent durch, dass brightness immer bis 255 geht...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3671
  • ... wer sät, der erntet ...
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #62 am: 19 Oktober 2021, 10:15:55 »
Zum Verständnis, wenn mans genau nimmt sind die Quotes um $EVTPART1, in der payload des setter ct, doch bei numerischen Angaben nicht korrekt, auch wenns so in der Doku steht ?
« Letzte Änderung: 19 Oktober 2021, 10:19:12 von TomLee »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16340
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #63 am: 19 Oktober 2021, 10:22:35 »
 ;D vermutlich könnte/müßte man jetzt irgendwo mal nach den Spezifikationen für JSON-Blobs suchen, um rauszufinden, wie die reine Lehre aussieht. An sich würde ich annehmen, dass du zumindest insoweit recht hast, dass die Quotes entfallen dürfen.

Aber da es zum einen so in der Doku zu stehen scheint und zum zweiten auch in der Praxis funktioniert, würde ich das jetzt nicht um der reinen Lehre willen anpassen, selbst wenn es ohne auch funktioniert (was anzunehmen ist, da es mit brightness ja auch geht).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3671
  • ... wer sät, der erntet ...
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #64 am: 19 Oktober 2021, 13:24:17 »
ct_startup:coolest,cool,neutral,warmest,previous $DEVICETOPIC/set {"color_temp_startup":"$EVTPART1"}=>
ct_startup:coolest,cool,neutral,warmest,previous $\DEVICETOPIC/set {"color_temp_startup":"$EVTPART1"}

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3671
  • ... wer sät, der erntet ...
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #65 am: 20 Oktober 2021, 22:02:02 »
[OT]
Zitat
... irgendwo mal nach den Spezifikationen für JSON-Blobs suchen

Wo stehen denn für dich /euch die Spezifikationen, JSON.ORG ?, wenn mir dort jemand zeigt wo genau steht das ein in Quotes angegebener numerischer Wert ein String ist, bekommt er ein DANKE und einen Lolly dafür.
[/OT] :(

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24713
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #66 am: 20 Oktober 2021, 22:11:43 »
Zitat
wenn mir dort jemand zeigt wo genau steht das ein in Quotes angegebener numerischer Wert ein String ist, bekommt er ein DANKE und einen Lolly dafür.
Ich habe in der Suchmaschine "JSON specification numeric" eingegeben, und raus kam https://json-schema.org/understanding-json-schema/reference/numeric.html
Wenn man JavaScript etwas kennt, dann ist das auch natuerlich: "1"+1 => "11", 1+1=2, kann man leicht in der JS-Console des Browsers ausprobieren.
Informativ Informativ x 1 Liste anzeigen

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3671
  • ... wer sät, der erntet ...
Antw:mqtt2.speech.template:TINT GU-10 white
« Antwort #67 am: 20 Oktober 2021, 22:27:27 »
Zitat
Wenn man JavaScript etwas kennt

Noch nicht mal etwas, ich hab bisher erfolgreich einen großen Bogen drum gemacht, gefällt mir auch nicht wenn ich darüber nachdenke, aufgrund das (gerade) du das erwähnst , werd ich mich jetzt erst recht ab und an auch mal darin einlesen/damit befassen, bleibt offensichtlich nicht aus (auch ohne FHEM (-Forum)).

Danke