Jan_Stfbg
Das Prinzip (zum Verstehen) der MQTT Kommunikation per Shelly Generation 2+ Firmware: Request and Response
- HomeMatic muss eine MQTT Nachricht senden mit
a) einem Identifier zwecks eindeutiger Zuordnung der Shelly Antwort zur gesendeten Nachricht,
b) eine Quellenangabe, hier das HomeMatic, welche in der Shelly Antwort als Pre-Topic verwendet wird,
c) die RPC Methode, ggf. ergänzt durch Parameter - Die Shelly Firmware wird wie folgt antworten, wenn Request verarbeitet werden konnte.
Topic: <Quellenangabe aus 1.b)>/rpc, Payload: eine Information zur Verarbeitung des Request
Beispiel (unabhängig von HomeMatic):
zu 1. MQTT Request Nachricht:
Topic: <im Shelly eingetragenes MQTT prefix>/rpc
Payload: '{"id":"mein_Versuch","src":"aha/so_gehts/also","method":"switch.set","params":{"id":0,"on":true}}'
Die Payload lässt den Ausgang 0 einschalten.
zu 2. MQTT Response Nachricht vom Shelly:
Topic: "aha/so_gehts/also/rpc"
Payload: '"result":{"was_on":false}' ... und weiteres wie der "id" Wert "mein_Versuch" ...
wenn vor dem Einschalten ausgeschaltet war.
Vielleicht habe ich eine kleine Abweichung in der MQTT Response eingebaut, was aber wenig relevant ist. Alles andere dürfte stimmen und die Antwort ist per Topic leicht überprüfbar.
Vermutlich baut HomeMatic seinen eigenen "src" Wert ein.
Edit:
Vermutlich ließe sich notfalls ein Adapter per Node-RED Flow implementieren. Blockly ist nicht meins - zuviel drumherum für wenig Code. Ich glaube in HomeMatic heißt es statt Node-RED "Red-Matic".