NEWS
MQTT Client Meldung im Log normal?
-
Hi Zusammen,
bekomme von einen D1 mini (ESPEasy) per Mqtt Temperaturen geliefert (zyklisch alle 10 Sekunden). Nun habe ich mir mal im Log angesehen was auf dem IObroker so passiert und hier fällt mir Folgendes auf:
mqtt.0 2021-02-20 10:21:26.367 info (26338) Client [ESP_Gefrierschrank_0] publishOnSubscribe send all known states mqtt.0 2021-02-20 10:21:26.367 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^mqtt\.0\.ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 10:21:26.367 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 10:21:26.350 info (26338) Client [ESP_Gefrierschrank_0] connected with secret 1613812886346_5746 mqtt.0 2021-02-20 10:21:05.956 info (26338) Client [ESP_Gefrierschrank_0] connection closed: closed .... mqtt.0 2021-02-20 09:58:54.838 info (26338) Client [ESP_Gefrierschrank_0] publishOnSubscribe send all known states mqtt.0 2021-02-20 09:58:54.837 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^mqtt\.0\.ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 09:58:54.837 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 09:58:54.798 info (26338) Client [ESP_Gefrierschrank_0] connected with secret 1613811534797_2417 mqtt.0 2021-02-20 09:58:54.488 info (26338) Client [ESP_Gefrierschrank_0] connection closed: timeout mqtt.0 2021-02-20 09:54:38.281 info (26338) Client [ESP_Gefrierschrank_0] publishOnSubscribe send all known states mqtt.0 2021-02-20 09:54:38.280 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^mqtt\.0\.ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 09:54:38.280 info (26338) Client [ESP_Gefrierschrank_0] subscribes on "ESP_Gefrierschrank/#" with regex /^ESP_Gefrierschrank\..*/ mqtt.0 2021-02-20 09:54:38.267 info (26338) Client [ESP_Gefrierschrank_0] connected with secret 1613811278266_3869 mqtt.0 2021-02-20 09:54:16.014 info (26338) Client [ESP_Gefrierschrank_0] connection closed: closed
Da der Log schon mal "abschaltet" da mehr als 200 Events dort eintreffen, frage ich mich was hier los ist, insbesondere da ich mehrere dieser D1 Mini so betreibe aber nur dieser Meldungen in den Log schreibt (in der Häufigkeit).
Die Vermutung einer WLAN Neuverbindung erkenne ich auf dem Client selbst nicht wirklich, da der WLAN Reconnect Zähler sich nicht verändert.
Sollte ich mir hier Gedanken machen?
Thx!
-
@pete0815
Moin, leider kann ich dir zu dem Problem nicht helfen. Da ich ein Problem mit der Übertragung der Temperatur habe, möchte ich dich um Hilfe bitten. Ich habe an meinem esp32 (mit espeasy geflasht) einen DS18B20 und einen AD-Wandler angeschlossen. In Webinterface werden beide Werte angezeigt. Im mqtt Adapter erscheinen beide Datenpunkte, der Wert vom AD-Wandler wird auch angezeigt, allerdings ist das Feld für die Temperatur leer?
Hast Du eine Idee wie ich die Temperatur rüber bekomme?Danke und Gruß
-
@pete0815 Das ist normal leider ist der mqtt Adapter furchtbar geschwätzig und anstelle diese Meldungen ins debug level zu verbannen - sind das info Meldungen. Ich habe einfach das Meldelevel auf "warn" gestellt.
-
@bastler
Habe noch nicht wirklich verstanden wie Du dort einen AD-Wandler einsetzt aber im Prinzip kann man sehr viele Variablen oder zB erst nachdem man sie wieder "gerade" gebogen hat per mqtt verschicken.Der 2-Punkt Regler in ESPeasy arbeitet nur in positiver Richtung. Bei meinem Einsatz als Regler für eine Kühlung musste ich die Messwerte per Formel direkt im Device in positive Werte/Temperaturen (Gefrierschrank) wandeln damit der Regler funktioniert. Zum Übertragen per MQTT fand ich das sehr doof und drehe hier den Wert wieder vor dem Übertragen (*-1). Ergänzend noch etwas an der Auflösung (Nachkommastelle) formatiert. Damit das funktioniert übertrage ich mqtt manuell per Rule und dem Publish Befehl:
Publish %sysname%/TempGefrierschrank1/Temperature2,"-[TempGefrierschrank1#Temperature#D2.2]"
Ohne gebastel dürfte der Publish Befehl als Rule so aussehen (TempGefrierschrank1 = device Name; Temperature = value Name):
Publish %sysname%/TempGefrierschrank1/Temperature2,"[TempGefrierschrank1#Temperature]"
Natürlich braucht der Publish Befehl einen Trigger also könnte dann so aussehen:
On TempGefrierschrank1#Temperature do Publish %sysname%/TempGefrierschrank1/Temperature2,"[TempGefrierschrank1#Temperature]" EndOn
-
@mickym vielen Dank das hilft mir sehr zur Einschätzung und Verständnis dass der mqtt Adapter einfach so geschwätzig ist.
-
@pete0815
Danke für die Rückmeldung! Ich habe am ESP zunächst einen AD Wandler angeschlossen, mit dem ich das Ausgangssignal eines Drucksensors per mqtt in den ioBroker schicke. Da es allerdings zunächst nicht klappte, wollte ich mit dem Temperatursensor schauen, ob er erkannt wird. Das klappte dann auch und ich hatte den Temperaturwert unter Devices im espeasy Webinterface. Dann habe ich mir den AD Wandler noch einmal genau angesehen und festgestellt, dass ich eine falsche Einstellung beim I2C Interface hatte. Nach der Korrektur klappte es dann auch und der Wert wurde unter Devices wie auch die Temperatur angezeigt und an den mqtt Adapter übertragen. Allerdings nicht der Temperaturwert. Dann hatte ich im Netz nach Hilfe gesucht und bin auf deinen Beitrag gestoßen.
Jetzt habe ich noch einmal nachgeschaut und siehe da, die Temperatur wird übertragen. Habe jetzt also zwei Datenpunkte, deren Werte ich weiter im ioBroker verarbeiten kann.
Warum das mit dem Temperaturwert so lange gedauert hat verstehe ich zwar nicht, aber jetzt ist ja alles gut.
Danke und Gruß
-
@bastler Danke fürs Feedback. Die Übertragung des Temperatursignals per Standardkonfiguration "sent to controler" in ESPEasy erfolgt mit der konfigurierten Updatezeit der Temperatur. Wenn Du nur jede Minute die Temperatur am DS18B20 ausliest, dann gibt es auch nur jede Minute einen Wert per MQTT.
-
@pete0815 ,
normal verbindet sich der Client und bleibt verbunden, bei dir schließt sich die Verbindung immer wieder.
Je nachdem der MQTT-Server eingestellt ist sendet er nach dem neu verbinden den Status der Objekte und er gibt Meldung über die abonnierte Themen, das siehst du im Log.
Ich kann nur für Tasmota sprechen und da wird die Verbindung gehalten. Ich denke das ist ein Konfigurationsproblem in ESPEasy da wird mit Sicherheit auch die Verbindung gehalten. -
@wal Danke Dir. Ich habe verschiede ESP8266 mit ESPeasy (verschiedene FW Stände) im Einsatz aber nur dieser gibt die Meldungen im IObroker aus. Deswegen fiel mir das auch auf.
Mmmh, wäre eine Aktualisierung/Test mal gut. Leider hatte ich Stabilitätsprobleme mit neueren Versionen auf dem D1 mini und beim Gefrierschrank ist das nur bedingt tolerierbardeswegen war ich froh eine stabile Version gefunden zu haben.
-
@pete0815 ,
ok das heißt meine Wahrnehmung ist richtig und ESPEasy verbindet sich nicht immer neu, da du ja mehrere Geräte am laufen hast. Evtl. kann man in ESPEasy einen Log einschalten um das Problem zu finden. Es gibt ja auch ESPEasy Spezialisten die könnten dir mal unter die Arme greifen, trotzdem viel Spass beim suchen. -
@wal Danke, ja die anderen lassen die MQTT Verbindung wohl offen. ESPeasy hat einen Wifi connect counter, da ich auch schon mal dachte, dass er die Verbindung komplett verliert, aber der Counter steht still und der Log der FritzBox sagt auch dazu nichts. Ist derzeit eine Version von Nov 2020 drauf und laut Github wurde danach einiges an MQTT gefixt, obwohl ich auch noch ältere Versionen laufen habe wo alles "funktioniert". Nunja ist beim Gefrierschrank nicht ganz unkritisch und da werde ich wohl am Wochenende testen, wenn ich mich daneben setzen kann
-
@pete0815
Danke für den Hinweis, da hatte ich gestern auch schon die Zeit auf 5s verändert. Habe gerade einen esp8266 geflasht und werde damit mal die gleichen Einstellungen vornehmen. Mal sehen wie da läuft. Hast Du Erfahrung mit der Messung von Energiebedarf? Ich habe zwar mehrere Fritz Steckdosen, die sind mir aber für den Einsatz eigentlich zu teuer. Shelly bietet da ja auch interessante Lösungen an, würde es aber gern selber frickeln.Danke und Gruß
-
@bastler Was meinst Du mit Energiebedarf? Steckdosen oder noch mehr "Bastelösung" und den Strom durch irgendwelche Leiter messen?
Bei den Steckdosen verwende ich selber die Shelly Plug-S bis 2500W und für den Trokner eine Shelly Plug Steckdose. Es gibt jede Menge billige Steckdosen die man dann auf Tasmota umbauen kann. Der Preis liegt aus Asien mit 4 Wochen Lieferzeit knapp um die 10 Euro. Die sind teilweise recht fummelig zu öffnen und es werden schon Adapter angeboten um die Dinger zu flaschen. Am Ende war mir das zu Fummelig und Risikoreich um hab mir für knappe 20€ die Shellys direkt von Shelly in Rumanien geordert.
Wenn Du direkt an eine berücklose Strommessung ran möchtest, habe ich gelesen, dass das PZEM 004T-v3.0 Modul für ESPEasy in Vorbereitung zur Out-Of-The-Box Nutzung ist aber wenn ich mir den Preis der Module+D1 Mini+ Spannungsversorgung des D1 Mini angucke war mir bisher die Shelly Lösung (Auch Shelly 1PM) die Liebste. Im Punkt Kompaktheit ist das unschlagbar und hat sogar ein CE Zeichen.