NEWS
Besser MQTT einsetzen für Spark Core und ESP8266?
-
Morgen,
arbeite gerade mit dem Spark Core und ESP8266 und bin am überlegen wie man diese an ioBroker am Besten anbindet.
Bei beiden ist eine MQTT Implementierung möglich.
Frage an Euch:
-
Macht es Sinn eigene ioBroker Adapter für beide zu erstellen? (Der Spark Core Adapter funktioniert schon, aber den Code kann man noch nicht herzeigen)
-
Wäre es nicht sinnvoller auf MQTT zu setzen?
-
Gibt es Nachteile bei MQTT?
Hier noch ein Foto von beiden. Erstaunlich wie klein der ESP8266 ist.
Steve
-
-
Die zwei Systeme erfordern schon Bastlerbasis-Kenntnisse. Man muss die FW übersetzen und flaschen können.
Ich denke, dass mit ausführlicher Beschreibung (mit Bilder
) wie man die Dinge mit MQTT einsetzt, kann man mehr erreichen, als speziell einen Adapter dafür schreiben.
Das kann man auch für Arduino benutzen.
Man muss nur MQTT so abändern, dass bei der Verbindungsaufbau die Sensoren alle seine Werte einmal zusenden, damit ioBroker die Variablen in SelectDialogId benutzen kann
-
Moin !
Ich habe mal ein bisschen mit dem Spark Core und MQTT rumgespielt. Ich konnte auf Dauer keine stabile Verbindung zu ioBroker halten. Nach einiger Zeit wurde von der Spark Seite aus disconnected und ein reconnect ging nur nach Lust und Laune (sehr suboptimal für Lichtsteuerung von NeoPixel Stripes). Ich hatte auch schon einen Thread im Spark Forum gefunden wo schon einige über mangelnde Stabilität von MQTT auf dem Spark jammerten und erstmal keine Lösung in Sicht war.
Im Moment habe ich den Spark Core über die Spark Cloud angebunden und nutze die Node Red Nodes für den Spark Core für die Connectivität zu ioBroker. Das scheint mir im Moment etwas stabiler zu sein, wobei auch da Probleme mit den Subscriptions nach IP Adressenwechsel (Nachts, zwangsdiconnect) gibt.
Vielleicht hast Du ja schon bessere Erfahrungen mit MQTT auf dem Spark gemacht ?
Alternativ lässt sich vielleicht noch was mit TCP Sockets auf dem SparkCore machen, falls MQTT nicht stabil laufen sollte ?
Gruss Marco
-
Hallo,
um ehrlich zu sein habe ich MQTT auf dem Spark noch nicht ausprobiert. Momentan bin ich am überlegen ob ich die Spark Adapter Entwicklung zu Gunsten von MQTT einstelle.
Danke für den Hinweis mit der Instabilität…werde ich mal nachgehen. Das ist manchmal der Nachteil mit Neuerungen, man weiss gar nicht auf welcher Pferd man setzen soll.
Denke aber trotzdem das MQTT viel Potential hat und Spark Core ist ja nicht die einzige Möglichkeit (ESP8266?) für MQTT.
Am WOE werde ich mal einen Versuch starten.
Steve
-
Hi Steve,
ich hab da aber nicht ewig rumprobiert mit MQTT. Mir fiel jedenfalls auf, dass der Spark in die Knie geht, wenn über MQTT zu viele Messages von ioBroker kommen.
Eigenartigerweise kamen mehr Messages als ich eigentlich aboniert hatte ?
Dazu kam, dass die MQTT Verbindung nach einiger Zeit immer vom Spark aus geschlossen wurde. Wenn ich daraufhin ein neues connect angeschubst hatte, ist häufig nix passiert. Vielleicht hast Du ja mehr Glück mit MQTT
Auch die Cloud Geschichte ist manchmal etwas "hakelig". Ich rufe auf dem Spark über Node Red eine Funktion auf. Manchmal passiert einfach nix. Erst wenn ich das mehrmals probiere bequemt er sich den Befehl auszuführen. Komischerweise klappt das über die Spark Command Line immer. Ich muss da mal mehr Zeit fürs Debugging investieren.
Ich hab auch noch 2 Spark Photons bestellt, die kommen aber erst Juni/Juli
Sind lustige kleine Dinger die Sparks. Bis dahin kann ich leider noch nicht so viel rumprobieren, weil der eine Spark Core jetzt produktiv an der Beleuchtung/Steuerung der Espressomaschine arbeitet (mit NeoPixel Stripes…sehr lässig !).
Gruss Marco
-
Da ist ein Fehler gewesen, dass Client alle Meldungen bekommen hat. Jetzt habe ich das gefixt. Man konnte Test-Version ausprobieren:
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.mqtt/tarball/master
-
Hi Bluefox,
super klingt gut ! Mal schauen ob ich den Spark am Wochenende mal abklemmen kann zum rumprobieren
Ansonsten kann ich erst nach dem Urlaub weitertesten wenn die neuen Sparks da sind. Die kleinen Dinger sind wahrscheinlich zu schwachbrüstig um grosse Datenmenge zu verarbeiten.
Danke für den Hinweis !
Gruss Marco
-
Da ist ein Fehler gewesen, dass Client alle Meldungen bekommen hat. Jetzt habe ich das gefixt. Man konnte Test-Version ausprobieren:
cd /opt/iobroker npm install https://github.com/ioBroker/ioBroker.mqtt/tarball/master ```` `
Ich hab das jetzt mal mir dem mqtt-spy ausprobiert. Jetzt kommen bei mir gar keine Meldungen mehr an. Auch nicht die, die ich subscribed habe.
Wenn das Häckchen für "Bekannt geben der eigenen States" setze, dann kommen beim Verbinden alle States 1 mal. Danach kommt dann nichts mehr.
Wenn ich z.b. hm-rpc/0/# subscribe sollten ja eigentlich alle Meldungen vom hm-rpc.0 kommen oder ?
Meine Einstellungen zum testen:
Zum testen mit dem Spark würde ich dann den Haken bei "Bekanntgeben eigene States beim Verbinden" rausnehmen.
Gruss Marco
-
Hi Marco,
werde die nächsten Tage MQTT auf Spark Core und ESP8266 ausprobieren.
Gerade beim ESP8266 sind die Preise und Möglichkeiten unglaublich gut!
Da muss doch ein Pferdefuß sein.
Danke für Deine Vorarbeiten…
Steve
-
Es gibt neue Version von mqtt. Ziemlich überarbeitet. Auch mqtt-modul upgedated.
Es war ein Denkfehler, dass mqtt-modul ein Sorglos-Paket ist. Ich dachte, dass subscribe auch modul managen wird.
Es kann sein, dass die Adressen einbisschen sich ändern, z.b statt "/mqtt/0/blabla" => "mqtt/0/blabla"
Es gibt auch Doku: https://github.com/ioBroker/ioBroker.mqtt#configuration
-
Hi Bluefox,
jetzt läuft der Adapter garnicht mehr. Er startet, aber sobald sich ein Client connected crasht der Adapter.
Ich hab ihn mal mit Hand gestartet und dabei kam dann diese Fehlermeldung:
Gruss Marco
-
Hallo,
also erste Versuche mit http://www.mqttdashboard.com und dem MQTT Adapter gemacht.
Arbeitet wie vermutet ==> bisher keine Probleme
Steve
-
Hallo,
so…erste Ergebnisse:
-
MQTT auf Spark Core installiert
-
Als Broker erstmal http://www.mqttdashboard.com genommen.
-
Auf ioBroker den MQTT Adapter (als Client) ebenfalls mit http://www.mqttdashboard.com verbunden.
-
Mosquitto auf meinem Mac installiert.
-
Im Mac Terminal konnte ich "mosquitto_pub -h http://www.mqttdashboard.com -t /inTopic -m GREEN" die grüne Spark LED einschalten.
-
Localen MQTT Broker mit "/usr/local/sbin/mosquitto" gestartet. Hier war das Kommando dann "mosquitto_pub -h 127.0.0.1 -t /inTopic -m GREEN"
-
Mann muss das Spark Programm natürlich anpassen, je nachdem welcher Broker verwendet wird.
-
ioBroker hat alles mitbekommen!
==> Geht!!
Werde jetzt mal über Nacht das Ganze beobachten. Morgen mal den MQTT Broker auf ioBroker probieren.
Steve
-
-
Hi Bluefox,
jetzt läuft der Adapter garnicht mehr. Er startet, aber sobald sich ein Client connected crasht der Adapter.
Ich hab ihn mal mit Hand gestartet und dabei kam dann diese Fehlermeldung:
filename="Bildschirmfoto 2015-05-14 um 11.56.38.png" index="0">~~
Gruss Marco `
Es gibt neuere Version. -
.
Ich weiss nicht, ob es da einen Zusammenhang gibt.
Ungefähr seit der Zeit, seit dem der mqtt Adapter geändert wurde, wirft mein owntracks Flow (nutzt in einer Variante den mqtt Adapter) nur noch Fehler raus.
Ich habe das gleiche Thema aber auch mit dem mqtt Node in Node red. Da dürfte es ja eigentlich kein Zusammenhang geben.
Wo vorher die Daten reinkamen und dann über ein JSON Node liefen, bekomme ich heute nur Zahlenkolonnen.
123,34,116,115,116,34,58,34,49,...
Die letzten verwertbaren Daten kamen vom 13.05. gegen 20:00 Uhr.
Komisch… da die mqtt node-red Node auch nicht funktioniert, würde ich ja sagen, dass es nicht am Adapter liegt.
An Owntracks dürfte sich aber auch nichts geändert haben.
Sowohl der ioBroker mqtt Adapter, als auch die Node in Node-red sind beide auf Port 1883 eingestellt.
Das hat bisher funktioniert.
-
Morgen,
zwei Ergebnisse habe ich auch zu bieten:
Spark Client:
-
Verliert die Connection zu Broker…wird wohl die nächtliche Telekom Trennung sein.
-
Nur ein Reset hat die Verbindung wieder aufgebaut.
-
Werde mal einen lokalen MQTT Broker probieren und schauen ob es dabei stabil über die Zeit läuft.
ioBroker als MQTT Broker:
-
Funktionierte erstmal nicht…jetzt wo ich die Fehlermeldung kopieren wollte...ging es.
-
Leider habe ich das alte Log gelöscht, sinngmäß stand drin "MQTT.1 terminated..."
-
Wäre es besser einen MQTT Broker wie Mosquitto statt dessen zu nutzen?
Steve
-
-
Ich hab die Version 0.2.4 grad mal getestet:
-
ich bekomme ein Connect
-
einmal bekam ich auch die ganzen Stati von hm-rpc beim Connect (so ist es auch parametriert)
-
ansonsten bekomme ich gar keine Messages (getestete subscription: #, hm-rpc/#, /#)
-
das LogFile von ioBroker zeigt manchmal an wenn ich eine neue Subscription starte (meist nach dem ersten Connect nach Boot) ansonsten meist nicht
Getestet hab ich unter OSx mit MQTT.fx
Gruss Marco
-
-
Hi Marco,
MQTT.fx sieht nett aus, aber probier doch mal Mosquitto. Interessant ist der letzte Teil von http://nthn.me/posts/2012/mqtt.html.
Welchen Vorteil hat ioBroker als MQTT Broker?
Steve
-
Ich hab die Version 0.2.4 grad mal getestet:
-
ich bekomme ein Connect
-
einmal bekam ich auch die ganzen Stati von hm-rpc beim Connect (so ist es auch parametriert)
-
ansonsten bekomme ich gar keine Messages (getestete subscription: #, hm-rpc/#, /#)
-
das LogFile von ioBroker zeigt manchmal an wenn ich eine neue Subscription starte (meist nach dem ersten Connect nach Boot) ansonsten meist nicht
Getestet hab ich unter OSx mit MQTT.fx
Gruss Marco `
Nehme 0.2.5. Du hattest keine Maske definiert, dann hat Broker auch nichts genommen. Fixed. -
-
Morgen,
gestern mal den ESP8266 mit MQTT getestet…na ja.
Umgebung:
-
Olimex ESP8266 Dev
-
Firmware NodeMCU
-
MQTT Client mittels Lua https://github.com/dukov777/esp8266-evb-lua
-
Esplorer IDE (kein Schreibfehler)
Ergebnis:
-
Ist viel umständlicher eine Entwicklungsumgebung aufzubauen.
-
Lua Programme sind wohl nicht so stabil…der 8266 hat sich immer wieder resettet.
-
Mir ging immer wieder der Speicher aus "Out of Memory"
==> Noch nicht ausgereift! Werde es mal weiter verfolgen.
BTW, Spark Photon ist "on the way"
Steve
P.s. Danke für die neue MQTT Version...
-