NEWS
MQTT-Probleme mit created and subscribed to new state
-
Ich habe dieses Problem eigentlich schon sehr lange, konnte aber bisher mit einem Workaround damit leben, bis mir jetzt der backitup-Adapter einen Strich durch die Rechnung macht.
Es ist eine lange Vorgeschichte - sorry dafür.
Vor einiger Zeit fing ich mit MQTT an. Aus mehreren Gründen.
Ich wollte MQTT kennenlernen, zum einen weil ich von Hobbyquakres Vortrag auf dem Usermeeting in Kassel angefixt war, zum anderen, weil ich die Doku schreiben wollte, und dazu musste ich es verstehen.
Außerdem hatte ich damals (bis heute) mehrere EInplatinenrechner mit Testinstallationen laufen, um die Performance zu testen und Empfehlungen hier im Forum geben zu können. Dazu sollten alle SBC aber mit der gleichen Installation laufen.
Dabei kam dann zum Tragen, dass es einzelne Adapter gibt, die wegen der Hardwarebindung auf Satelliten laufen sollten (Smartmeter/RF-Link).
Da ein Multihost System es nur erlaubt an Einen Master zu senden musste etwas anderes her. Das war dann der MQTT-Adapter. Damit konnte man Daten auch an mehrere Clients schicken.
Der positive Nebeneffekt war, dass man quasi eine Pseudoredundanz hatte. Bei einem Ausfall eines Systems lagen zumindest die Historydaten noch auf den anderen Rechnern vor.
Problem:
hustete das System, kam es aus irgendeinem Grund dazu dass die States anschließend angeblich neu geschrieben wurden, obwohl sie existierten:
! ```
2019-01-06 06:28:01.761 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Last 2019-01-06 06:28:01.887 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.smartmeter.0.Rechenwerte.Momentanwerte.Verbrauch 2019-01-06 06:28:02.007 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Cubie.CPU_Last 2019-01-06 06:28:02.170 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.CO2 2019-01-06 06:28:02.175 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Status 2019-01-06 06:28:02.189 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Widerstand 2019-01-06 06:28:02.193 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.TVOC 2019-01-06 06:28:02.449 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Keller_Pi.CPU_Last 2019-01-06 06:28:04.025 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.CO2 2019-01-06 06:28:04.071 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Status 2019-01-06 06:28:04.072 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Widerstand 2019-01-06 06:28:04.073 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.TVOC 2019-01-06 06:28:04.107 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.scaling_governor 2019-01-06 06:28:04.109 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.memory_total 2019-01-06 06:28:04.109 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.memory_free 2019-01-06 06:28:04.110 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.memory_available 2019-01-06 06:28:04.115 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.sdcard_root_total 2019-01-06 06:28:04.124 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.soc_temp 2019-01-06 06:28:04.140 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.Net_received 2019-01-06 06:28:04.147 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.Net_sent 2019-01-06 06:28:05.327 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Keller_Pi.CPU_Auslastung 2019-01-06 06:28:05.328 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Auslastung 2019-01-06 06:28:06.490 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.NUC5P.CPU_Auslastung 2019-01-06 06:28:08.173 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.CO2 2019-01-06 06:28:08.174 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Status 2019-01-06 06:28:08.175 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Widerstand 2019-01-06 06:28:08.176 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.TVOC 2019-01-06 06:28:09.893 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Auslastung 2019-01-06 06:28:10.030 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.CO2 2019-01-06 06:28:10.033 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Status 2019-01-06 06:28:10.034 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Widerstand 2019-01-06 06:28:10.035 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.TVOC 2019-01-06 06:28:10.185 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Solaranlage.Leistung_DC_aktuell 2019-01-06 06:28:10.223 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Solaranlage.Leistung_AC_aktuell 2019-01-06 06:28:11.501 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.NUC5P.CPU_Auslastung 2019-01-06 06:28:13.873 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.MQTT-Tinker.CPU_Auslastung 2019-01-06 06:28:14.162 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.CO2 2019-01-06 06:28:14.169 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Status 2019-01-06 06:28:14.178 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Widerstand 2019-01-06 06:28:14.181 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.TVOC 2019-01-06 06:28:14.907 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Auslastung 2019-01-06 06:28:16.036 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.CO2 2019-01-06 06:28:16.036 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Status 2019-01-06 06:28:16.037 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.iAQ_Widerstand 2019-01-06 06:28:16.037 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.TVOC 2019-01-06 06:28:16.436 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.NUC5P.CPU_Last 2019-01-06 06:28:16.505 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.NUC5P.CPU_Auslastung 2019-01-06 06:28:16.764 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Last 2019-01-06 06:28:17.003 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Cubie.CPU_Last 2019-01-06 06:28:17.444 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Keller_Pi.CPU_Last 2019-01-06 06:28:17.929 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.smartmeter.0.Rechenwerte.Momentanwerte.Verbrauch 2019-01-06 06:28:19.905 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.Rock64.CPU_Auslastung 2019-01-06 06:28:20.170 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.CO2 2019-01-06 06:28:20.171 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Status 2019-01-06 06:28:20.172 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.iAQ_Widerstand 2019-01-06 06:28:20.173 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Arcade.TVOC 2019-01-06 06:28:20.266 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Solaranlage.Leistung_DC_aktuell 2019-01-06 06:28:20.268 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Solaranlage.Leistung_AC_aktuell 2019-01-06 06:28:21.152 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.Raumtemperatur 2019-01-06 06:28:21.514 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.HardwareDaten.NUC5P.CPU_Auslastung 2019-01-06 06:28:22.153 - [32minfo[39m: mqtt-client.0 created and subscribed to new state: mqtt-client.0.Gast.Luftfeuchtigkeit[/code]
! Hier half nur alle States zu löschen, sie wurden anschließend neu angelegt - leider ohne die history-Konfiguration. Dies musste manuell nachgeholt werden.
! Zusätzlich kam es von Zeit zu Zeit vor, dass unter den States weiter States mit Namen "set" angelegt wurden, so dass die Anzahl States bis auf das vierfache stieg.
! Woher dieser Fehler kommt ist mir auch noch nicht klar.
! **~~[b]~~System:
! [/b]**Ich habe auf einem Tinker eine Installation mit dem MQTT-Adapter als MQTT-Broker, auf allen anderen den MQTT-Client-Adapter
! Alle Publisher (incl. der Node mcus) melden die Daten an den Broker, alle Clients subscriben dort die Daten.
! Jetzt kommt der Backitup Adapter ins Spiel: seit der Version 1.x husteten die Daten öfter, jetzt habe ich es daran festmachen können:
Der graue Wert wird auf einem anderen SBC mittels javascript gerechnet und per mqtt gesendet, der gelbe wird auch dort per script aus dem Wechselrichter ausgelesen und ebenfalls von dort per mqtt gesendet..
! Durch das anschließende create and subscribe im Millisekundentakt scheint der ioBroker stark behindert zu werden, so kommt es zum einen zu deutlichen Verzögerungen bei Skriptausführungen, zum anderen eben auch zu Problemen beim loggen von Daten.
! Wegen der "set"-Problematik hatte ich u.a. vermutet, dass es auf einem Client wegen ehemaliger Fehlkonfiguration dazu fürhrt und wollte schweren Herzens meine gesamten Installationen komplett neu machen.
! Das "create and subscribe" Issue scheint aber IMHO eine andere Ursache zu haben.
! Dieses würde ich gerne vorher lösen, bevor ich mir die Arbeit mache alles (vergeblich) neu zu machen.
! Hat jemand eine Idee??
! Danke
! Rainer -
ich würde das gerne nochmal hochholen in der Hoffnung, das jemand etwas dazu sagen kann.
Im MOment wird es immer schlimmer - ich werde doch wohl mein Produktives System komplett neu aufsetzen müssen und auf die MQTT-Daten dort verzichten müssen und mit Master/Slave arbeiten.
Das hat dann zur Folge dass diese Daten von den Slaves nicht mehr für Testsysteme zur Verfügung stehen.
Zusätzlich kam es von Zeit zu Zeit vor, dass unter den States weiter States mit Namen "set" angelegt wurden, so dass die Anzahl States bis auf das vierfache stieg.
Woher dieser Fehler kommt ist mir auch noch nicht klar. `
Hier ein Screenshot:
Gruß
Rainer
-
Hallo zusammen,
ich hab leider auch mit dem gleichen Problem zu kämpfen, doof nur, dass ich iobroker gerade vor 2 Wochen von meinem alten PI 3 auf den aktuellen PI 4 umgezogen habe. Auf der alten Installation hatte ich bereits auch da Problem und hab daher kein Backup gemacht, sondern alles komplett frisch installiert und die Blockly Scripte händisch neu erstellt und den Code per Copy&Paste übertragen.
Sobald ich den PI neu starte oder iobroker selbst taucht dieses Problem auf. Dateirechte, etc hab ich alles komplett durchsucht die passen, es kann also nicht daran liegen, dass er die entsprechenden Dateien nicht beschreiben kann, ich verstehe nur nicht, warum er da jedes mal Probleme hat.Kann mir jemand Tipps zur Fehlersuche noch geben?
Viele Grüße
Markus -
@BooosesThaSnipper sagte in MQTT-Probleme mit created and subscribed to new state:
Kann mir jemand Tipps zur Fehlersuche noch geben?
ich leider nicht, da ich leider wegen dieses Problems MQTT nicht mehr nutze
-
Hi,
hab durch einen Tipp in der Facebook Gruppe das Problem lösen können. Der mqtt-client Adapter in der Stable Version 1.1.1 hat Probleme mit dem 2er JS-Controller. Mit dem Update auf 1.2.1 ist das Problem nun gefixed.
Was bin ich froh, dass das Problem behoben ist
-
Guten Morgen, da ich das gleiche Problem habe, suche ich mal hier nach Hilfe. Wenn ich auf die Versionsnummer unter Adapter schaue, gibt es dort nur die 1.1.1 als stable. Ein "npm i iobroker.mqtt-client" in Putty erzeugt folgende Ausgabe
pi@ioBroker-RasPi4:~ $ npm i iobroker.mqtt-client npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + iobroker.mqtt-client@1.2.1 added 77 packages from 91 contributors and audited 399 packages in 9.212s found 0 vulnerabilities
Die Version des MQTT-Clienten ist danach immer noch 1.1.1. Ich muß gestehen das hier bei mein eigenes Unvermögen das Problem ist, denn ich verstehe die Vorgehensweise nicht wirklich, noch zu neu in der Materie. Wenn mir jemand auf die Sprünge helfen könnte würde mich das sehr freuen.
cu Bastel
-
Hi Bastel,
das einfachste ist, wenn du bei den Allgemeinen Einstellungen vom ioBroker (Schraubenschlüsel ganz oben) unter dem Reiter "Haupteinstellungen" bei dem Punkt "Aktiver Verwahrungsort" den Wert von "default" auf "latest" stellst.
Du wirst dann für sehr viele, oder sogar alle Adapter ein Update angezeigt bekommen, da du nichtmehr auf die stabile Version, sondern auf die neuste Version setzt. Dann kannst du deinen MQTT-Client Adapter einfach über die GUI Updaten. Bei allen anderen Adapter kannst du das Update ignorieren, oder du stellst die Einstellung danach wieder auf "default" zurück.
Grüße
Markus -
@BooosesThaSnipper
Besten Dank Markus, das hat funktioniert. Sieht wieder gut aus.
Grüße zurück, Ralf