tbnobody / OpenDTU

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters
GNU General Public License v2.0
1.77k stars 495 forks source link

not possible to change the ip address #2138

Open grasmax opened 2 months ago

grasmax commented 2 months ago

What happened?

After first start, the device got ip .72 Then in the Fritz.Box the device got the fix ip .39 but after that, it was not possible to connect to opendtu. Same after off/on power and restart opendtu and restart fritzbox.

To Reproduce Bug

change the ip in the router network config

Expected Behavior

if dhcp is activatet, the device should have the ip from the router after restart

Install Method

Pre-Compiled binary from GitHub

What git-hash/version of OpenDTU?

v24.1.4

Relevant log/trace output

No response

Anything else?

temp solution: remove the check from dhcp and fill in the right ip fields

Please confirm the following

tbnobody commented 2 months ago

Why did the fritzbox change the ip of the device? the esp should only get a new ip if the lease time expired (as every dhcp enabled device). whats your lease time?

stefan123t commented 2 months ago

Maybe that is the issue ?

@grasmax can you turn off your OpenDTU, then reset the Fritz!Box and any Repeaters. Now the Fritz!Box should not have an active DHCP lease for your OpenDTU anymore.

You may change or update the fixed IPv4 assigned to you OpenDTU before this procedure or after but before you turn on the OpenDTU with the MAC address registered in your Fritz!Box from earlier.

Can you report back on the results ?

grasmax commented 2 months ago

Zuerst müsste ich es schaffen, die "statische IP-Konfiguration" in "Einstellungen/Netzwerkeinstellungen" wieder loszuwerden. Wenn ich die 5 Felder lösche, den Haken bei "DHCP aktivieren" setze und auf "Speichern" drücke, erscheint die Fehlermeldung "IP-Adresse ist ungültig!" und die Felder werden unsichtbar wiederhergestellt. Für dieses Verhalten hatte ich auch ein issue angelegt... Btw, ich hatte natürlich die OpenDTU-Box xmal aus/eingeschaltet und auch die Fritzbox neu gestartet. Welche "LeaseTime" in meinem Router eingestellt ist, ist unerheblich. Ich werde diese wegen OpenDTU nicht ändern. Die OpenDTU-Box soll sich einfach die im Router hinterlegte IPv4 holen, wenn ich sie einschalte.

stefan123t commented 2 months ago

@grasmax und wenn Du einfach die OpenDTU neu flashst ?

Du kannst auch vorher eine config.json als backup erstellen, wobei ich empfehlen würde die Einstellungen danach from-scratch vorzunehmen. Das JSON so zu editieren, wie es ohne statische IP Einträge aussehen muß, könnte man mit dem Vergleich zwischen einem frisch geflashten Backup vs. Deinem statischen IP Backup, das ist aber fast aufwendiger.

tbnobody commented 2 months ago

Es sollte normal garnicht nötig seine irgendeine ip irgendwo zu löschen. Einfach auf dhcp stellen und gut. Dann werden die manuellen ips nie verwendet.

stefan123t commented 2 months ago

Ja aber @grasmax scheint das so nicht machen zu können?

Warum er nicht einfach die alte IP drin lässt und einfach den Schalter wieder auf DHCP stellt weiß ich nicht. Vielleicht will er die Formular-Validierungsfunktion des IP-Adressen Dialogs ausprobieren, die schlägt natürlich an wenn er die statische IP Konfiguration rauslöscht und das so speichern will: IP address is invalid!

Bei mir stand in den Feldern unter Static IP Configuration überall 0.0.0.0 drin, so lässt sich das auch wieder speichern: v24.6.29

Dann hat er trotz statischer IP 0.0.0.0 bei mir wieder die alte DHCP Adresse zugeordnet. Die OpenDTU konnte ich dann unter dem alten Namen http://opendtu-ABCDEF/ statt der statischen IP (http://192.168.178.007/) wieder aufrufen.

Dann noch den DHCP Haken wieder angemacht und es geht wie von Euch erwartet.

grasmax commented 2 months ago

Danke Stefan, das wars: wenn man den Haken bei DHCP rausnimmt und 0.0.0.0 in alle fünf Felder der "Statischen Konfiguration" einträgt, ist das Speichern erfolgreich. Damit hätte sich zumindest #2139 erledigt.

Habe auch NOCH EINMAL OpenDTU und auch die Fritzbox vom Strom getrennt. Gewartet, bis die Fritzbox wieder lief und unter Heimnetz/Netzwerk die OpenDTU mit .39 und dem Hinweis "gültig ab der nächsten Anfrage" angezeigt wurde. Dann auch OpenDTU wieder eingeschaltet. Leider ist das Teil immer noch nicht über die .39 erreichbar, sondern immer noch über .72

stefan123t commented 2 months ago

@grasmax welche DHCP Range hast Du denn für die Fritz!Box zur freien Vergabe reserviert?

Ich habe bei mir alles zwischen 192.168.x.20 und 192.168.x.200 als DHCP frei. Siehe Heimnetz > Netzwerk >Netzwerkeinstellungen > IPv4-Adressen Deshalb vergebe ich feste IPs im Bereich .2 bis .19 für Drucker, Raspberry, etc oder über .200

Ist die .72 bei Dir überhaupt frei ? Und ja die Fritz!Box braucht ggf. ein paar Anläufe bis sie die Adresse statisch richtig zuordnen kann. Das ist aber nicht das Problem von OpenDTU sondern eines auf Seite des DHCP Admins. Wenn man die MAC Adresse des ESP32 vorher kennt (zB auf dem Chipdeckel per Lasergravur/QR Code?) kann man die bei einigen DHCP Servern vorher eintragen. Das geht bei der Fritz!Box mW aber nicht.

grasmax commented 2 months ago

"DHCP Range hast Du denn für die Fritz!Box ": 2-200 "Ist die .72 bei Dir überhaupt frei ?" JA, sonst würde sie DTU nicht bekommen. Und zur Erinnerung: DTU hatte die 72 bei der Erstinstallation und wird sie nicht mehr los. Ich möchte, dass die DTU die in der Fritzbox fest eingestellte 39 bekommt. Und das funktioniert nur, wenn ich in der DTU den Haken bei "DHCP" wegnehme und in die 39 in das Feld der "statischen Konfiguration" eintrage zusammen mit Maske usw.

grasmax commented 2 months ago

Habe alle mit der Fritzbox verbundenen Geräte bzgl dhcp geprüft: Es gibt da das VictronCerboGX-Steuergerät, das normal über die 38 verbunden ist, aber mit einer zweiten generierten MAC-Adresse und einer IP 169.254... angemeldet ist. Laut Victron sollte das keine Probleme machen (siehe Antwort von mvader ), ist aber im Moment die einzige Spur, weil Geräte bei dchp-Problemen offenbar eine IP aus dem Subnetz 169.254 benutzen. Leider habe ich gerade meine PV-Insel außer Betrieb gesetzt, weil ich das Steuergerät abgeschaltet habe um zu prüfen, wie sich dann die DTU-IP-Vergabe/Bezug verhält. Ich kann diesen Test also erst im nächsten Wartungsfenster durchführen und lasse es bis dahin bei der in der DTU statisch vergebenen 39.

stefan123t commented 1 month ago

@grasmax gibt / gab es hierzu etwas neues im letzten Monat ?

Das Problem dass Du die DHCP Adresse nicht neu / fest vergeben kannst hast m.W. nur Du bisher gemeldet.