NEWS
MQTT- Adapter/ Verbindung mit HiveMQ
-
Ich bin gerade dabei die HiveMQ cloud zu testen aber leider läuft das ganze nicht dauerhaft stabil. Der Weg Tasmota- HiveMQ Funktioniert perfekt ohne Fehler und Verbindungsabbrüche.
Was bei mir leider nicht Funktioniert ist die Verbindung Mqtt Adapter und die HiveMQ Cloud dort bekomme ich ständig Verbindungsabbrüche. Fasst immer im intervall zwischen 10 - 15min warum weiß ich nicht. Keine Ahnung ob es an irgendeiner Einstellung im Mqtt Adapter liegt oder bei HiveMQ. Dadurch das bei jeder neu Verbindung die Zustände publiziert werden. Werden die Zustände jedes mal neu in Tasmota übertragen. Was eoigentlich nicht notwendig ist und auf Dauer das kostenlose Datenvolumen von 10GB schmälert. Wenn ein Verbindungsabbruch hin und wieder mal vorkommt ist es mir egal aber so ist der Verbindungsabbruch einfach zu viel.
Kennt jemand eine alternative um ein entferntes Tasmota Gerät mit iobroker zuverbinden am besten out of the Box ohne VPN Tunnel außer es wird von Tasmota unterstützt. Oder eine bessere Alternative zu HiveMQ/ Mqtt Adapter. Oder ist der MQTT Adapter für HiveMQ nicht angepasst?
Darüber hinaus passiert es das der Adapter die Zustände von alleine schaltet ohne das sie manuell in Tasmota geschaltet werden. Dadurch passiert es das der Ausgang in Tasmota "blinkt" und er weiterhin befehle empfängt trotz das der Adapter gestoppt wurde.Hinweiß: Ich habe diesen Beitrag bereits in einem anderen Beitrag als Kommentatr gepostet aber um es übersichtlicher zu gestalten poste ich es als neuen Beitrag.
-
@basti97 sagte in MQTT- Adapter/ Verbindung mit HiveMQ:
Dadurch das bei jeder neu Verbindung die Zustände publiziert werden. Werden die Zustände jedes mal neu in Tasmota übertragen. Was eoigentlich nicht notwendig ist und auf Dauer das kostenlose Datenvolumen von 10GB schmälert.
Warum schaltest du nicht einfach "eigene States beim Verbinden publishen" ab? Ich denke mal, dass die Verbindungsabbrüche bei deinem Mobilfunkrouter (?) relativ normal sind, und die tasmotabasierten Geräte die Abbrüche einfach nur nicht loggen.
-
@marc-berg
Das ist ja das komische das Tasmota Gerät hat stabil die Verbindung zu HiveMQ was über Mobilf. ist.
Aber die Verbindung Iobroker - HiveMQ im Heimnetz hat die Verbindungsabbrüche. Eine zweite Instanz mit einer anderen Hivemq adresse das gleiche, gleicher Intervall aber mit MQTT.0 nicht zeitgleich. Dadurch das der Adapter dann neu startet (nach der Meldung) werden die Befehle in Endlosschleife gesendet. Trotz das ich vor einer Stunde den Adapter gestoppt habe bekommt das Tasmota Gerät von HiveMQ immer noch die Befehle und naja nun blinkt die LED. Keine Ahnung was in der zwischenablage noch ist. -
@basti97 sagte in MQTT- Adapter/ Verbindung mit HiveMQ:
im Heimnetz
Okay, das konnte ich aus dem ersten Post so nicht sofort herauslesen. Dann habe ich erstmal keine Idee, was die Ursache sein könnte. Aber du könntest trotzdem "eigene States beim Verbinden publishen" abschalten, um das Datenvolumen zu schonen. Außerdem würde ich mal mit dem "MQTT client" Adapter testen, ob der auch das Problem hat.
-
@marc-berg
Konntest du auch nicht habe ich ja auch nicht dazu geschrieben ist noch beim mir experimentell alles. Ich fande das ganze mit HiveMQ sehr interessant und habe mir das mal eingerichtet + die tasmota Version kompiliert. Dachte es wäre so einfach wie mit dem Sonoff adapter und Tasmota. Das mit dem MQTT Client Adapter ist eine sehr gute Idee muss ich gleich mal probieren vielleicht liegt es ja doch am Adapter. -
@marc-berg Der Adapter hat sich mit HiveMQ verbunden aber er legt mir keine Datenpunkte an. Ist das normal?
-
@basti97 sagte in MQTT- Adapter/ Verbindung mit HiveMQ:
Ist das normal?
Dieser Adapter funktioniert anders als der MQTT Adapter. So musst du ihn auf Datenpunkt-Ebene einzeln aktivieren (ähnlich wie die History Adapter). Dafür bist du viel flexibler.
-
@marc-berg Hättest du ein Beispiel und zwar habe ich ihn installiert und möchte nun die Zustände von den Tasmota Geräten haben bzw die schaltzustände ändern. Bei dem anderen Adapter hatte ich ja ein Ordner state und cmnd (DBs musste ich selbst erstellen). Muss ich dann auf das Zahnrad gehen um den erstellten DB in user zu "verknüpfen" und wo gebe ich an welches Gerät es sein soll. Den theoretisch müssten das Tasmota Gerät irgendwie angezeigt werden. Oder?
-
@basti97 sagte in MQTT- Adapter/ Verbindung mit HiveMQ:
Muss ich dann auf das Zahnrad gehen um den erstellten DB in user zu "verknüpfen" und wo gebe ich an welches Gerät es sein soll.
Zeig doch bitte mal, wie jetzt der Baum unter mqtt.0 für ein Tasmota Gerät aussieht. Dies entspricht 1:1 den MQTT Topics, die du verwenden musst. Warum sollten wir jetzt mit Beispielen hantieren, wenn es doch gleich konkret werden kann!?
-
Da hast du recht und zwar habe bzw musste ich unter cmnd die Datenpunkte per Hand erstellen damit ich die Zustände im MQTT state ändern bzw im Tasmota Gerät. So weit hat es dann auch geklappt. was ich aber am Sonoff Adapter besser finde ist das man den state und cmnd Zustand in einem Datenpunkt hat was wahrscheinlich hier im Adapter nicht funktoniert? Das "zusammenführen" habe ich auch schon mal per Blockly getestet hat eigentlich auch funktoniert. Da aber der MQTT Adapter immer wieder neu gestartet hat und die Zustände in diesen Augenblick nicht vom Server/ Tasmota Gerät ankamen waren sie mit dem virtuellen Datenpunkte unterschiedlich. Und leider ist es am Ende zu einem Loop gekommen wo der Ausgang angefangen mit blinken und die CPU hoch ging. Außerdem hat es dann noch lange gedauert bis die Zustände wieder "ruhig waren".
Danke das du mir hilfst. Dir noch ein schönen Abend.
-
...und wenn du die Objektdaten hier als Text in CodeTags reinkopiert hättest, könnte man auch rauskopieren, das tippe ich jetzt nicht ab.
Wie ich es machen würde:
Lesend:
- einen Datenpunkt deiner Wahl (genaue Namen spielen hier keine Rolle) unter "0_Userdata" anlegen, z.B. "0_Userdata.Tasmota.ESPimFlur.getPower1"
- Auf Zahnrad klicken und mqtt-client aktivieren, nur "Subscribe" aktivieren und "nur Änderungen"
- Als Topic dein MQTT Topic eintragen (stat/ESP...)
Für Daten, die du an die Tasmota-Geräte schreiben/senden willst, anders herum:
- einen Datenpunkt deiner Wahl (genaue Namen spielen hier keine Rolle) unter "0_Userdata" anlegen, z.B. "0_Userdata.Tasmota.ESPimFlur.setPower1"
- Auf Zahnrad klicken und mqtt-client aktivieren, nur "Publish" aktivieren und "nur Änderungen"
- Als Topic dein MQTT Topic eintragen (cmnd/ESP...)
Wichtig: ggf. vorhandene schreibende Aktionen auf mqtt.0.cmnd... vorher abschalten.
-
@marc-berg Hätte ich machen können ist ja noch nicht zu spät schicke es dir dann später. Schon mal vielen Dank für die Hilfe und dein Lösungsvorschlag.
Brauche ich dann trotzdem zusätzlich noch den Mqtt Adapter oder nicht? Ich würde sagen nein ein kurzes Update wo ich heute Nachmittag geschaut habe läuft der mqttclient ohne Verbindungsabbrüche. Gut verbunden ist er er hat ja aber noch keine Daten zum DB.
-
@marc-berg ich habe es gerade probiert aber irgendwie funktoniert es nicht.
Das sind die Einstellungen des Adapters verbindung zu hivemq besteht bzw Adapter ist grün.
Muss ich vielleicht das auch noch anpassen die Namen unten habe ich einfach erfunden. Mir ist nichts anders eingefallen oder müssen sie zum Gerät passenfür schreiben
cmnd/ESPWemos_mini/POWER1
für lesen
state/ESPWemos_mini/POWER1
-
Publish: auf keinen Fall "als Objekt" anhaken. Da kann Tasmota nichts mit anfangen, du willst ja nur den Wert übertragen.
Subscribe: Wurden denn vom Tasmota-Gerät neue Werte bzw. Änderungen übertragen? Nur dann erfolgt hier eine Aktualisierung.
Ansonsten würde ich aus der Datenpunkt-ID Zeichen wie Klammern und Umlaute zur Sicherheit rauslassen.
Zur weiteren Fehlersuche kannst du auch mal den MQTT Explorer auf HiveMQ loslassen. Damit siehst du dann genau, welche Topics gerade übertragen werden. -
@marc-berg Dankeschön probiere ich am Freitag noch einmal vielleicht schaffe ich den Durchbruch. Aber unabhängig davon das ich kein Gerät schalten kann bzw abfragen kann. Funktioniert der Adapter zu HiveMQ ohne Fehlermeldungen.