Network API - Änderungen an Netzwerkeinstellungen vornehmen (Achtung! API ist noch fehlerhaft bzw. nicht vollständig)

  • Hallo Leute,

    ich bin gerade dabei mit ein bisschen mit der Network API zu spielen um eine Änderung (update) im Netzwerk durchzuführen. Laut Doku in der aktuellen API sollte das eigentlich auch funktionieren, jedoch sieht es in der Realität mal wieder etwas anderes aus.

    Benutze zur Zeit die Offizielle Network Version 10.0.162. Laut Doku in meiner UDM-SE https://<IP-UDM-SE>/unifi-api/network#tag/Networks/operation/updateNetwork sollte das funktionieren anhand des Beispiels.

    https://<IP-UDM>/proxy/network/integration/v1/sites/{siteId}/networks/{networkId}

    Was ich möchte, ich will gern nur eine Einstellung "internetAccessEnabled": true durch ein Script oder durch meinen ioBroker bei einem bestimmten Ereignis auf false ändern, damit die UDM automatisch den Internet Zugriff mittels Firewall sperrt. Sobald das Häkchen entfernt wird, wird entsprechend eine Firewall Regel erstellt, die den Internet zugriff blockt.

    Nach zwei Tagen rum probieren mit Postman ist dann endlich der Groschen gefallen warum der Post Befehl (mit dem Programm Postman durchgeführt) mit verschiedenen versuchen immer wieder fehlschlug. Die Lösung ist relativ einfach, wenn man das nicht übersieht. Man geht ja davon aus, dass die bereits Programmierte Konfiguration vollständig ist und einem nicht irgendwelche Konfigurationen unterschlagen werden.

    In meinem Beispiel ist natürlich DHCP konfiguriert und ein Adressraum von 11 Geräten (10.90.1.50 - 10.90.1.60) Reserviert. Wenn ich mir aber die Daten mit dem GET aus meiner UDM auslese sieht es so aus.


    Bei mir ist DHCP für IP6 ist nicht aktiviert, somit auch nicht vorhanden und kann somit weggelassen werden. Laut dem Beispiel aus der API oben muss man die ID unterhalb des Gateway und den Metadaten Block komplett entfernen. Soweit so gut, also die Daten wie im Beispiel geändert und mittels PUT versucht die Daten zurückzuspielen. Was jedoch so nicht klappt, was mir erst hinterher aufgefallen ist. Nachdem ich einiges ausprobiert habe und verschiedene Fehler bekomme habe.

    Wenn man sich die Rohdaten von meinem Testnetzwerk genau ansieht fällt auf, das bei der IPv4 DHCP Konfiguration der Adressbereich leer ist "ipAddressRange": {} das meckert er auch an (wenn man die Fehlermeldung mal aufmerksam lesen würde 8o). Manchmal sieht man halt den Wald vor lauter Bäumen nicht8). Erst als ich mir das Beispiel von der Doku genauer angesehen ist mir aufgefallen, das unter der IPv6 Konfiguration im Abschnitt der DHCP Konfiguration die korrekte Einstellung für IP Range vorgegeben wird, dies jedoch komplett bei der IPv4 Konfiguration fehlt.

    Der Abschnitt müsste also richtig lauten:

    Code
    "dhcpConfiguration": {
        "ipAddressSuffixRange": {
            "start": "string",
            "stop": "string"
        },
        "leaseTimeSeconds": 31536000
    },

    Also müsste mein Kompletter Block für die Änderung durch PUT so aussehen.


    Danach wir die Konfiguration und der geänderte Punkt "internetAccessEnabled": false übernommen, die entsprechende Firewall Regel eingerichtet und dem Netzwerk das Internet gesperrt.

    Warum ich jetzt das ganze hier so ausführlich geschrieben habe? Zu allererst ist die API eine sehr nützliche Erweiterung und viele möchten gern z.B. durch HAOS oder ioBroker bestimmte Einstelllungen automatisiert vornehmen lassen (so wie ich auch) und zum zweiten, viele Scheitern bei der Umsetzung ihres Vorhabens, weil man kaum vernünftige Infos zum richtigen vorgehen mit derAPI findet. Wie man auch an meinem Beispiel sieht, sie auch noch Fehlerhaft bzw. noch nicht komplett ist.

    Die Frage ist jetzt ist es Teil eines Bug und sollte man das melden oder liegt es daran, das es noch lückenhaft ist oder schlicht und ergreifend vergessen worden ist? Laut der Change Log für die Aktuelle Beta zu Network ist da auch was von der API zu lesen. Vielleicht hat jemand die aktuelle Beta am Start und könnte mal bei seiner Konfiguration schauen ob da der IP Range auch leer ausgelesen wird.

  • GET https://192.168.1.1/proxy/network/integration/v1/sites/8xxxx7af54-xxx-306a-a1c7-xxxxxxxxxxxx/networks/xxxxxxx-fa19-4ce2-a57b-xxxxxxxxx

    (ID Geändert)

    bringt

    Also MIT den infos.

    UDMSE

    10.1.67 / 5.0.5 bzw. 10.1.68(aktuelle EA) / 5.0.5

  • gierig Danke dir für die Rückmeldung. :thumbup: Also haben die das in der aktuellen Beta gefixt.

    Hab mir schon im stillen gedacht/gehofft, dass Du auf das Thema anspringst. ;)

    Bist ja einer der wenigen, die sich sehr gut mit den Unterbau des UniFi Systems auskennen. Bin immer wieder begeistert was du immer so in den untiefen des Systems zum Vorschein bringst und hier postest.

    Also muss ich noch etwas warten bis die Finale Version zum Download bereit steht. EA ist mir noch ein bisschen zu früh für meine Umgebung daheim.:)

    Bis dahin hab mir ein Skript von der KI erstellen lassen, was die fehlenden Daten beim auslesen der Rohdaten hinzufügt und dann korrekt überträgt.

  • Die Frage ist jetzt ist es Teil eines Bug und sollte man das melden oder liegt es daran, das es noch lückenhaft ist oder schlicht und ergreifend vergessen worden ist?

    Die (https://unifi/unifi-api/netw…n/updateNetwork) API Beschreibung führt doch alle notwendigen Parameter für die PUT Methode ("Update Network") auf. Und ja - es ist deutlich mehr, also man eigentlich braucht, eine PATCH-Methode wäre noch nett, fehlt aber.

    Dennoch - kein Bug, alles dokumentiert.

  • Die (https://unifi/unifi-api/netw…n/updateNetwork) API Beschreibung führt doch alle notwendigen Parameter für die PUT Methode ("Update Network") auf. Und ja - es ist deutlich mehr, also man eigentlich braucht, eine PATCH-Methode wäre noch nett, fehlt aber.

    Dennoch - kein Bug, alles dokumentiert.

    Ja, das ist dort dokumentiert, habe ich ja oben auch erwähnt, das es so gehen sollte.

    Wenn ich aber per GET die gerade aktuelle Konfig auslese und mir bestimmte Daten einfach fehlen bzw. nur durch geschweifte Klemmern ersetzt werden, ist der Datensatz halt fehlerhaft und somit nicht korrekt.

    Aber ist jetzt auch irrelevant da, ja gierig mit seinem Post bestätigt hat, das in der aktuellen EA Version von Network dieser Fehler nicht mehr vorhanden ist.

    Edited once, last by Curiosity: Korrekturen (January 3, 2026 at 8:58 PM).

  • Curiosity January 5, 2026 at 5:58 AM

    Set the label from offen to erledigt

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!