mqtt2.template: Contributing

Begonnen von Beta-User, 15 Dezember 2018, 11:45:40

Vorheriges Thema - Nächstes Thema

Beta-User

#15
Zu dem Magichome RGBW-Controller:
- So ganz will mir das mit den userreadings-Anweisungen nicht einleuchten. Es ist doppelt (im Ergebnis also nur das letzte maßgebend, und dann wird eigentlich nur das Reading "Color" nach "rgb" gedoppelt; soweit erkennbar, gibt es kein Reading für die Helligheit. Müßte ganz ohne userreadings doch eigentlich auch so gehen:attr DEVICE devStateIcon {Color::devStateIcon($name,"color","color","state")}
- Was das mit POWER, POWER1 usw. angeht, haben wir für andere Tasmota-Varianten da vorab eine Umstellung (mit einem innerhalb des templates zuerst angewendeten anderen template) vorgenommen, dass immer POWER1 verwendet wird und der Status klein geschrieben zurückkommt usw.. Würde das hier auch Sinn machen, v.a. um die beschriebenen Probleme mit unterschiedlichen ESP's zu vermeiden?

Udate:
habe das als template ins svn geladen mit den genannten Änderungen. Wäre nett, wenn du das kurz testen könntest :) .
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Hallo,

hab die letzten etlichen Stunden mit einem Shelly RGBW2 gespielt und dabei auch erste Gehversuche mit den MQTT-Templates gemacht. Hier das Ergebnis.
Bitteschön aber nicht in die Liste integrieren. Das war nur so ein Versuch. Ich lasse den einfach hier stehen, falls jemand (oder ich) damit weitertun möchte.

Shelly ist auf "weiß" konfiguriert (spricht die vier Kanäle als weiße Leuchten an), das "Template" gilt nur für Kanal 0.


# shellyrgbw2 white-channel 0 only using original firmware
name:A_16_shellyrgbw2_white_c0
filter:TYPE=MQTT2_DEVICE
desc:shellyrgbw2 using white-channel 0 only with original firmware
par:DEVNAME;name of this shelly;{ AttrVal("DEVICE","readingList","") =~ m,shellies/([^/]+)/, ? $1 : undef }
attr DEVICE setList\
on:noArg shellies/DEVNAME/white/0/command on\
off:noArg shellies/DEVNAME/white/0/command off\
brightness:colorpicker,BRI,0,1,100 shellies/DEVNAME/white/0/set {"$EVTPART0":"$EVTPART1"}
deletereading DEVICE status_.*
attr DEVICE readingList\
shellies/DEVNAME/white/0:.* { state=>$EVTPART0 }\
shellies/DEVNAME/white/0/status:.* {json2nameValue($EVENT)}
attr DEVICE webCmd toggle:on:off:brightness
attr DEVICE genericDeviceType light
attr DEVICE model A_16_shellyrgbw2_white_c0

Capu

So... Nachdem das Brett vor dem Kopf weg ist  ;)

WXKG12LM - Xiaomi Aqara wireless switch (with gyroscope)
name:L_12_zigbee2mqtt_Wireless_Button
desc: Wireless button via zigbee2mqtt <br>Tested with: Xiaomi Aqara WXKG12LM wireless switch with gyroscope
filter:TYPE=MQTT2_DEVICE
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
attr DEVICE stateFormat Click: click Action: action
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
deletereading DEVICE .*
attr DEVICE model L_12_Wireless_Button


@luke666s, @Beta-User
Das "Aqara" ohne "u" ;)

Server: Raspberry 3B+ - USB-SSD (Raspian Stretch) - HM-MOD-RPI-PCB - 433MHz@GPIO - MQTT2
Support: Raspberry (Raspian Stretch) - lepresenced - slaesh's CC2652RB - zigbee2mqtt
Stuff: HM-Thermostate, -Dimmer, -Schalter, -Fensterkontakte, 433MHz-"Baumarktsteckdosen", Aqara Sensoren/Switches

TomLee

Hallo,

stehe gerade etwas auf dem Schlauch, wo steht/sieht man denn die Beschreibung/Description/desc: die man im Template angibt.
War der Meinung der Inhalt steht später dann über Replace, ist aber nicht so.

Gruß

Thomas

Beta-User

Zitat von: TomLee am 11 März 2019, 12:57:39
stehe gerade etwas auf dem Schlauch, wo steht/sieht man denn die Beschreibung/Description/desc: die man im Template angibt.
War der Meinung der Inhalt steht später dann über Replace, ist aber nicht so.
Die Frage wäre m.E. besser hier aufgehoben gewesen: https://forum.fhem.de/index.php/topic,94494.msg872200.html#msg872200 (bzw. es handelt sich ggf. sogar um eine ganz allgemeine Frage zum ganzen...)

Grundsätzlich gehört immer zusammen, was ab "name:" bis vor das nächste "name:" steht.
"desc:" ist das, was als Beschreibung bei Aufruf von ? erscheint.

Was mit Replace gemeint ist, kann ich nur raten:
Wenn man irgendeine Variable vorab mit Inhalt füllen will, der dann in den nachfolgenden Zeilen statt der Variable eingesetzt werden soll, macht man das mit "par: ...". Dabei ist die Syntax: VARIABLENNAME;Hinweistext, der in einem Dialogfeld zur Erstetzen im Aufruf erscheint, wenn die hinter dem nächsten Trenner (";") stehende Perl-Funktion "undef" zurückgibt. Wird was anderes als undef (oder vielleicht ""?) zurüchgeliefert, wird das direkt und ohne weitere Rückfrage übernommen.

Wenn das in der Form noch nicht weiterhilft, bitte in den anderen Thread ausweichen!
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Capu

Mahlzeit... Hätte da noch zwei Aqaras

Xiaomi Aqara WXKG11LM wireless button (older, without gyro | single, double, triple, quadruple click)
name:L_13_zigbee2mqtt_wireless_button_old
desc: Wireless button without gyro via zigbee2mqtt <br>Tested with: Xiaomi Aqara WXKG11LM wireless button
filter:TYPE=MQTT2_DEVICE
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
attr DEVICE stateFormat Click: click
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
deletereading DEVICE .*
attr DEVICE model L_13_wireless_button_old


Xiaomi Mi/Aqara MFKZQ01LM smart home cube (shake, wakeup, slide, flip180, flip90, rotate_left and rotate_right)
name:L_14_zigbee2mqtt_aqara_cube
desc: Aqara smarthome cube via zigbee2mqtt <br>Tested with: Xiaomi Aqara MFKZQ01LM smarthome cube
filter:TYPE=MQTT2_DEVICE
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
attr DEVICE stateFormat Action: action
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
deletereading DEVICE .*
attr DEVICE model L_14_aqara_cube
Server: Raspberry 3B+ - USB-SSD (Raspian Stretch) - HM-MOD-RPI-PCB - 433MHz@GPIO - MQTT2
Support: Raspberry (Raspian Stretch) - lepresenced - slaesh's CC2652RB - zigbee2mqtt
Stuff: HM-Thermostate, -Dimmer, -Schalter, -Fensterkontakte, 433MHz-"Baumarktsteckdosen", Aqara Sensoren/Switches

Capu

#21
Guten Morgen zusammen,
hab speziell für die Müller Licht/MLI/Aldi "tint" Leuchten noch ein Template erstellt. RGBW Leuchte mit Farbauswahl und Farbtemperaturauswahl bei weißem Licht.


name:L_02d_zigbee2mqtt_light_MLItint
filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*
desc: MuellerLight/MLI/Aldi tint RGBW bulb connected via zigbee2mqtt <br>tested with Mueller Light tint RGBW bulb
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
attr DEVICE icon hue_filled_white_and_color_e27_b22
attr DEVICE stateFormat {lc ReadingsVal("$name","state",0)}
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:color_temp:white:bright:color
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
attr DEVICE setList \
  on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
  off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
  white:noArg BASE_TOPIC/DEV_ID/set {"brightness": 200 , "color_temp": 320}\
  bright:noArg BASE_TOPIC/DEV_ID/set {"brightness": 254, "color_temp": 250}\
  color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/DEV_ID/set {"$EVTPART0":"$EVTPART1"}\
  brightness:colorpicker,BRI,0,5,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  color:colorpicker,HEX,0,15,255 BASE_TOPIC/DEV_ID/set {"color":{"$EVTPART0":"#$EVTPART1"}}
attr DEVICE model L_02d_zigbee2mqtt_light_MLItint


Vielleicht kann das ja noch jemand gebrauchen ;)
Viel Spaß damit!

Danke auch an Nenno für die initialen Logs :)


UPDATE:
Sorry, grad gemerkt das ich die falsche (Test-)Version eingestellt hab! :(

DAS ist die Richtige!
name:L_02d_zigbee2mqtt_light_MLItint
filter:TYPE=MQTT2_DEVICE:FILTER=CID=zigbee.*
desc: MuellerLight/MLI/Aldi tint RGBW bulb connected via zigbee2mqtt <br>tested with Mueller Light tint RGBW bulb
par:BASE_TOPIC;base topic as set in configuration.yaml of the zigbee2mqtt bridge in the topics;{ AttrVal("DEVICE","readingList","") =~ m,([^/]+)[/].*:, ? $1 : undef }
par:DEV_ID;name of the device in the zigbee2mqtt bridge;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/]([^/]+).*:, ? $1 : undef }
attr DEVICE icon hue_filled_white_and_color_e27_b22
attr DEVICE stateFormat {lc ReadingsVal("$name","state",0)}
attr DEVICE devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr DEVICE webCmd toggle:on:off:brightness:color_temp:warm:white:hex
attr DEVICE readingList BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
attr DEVICE setList \
  on:noArg BASE_TOPIC/DEV_ID/set {"state":"ON"}\
  off:noArg BASE_TOPIC/DEV_ID/set {"state":"OFF"}\
  warm:noArg BASE_TOPIC/DEV_ID/set {"brightness": 200 , "color_temp": 360}\
  white:noArg BASE_TOPIC/DEV_ID/set {"brightness": 254, "color_temp": 250}\
  color_temp:colorpicker,CT,250,1,454 BASE_TOPIC/DEV_ID/set {"$EVTPART0":"$EVTPART1"}\
  brightness:colorpicker,BRI,0,5,255 BASE_TOPIC/DEV_ID/set {"state":"on","$EVTPART0":"$EVTPART1"}\
  hex:colorpicker,HEX,0,15,255 BASE_TOPIC/DEV_ID/set {"color":{"$EVTPART0":"#$EVTPART1"}}
attr DEVICE model L_02d_zigbee2mqtt_light_MLItint


Nachtrag 21.03.2019: Nochmal leicht abgeändert das Template, so werden die beiden "presets" vielleicht deutlicher vom Verständnis.
Server: Raspberry 3B+ - USB-SSD (Raspian Stretch) - HM-MOD-RPI-PCB - 433MHz@GPIO - MQTT2
Support: Raspberry (Raspian Stretch) - lepresenced - slaesh's CC2652RB - zigbee2mqtt
Stuff: HM-Thermostate, -Dimmer, -Schalter, -Fensterkontakte, 433MHz-"Baumarktsteckdosen", Aqara Sensoren/Switches

Beta-User

So,

jetzt habe ich die tint nochmal ausgepackt und ein wenig am Testsystem rumgebastelt.

Das "Müller"-template ist nach unserer Nomenklatur eigentlich ein verbessertes rgbw-hex, als solches ist es jetzt mit den Presets zu finden; leider war bei meinem Testsystem Color nicht geladen, aber bei den Systemen, bei denen das irgendwo schon läuft, sollte auch die hex-Rückwärtsauswertung einigermaßen passen...



Dazu gibt's auch zwei neue tastmota-templates für einen Rollladenmodus von 87insane.
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

vbs

Hi Beta-User,

wenn du es auch sinnvoll findest: würdest du evtl. die bridgeRegexp von "L_01_zigbee2mqtt_bridge" um den Unterstrich (und evtl. andere Trenner erweitern):

attr env_zigbee bridgeRegexp zigbee2mqtt/([A-Za-z0-9_]*)[/]?.*:.* "zigbee_$1"

Quelle:
https://forum.fhem.de/index.php/topic,99800.0.html

Cube

Es wäre sinnvoll im tasmota_rgb_led_controller-Template die setList noch um die Möglichkeit den Dimmer-Wert einzustellen zu ergänzen:


attr DEVICE setList\
  off:noArg CMNDTOPIC/POWER1 0\
  on:noArg CMNDTOPIC/POWER1 1\
  toggle:noArg CMNDTOPIC/POWER1 2\
  Color:colorpicker,RGB CMNDTOPIC/COLOR\
  Dimmer:colorpicker,BRI,0,5,100 CMNDTOPIC/DIMMER


Ich vermisse außerdem Templates für mit Espurna angebundene LEDs. Arbeitet da schon jemand dran? Ansonsten würde ich mir das vielleicht mal bei Gelegenheit anschauen.

Beta-User

Thx, die Dimmer-Option ist im svn. Bei der Gelegenheit: das Color-devStateIcon kennt doch auch ein Brightness-Reading, wenn ich das richtig im Kopf habe. Entsprechend noch anpassen?

Espurna hatte ich bisher nicht auf dem Radar, können wir aber gerne aufnehmen. Wenn möglich bitte bei der Gelegenheit auch um Info, wie die bridgeRegexp im General-Bridge-template zu erweitern wäre (auf die Schnelle scheint es aber keinen eindeutigen "Espurna-Kenner" zu geben => geht nicht). Wenn es dazu was zu diskutieren gibt, bitte einen separaten Thread aufmachen :) . Dieser hier soll "schlank" bleiben...
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Cube

Zitat von: Beta-User am 09 Mai 2019, 07:24:11
Thx, die Dimmer-Option ist im svn. Bei der Gelegenheit: das Color-devStateIcon kennt doch auch ein Brightness-Reading, wenn ich das richtig im Kopf habe. Entsprechend noch anpassen?

Stimmt, das sollte man wie folgt ändern:
attr DEVICE devStateIcon {Color::devStateIcon($name,"rgb","Color","Dimmer","POWER")}

Zur Zeit bekomme ich beim Versuch das Template zu aktivieren übrigens folgende Fehlermeldung:
Unknown template_entry_name A_01z_tasmota_set_lowercase_texts_and_state1_nF

Beta-User

Danke für den Hinweis zum kaputten internen Verweis, habe ich gefixt. Dadurch dürfte auch das Reading POWER1 relevant werden, hab's gleich entsprechend angepaßt und bitte ggf. um Rückmeldung, wenn es nicht funktioniert.
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Cube

Im Template für die zigbee2mqtt-Bridge ist in der setList bei y_device_setting eine Klammer zu viel, wodurch das Template nicht komplett angewendet wird.

Beta-User

Thx, update folgt (vermutlich vor morgen früh!)
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files