NEWS
MQTT Befehl per Blockly oder Node-Red senden?
-
Hallo Kollegen,
ich habe es endlich geschafft, mit dem MaestroGateway (https://github.com/Chibald/maestrogateway), meinen Pelletofen MCZ Air Up auszulesen und die Daten per MQTT in IoBroker zu bekommen. Ich kenne das bei MQTT, dass der SUB sich am Broker meldet und die Datenpunkte bereitstellt, die ich dann ändern kann, dass Passiert hier nicht. Laut Anleitung muss ich ein MQTT Befehl im Json Format senden (Temperatur auf 20,5 Grad einstellen: { "Command": "Temperature_Setpoint", "Value": "20.5"}), ich habe aber keine Ahnung wie ich das machen kann. Kann mir jemand weiter helfen und erklären wie ich das mache?Lg Denis
-
@buzii12 Du brauchst einen mqtt-Broker, den Du ja auch in Deinem MaestroGateway angegeben hast. Entweder Du nutzt mosquitto oder den mqtt-Adapter als Server. JSON ist einfach das Standardformat um Javascript Objekte zu transportieren. Das geht zumindest mit JS, Blockly e und NodeRed easy. Hängt halt davon ab was Du nutzt.
Erst musst Du aber ja mal Deine mqtt Infrastruktur aufbauen oder vielleicht hast Du die ja schon. Wenn es dann nur noch darum geht einen JSON String mit Node Red zu verschicken dann kann ich Dir gerne weiterhelfen, wenn es soweit ist.
-
@mickym Hi, eine MQTT Infrastruktur habe ich im IoBroker, darüber bekomme ich auch die Werte vom Ofen als Datenpunkte in IoBroker angezeigt. Ich habe sonst Sensoren und Aktoren mit ESP8266 gebaut, die melden die Datenpunkte beim MQTT Server an und ich bekomme sie direkt als Datenpunkt im IoBroker angezeigt. Wenn es ein SUB ist kann ich direkt den Wert ändern, aber das mit Mqtt-Json direkt kapiere ich nicht. Blockly und Node-Red habe ich auf meinem IoBroker habe ich laufen. Für jegliche Tipps wäre ich dankbar.
LG -
@buzii12 Nun Du musst halt noch wissen auf welches Topic gehört wird. Diesen Datenpunkt legst Du dann in Deinem MQTT-Adapter an. Das ist dann quasi das Topic wohin Du Deinen JSON sendest.
Ausgangspunkt ist quasi immer ein Javascript Objekt.
In NodeRed kannst Du Deine payload mit den 2 geforderten Eigenschaften einfach definieren. Ich mach es jetzt mal bewusst nicht als JSON Eingabe in der Inject-Node sondern als getrennte Eigenschaften:
Wie Du siehst entsteht daraus ein JS Objekt und mit der json Node - eine JSON String - den Du dann mit einer iobroker-out Node oder einer mqtt-out Node nur in das Topic schreiben musst, auf das das Maestro Gateway hört:
-
@mickym Ok, dass scheint zu funktionieren, ich konnte auch ein mal den Sollwert ändern, aber die Verbindung zum Ofen wurde dann unterbrochen und bekomme es nicht mehr zu laufen. Du hast mir aber schon mal sehr geholfen, danke und LG.