NEWS
[gelöst]JavaScript(Paho) >>> MQTT = UNDEFINED. Was mach ich falsch?
-
Hallo,
ich versuche, per Javascript einen Wert an meinen ioBroker MQTT-Server mit Websocket-Unterstützung zu senden.
Ich nutze dazu Paho (mqttws31.js) auf einer lokalen Webseite und alles funktioniert - bis auf ein entscheidendes Detail.
Der Wert wird in ioBroker/Zustände zwar angezeigt. Alles scheint richtig eingetragen.
Aber wenn ich ihn per Javascript wieder auslesen möchte (Oder mit einem ESP8266 Mikrokontroller), kommt als Antwortwert immer nur "UNDEFINED".
Wenn ich von Hand die Werte in ioBroker/Zustände ändere und dann Enter drücke, funktioniert alles problemlos und die "subscriber" kriegen sofort alles mit.
Wo mache ich den Fehler?
Aussehn tut das Ganze ungefähr so:
//Paho Library Einbinden für MQTT Kommunikation. Hab sonst nichts anderes gefunden, was mir erlaubt, per Javascript/Webseite mit MQTT zu kommunizieren.
-
Ich habe jetzt noch mal mit einem freien online MQTT-Broker (broker.mqttdashboard.com) probiert.
Damit klappt es sofort reibungslos. Deren Webseite nutzt ebenfalls mqttws31.js.
Ich abboniere/subscribe. Ändere den Wert. Und sofort kommt das Update auf die Webseite.
Wenn ich dort (http://www.hivemq.com/demos/websocket-client/?) dann meinen lokalen Broker angebe, zeigt der wieder das alte Verhalten: Der Wert ändert in den ioBroker-Zuständen ändert sich. Aber es wird nicht gepublished/die Seite kriegt außer einem "UNDEFINED" nichts mit.
Kann es sein, dass da ein Bug in MQTT ist? Vielleicht irgendwas mit den Websockets?
Ich habe allerdings nicht viel Ahnung. Kann sein, dass ich immer noch irgendwas übersehe.
Würde gern ioBroker nutzen um alles lokal auf dem Rechner zu haben und nicht vom Netz abhängig zu sein.
-
Gelöst!
Ok, ich hatte eigentlich alle Einstellungen bis zum Gehtnichtmehr ausprobiert.
Nun habe ich das Häkchen bei "Publish nur bei Änderung" entfernt - und auf einmal sprechen alle miteinander. Juchuu!