DZVents : Noms des appelants (annuaire Livebox)

Dans un script précédent, nous récupérons la liste des derniers appels téléphonique de la livebox.

gros inconvénient pour moi qui ne mémorise plus les numéros depuis l’avènement du téléphone portable, ces numéros ne me disent rien.
du coup, pourquoi ne pas mettre en place un mini annuaire de mes contacts afin de voir au premier coup d’œil qui a appelé?

La première chose à faire donc, c’est un fichier annuaire simple. J’ai choisi le format json pour ce fichier afin d’extraire facilement et simplement les données qu’il contient.
exemple du formatage des données


J’ai placé ce fichier dans le répertoire scripts (/home/pi/domoticz/scripts/contacts.json) et modifié les droits d’accès à ce fichier via un chmod 0777
ensuite dans le script :

  • il faut déclarer une variable contenant le chemin d’accès à ce fichier
    local fichier_contacts = "/home/pi/domoticz/scripts/contacts.json"
  • il faut indiquer le chemin d’accès à la librairie JSON.lua
    json = assert(loadfile('/home/pi/domoticz/scripts/lua/JSON.lua'))()
  • Créer une fonction pour lire le fichier
    function json2table(file)
    local f = io.open(file, "rb")
    if(f == nil) then
    return ""
    else
    local content = f:read("*all")
    f:close()
    jsonValeur = json:decode(content)
    return jsonValeur
    end
    end
  • Déclarer une variable de type table
    contacts = {}
  • assigner le contenu du fichier à cette variable
    contacts = json2table(fichier_contacts)
  • on créé une nouvelle fonction pour rechercher le nom lié au numéro de téléphone
    function searchName(contacts, phoneNumber)
    for index, variable in pairs(contacts) do
    if variable.Phone == phoneNumber then
    name = variable.Name
    end
    end
    if name == nil then
    name = phoneNumber
    end
    return name
    end
  • i l ne reste plus qu’à remplacer
    call.remoteNumber
    par
    searchName(contacts, call.remoteNumber)
  • dans le script

le script complet

retrouver la dernière version de ce script sur



 Site Officiel :   github.com

Laisser un commentaire