NEWS
Node-Red und MQTT
-
Eine Verständnisfrage?
Meine Button true und false geben einen String aus (true, false).
Dieser String wird auch gesetzt im Datenpunkt.
Aber im Debug Node wird keine Änderung ausgegeben. Das sollte doch der Subscriptions Node sein.
Muss man da was bestimmtes einstellen?
-
@bergjet lade doch mal bitte deinen Flow hoch. Du hast bestimmt TRUE und FALSE im Inject-Node als boolsche Werte angegeben, versuch es mal mit Strings.
-
Habe es als String definiert.
[ { "id": "aa079988.62d668", "type": "tab", "label": "Flow 2", "disabled": false, "info": "" }, { "id": "d237f393.28f9f8", "type": "mqtt in", "z": "aa079988.62d668", "name": "", "topic": "test", "qos": "0", "datatype": "auto", "broker": "2ead7557.daee32", "x": 150, "y": 460, "wires": [ [ "7e2e8b62.eef91c" ] ] }, { "id": "7e2e8b62.eef91c", "type": "debug", "z": "aa079988.62d668", "name": "", "active": true, "tosidebar": true, "console": true, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 680, "y": 460, "wires": [] }, { "id": "3927147e.18c88c", "type": "mqtt out", "z": "aa079988.62d668", "name": "", "topic": "", "qos": "", "retain": "", "broker": "2ead7557.daee32", "x": 610, "y": 580, "wires": [] }, { "id": "42bd37c.1a18848", "type": "inject", "z": "aa079988.62d668", "name": "", "topic": "test", "payload": "ein", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 170, "y": 580, "wires": [ [ "3927147e.18c88c" ] ] }, { "id": "dba5154c.a688e8", "type": "inject", "z": "aa079988.62d668", "name": "", "topic": "test", "payload": "aus", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 170, "y": 640, "wires": [ [ "3927147e.18c88c" ] ] }, { "id": "2ead7557.daee32", "type": "mqtt-broker", "z": "", "name": "", "broker": "localhost", "port": "1883", "clientid": "", "usetls": false, "compatmode": true, "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthRetain": "false", "birthPayload": "", "closeTopic": "", "closeQos": "0", "closeRetain": "false", "closePayload": "", "willTopic": "", "willQos": "0", "willRetain": "false", "willPayload": "" } ]
-
Hallo,
in deinem Flow den du hochgeladen hast fehlt in dem MQTT-IN-Node, der mit den Inject-Nodes verbunden ist, der Topic "Test". Ansonsten funktioniert es dann bei mir. -
@Seb_123 Den Topic gebe ich mit dem Input mit. Der Datenpunkt wird aktualisiert, der Debug-Node zeigt die Änderung nicht an. Auch nicht, wenn ich im MQTT-IN-Node den Topic test angebe.
-
@bergjet, dein Flow läuft bei mir mit der IP meines MQTT Brokers. Scheint also dann am MQTT Broker zu liegen.
-
@Seb_123 Ist der MQTT Broker im ioBroker eigentlich fix eingebaut? Oder wird der mit dem MQTT Adapter installiert?
-
@bergjet, der MQTT-Broker wird entweder installiert wenn du den MQTT Broker/Client Adapter installierst, oder du installierst einen separaten z.B. MOSQUITTO.
-
@Seb_123 Ich habe den Adapter (MQTT Broker/Client) installiert und als Broker/Server konfiguriert. Nun bin ich etwas ratlos, denn gelöscht und neun installiert habe ich ihn auch schon.
Edit:
Mit diesem Häkchen geht es jetzt.
-
Ich kanns auch nur immer wiederholen - der MQTT Adapter als Broker hat Probleme mit dem ACK.Flags.
https://forum.iobroker.net/topic/32143/mqtt-problem
Mit dem Haken geht das zwar - Du wirst nur Probleme bekommen, wenn Deine Werte von den Geräten nicht bestätigt werden bzw. wirst leicht Endlosschleifen produzieren. MIch hat dieses Problem echt Monate gekostet bis ich auf mosquitto umgestiegen bin und den Adapter nur als Client nutze, um die MQTT-Zustände weiter zu verarbeiten.