Demande d'aide : Presence Virtuel Script LUA avec la commande nmap
Publié : 01 oct. 2015, 14:20
Bonjour à tous,
J’espère poser ma question dans la bonne section.
Je découvre Domoticz, j'en suis au tout début de l'expérimentation.
Configuration :
Raspberry Pi B
Connecter au reseau en Ethernet
Pas encore de RFXCON (bientot)
Comme beaucoup d'entre vous je souhaite utiliser un script de présence virtuel pour détecter si moi, mon épouse ou mes enfants sont à la maison ou absent.
J'ai trouver le script ci dessous qui me paraissait convenir.
Mais malheureusement pour une raison indeterminer, cela ne fonctionne pas avec mon tel samsung, il ne repond pas au ping et refuse meme que je ping mon raspberry.
donc après diverse recherche, j'ai trouver celui ci en bash.
Ce qui m'interresse dans ce script c'est la méthode utiliser avec la commande nmap -sn
Je voudrais l'adapter au premier script car j'utilise :
- 1 interrupteur virtuel maitre qui ce nomme Presence_Maison
- 1 interrupteur virtuel esclave qui ce nomme papa_Telephone
- 1 interrupteur virtuel esclave qui ce nomme fille1_Telephone
- 1 interrupteur virtuel esclave qui ce nomme fille2_Telephone
et donc dés qu'un des esclave passe a ON, le maitre passe à ON mais il faut que tout les esclave soient à OFF pour que le maitre passe à OFF
J'ai essayer de modifier le script, mais rien de concluant, et ne maitrisant pas du tout le code LUA.........
Si une âme charitables passe par là et pouvez me donner un coup de pouce, je l'en remercierais grandement
Amicalement à tous
J’espère poser ma question dans la bonne section.
Je découvre Domoticz, j'en suis au tout début de l'expérimentation.
Configuration :
Raspberry Pi B
Connecter au reseau en Ethernet
Pas encore de RFXCON (bientot)
Comme beaucoup d'entre vous je souhaite utiliser un script de présence virtuel pour détecter si moi, mon épouse ou mes enfants sont à la maison ou absent.
J'ai trouver le script ci dessous qui me paraissait convenir.
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.56']='Tel aurelien'
ping['192.168.1.20']='NAS'
ping['192.168.1.39']='Tel chaton'
--pour chaque entree du tableau
for ip, switch in pairs(ping) do
--Le Ping ! : -c1 = Un seul ping , -w1 délai d'une seconde d'attente de réponse
ping_success=os.execute('ping -c1 -w1 '..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
end
donc après diverse recherche, j'ai trouver celui ci en bash.
Code : Tout sélectionner
loop=1
sleep=10
switch=40
while [ "$loop" -eq "1" ]
do
echo ""
echo ""
echo ""
echo ""
echo Phone on = 0, Phone off = 1
nmap -sn 10.24.1.10 | grep -q latency
phone1=$?
echo Phone Name1 = $phone1
nmap -sn 10.24.1.11 | grep -q latency
phone2=$?
echo Phone Name2 = $phone2
total=$(($phone1 + $phone2))
echo Phones Total command = $total
if [ "$total" -gt "1" ];
then
echo Detected 0 phones, Checking status switch $switch;
curl -s "http://127.0.0.1:8080/json.htm?type=devices&rid="$switch"" | grep '"Status" : "Off",'
switchon=$?
if [ "$switchon" -eq "0" ];
then
echo Switch $switch is already OFF, skipping sending command to Domoticz;
else
echo Switch $switch was ON, turning switch OFF; curl "http://127.0.0.1:8080/json.htm?type=command¶m=switchlight&idx="$switch"&switchcmd=Off";
fi
else
echo Detected 1 or more phones, Checking status switch $switch;
curl -s "http://127.0.0.1:8080/json.htm?type=devices&rid="$switch"" | grep '"Status" : "On",'
switchon=$?
if [ "$switchon" -eq "0" ];
then
echo Switch $switch is already ON, skipping sending command to Domoticz;
else
echo Switch $switch was OFF, turning switch ON; curl "http://127.0.0.1:8080/json.htm?type=command¶m=switchlight&idx="$switch"&switchcmd=On";
fi
fi
echo ""
echo ""
echo ""
echo ""
echo Execution done, sleeping for $sleep seconds
sleep $sleep
done
Je voudrais l'adapter au premier script car j'utilise :
- 1 interrupteur virtuel maitre qui ce nomme Presence_Maison
- 1 interrupteur virtuel esclave qui ce nomme papa_Telephone
- 1 interrupteur virtuel esclave qui ce nomme fille1_Telephone
- 1 interrupteur virtuel esclave qui ce nomme fille2_Telephone
et donc dés qu'un des esclave passe a ON, le maitre passe à ON mais il faut que tout les esclave soient à OFF pour que le maitre passe à OFF
J'ai essayer de modifier le script, mais rien de concluant, et ne maitrisant pas du tout le code LUA.........
Si une âme charitables passe par là et pouvez me donner un coup de pouce, je l'en remercierais grandement
Amicalement à tous