Domoticz‎ > ‎5/ Les Scripts LUA‎ > ‎

script_time_NETWORK_STATUS

Beaucoup de scripts de détection de présence sont basés sur le ping d'éléments en réseau comme les smartphone, les PC, la télévision (si récente). J'ai aussi commencé par ce genre de script, plus ou moins efficace ! Avec quelque lacune quand même car essayé de "pinguer" une XBox : c'est loin d'être facile !!

Alors j'ai cherché, j'ai trouvé et aussi adapté....

Le principe : ce script LUA utilise l'API de la Freebox. Il s'y connecte, récupère un token, récupère dans un fichier texte tous les périphériques connus du réseau local connectés ou non et en fonction de leurs états passe à ON ou OFF le device associé... bien résumé !

Pour ce faire, deux fichiers dans le répertoire /home/pi/domoticz/script/ : script_time_network_status.lua et json.lua. (à télécharger en bas de la page)
Ainsi que quelques variables utilisateurs dans Domoticz

Les variables :
freebox_appid : C'est le nom de l'appli connu par la Freebox
freebox_mac_adress_smartphones : c'est la liste des adresses mac, séparé par un point virgule, qui constituera les périphériques déclenchant l'alarme.
freebox_mac_adress_surveillancec'est la liste des adresses mac, séparé par un point virgule, qui constituera les périphériques NE déclenchant PAS l'alarme mais permettront un changement d'état du device.

Attention : ne pas mettre en variable "freebox_apptoken" il contient des chiffres, des lettres, des symboles, des espaces, et certains sont mal reconnu par Domoticz en tant que variable. 

Script_time_network_status.lua :
Dans le fichier, les lignes à modifier :
freebox_apptoken="XHKpCvWjPMsVVqwgTO9u/apxfGlqDtsiaZAZqc9+TCVLVLCfpzU4fetYsTU6KkYs"
apiFreeboxv3="http://mafreebox.freebox.fr/api/v3"
apiDomoticz="http://192.168.0.30:8080/json.htm?"

Association avec la Freebox : (ne faire qu'une seule fois)
Consulter ce blog.
Pour résumer, télécharger l'extension Chrome : POSTMAN
Faire un "POST" sur http://mafreebox.free.fr/api/V3/login/authorize/
de :
{
    "app_id":"fr_freebox_domoticz"
    "app_name":"FreeboxDomo"
    "app_version":"0.0.1"
    "device_name":"Raspberry"
}
Cliquez sur "SEND" ,n'oubliez de valider sur l'écran de la Freebox et en réponse vous aurez :
{
    "success" : true,
    "result" : {
            "app_token" : "XHKpCvWjPMsVVqwgTO9u/apxfGlqDtsiaZAZqc9+TCVLVLCfpzU4fetYsTU6KkYs",
            "track_id" : 2
                    }
}

Ce n'est pas décrit dans le blog, mais j'ai dû faire un GET sur le track_id pour que la Freebox accepte la connexion. Dans la console de la Freebox, l'autorisation est en attente. Dans POSTMAN, il faut changer la méthode par un GET puis avec la même commande : "http://mafreebox.free.fr/api/V3/login/authorize/TRACK_ID". Remplacer TRACK_ID par le numéro récupéré plus haut. Dans notre exemple  "track_id" : 2 

On souffle un peu et on résume : 
  • les variables sont créer dans Domoticz, appid est celui que l'on a mis dans le "POST" à la Freebox. 
  • Les adresses mac sont récupérables sur l'interface de la Freebox dans "Gestion des périphérique"
  • le token est copier/coller dans le script.
  • l'URL et le port de Domoticz sont à jour dans le script

ċ
JSON.lua
(34k)
Jerome 66Bis,
25 janv. 2016 à 03:02
ċ
script_time_NETWORK_STATUS.lua
(9k)
Jerome 66Bis,
6 avr. 2016 à 02:08