From 8277a0ef7c3f4176d71c0eadb72b4a31d7789a44 Mon Sep 17 00:00:00 2001 From: Beta-User Date: Sat, 16 Jan 2021 15:17:04 +0000 Subject: [PATCH] general_use.template:add showcase for MGB sidekicking git-svn-id: https://svn.fhem.de/fhem/trunk@23528 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- .../lib/AttrTemplate/general_use.template | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/fhem/FHEM/lib/AttrTemplate/general_use.template b/fhem/FHEM/lib/AttrTemplate/general_use.template index 232e7d239..f85a537ce 100644 --- a/fhem/FHEM/lib/AttrTemplate/general_use.template +++ b/fhem/FHEM/lib/AttrTemplate/general_use.template @@ -127,3 +127,53 @@ setreading DEVICE_CH8 associatedWith DEVICE,DEVICE_CH1,DEVICE_CH2,DEVICE_CH3,DEV option:{1} show DEVICE.* + + +################## +## MQTT_GENERIC_BRIDGE section +## +name:mgb_thermostat +prereq:{my @devices=devspec2array("TYPE=dummy");return 1 if $devices[0];return 0} +filter:TYPE=dummy +desc:This template is a first showcase for use of AttrTemplate in MQTT_GENERIC_BRIDGE usage context.
NOTE: Early testing version, see https://forum.fhem.de/index.php/topic,117423.0.html for details.
Might still need some changes! +order:A_10000 +par:TARGETDEV;Pls enter name of the device you want to put under MQTT_GENERIC_BRIDGE controll;{ undef } +par:RADIO_SENDNOREADINGS;Do not send any readings from device to MQTT server;{ undef } +par:RADIO_SENDBASICREADINGS;Send only basic readings (desired-temp and temperature) to MQTT server;{ undef } +par:RADIO_SENDALLREADINGS;Send all Readings from device to MQTT server (not recommended);{ undef } +par:MQTTPREFIX;prefix used in MGB (soll später aus dem aufrufenden Device automatisch ermittelt werden);{ my @devices=devspec2array("TYPE=MQTT_GENERIC_BRIDGE");;return undef if !$devices[0];;InternalVal($devices[0],'prefix',undef) } +par:TRGETDEVTYPE;TYPE of target device;{ InternalVal("TARGETDEV",'TYPE',undef) } + +option:global +set DEVICE attrTemplate mgb_thermostat_with_params \TARGETDEV=TARGETDEV \TRGETDEVTYPE=TRGETDEVTYPE SENDNOREADINGS=RADIO_SENDNOREADINGS SENDBASICREADINGS=RADIO_SENDBASICREADINGS SENDALLREADINGS=RADIO_SENDALLREADINGS \MQTTPREFIX=MQTTPREFIX + + +name:mgb_thermostat_with_params +order:A_10000w +prereq:{my @devices=devspec2array("TYPE=dummy");return 1 if $devices[0];return 0} +filter:NAME=mgbTesting +par:TARGETDEV;Pls enter name of the device you want to put under MQTT_GENERIC_BRIDGE controll;{ undef } +par:SENDNOREADINGS;Do not send any readings from device to MQTT server;{ 0 } +par:SENDBASICREADINGS;Send only basic readings (desired-temp and temperature) to MQTT server;{ 0 } +par:SENDALLREADINGS;Send all Readings from device to MQTT server (not recommended);{ 0 } +par:MQTTPREFIX;prefix used in MGB (soll später aus dem aufrufenden Device automatisch ermittelt werden);{ my @devices=devspec2array("TYPE=MQTT_GENERIC_BRIDGE");return undef if !$devices[0];InternalVal($devices[0],'prefix',undef) } +par:TRGETDEVTYPE;TYPE of target device;{ InternalVal("TARGETDEV",'TYPE',undef) } + +attr TARGETDEV MQTTPREFIXSubscribe desired-temp:stopic={"$base/$name"} + +option:{SENDNOREADINGS} +deleteattr TARGETDEV MQTTPREFIXPublish + +option:{ SENDBASICREADINGS && "TRGETDEVTYPE" eq "ZWave" } +attr TARGETDEV MQTTPREFIXPublish desired-temp|temperature:topic={"$base/$name"} temperature:expression={$value=~m,(-?\d+(\.\d+)?),?::round($1,1):undef} + +option:{ SENDBASICREADINGS && "TRGETDEVTYPE" eq "CUL_HM" } +attr TARGETDEV MQTTPREFIXAlias pub:measured-temp=temperature +attr TARGETDEV MQTTPREFIXPublish desired-temp|measured-temp:topic={"$base/$name"} + +option:{ SENDALLREADINGS && "TRGETDEVTYPE" eq "ZWave" } +attr TARGETDEV MQTTPREFIXPublish *:topic={"$base/$name"} temperature:expression={$value=~m,(-?\d+(\.\d+)?),?::round($1,1):undef} + +option:{ SENDALLREADINGS && "TRGETDEVTYPE" eq "CUL_HM" } +attr TARGETDEV MQTTPREFIXAlias pub:measured-temp=temperature +attr TARGETDEV MQTTPREFIXPublish *:topic={"$base/$name"}