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 :D

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&param=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