Dans leur gamme de produits, Ubiquiti networks commercialise des points d’accès wifi de très bonne qualité à des prix raisonnables (dont le très bon AP AC PRO) par rapport à leur positionnement plutôt orienté pro.
Comme beaucoup de produits wifi pro, leur administration passe par un contrôleur permettant de paramétrer/provisionner les éléments par lot par exemple. Chez ubiquiti le contrôleur s’appelle unifi, et se place comme une solution d’administration globale, pas uniquement dédiée au wifi.
Unifi permet bien sûr la planification de la mise en route / extinction radio des bornes qui lui sont asservies, mais curieusement, l’implémentation dans l’outil d’administration est assez basique, et ne permet pas plus d’un bloc d’activation par 24h. C’est assez ennuyeux lorsqu’on souhaite éteindre le wifi la nuit, mais qu’on souhaite le faire plus tard que minuit.
En fait, le contrôleur unifi, ainsi que les points d’accès, implémentent déjà la possibilité de planifier plusieurs blocs par 24h, il n’y a que l’interface d’administration qui n’est pas encore adaptée et ce alors que c’est une fonctionnalité demandée depuis de nombreux mois par les clients…Pour arriver au résultat souhaité, il faut donc aller côté coulisses.
Le principe est de saisir les tranches horaires d’activation souhaitées dans un fichier de configuration sur unifi, lequel est lu par l’AP wifi lors de son provisionnement.
Ci-dessous un extrait de ma configuration:
root@unifi:~# cat /var/lib/unifi/sites/default/config.properties
config.system_cfg.1=wireless.1.schedule_enabled=enabled
config.system_cfg.2=wireless.1.schedule_mon.0=0000-0100
config.system_cfg.3=wireless.1.schedule_mon.1=0645-2359
config.system_cfg.4=wireless.1.schedule_tue.0=0000-0100
config.system_cfg.5=wireless.1.schedule_tue.1=0645-2359
config.system_cfg.6=wireless.1.schedule_wed.0=0000-0100
config.system_cfg.7=wireless.1.schedule_wed.1=0645-2359
config.system_cfg.8=wireless.1.schedule_thu.0=0000-0100
config.system_cfg.9=wireless.1.schedule_thu.1=0645-2359
config.system_cfg.10=wireless.1.schedule_fri.0=0000-0100
config.system_cfg.11=wireless.1.schedule_fri.1=0645-2359
config.system_cfg.12=wireless.1.schedule_sat.0=0000-0230
config.system_cfg.13=wireless.1.schedule_sat.1=0815-2359
config.system_cfg.14=wireless.1.schedule_sun.0=0000-0230
config.system_cfg.15=wireless.1.schedule_sun.1=0815-2359
config.system_cfg.16=wireless.2.schedule_enabled=enabled
config.system_cfg.17=wireless.2.schedule_mon.0=0000-0100
config.system_cfg.18=wireless.2.schedule_mon.1=0645-2359
config.system_cfg.19=wireless.2.schedule_tue.0=0000-0100
config.system_cfg.20=wireless.2.schedule_tue.1=0645-2359
config.system_cfg.21=wireless.2.schedule_wed.0=0000-0100
config.system_cfg.22=wireless.2.schedule_wed.1=0645-2359
config.system_cfg.23=wireless.2.schedule_thu.0=0000-0100
config.system_cfg.24=wireless.2.schedule_thu.1=0645-2359
config.system_cfg.25=wireless.2.schedule_fri.0=0000-0100
config.system_cfg.26=wireless.2.schedule_fri.1=0645-2359
config.system_cfg.27=wireless.2.schedule_sat.0=0000-0230
config.system_cfg.28=wireless.2.schedule_sat.1=0815-2359
config.system_cfg.29=wireless.2.schedule_sun.0=0000-0230
config.system_cfg.30=wireless.2.schedule_sun.1=0815-2359
config.system_cfg.31=wireless.3.schedule_enabled=enabled
config.system_cfg.32=wireless.3.schedule_mon.0=0000-0100
config.system_cfg.33=wireless.3.schedule_mon.1=0645-2359
config.system_cfg.34=wireless.3.schedule_tue.0=0000-0100
config.system_cfg.35=wireless.3.schedule_tue.1=0645-2359
config.system_cfg.36=wireless.3.schedule_wed.0=0000-0100
config.system_cfg.37=wireless.3.schedule_wed.1=0645-2359
config.system_cfg.38=wireless.3.schedule_thu.0=0000-0100
config.system_cfg.39=wireless.3.schedule_thu.1=0645-2359
config.system_cfg.40=wireless.3.schedule_fri.0=0000-0100
config.system_cfg.41=wireless.3.schedule_fri.1=0645-2359
config.system_cfg.42=wireless.3.schedule_sat.0=0000-0230
config.system_cfg.43=wireless.3.schedule_sat.1=0815-2359
config.system_cfg.44=wireless.3.schedule_sun.0=0000-0230
config.system_cfg.45=wireless.3.schedule_sun.1=0815-2359
config.system_cfg.46=wireless.4.schedule_enabled=enabled
config.system_cfg.47=wireless.4.schedule_mon.0=0000-0100
config.system_cfg.48=wireless.4.schedule_mon.1=0645-2359
config.system_cfg.49=wireless.4.schedule_tue.0=0000-0100
config.system_cfg.50=wireless.4.schedule_tue.1=0645-2359
config.system_cfg.51=wireless.4.schedule_wed.0=0000-0100
config.system_cfg.52=wireless.4.schedule_wed.1=0645-2359
config.system_cfg.53=wireless.4.schedule_thu.0=0000-0100
config.system_cfg.54=wireless.4.schedule_thu.1=0645-2359
config.system_cfg.55=wireless.4.schedule_fri.0=0000-0100
config.system_cfg.56=wireless.4.schedule_fri.1=0645-2359
config.system_cfg.57=wireless.4.schedule_sat.0=0000-0230
config.system_cfg.58=wireless.4.schedule_sat.1=0815-2359
config.system_cfg.59=wireless.4.schedule_sun.0=0000-0230
config.system_cfg.60=wireless.4.schedule_sun.1=0815-2359
On note qu’après le préfixe config.system_cfg. chaque ligne est numérotée à partir de 1.
On voit également que la planification est répétée quatre fois dans mon cas, chaque bloc itératif étant numéroté, en partant de 1. En fait il y a un bloc par SSID par bande de fréquence : ici, il y a deux SSID, accessibles dans la bande des 2,4GHz et dans la bande des 5GHz.
Pour être sûr de numéroter correctement, on peut directement aller s’inspirer du fichier de configuration en cours d’utilisation par l’AP:
cat /tmp/system.cfg
...
...
wireless.1.devname=ath0
...
wireless.2.devname=ath1
...
wireless.3.devname=ath2
...
wireless.4.devname=ath3
...
...
Ensuite on constate que chaque tranche horaire d’une même journée est également numérotée, mais cette fois-ci à partir de 0.
Enfin, on note que chaque ligne correspond à une plage horaire pendant laquelle la radio concernée est allumée. On voit donc qu’avec cette configuration, toutes les radios de l’AP sont allumée de 6h45 à 1h00 du matin la semaine, et de 8h15 à 2h30 le week-end.
Une fois le fichier de configuration prêt, il ne reste plus qu’à provoquer un provisionnement de l’AP wifi concernée depuis l’interface d’administration de unifi:
Le tour est joué.
Ceci dit, tout cela est très laborieux, et j’attends avec impatience le moment où l’interface prendra nativement en charge cette planificatin multi-blocs.
o/