ordinateur allumé

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Cissou
Messages : 98
Inscription : 25 févr. 2015, 13:10

ordinateur allumé

Message 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?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: ordinateur allumé

Message 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

MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
scholes2705
Messages : 10
Inscription : 13 nov. 2015, 11:53

Re: ordinateur allumé

Message 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.
Cissou
Messages : 98
Inscription : 25 févr. 2015, 13:10

Re: ordinateur allumé

Message par Cissou »

j'ai bien ajouté le Alive system checker, mis mes IP a verifier, mais apres, ou trouve-t-on les résultats?
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: ordinateur allumé

Message 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...
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Cissou
Messages : 98
Inscription : 25 févr. 2015, 13:10

Re: ordinateur allumé

Message par Cissou »

Ça me crée pas de dispositif, donc je vais tenter ton script vil1driver
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: ordinateur allumé

Message par patrice »

Bonjour
cela ne les cree pas parce que tu as oublie d'activer l'autorisation d"ajout de nouveaux peripheriques
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre