Im Unifi Controller gibt es die Möglichkeit, WLAN-Netzwerke zeitgesteuert zu (de-)aktivieren. Was allerdings nicht möglich ist, ist nur einzelne Accesspoints zeitgesteuert ein- und auszuschalten. Eine kurze Suche im Netz ergab, dass man das wohl über die API des Unifi Controllers lösen kann:
1. ID des Unifi-Geräts herausfinden
An dieser Stelle sind die Entwicklertools im Browser nützlich. Einmal geöffnet, sieht man im „Network“ Tab alle Netzwerkanfragen, die die Seite stellt. Ändert man nun eine Einstellung eines Accesspoints (Unter „Unifi Devices“), sieht man eine Anfrage in folgendem Format:
https://IP:8443/api/s/default/rest/device/XXXXXXXXXXXXXXXXXXXXXXXX

Die 24-stellige ID am Ende der URL ist die ID von dem Gerät, das du gerade bearbeitet hast.
2. Skript zum Aktivieren und Deaktivieren
Folgendes Bashskript verwende ich, um den AP zu aktivieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash #Put here all of the AP IDs# device="HIER_DEVICE_ID_EINTRAGEN" #user name of admin account on controller username="HIER_BENUTZERNAME_EINTRAGEN" #password of admin account on controller password="HIER_PASSWORT_EINTRAGEN" #controller IP address and port baseurl=https://192.168.178.142:8443 #leave as default site=default cookie=/tmp/cookie curl_cmd="curl -v --silent --cookie ${cookie} --cookie-jar ${cookie} --insecure" ${curl_cmd} --data "{\"username\":\"$username\", \"password\":\"$password\"}" $baseurl/api/login ${curl_cmd} -X PUT -H "Content-Type: application/json" --data "json={\"disabled\":false}" $baseurl/api/s/$site/rest/device/${device} ${curl_cmd} $baseurl/logout |
Das Skript kann auf einem beliebigen Server, z.B. einem RaspberryPi (auf dem auch mein Unifi Controller läuft) laufen und per Cronjob automatisiert werden.
In den Zeilen 3, 5, 7 und 9 müssen die Werte entsprechend angepasst werden. Um den AP zu deaktivieren, muss in Zeile 15 das „false“ in ein „true“ geändert werden.
Schreibe einen Kommentar