Page 1 sur 1
ordinateur allumé
Publié : 12 déc. 2015, 14:07
par Cissou
Salut à tous,
Je cherche par un script lua a détecter les machines allumées sur mon réseau local, j'ai déjà des boutons pour allumé par WOL mes machines, mais j'aimerai bien savoir lesquelles sont allumé ou non.
Avec des idées ou des exemples?
Re: ordinateur allumé
Publié : 12 déc. 2015, 14:14
par vil1driver
salut,
bah il suffit de les pinguer pour savoir si elles sont allumée
créer autant de switchs virtuel que tu veux tester de machines
le script ci dessous va les passer à On ou à Off suivant leurs états respectifs
juste un tableau à remplir
ip de la machine , nom du switch
Code : Tout sélectionner
-- script_time_ping.lua
--------------------------------
------ Tableau à éditer ------
--------------------------------
local url = 'paul@auchon:192.168.22.100:8080' -- user:pass@ip:port de domoticz
local ping={}
ping['192.168.22.153']='room'
ping['192.168.22.200']='nas'
ping['www.free.fr']='adsl'
ping['192.168.22.70']='sms gateway'
--etc..
local loops = '2' -- ping toutes les X mintes
local count = '2' -- nombre d'échecs successifs avant de valider offLine
--------------------------------
-- Fin du tableau à éditer --
--------------------------------
function url_encode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w %-%_%.%~])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
commandArray={}
date = os.date("*t")
-- toutes les X minutes
if (date.min % loops == 0) then
local n = 0
for ip, switch in pairs(ping) do
n = n + 1
-- Le Ping ! : -c1 = Un seul ping , -w3 délai de 3 seconde d'attente de réponse
ping_success=os.execute('ping -c1 -w3 '..ip)
-- création des variables utilisateur pour comptabiliser les échecs de ping
if(uservariables['PING_'..switch] == nil) then
commandArray[n]={['OpenURL']=url..'/json.htm?type=command¶m=saveuservariable&vname=PING_'..url_encode(switch)..'&vtype=2&vvalue=0'}
print('PING : création variable manquante PING_'..switch)
print('PING : script supendu')
-- Si le ping à répondu
elseif ping_success then
-- remise à zéro du compteur d'échec
commandArray[n]={['Variable:PING_'..switch] = '0'}
print('PING : ' .. switch .. ' -> success')
-- si le switch etait sur off on l'allume
if(otherdevices[switch] == 'Off') then
commandArray[n+1]={[switch] = 'On'}
end
else -- Si pas de réponse
-- on incrémente le compteur d'échec
commandArray[n]={['Variable:PING_'..switch] = tostring(uservariables['PING_'..switch] + 1)}
print('PING : ' .. switch .. ' -> fail ('..(uservariables['PING_'..switch]+1)..')')
-- si le switch etait sur On et que le compt total est atteint, on l'éteind
if(otherdevices[switch] == 'On' and tonumber(uservariables['PING_'..switch]) >= count - 1) then
commandArray[n+1]={[switch] = 'Off'}
end
end
end
end
return commandArray
Re: ordinateur allumé
Publié : 12 déc. 2015, 14:38
par scholes2705
Pas besoin de script
Domoticz integre dans les dernieres versions le materiel suivant:
System Alive Checker (Ping)
Il faudra le rajouter puis sur reglages rajouter les ip à pinguer.
Re: ordinateur allumé
Publié : 12 déc. 2015, 15:29
par Cissou
j'ai bien ajouté le Alive system checker, mis mes IP a verifier, mais apres, ou trouve-t-on les résultats?
Re: ordinateur allumé
Publié : 12 déc. 2015, 15:31
par vil1driver
scholes2705 a écrit :Pas besoin de script
Domoticz integre dans les dernieres versions le materiel suivant:
System Alive Checker (Ping)
Il faudra le rajouter puis sur reglages rajouter les ip à pinguer.
ce truc est juste complètement buggué !
Cissou a écrit :j'ai bien ajouté le Alive system checker, mis mes IP a verifier, mais apres, ou trouve-t-on les résultats?
ça crée des switchs, vas voir dans la liste des périphériques et ajoutes les...
Re: ordinateur allumé
Publié : 12 déc. 2015, 15:37
par Cissou
Ça me crée pas de dispositif, donc je vais tenter ton script vil1driver
Re: ordinateur allumé
Publié : 12 déc. 2015, 15:38
par patrice
Bonjour
cela ne les cree pas parce que tu as oublie d'activer l'autorisation d"ajout de nouveaux peripheriques