MQTT API neu geschrieben für Shelly

@Vincent
Grüss dich Vincent.

Bei den Shellys in der MQTT-API hat sich der Fehlerteufel eingeschlichen. Man kann Shellys nicht schalten. Damit auch User die mit Nodered nicht so zurecht kommen trotzdem Shellys nutzen können, habe ich den Bereich der Shellys neu geschrieben, er kann jetzt beide, also nach Einstellung der Firmware in der Config auf Shelly in der UI kann man jetzt gleichzeitig Shelly Gen1 und/oder Shelly Gen2 schalten. An den Tasmota Nodes habe ich nichts geändert.

Kannst ihn ja im nächsten Update austauschen.
Ganz Liebe Grüsse
Mikel

[{"id":"d113b81e25773863","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay1","links":["27bdb3ee.04bc8c"],"x":955,"y":540,"wires":[["eddbc0698331d762"]]},{"id":"8fab2276dcbb48be","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay2","links":["eb22399f.41d3c8"],"x":955,"y":620,"wires":[["3c6b2e99c74f3918"]]},{"id":"5d61775b489695b3","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay3","links":["60b06911.d6dea8"],"x":955,"y":700,"wires":[["49f6bf54e7831648"]]},{"id":"e575d3433d4e8658","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay4","links":["309e32c.0530fce"],"x":955,"y":780,"wires":[["758e945c4254e784"]]},{"id":"c9a582a125b51eda","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay5","links":["df5dc54968f5895e"],"x":955,"y":860,"wires":[["ce0b4e35c6dd7874"]]},{"id":"709449eb4426511d","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay6","links":["114eda8aabd9e2a7"],"x":955,"y":940,"wires":[["df39a5d975bd54ef"]]},{"id":"c82806f96bea15b7","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay7","links":["40212aac63b29d3e"],"x":955,"y":1020,"wires":[["509b6f242634a1d4"]]},{"id":"9cccb5bce801e824","type":"link in","z":"c3cb8d22035c2ef6","name":"Mqtt out WRelay8","links":["84f111f6cb530c4d"],"x":955,"y":1100,"wires":[["9ca33632aec5f84a"]]},{"id":"7de298c21c7f2b54","type":"comment","z":"c3cb8d22035c2ef6","name":"MQTT Output to Homebridge & Tasmota device (top MQTT out) & Shelly (bottom MQTT out)","info":"","x":1280,"y":480,"wires":[]},{"id":"eddbc0698331d762","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay1_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":540,"wires":[["87ab3010a0d4e7e0"],["f9daf713644b9078"]]},{"id":"3c6b2e99c74f3918","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay2_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":620,"wires":[["8bbb81bc98f2a266"],["d922a9bb4b44b4eb"]]},{"id":"49f6bf54e7831648","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay3_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":700,"wires":[["1a793fa08dc8702f"],["297cb7c0ea088566"]]},{"id":"758e945c4254e784","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay4_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":780,"wires":[["2cd59c71e8cd5ae5"],["20fe1779800f8e1c"]]},{"id":"ce0b4e35c6dd7874","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay5_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":860,"wires":[["9f3bebaeca92e0e6"],["415988611307b0b8"]]},{"id":"df39a5d975bd54ef","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay6_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":940,"wires":[["9e9d6ef01bc3e1b9"],["eccdd66656d1da45"]]},{"id":"509b6f242634a1d4","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay7_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":1020,"wires":[["16cb245e4c4ebe02"],["f1f5e4e6a66d30e3"]]},{"id":"9ca33632aec5f84a","type":"function","z":"c3cb8d22035c2ef6","name":"tasmota/shelly?","func":"var firmware = global.get(\"wrelay8_firmware\")\n\nif (firmware == \"tasmota\") {\n return [msg, null];\n}\n//return both to send command to homebridge and shelly\nelse if (firmware == \"shelly\") {\n return [msg, msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1100,"y":1100,"wires":[["fcd5a30dec7c1907"],["87c6b095167132f6"]]},{"id":"774d352f61edebe1","type":"function","z":"c3cb8d22035c2ef6","name":"get Weight","func":"msg.payload = global.get(\"Weight\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":1140,"wires":[["9ca33632aec5f84a"]]},{"id":"1b4985a844f0ad93","type":"function","z":"c3cb8d22035c2ef6","name":"get Wseven","func":"msg.payload = global.get(\"Wseven\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":1060,"wires":[["509b6f242634a1d4"]]},{"id":"cb2ac3513afcfb61","type":"function","z":"c3cb8d22035c2ef6","name":"get Wsix","func":"msg.payload = global.get(\"Wsix\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":980,"wires":[["df39a5d975bd54ef"]]},{"id":"e26f2e2167748577","type":"function","z":"c3cb8d22035c2ef6","name":"get Wfive","func":"msg.payload = global.get(\"Wfive\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":900,"wires":[["ce0b4e35c6dd7874"]]},{"id":"b8b8952964648830","type":"function","z":"c3cb8d22035c2ef6","name":"get Wfour","func":"msg.payload = global.get(\"Wfour\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":820,"wires":[["758e945c4254e784"]]},{"id":"908e4803f40dc59d","type":"function","z":"c3cb8d22035c2ef6","name":"get Wthree","func":"msg.payload = global.get(\"Wthree\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":910,"y":740,"wires":[["49f6bf54e7831648"]]},{"id":"068f9d9c0179a527","type":"function","z":"c3cb8d22035c2ef6","name":"get Wtwo","func":"msg.payload = global.get(\"Wtwo\")\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":660,"wires":[["3c6b2e99c74f3918"]]},{"id":"565ba5d0c553e960","type":"function","z":"c3cb8d22035c2ef6","name":"get Wone","func":"msg.payload = global.get(\"Wone\")\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":920,"y":580,"wires":[["eddbc0698331d762"]]},{"id":"5e19d819a981b5ba","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay1/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":520,"wires":[]},{"id":"278009c4a1cee868","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay2/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":600,"wires":[]},{"id":"73aa2a383f3c5e7d","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay3/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":680,"wires":[]},{"id":"93e3e1195400b8fa","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay4/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":760,"wires":[]},{"id":"a1eb10f85d9d320f","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay5/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":840,"wires":[]},{"id":"1c4c9bd6d19d71c0","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay6/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":920,"wires":[]},{"id":"bbe8a21a280d6ced","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay7/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":1000,"wires":[]},{"id":"63b5c912e561f029","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"","topic":"pkw/cmnd/wrelay8/POWER","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1600,"y":1080,"wires":[]},{"id":"87ab3010a0d4e7e0","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":520,"wires":[["5e19d819a981b5ba"]]},{"id":"8bbb81bc98f2a266","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":600,"wires":[["278009c4a1cee868"]]},{"id":"1a793fa08dc8702f","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":680,"wires":[["73aa2a383f3c5e7d"]]},{"id":"2cd59c71e8cd5ae5","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":760,"wires":[["93e3e1195400b8fa"]]},{"id":"9f3bebaeca92e0e6","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":840,"wires":[["a1eb10f85d9d320f"]]},{"id":"9e9d6ef01bc3e1b9","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":920,"wires":[["1c4c9bd6d19d71c0"]]},{"id":"16cb245e4c4ebe02","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":1000,"wires":[["bbe8a21a280d6ced"]]},{"id":"fcd5a30dec7c1907","type":"change","z":"c3cb8d22035c2ef6","name":"convert boolean to string","rules":[{"t":"change","p":"payload","pt":"msg","from":"true","fromt":"bool","to":"ON","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"false","fromt":"bool","to":"OFF","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":1080,"wires":[["63b5c912e561f029"]]},{"id":"d922a9bb4b44b4eb","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay2/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay2/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":640,"wires":[["85e2a424eae984ea"],["e069681967384f57"]]},{"id":"85e2a424eae984ea","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay2/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":620,"wires":[]},{"id":"e069681967384f57","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay2/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":660,"wires":[]},{"id":"297cb7c0ea088566","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay3/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay3/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":720,"wires":[["bffc2b22f17aeba1"],["1a07683c8ad185c0"]]},{"id":"20fe1779800f8e1c","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay4/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay4/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":800,"wires":[["f6487624957a6d70"],["dbbcec53c2eb0912"]]},{"id":"415988611307b0b8","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay5/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay5/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":880,"wires":[["a8a411d158da3005"],["feb7aac937501a3e"]]},{"id":"eccdd66656d1da45","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay6/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay6/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":960,"wires":[["475f925d0b0cb75a"],["30d637a98cdc9933"]]},{"id":"f1f5e4e6a66d30e3","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay7/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay7/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":1040,"wires":[["1d400ef09035bb98"],["fd8c30446f486114"]]},{"id":"87c6b095167132f6","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay8/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay8/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":1120,"wires":[["5a81a3f3e50b1ab6"],["a5650d67c0f33842"]]},{"id":"f9daf713644b9078","type":"function","z":"c3cb8d22035c2ef6","name":"shelly gen.1&2","func":"let bool = (msg.payload == \"true\" || msg.payload === true);\n\n// Nachricht für Shelly 1\nlet msg1 = {\n topic: \"shellies/shellyRelay1/relay/0/command\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Nachricht für Shelly 1 Plus\nlet msg2 = {\n topic: \"shellies/shellyRelay1/command/switch:0\",\n payload: bool ? \"on\" : \"off\"\n};\n\n// Beide Nachrichten senden\nreturn [msg1, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1360,"y":560,"wires":[["7a19d8c88c396cb1"],["6a0d469a734b7a15"]]},{"id":"7a19d8c88c396cb1","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay1/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":540,"wires":[]},{"id":"6a0d469a734b7a15","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay1/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":580,"wires":[]},{"id":"bffc2b22f17aeba1","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay3/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":700,"wires":[]},{"id":"1a07683c8ad185c0","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay3/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":740,"wires":[]},{"id":"f6487624957a6d70","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay4/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":780,"wires":[]},{"id":"dbbcec53c2eb0912","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay4/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":820,"wires":[]},{"id":"a8a411d158da3005","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay5/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":860,"wires":[]},{"id":"feb7aac937501a3e","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay5/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":900,"wires":[]},{"id":"475f925d0b0cb75a","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay6/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":940,"wires":[]},{"id":"30d637a98cdc9933","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay6/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":980,"wires":[]},{"id":"1d400ef09035bb98","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay7/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":1020,"wires":[]},{"id":"fd8c30446f486114","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay7/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":1060,"wires":[]},{"id":"5a81a3f3e50b1ab6","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1","topic":"shellies/shellyRelay8/relay/0/command","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1880,"y":1100,"wires":[]},{"id":"a5650d67c0f33842","type":"mqtt out","z":"c3cb8d22035c2ef6","name":"MQTT Shelly 1 Plus","topic":"shellies/shellyRelay8/command/switch:0","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"acb753d1b1ee6d78","x":1900,"y":1140,"wires":[]},{"id":"0ddb07c65cbb68bc","type":"mqtt-broker","name":"","broker":"http://localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"acb753d1b1ee6d78","type":"mqtt-broker","name":"","broker":"http://localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]
5 Likes

@Mikel @F_L_I_P_P

Also ich habs jetzt nochmal getestet mit einem Shelly Mini Gen.3.

Sowohl der Command von dir/euch, aber auch der bereits eingetragene RPC Command funktionieren (“RPC over MQTT” muss aktiviert sein im Shelly, war bei mir standardmäßig aber aktiv).

Was nicht mehr funktioniert ist die Antwort vom Shelly, also dass der aktuelle Status in VanPi angezeigt wird, wenn man z.B. über Shelly direkt schaltet, da muss das Topic entsprechend angepasst werden, weil Shelly das anscheinend mal geändert hat.

Ich bin mir aber ziemlich sicher, dass es eine Shelly Firmware gab, bei der die “normalen” MQTT Befehle so nicht funktioniert haben, weswegen wir den komplizierteren Weg über RPC gewählt hatten.
Könnt ihr bitte mal probieren, ob RPC bei euch funktioniert? Also topic shellies/shellyRelay2/rpc und payload (json) {"id":0,"src":"shellyRelay2/rpc-response", "method": "Switch.Set", "params":{"id":0,"on":true}}

Ansonsten wäre mein Ansatz jetzt, einfach alle drei Befehle zu schicken (Gen1 MQTT, Gen2+ MQTT und RPC), da wir ja nicht togglen sondern konkret an- oder ausschalten sollte nichts weiter passieren falls der Befehl zweimal beim Schelly ankommt. Und für die Antwort subscriben wir auch einfach zu drei verschiedenen Topics, dann sollten alle Shelly Generationen wieder funktionieren. Also je nachdem ob man die Antwort über RPC bekommt oder über Standard MQTT.

Moin @Vincent Ich habe es noch mal probiert. Ich habe nur Shelly der ersten und zweiten Generation. Shelly 1. Generation schaltet ohne irgendwelche Änderung in der original Firmware! Shelly der 2. Generation schalten wenn auf dem jeweiligen Shelly “RPC over MQTT” aktiviert ist.
Man muss also wissen welcher Shelly wo verbaut ist.
Mit meinen Änderungen schalten ohne Änderung alle Shellys, sogar wenn man eine der 1. und einen der 2. Generation gleichzeitig auf einen Schalter legt.

Wenn man schaltet sieht man keine Änderungen in der jeweils anderen App, bei keiner der beiden MQTT Api Flows.
Schönen Sonntag noch!