NEWS
MQTT Broker/Client sendet nur beim Start
-
@haus-automatisierung Hallo Matthias. Dankeschön für's reagieren. Ziel meines Test-Konstruktes ist es, einzelne Datenpunkte aus dem accuweather-adapter per MQTT regelmäßig weiterzureichen.
konkreter Beispiel-Datenpunkt:
accuweather.0.Current.Temperature --> via mqtt-adapter publishen:Das klappt auch, jedoch nur 1mal. Die Werte im weather-adapter aktualisieren sich jedoch regelmäßig. Doch der mqtt-adapter scheint diese Aktualsierung nicht mitzubekommen und published somit kein Update ... er macht quasi nix. Erst wenn ich den mqtt-adapter neu starte, führt er wieder ein einmaliges Senden aus, dann ist wieder Ruhe. An diesem Symptom verzweifle ich aktuell.
Eine Neuinstallation des mqtt-adapters hat keine Besserung gebracht.
Vielen Dank. -
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
Ziel meines Test-Konstruktes ist es, einzelne Datenpunkte aus dem accuweather-adapter per MQTT regelmäßig weiterzureichen.
Dann würde ich den mqtt-client Adapter nutzen.
-
@haus-automatisierung Den Gedanken hatte ich auch und hatte es auch so schon umgesetzt. Es ist ein etwas älterer Adapter. Dieser ist jedoch NICHT mit dem Sonoff NSPanel bzw. dem zugehörigen Script kompatibel. Die Einbindung des NSPanels ist (wie im entsprechenden threat aus der letzten und vorletzten Woche nachzulesen) am mqtt-client-adapter gescheitert. Die Jungs und ich haben erst durch den Wechsel auf den aktuelleren mqtt-broker/client-adapter das Panel zur Kontaktaufnahme bei mir bewegen können.
Genau das ist der Kreislauf, in dem ich seit 2 Wochen gefangen bin:
mqtt-client-adapter läuft --> jedoch keine Chance auf Verbindung zum NSPanel
mqtt-broker/client-adapter --> Zusammenarbeit mit NSPanel funktioniert, jedoch Problem mit regelmäßigem Publishing bspw. des weather-adapters -
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
Genau das ist der Kreislauf,
Aber diesen "Kreislauf" kannst du ganz einfach durchbrechen, indem du beide Adapter nutzt.
So mache ich es auch. Den Broker/Client-Adapter (als Client zu mosquitto), der alle Pfade unter "mqtt.0." verarbeitet (auch das NSPanel!) und zusätzlich den MQTT-Client Adapter, den ich für einzelne Datenpunkte nutze, die sich irgendwo (z.B. unter "0_Userdata.*") befinden. -
@marc-berg wenn ich beide Adapter parallel betreiben will (bspw. als nachträgliche Install der mqtt-client), dann gibt es bei der Installation den Hinweis, dass die Instanz 1 bereits vom mqtt-broker/client genutzt wird. Wie müsste man das dann konfigurieren?
-
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
dann gibt es bei der Installation den Hinweis, dass die Instanz 1 bereits vom mqtt-broker/client genutzt wird.
Das glaube ich nicht, bis du mir diese Meldung zeigst.
EDIT: nur um sicher zu gehen, wir sprechen von zwei verschiedenen Adaptern.
-
@marc-berg ja, stimmt. Ich habe mich geirrt. Es ist der Port, über den da der Fehler kommt.
So wie ich MQTT über das Video von Matthias verstanden habe, ist der Port quasi die Funk-Frequenz. Eine zweite Frequenz würde bedeuten, dass Empfänger 2 Ports/2 Freuquenzen abhören müssen. In den Einstellungen muss man sich jedoch immer für 1 konkreten Port entscheiden. Wie gehst Du damit um?
-
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
In den Einstellungen muss man sich jedoch immer für 1 konkreten Port entscheiden. Wie gehst Du damit um?
Da wirfst du was durcheinander. Dein Broker (mosquitto) hat EINEN Port, den trägst du in beiden Instanzen ein. Kein Problem.
-
@marc-berg ach, das heißt, dass die rot eingefärbte Meldung gar keine Warn-/Fehlermeldung ist? Ich habe diese aufgrund der Farbe so interpretiert.
-
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
gar keine Warn-/Fehlermeldung
Stimmt, das ist verwirrend. Einfach ignorieren.
-
Ist das Konfigurationfeld PORT beim mqtt-client nicht der Port des entfernten Brokers?
Der Adapter baut doch nur Verbindungen AUF und lauscht nicht auf einem Port. Oder?
In der jsonConfig des Adapters ist das Feld als Typ PORT definiert. Dieser Typ ist aber für LISTENER-Ports gedacht und prüft daher, ob der Port am Host auch frei ist.Ich kenn mich mit mqtt leider zu wenig aus - aber ich glaube fast dass da ein Fehler im mqtt-client ist und da Feld einfach Text / Numerisch sein sollte ...
@haus-automatisierung
Da du den Adapter besser kennst und sorry wenn ich schon wieder störe:
Ist das ein Fehler / falscher Typ im jsonConfig deiner Meinung nach oder nicht?
EDIT: hat sich erübrigt - issue erstellt. S.u. -
@marc-berg tatsächlich, der zweite Adapter schaltet auf grün. Also können auf ein- und demselben Gerät mehrere Adapter auf dem gleichen Port arbeiten. Das habe ich nun verstanden. Zudem bin ich froh, dass ich nicht allein vor diesem Problem stehe und dass es eine Lösung dafür gibt.
Ich richte alles ein, teste und melde mich hier noch einmal. Ich hoffe auch, dass diese Sende-Verweigerung des mqtt-broker/client sich nur nicht auf das NSPanel auswirkt. Das hatte ich jetzt bei dem ganzen Herumprobieren erstmal wieder verworfen. Das richte ich dann jetzt erneut ein.
Bis hierhin schonmal ein dickes Danke für den Tipp -
@mcm1957 sagte in MQTT Broker/Client sendet nur beim Start:
Ist das Konfigurationfeld PORT beim mqtt-client nicht der Port des entfernten Brokers?
ja, wie auch beim mqtt-Adapter, wenn er als Client konfiguriert ist.
Der Adapter baut doch nur Verbindungen AUF und lauscht nicht auf einem Port. Oder?
Korrekt.
In der jsonConfig des Adapters ist das Feld als Typ PORT definiert. Dieser Typ ist aber für LISTENER-Ports gedacht und prüft daher, ob der Port am Host auch frei ist.
Dann ist das ein Fehler im Adapter. Zumindest im mqtt-client Adapter. Aber auch im mqtt-Adapter, wenn er keinen Broker "spielt".
-
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
tatsächlich, der zweite Adapter schaltet auf grün. Also können auf ein- und demselben Gerät mehrere Adapter auf dem gleichen Port arbeiten. Das habe ich nun verstanden.
Ja, beide Adapter sind ja auch lediglich nur MQTT Clients, wie das NSPanel und wovon sich in deinem Netz noch hunderte andere befinden könnten.
Ich richte alles ein, teste und melde mich hier noch einmal. Ich hoffe auch, dass diese Sende-Verweigerung des mqtt-broker/client sich nur nicht auf das NSPanel auswirkt.
Irgendwie kann ich mir nicht so richtig vorstellen, dass sich die "Sendeverweigerung" nicht beseitigen lässt. Da muss irgendwo noch ein Konfigurations-Wurm drin sein. Ist aber egal. Mit dem zusätzlichen mqtt-client Adapter bis du in jedem Fall flexibler, was weitere Aufgaben angeht.
-
@marc-berg said in MQTT Broker/Client sendet nur beim Start:
Dann ist das ein Fehler im Adapter. Zumindest im mqtt-client Adapter. Aber auch im mqtt-Adapter, wenn er keinen Broker "spielt".
Issue erstellt:
https://github.com/iobroker-community-adapters/ioBroker.mqtt-client/issues/377mqtt Adapter hat Typ number, er erlaubt daher immer die Porteingabe. Das ist das Gegenteil - im Servermode erkennt er erst zur Laufzeit dass es nicht geht. Läßt sich aber in jsonCOnfig derzeit nicht abbilden außer man definiert 2 getrennte Eingabefelder - und der Aufwand rechnet sich nicht.
-
Ich habe jetzt beide Adapter im Client-Modus laufen und melde mich, wenn ich das NSPanel wieder aktiv habe.
-
@mcm1957 sagte in MQTT Broker/Client sendet nur beim Start:
Issue erstellt:
Aber wie muss der jsonConfig Parameter dann heißen, wenn nicht "port"?
-
@marc-berg sagte in MQTT Broker/Client sendet nur beim Start:
Irgendwie kann ich mir nicht so richtig vorstellen, dass sich die "Sendeverweigerung" nicht beseitigen lässt. Da muss irgendwo noch ein Konfigurations-Wurm drin sein. Ist aber egal. Mit dem zusätzlichen mqtt-client Adapter bis du in jedem Fall flexibler, was weitere Aufgaben angeht.
Genau das vermute ich ja auch die ganze Zeit. Denn sonst würden sich viel mehr im Forum melden, dass da was nicht stimmt. Ich habe es durch Herumspielen mit den Einstellungen versucht, mit Neuinstall, mit allem, was mir so einfiel. Aber ich habe es nicht hinbekommen. Ich überlege auch die gesamte Zeit schon, ob ich den kompletten RasPi neu aufsetze - aus genau diesem Grunde.
-
@marc-berg said in MQTT Broker/Client sendet nur beim Start:
@mcm1957 sagte in MQTT Broker/Client sendet nur beim Start:
Issue erstellt:
Aber wie muss der jsonConfig Parameter dann heißen, wenn nicht "port"?
@marc-berg
Geht nicht um den Namen sondern um den TYP.
Der Parameter Port sollte vom Typ NUMBER sein, ggF mit Wertelimits. -
@kerschte_de sagte in MQTT Broker/Client sendet nur beim Start:
Ich überlege auch die gesamte Zeit schon, ob ich den kompletten RasPi neu aufsetze - aus genau diesem Grunde.
Kanonen/Spatzen.
Mit einem Löschen des Adapters solltest du eigentlich alles erwischen, was hier relevant ist. Bin mir aber auch nur zu 99% sicher.