Domotique : Freebox API et détection d'absence
Je travaille actuellement sur un projet personnel de box domotique. OpenSource basée sur du NodeJS / MongoDB / OpenZwave, le tout hébergé sur un Raspberry Pi. Dans le cadre du développement de cette box domotique, je me suis demandé comment je pouvais activer automatiquement l'alarme et les automatisations quand je pars de ma maison. Je pense avoir trouvé la solution grâce à une API cachée de ma Freebox V6 ....
Les API de la Freebox
Vous avez probablement déjà pu le constater en vous connectant sur l'interface Web d'administration de votre Freebox V6 (https://freebox), votre Freebox sait tout de ce qu'il se passe sur votre réseau local.
Vous pouvez depuis cette interface y observer vos PC, mais aussi très probablement votre Smartphone si la configuration Wifi est active. Basé sur ce constat, si chaque habitant possède un smartphone connecté au Wifi, il est donc possible de savoir au travers de la Freebox si quelqu'un est à votre domicile ou non.
En approfondissant un peu plus la documentation des API exposées par la Freebox, on remarquera qu'il est possible pour une application tierce de lister l'ensemble des terminaux connectés sur son réseau local via une API REST qui restitue les mêmes informations que l'interface Web d'administration de la Freebox. Miracle !
GET /api/v3/lan/browser/{interface}/
{
"success": true,
"result": [
{
"l2ident": {
"id": "d0:23:db:36:15:aa",
"type": "mac_address"
},
"active": true,
"id": "ether-d0:23:db:36:15:aa",
"last_time_reachable": 1360669498,
"persistent": true,
"names": [
{
"name": "iPhone-r0ro",
"source": "dhcp"
}
],
"vendor_name": "Apple, Inc.",
"l3connectivities": [
{
"addr": "192.168.69.20",
"active": true,
"af": "ipv4",
"reachable": true,
"last_activity": 1360669498,
"last_time_reachable": 1360669498
}
],
"reachable": true,
"last_activity": 1360669498,
"primary_name_manual": true,
"primary_name": "iPhone r0ro"
}
]
}
Une solution pour détecter la présence
Vous l'aurez compris, il ne reste plus qu'à appeler cette API dès lors qu'aucun mouvement est détecté dans la maison. Si jamais plus aucun Smartphone n'est détecté et qu'aucune présence n'est détectée par les détecteurs infrarouges, on peut considérer à 98% que la maison est vide et donc déclencher l'alarme et l'ensemble des automatisations planifiées.
Grâce à cette API, ma maison va donc devenir intelligente. Je n'aurai plus besoin d'informer ma box domotique que je ne suis plus là. Merci Free !
Un plugin dédié pour Node-Red
J'ai profité de cette API pour créer un plugin Node-Red pour créer une alarme intelligente.
Venez découvrir ce projet sur cet article.