Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Abfrage der Daten mit MC in MicroPython funktioniert nicht mehr mit Version 0.8.127 #1685

Open
1 task
RF-Signal opened this issue Jun 23, 2024 · 11 comments
Assignees
Labels
bug Something isn't working

Comments

@RF-Signal
Copy link

Platform

ESP32

Assembly

I did the assebly by myself

nRF24L01+ Module

No response

Antenna

external antenna

Power Stabilization

Elko (~100uF)

Connection picture

  • I will attach/upload an Image of my wiring

Version

0.8.127

Github Hash

8cd364

Build & Flash Method

AhoyDTU Webinstaller

Setup

HMS-1600
HMS-2000
CMT2300A radio enable
Display = SH1106
Esp32-wroom32 (ESP32-D0WD-V3)
Interval [s] = 20

Debug Serial Log output

nicht relevant

Error description

Ich benütze die Ahoy-DTU um zwei HMS Wechselrichter auszulesen und frage Daten von der DTU mit einem PicoW (RP2040) mit MicroPython ab.

Mit der Firmware Version 0.8.83 funktioniert das mit diesem Befehl problemlos:
dtu = requests.get("http://192.168.2.119/api/inverter/id/0")

Mit der Firmware Version 0.8.127 funktioniert dies nicht mehr. Ich bekomme keine Daten.

@RF-Signal RF-Signal added the bug Something isn't working label Jun 23, 2024
@dknubben
Copy link

Hast Du die URL http://192.168.2.119/api/inverter/id/0 mal direkt in einem Browser aufgerufen?
Kommen dann JSON-Daten an?
Ich kann das Problem nicht nachvollziehen (0.8.127, allerdings HM-Inverter), evtl. gab es aber Formatänderungen bei den Daten, die in Deiner MicroPython-Umsetzung nicht berücksichtigt sind.

@RF-Signal
Copy link
Author

Antwort:
Im Browser funktioniert die Abfrage, das ist ja das komische!
Habe mehrfach zwischen den Versionen 0.8.83 und 0.8.127 hin und her gewechselt.
Immer dasselbe. Mit 0.8.83 funktioniert es und mit 0.8.127 nicht.
Habe auch ein minimiertes Test-Programm probiert keine Änderung.

Weitere Tests haben folgendes ergeben:
Mit dem Befehl requests.get() werden zwar Daten ausgelesen. MicroPython scheitert aber dann daran diese Daten als json Daten weiter zu benützen! (Jegliche Art der Abfrage scheitert!)
Ich habe auch die Aktuellste Version von MicroPython auf den PicoW geladen, keine Änderung.

Wichtig:
Ich habe herausgefunden ab wann das Problem in Verbindung mit MicroPython auftritt.
Bis Version 0.8.93 funktioniert die Abfrage unter MicroPython problemlos.
Ab Version 0.8.94 können die Daten, die mit requests.get() gelesen werden nicht mehr weiter verarbeitet werden!
Das Problem sollte also in einer der Änderungen auf diese Version liegen.

Hoffe Du kannst so herausfinden an welcher Änderung es liegt.
Es wäre sehr schade wenn man die neuen Versionen der Ahoy-DTU nicht mehr mit MicroPython abfragen könnte!

Viele Grüße
Bernd

@dknubben
Copy link

Ich kann Dir in dieser Konstellation sicher nicht weiterhelfen. Das könnten allenfalls die Entwickler dieses Projekts,
wobei Deine MicroPython-Lösung nicht in den "Support-Bereich" dieses Projekts fällt.

Mit 0.8.94 gab es diese Änderung:
"switched AsyncWebServer library"
Evtl. ist da die Ursache zu suchen.
Ansonsten wäre nach meiner Ansicht der richtige Ansatz, zuerst die Header der Antwort auf die GET-Anfrage anzusehen (Konsole im Browser). Sind hier Unterschiede bei den Versionen im Header festzustellen, z.B. Format, Codierung etc?

@lumapu
Copy link
Owner

lumapu commented Jul 7, 2024

es wäre echt hilfreich die Header sehen zu können. Man kann scheinbar auch MicroPython in Docker ausführen, evtl. kommt man dann auch auch noch mit Wireshark dran um alles mitzuloggen. Leider fehlt mir gerade die Zeit dies zu tun.

@lumapu
Copy link
Owner

lumapu commented Aug 11, 2024

I evaluiere gerade einen neuen Webserver, evtl. könntest du mal die angehängte Firmware testen, ob die wieder mit MC funktioniert. (https://github.com/mathieucarbou/ESPAsyncWebServer @ ^3.1.3)

240811_ahoy_dev_esp32_0.8.135.zip

@RF-Signal
Copy link
Author

RF-Signal commented Aug 12, 2024 via email

@RealNBB
Copy link

RealNBB commented Aug 16, 2024

Hi,

gerade die verlinkte Version installiert und am beobachten. Bisher keine Probleme.

240811_ahoy_dev_esp32_0.8.135.zip

Ich gebe morgen mal bescheid, ob alles weiterhin stabil funktioniert.

@RF-Signal
Copy link
Author

RF-Signal commented Aug 27, 2024 via email

@Gubi2023
Copy link

die .135 hat einen bug, nach Änderungen schmiert die DTU ab. Versuch doch mal die .140 release?

@stefan123t
Copy link
Collaborator

@lumapu mathieucarbou hat aktuell v3.3.21 der ESPAsyncWebServer Bibliothek online gestellt.
Es gab ein Heap / Memory Leak Problem beim Verwenden der alten API Aufrufe.
Der Fix findet sich dann m.W. hier: tbnobody/OpenDTU#2320

@stefan123t
Copy link
Collaborator

@RF-Signal Bernd hast Du mal geklärt ob es vielleicht an den Headern liegt / lag ?

Bei mir erfolgt der Request mit den folgenden Request Headern:

GET /api/inverter/id/0 HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Host: opendtu-fusion
Pragma: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36

die Antwort kommt dann mit

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: content-type
Connection: close
Accept-Ranges: none
Content-Length: 475
Content-Type: application/json

Ich hätte also erwartet dass die Anfrage auch mit Accept: application/json gestellt wird.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants