defmod MQTT2_zigbee_bridge MQTT2_DEVICE zigbee_bridge
attr MQTT2_zigbee_bridge DbLogExclude .+
attr MQTT2_zigbee_bridge IODev m2s
attr MQTT2_zigbee_bridge autocreate 0
attr MQTT2_zigbee_bridge bridgeRegexp zigbee2mqtt/((?!bridge)[A-Za-z0-9._]+)/?.*:.* "zigbee_$1"
attr MQTT2_zigbee_bridge comment To check for new updates of the deamon software, you might want to use a separate HTTPMOD device. See HTTPMOD template zigbee2mqtt_daemon_updates for further details.
attr MQTT2_zigbee_bridge devicetopic zigbee2mqtt
attr MQTT2_zigbee_bridge event-on-change-reading state
attr MQTT2_zigbee_bridge getList networkmap_raw:noArg raw $DEVICETOPIC/bridge/request/networkmap raw\
networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/request/networkmap graphviz
attr MQTT2_zigbee_bridge group Bridges
attr MQTT2_zigbee_bridge icon mqtt_bridge_1
attr MQTT2_zigbee_bridge model zigbee2mqtt_bridge
attr MQTT2_zigbee_bridge readingList $DEVICETOPIC/bridge/state:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/bridge/config/devices:.* {}\
$DEVICETOPIC/bridge/config/log_level:.* log_level\
$DEVICETOPIC/bridge/config/permit_join:.* permit_join\
$DEVICETOPIC/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }\
$DEVICETOPIC/bridge/config:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/bridge/log:.* log\
$DEVICETOPIC/bridge/logging:.* {}\
$DEVICETOPIC/bridge/response/networkmap:.* { my $type = $EVENT =~ /.*,"type":"(raw|graphviz)",.*/ ? $1 : 'networkmap';; $EVENT =~ /{"data":\{.*"value":"?(.*[^"])"?\},"status":"ok"\}/ ? { $type=>$1 } : {} }\
$DEVICETOPIC/bridge/event:.* {}\
$DEVICETOPIC/bridge/extensions:.* {}\
$DEVICETOPIC/bridge/response/permit_join:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/bridge/info:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/bridge/health:.* {}
attr MQTT2_zigbee_bridge room Module->MQTT2_DEVICE,Technik
attr MQTT2_zigbee_bridge setList log_level:debug,info,warn,error $DEVICETOPIC/bridge/config/log_level $EVTPART1\
permit_join:true,false $DEVICETOPIC/bridge/request/permit_join $EVTPART1\
remove:textField $DEVICETOPIC/bridge/config/remove $EVTPART1\
ota_update:textField $DEVICETOPIC/bridge/ota_update/update $EVTPART1\
ota_update_check:textField $DEVICETOPIC/bridge/ota_update/check $EVTPART1\
y_device_setting:textField $DEVICETOPIC/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}\
x_bind:textField $DEVICETOPIC/bridge/bind/$EVTPART1 $EVTPART2\
x_bind_unbind:textField $DEVICETOPIC/bridge/unbind/$EVTPART1 $EVTPART2\
x_device_options:textField $DEVICETOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1","options": {"$EVTPART2": "$EVTPART3"}}\
x_group_add_to:textField $DEVICETOPIC/bridge/group/$EVTPART1/add $EVTPART2\
x_group_rm_from:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove $EVTPART2\
x_group_rm_from_all:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove_all $EVTPART2\
x_group_add_group:textField $DEVICETOPIC/bridge/config/add_group $EVTPART1\
x_group_rm_group:textField $DEVICETOPIC/bridge/config/remove_group $EVTPART1\
z_elapsed:textField $DEVICETOPIC/bridge/config/elapsed $EVTPART1\
z_last_seen:disable,ISO_8601,epoch,ISO_8601_local $DEVICETOPIC/bridge/config/last_seen $EVTPART1\
z_ban:textField $DEVICETOPIC/bridge/config/ban $EVTPART1\
z_rename:textField $DEVICETOPIC/bridge/config/rename {"old":"$EVTPART1","new":"$EVTPART2"}\
z_reset_CC:noArg $DEVICETOPIC/bridge/config/reset
attr MQTT2_zigbee_bridge verbose 2define Lichtvoute MQTT2_DEVICE shellyplusrgbwpm-30c92258cc98
attr Lichtvoute devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot':'10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = FW_makeImage(ReadingsVal($name,'state','off'));; my $cons = ReadingsNum($name,'apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,3);; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; my $reb = ReadingsVal($name,'sys_restart_required','false') eq 'true'?'<a href="/fhem?cmd.dummy=set '.$name.' x_reboot&XHR=1"> ... Notwendigen Reboot durchführen</a>':'';; qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a>$reb<div>Verbrauch: $cons W / Total: $total kwh / Temp: $temp °C</div>)}
attr Lichtvoute devicetopic zuhause/1OG/Buero/lichtvoute
attr Lichtvoute event-min-interval .*:3600
attr Lichtvoute event-on-change-reading .*
attr Lichtvoute event-on-update-reading .*
attr Lichtvoute genericDeviceType light
attr Lichtvoute icon light_control
attr Lichtvoute jsonMap rgb_1:rot rgb_2:green rgb_3:blue rgb_4:white aenergy_total:aenergy_total temperature_tC:temperature temperature_tF:0 params_wifi_sta_ip:ip result_in_mode:in_mode brightness:pct\
attr Lichtvoute model shellyPlus_1pm
attr Lichtvoute readingList $DEVICETOPIC/status/rgbw_0:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/online:.* online\
$DEVICETOPIC/status/wifi:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/status/plusrgbwpm:.* plusrgbwpm\
$DEVICETOPIC/status/sys:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/events/rpc:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Lichtvoute room Buero,MQTT2_DEVICE
attr Lichtvoute setList toggle:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Toggle","params": {"id":0}}\
off:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":false}}\
on:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true}}\
rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/;;my @a=(hex($1),hex($2),hex($3));;if($1 ne $2 || $2 ne $3) {qq($DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"white":0,"rgb":[$a[0],$a[1],$a[2]]}})}else{qq($DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"white":255,"rgb":[$a[0],$a[1],$a[2]]}})}}\
white:colorpicker,BRI,0,5,255 $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"white":$EVTPART1}}\\
pct:colorpicker,BRI,0,5,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"brightness":$EVTPART1}}\\
transition_duration:colorpicker,BRI,1,1,10 $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"transition_duration":$EVTPART1}}\\
toggle_after:colorpicker,BRI,1,1,10 $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\\
on-for-timer $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"on":true,"toggle_after":$EVTPART1}}\
brightness:colorpicker,BRI,0,1,100 $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"RGBW.Set","params": {"id":0,"brightness":$EVTPART1}}\
x_update:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Shelly.Update","params": {"stage":"stable"}}\
x_reboot:noArg $DEVICETOPIC/rpc {"id":0,"src":"fhem","method":"Shelly.Reboot"}\
attr Lichtvoute userReadings state {(ReadingsVal("Lichtvoute","output","false") eq "true") ? "on" : "off"}
attr Lichtvoute webCmd on:off:white:rgb
Zitat von: marvin78 am 23 März 2021, 19:01:55Bitte schauen, was inotify leisten kann. Gemountete (remote) Ordner können nicht überwacht werden.
set attrTemplate shelly2rgbw_color (so habe ich es zumindest in einem Youtube-Video gefunden, welches genau für diesen Shelly-Typ die Einbindung per MQTT zeigt).