From a1883af968f69a296242c36d411e025f3f6d3717 Mon Sep 17 00:00:00 2001
From: hexenmeister
When using 'stopic', the 'set' command is executed as 'set <dev> <reading> <value>'.
For something like 'set <dev> <value>' 'state' should be used as reading-name.
The often requested JSON support can be easily realized with the help of 'expression'. + An already existing method in fhem.pl (json2nameValue) works well. The parameter should be '$message'.
Examples:
attr <dev> mqttSubscribe temperature:topic=/TEST/temperature test:qos=0 *:topic={"/TEST/$reading/value"}
attr <dev> mqttSubscribe desired-temperature:stopic={"/TEST/temperature/set"}
@@ -2670,6 +2679,7 @@ sub onmessage($$$) {
attr <dev> mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={$value="x"}
attr <dev> mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={"R1"=>$value, "R2"=>"Val: $value", "R3"=>"x"}
attr <dev> mqttSubscribe verbose:atopic={"/TEST/light/verbose"}
+ attr <dev> mqttSubscribe json:topic=/XTEST/json json:expression={json2nameValue($message)}
Die oft angefragte JSON-Unterstützung kann einfach mit Hilfe von 'expression' realisiert werden. + Dafür eignet sich eine in fhem.pl bereits vorhandene Methode: json2nameValue. Als Parameter soll $message verwendet werden.
Beispiele:
attr <dev> mqttSubscribe temperature:topic=/TEST/temperature test:qos=0 *:topic={"/TEST/$reading/value"}
attr <dev> mqttSubscribe desired-temperature:stopic={"/TEST/temperature/set"}
@@ -3061,6 +3073,7 @@ sub onmessage($$$) {
attr <dev> mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={$value="x"}
attr <dev> mqttSubscribe state:stopic={"/TEST/light/set"} state:expression={"R1"=>$value, "R2"=>"Val: $value", "R3"=>"x"}
attr <dev> mqttSubscribe verbose:atopic={"/TEST/light/verbose"}
+ attr <dev> mqttSubscribe json:topic=/XTEST/json json:expression={json2nameValue($message)}