J'utilise domoticz depuis quelques mois déjà et j'ai voulu commencer à regarder les scripts en lua.
Plutôt que de me lancer comme ça, j'ai voulu mettre en oeuvre un script permettant d' changer l'état d'un switch en fonction du résultat d'un ping.
Voici le script:
Code : Tout sélectionner
--Initialise la commande de retour finale
commandArray={}
--Mode deboggage (affichage des messages)
debug=true
--Prefixe pour les sorties de log
prefixe="(PING) "
--Tableau des périphériques à "pinguer"
-- Key = adresse ip à pinguer
-- Value = périphérique virtuel à switcher
local ping={}
ping['192.168.1.23']='smartphone'
ping['192.168.1.20']='NAS'
ping['192.168.1.39']='camera'
--pour chaque entree du tableau
for ip, switch in pairs(ping) do
--Le Ping ! : -c1 = Un seul ping , -w3 délai de 3 secondes d'attente de réponse
ping_success=os.execute('ping -c1 -w3 '..ip)
--Si le ping à répondu
if ping_success then
if(debug==true)then
print(prefixe.."ping success "..switch)
end
--si le switch etait sur off on l'allume
if(otherdevices[switch]=='Off') then
commandArray[switch]='On'
end
else
--Si pas de réponse
if(debug==true)then
print(prefixe.."ping fail "..switch)
end
--si le switch etait sur oN on l'eteind
if(otherdevices[switch]=='On') then
commandArray[switch]='Off'
end
end
endCode : Tout sélectionner
lua: ./script_time_presence.lua:24: attempt to index global 'otherdevices' (a nil value)Merci d'avance.