[Info] Feste DHCP-Leases per Skript setzen — undokumentierte api/v0-Route (FRITZ!OS 8.25)

milkrun

Neuer User
Mitglied seit
12 Aug 2004
Beiträge
7
Punkte für Reaktionen
2
Punkte
3
Kurz zusammengefasst, weil ich dazu nichts Aktuelles gefunden habe:

Modell: FRITZ!Box 7520 (1&1-Branding), FRITZ!OS 8.25 (Buildstring 175.08.25),
getestet am 07.09.2026.

TR-064 kann feste DHCP-Leases nicht setzen — weder GetGenericHostEntry noch
X_AVM-DE_GetSpecificHostEntryByIP liefern ein Feld für "IPv4-Adresse dauerhaft
zuweisen". Es gibt drei andere Wege, alle drei bei mir Ende-zu-Ende getestet:

1) REST (api/v0), der praktikabelste:
PUT /api/v0/generic/landevice/landevice/<UID>
Header AUTHORIZATION: AVM-SID <sid>, Body {"static_dhcp":"1"} -> 200 {}
Pfadform: /api/v0/generic/<Modul>/<Collection>/<Knoten>.

2) data.lua, das alte edit_device-Formular (dev_name, dev_ip, static_dhcp=on,
kisi_profile, back_to_page, dev, validate=btn_save). Wird auf 8.25 noch
angenommen, obwohl die Seite intern längst ein verschachteltes JSON-Modell
ausliefert.

3) Weboberfläche per Playwright, falls beides wegfällt.

Was nicht geht (damit sich das niemand nochmal antut):
- PUT /api/v0/generic/landevice/<UID> -> 400 "bad path" (Ebene fehlt)
- POST auf die Collection für ein *bestehendes* Gerät -> 400 "transaction fail"
plus "bad value" auf field UID
- HTTP 200 als Erfolgsbeweis: die Box liefert 200 auch für Writes, die sie
verwirft. Ich lese deshalb nach jedem Schreibvorgang über query.lua gegen
(landevice:settings/landevice/list(name,ip,mac,UID,static_dhcp)).

Stolperfalle beim UI-Weg auf 8.x: Die Checkbox liegt nicht auf dem Tab
"Allgemein", sondern auf "Heimnetz". Vorher ist sie zwar im DOM, hat aber keine
Layout-Box (0x0) — ohne display:none, ohne hidden. Sieht nach Renderfehler aus,
ist aber nur ein inaktives Tab-Panel.

Skript und die vollständigen Tabellen (auch die Negativbefunde):
https://github.com/jvejmelka/fritzbox-static-lease — CC0, gemeinfrei.

api/v0 ist von AVM selbst als v0 versioniert, also ausdrücklich instabil. Wenn
jemand andere Modelle oder Firmwarestände testet, nehme ich die Befunde gern
auf — genau diese Tabelle fehlt bisher.
 
  • Like
Reaktionen: NDiIPP
weil ich dazu nichts Aktuelles gefunden habe
Unter Entwicklungssupport gibt es Informationen zu Schnittstellen und Protokollen rund um die FRITZ!Box, unter 2. auch zu Apps/TR-064. Evtl. sind dort noch passende Hinweise dazu mit enthalten.
 
@tango501 Danke! Den Entwicklungssupport hatte ich durch — genau da ist die Lücke. Nochmal gerätenah gegengeprüft (7520/FRITZ!OS 8.25, hostsSCPD.xml direkt von der Box): von den 21 Hosts-Actions schreiben nur SetHostNameByMACAddress, SetFriendlyName{,ByIP,ByMAC}, SetPrioritizationByIP, SetDeviceClassUser{ByIP,ByMAC}, Set-/WakeOnLANByMACAddress und HostDoUpdate — keine setzt das „IPv4 dauerhaft zuweisen"-Flag, und das einzige Lease-Feld ist das read-only LeaseTimeRemaining. Über TR-064/AHA gibt's also offiziell keinen Weg, daher der api/v0-Umweg. Falls dir doch irgendwo ein dokumentierter static_dhcp-Setter unterkommt — immer her damit.
Kleines Update: der fritzconnection-Maintainer (kbr) nimmt generische RestAPI-Calls in die nächste Version auf — dann läuft der Call sauber über eine generische Methode statt über einen festen Shortcut auf die instabile api/v0.
 
  • Like
Reaktionen: tango501
Kostenlos!

Statistik des Forums

Themen
248,879
Beiträge
2,303,818
Mitglieder
378,547
Neuestes Mitglied
Kraehe82