NEWS
[gelöst] Frage zu MQTT
-
Hallo zusammen,
nutze eine Arduino der per MQTT mit meinem ioBroker spricht.
Kann mir hier jemand unter die Arme greifen?Die ersten beiden Pins (1 und 2) arbeiten wie erwartet.
Der Dritte wird leider nicht geschaltet- Ich vermute es liegt am unterschiedlichen Pfad Topic.Was wäre hier der richtige Weg um verschiedene Topic Pfade darzustellen?
Vielen Dank schonmal vorab!
void callback(char* topic, byte* payload, unsigned int length) { payload[length] = '\0'; String strTopic = String(topic); String strPayload = String((char * ) payload); // ------------ AUSGÄNGE STEUERN ----------------- if (strTopic == "Garage/Gebäude/Außensteckdose") { if (strPayload == "off" || strPayload == "0" || strPayload == "false") digitalWrite(Pin1, LOW); if (strPayload == "on" || strPayload == "1" || strPayload == "true") digitalWrite(Pin1, HIGH); } if (strTopic == "Garage/Gebäude/Außenbeleuchtung") { if (strPayload == "off" || strPayload == "0" || strPayload == "false") digitalWrite(Pin2, LOW); if (strPayload == "on" || strPayload == "1" || strPayload == "true") digitalWrite(Pin2, HIGH); } if (strTopic == "Garage/Tor/Befehl") { if (strPayload == "off" || strPayload == "0" || strPayload == "false") digitalWrite(Pin3, LOW); if (strPayload == "on" || strPayload == "1" || strPayload == "true") digitalWrite(Pin3, HIGH); } }
-
@wye
Zeig mal bitte die Struktur in MQTT und die entsprechenden Werte. -
@MCU
Hier die Struktur -
@wye Zeig mal die Einstellungen zum MQTT-Adapter.
-
@wye Woher kommen die Werte?
Bei mir sieht die Struktur so aus:
-
@MCU Die Werte kommen von vis also meiner Visualisierung
Außensteckdose und -beleuchtung funktionieren ja ordnungsgemaß.
Problem stellt "Befehl" dar. Habe da ein kleines Script hinterlegt, was eine Flanke umsetzt und gleichermaßen auch unter mqtt Garage/Tor/Befehl von 0 auf 1 wechselt. Soweit auch alles gut und funktionsfähig.
Allerdings passiert beim Arduino am entsprechenden Pin, welcher als Ausgang fungiert, nichts...
Ich vermute der Fehler wird im Arduino SKetch liegen... deswegen hatte ich im ersten Post auch den Auszug des Codes angehangen.
-
@wye Welche Überschrift zu dem Punkt web.0/admin oder javascript.0/admin steht denn bei Dir? Und die MQTT-Einstellungen fehlen noch.
strTopic == "Garage/Tor/Befehl" ist korrekt. Und strPayload == "0" auch. Genau wie bei den anderen.
Das Problem muss darin liegen, dass der Tpoic nicht übertragen bzw verteilt wird. -
@MCU
MQTT Settings anbei.Was meinst du genau mit der Überschrift?
-
-
@wye Meine Einstellungen sind:
Weiß jetzt aber gerade nicht mehr warum ich das so gemacht habe.
Versuch mal. -
@wye Habs gefunden:
-
@MCU
Was soll mir das genau sagen? -
@wye Das sind die Überschriften nach denen ich gefragt hatte. Hat sich somit erledigt.
-
Wie gesagt vermute auch dass es am Topic liegt. bzw zwei verschiedene aus welchem Grund auch immer mit dem geposteten Code von mir nicht funktioniert.
-
@wye Dann setz doch eine Ausgabe bzw log-Funktion ins Callback und lass alle strTopics die ankommen ausgeben. So kannst du erkennen, ob strTopic=="Garage/Tor/Befehl" überhaupt ankommt!
-
Das habe ich bereits ausprobiert.
Und Garage/Tor/Befehl kommt nicht an.Wie bereits geschrieben Garage/Gebäude/Außensteckdose und Außenbeleuchtung allerdings schon...
-
@wye Ja also dann liegt das Problem doch beim Versenden vom MQTT-Server. (mqtt.0) Hast du das mit den Zuständen mal probiert?
-
Geh mal in die andere Ansicht:
Welche Werte(Bestätigt) stehen dann bei dem Garage/Tor/Befehl-Objekt?
-
Melde mich wieder... kann gerade leider nicht weiter testen.
Aber trotzdem schonmal vielen vielen Dank für deine Bemühungen.
-
@wye Ok. Gerne. Bis dann.