lumapu / ahoy

Various tools, examples, and documentation for communicating with Hoymiles microinverters
https://ahoydtu.de
Other
953 stars 225 forks source link

ESP32 v0.5.41 - falsche uptime offline Meldungen über MQTT #441

Closed knickohr closed 1 year ago

knickohr commented 1 year ago

Platform

ESP32

Model name

DevKit C von AZ

nRF24L01+ Module

nRF24L01+ plus

Antenna

circuit board

Power Stabilization

~100uF Elko

Connection diagram

nRF24L01+ Pin ESP32 GPIO
Pin 1 GND [*] GND
Pin 2 +3.3V +3.3V
Pin 3 CE GPIO4 CE D4
Pin 4 CSN GPIO5 CS D5
Pin 5 SCK GPIO18 SCLK D18
Pin 6 MOSI GPIO23 MOSI D23
Pin 7 MISO GPIO19 MISO D19
Pin 8 IRQ GPIO16 IRQ

Connection picture

Version

0.5.41

Github Hash

https://github.com/lumapu/ahoy/commits/dec333f

Build & Flash Method

ESP Tools (flash)

Desktop

Mac OS

Setup

{"menu":{"name":["Live","Serial Console","Settings","-","REST API","-","Update","System"],"link":["/live","/serial","/setup",null,"/api",null,"/update","/system"],"trgt":[null,null,null,null,"_blank"]},"system":{"ssid":"Odyssee2001","device_name":"AHOY-DTU","version":"0.5.39","build":"69855b1","ts_uptime":151594,"ts_now":1668933681,"ts_sunrise":1668925650,"ts_sunset":1668959228,"ts_sun_upd":1668898800,"wifi_rssi":-64,"pwd_set":false,"hostname":"AHOY-DTU","sdk_version":"v4.4.2","cpu_freq":240,"heap_total":316784,"heap_used":122824,"chip_revision":1,"chip_model":"ESP32-D0WDQ6","chip_cores":2,"sketch_total":1310720,"sketch_used":974496,"esp_type":"ESP32"},"inverter":{"inverter":[{"id":0,"name":"PV1","serial":"112182841769","channels":1,"version":"10014","ch_max_power":[360],"ch_name":["Links"]},{"id":1,"name":"PV2","serial":"112182844440","channels":1,"version":"10014","ch_max_power":[360],"ch_name":["Rechts"]}],"interval":"30","retries":"5","max_num_inverters":10},"mqtt":{"broker":"192.168.100.80","port":"1883","user":"mqttuser","pwd":"{PWD}","topic":"AhoyDTU"},"ntp":{"addr":"192.168.100.1","port":"123"},"sun":{"lat":"48.44000","lon":"9.89000","disnightcom":false},"pinout":{"cs":5,"ce":4,"irq":16,"led0":25,"led1":26},"radio":{"power_level":1},"serial":{"interval":5,"show_live_data":false,"debug":false},"static_ip":{"ip":"192.168.100.79","mask":"255.255.255.0","dns1":"192.168.100.1","dns2":"0.0.0.0","gateway":"192.12.100.1"}}

Debug Serial Log output

version: 0.5.41
wifi_rssi: -64
mac: 24:62:AB:F3:9F:E8
sdk: v4.4.2
cpu_freq: 240
heap_free: 191252
sketch_used: 952
heap_total: 316560
chip_revision: 1
chip_model: ESP32-D0WDQ6
chip_cores: 2
esp_type: ESP32

Error description

Über MQTT werden immer wieder uptime offline gesendet obwohl die WRs alle online sind, available and producing.

ist sei der DEV 40++

26430075-3131-44A8-8541-FB406AB75FDC
lumapu commented 1 year ago

mit welchem Tool zeigst du die MQTT Nachrichten an?

knickohr commented 1 year ago

Na, alte Linux-Depp-Methode:

ssh-Konsole und grappa F285F366-44F1-4990-878D-BDD3E3BAC4C2

lumapu commented 1 year ago

Kann es nicht navollziehen.

mit ESP8266 und v0.5.41 grafik

mit ESP32 und v0.5.41 grafik

das offline kommt von hier: https://github.com/lumapu/ahoy/blob/dec333fdf904a857fdf1873167803388a81af34e/src/publisher/pubMqtt.h#L200

knickohr commented 1 year ago

Es kommt komischerweise auch nur beim ESP32 🤔

Du mußt länger warten, manchmal dauert es Minuten, dann aber geballte Ladung 😲

womoak75 commented 1 year ago

Wenn das die 'last will message' ist, dann hat der Server einen Verbindungsabbruch erkannt, d.h. der Client hat nicht innerhalb des erwarteten Zeitraums seinen 'Ping' gesendet. Der Server schliesst dann die Verbindung und published die 'last will message'.

Aber auf der Clientseite sollte man dann ein 'connection lost' bzw. reconnect sehen.

knickohr commented 1 year ago

Das Problem tritt nur beim ESP32 zu Tage.

ich habe gestern wieder den 8266 in Betrieb genommen, da kommen die Meldungen nicht. Allgemein läuft der 8266 besser, schneller, flüssiger und ohne hängende Webseite und gelegentliche Reboot. Das Problem scheint wohl eher generell an der Hardware mit dem Programm zu sein. Da es in früheren Versionen (<30) nicht auftrat, vermute ich ein Softwareproblem, speziell beim ESP32.

stefan123t commented 1 year ago

ME handelt es sich dabei um eine Offline Meldung dass aktuelle keine Verbindung zum MQTT broker besteht nachdem ich mit den von @lumapu genannten Code bzw die folgenden Zeilen angesehen habe.

lumapu commented 1 year ago

ich glaube eher eine "was offline" Meldung beim Versuch des reconnect.

Wir sollten hier testweise die Lib https://github.com/bertmelis/espMqttClient einbauen, die verwendet @tbnobody auch.

Wenn man sich das Readme durchliest, geht es auch um den TCP Stack, der wohl in anderen Libs veraltet ist.

lumapu commented 1 year ago

@knickohr ich habe testweise auf eine andere Lib umgestellt, kannst gerne testen ob der ESP32 jetzt stabiler ist:

https://github.com/lumapu/ahoy/tree/feature/espMqttClient

knickohr commented 1 year ago

Ähhh, jetzt haste mich erwischt 😵 Wo bekomme ich das Binary ohne selbst zu compilieren ? 🤔

lumapu commented 1 year ago

@knickohr ich hoffe der dev Link auf https://ahoydtu.de funktioniert wieder.

knickohr commented 1 year ago

Yupp, funzt wieder 😉

knickohr commented 1 year ago

Tja, ernüchternde Feststellung 😞

es ist keinen Deut besser, es ist sogar so schlimm das er mir den Broker blockiert 😵 Nichts kommt mehr an von anderen Clients - inakzeptabel !

lumapu commented 1 year ago

Schade

lumapu commented 1 year ago

Schade

knickohr commented 1 year ago

Stecke da nicht zu viel Energie rein. Solange das mit dem 8266 noch keine Engpässe oder Limits gibt, macht mir das wenig aus.

knickohr commented 1 year ago

Die update offline Meldungen kommen ja jetzt nicht mehr ab der 43, oder ich habe sie bis jetzt übersehen. Statt dessen kommt jetzt Status online/offline. Das ist schon besser als das unter die uptime (Uhrzeit) zu knallen 👍

Gerri1 commented 1 year ago

Ich habe mir heute die dev_v0.5.44 auf den ESP8266 zum Testen geladen, hier ist die uptime Meldung über MQTT (ioBroker) ständig auf 0. Auch auf der Ahoy Startseite bleibt die Anzeige "Every 10 seconds the values are updated" so stehen, egal was man eingestellt hat!

lumapu commented 1 year ago

@Gerri1 ja auf der Index Seite habe ich das Intervall auf 10s standartmäßig eingestellt, da ich nicht nur alle 30s ein Lebenszeichen haben will

Die uptime sollte schon größer werden, ich nutze auch ioBroker, aktuell habe ich 6000s

Gerri1 commented 1 year ago

uptime Ich habe den ganzen Objektbaum schon gelöscht und dann neu Anlegen lassen, die 0 bleibt!

lumapu commented 1 year ago

ist es ein ESP32? dann teste ich morgen bei mir nochmal

Gerri1 commented 1 year ago

... nein, eine NodeMCU v3 ESP8266, auf einem Wemos habe ich die v0.5.28 drauf. Die v0.5.28 startet auch hier und da mal neu, aus diesem Grund habe ich mir die uptime mit in die Überwachung genommen!

knickohr commented 1 year ago

Moment mal, 28 ? War das nicht so das die Nachts immer offline ausgegeben haben ? Mach mal. Eine 41+ drauf. Die 41 ist als stable gekennzeichnet.

Gerri1 commented 1 year ago

@knickohr Die 41er hatte ich auch schon am Laufen, da diese aber über den Tag hinweg viele Neustarts hatte, habe ich die 28 wieder aufgespielt.

knickohr commented 1 year ago

Wir sind mittlerweile bei 44 😉

Gerri1 commented 1 year ago

@knickohr Wie schon am Anfang geschrieben, bin ich die 44er Version noch am Testen! 😊 Da diese auch noch sehr viele Neustarts und div. Probleme hat, lasse ich die 28 auf meinem Hauptsystem, die läuft am stabilsten! 👍

knickohr commented 1 year ago

Ich bin mit den ESP32, speziell mit MQTT auch nicht wirklich glücklich geworden. Zu viele Hänger und Reboots, die Webseite lahmte und es kamen teilweise verwirrende Meldungen über MQTT.

Die 44 ist nach der 28 bis jetzt noch am stabilsten.

Gerri1 commented 1 year ago

uptime MQTT

Kann es evtl. daran liegen, das die uptime Meldung über MQTT (ioBroker) ständig auf 0 ist?

lumapu commented 1 year ago

das würde aber heißen, dass er ständig neu connected, aber der Hinweis ist gut, wir sollten an der Stelle nicht pauschal 0 senden

Gerri1 commented 1 year ago

So wie das aussieht, connected er wirklich ständig neu!

cn_0 cn_1 SK_0

Gerri1 commented 1 year ago

Bei der 0.5.47 bekomme ich jetzt im ioBroker unter mqtt "connected" angezeit und bleibt auch so! Auf der Index- Seite und in der Konsole ist es unverändert.

mqtt

knickohr commented 1 year ago

Korrekt !

Siehe #468 😉

Gerri1 commented 1 year ago

Mit der 0.5.50 bekomme ich jetzt wieder die uptime in ioBroker angezeigt. 👍👍😁 Auf der Ahoy-DTU index- Seite und Konsole werden nacheinander immernoch die nachfolgenden Meldungen angezeigt!

grafik grafik