first commit
This commit is contained in:
150
lua/script_time_livebox.lua
Executable file
150
lua/script_time_livebox.lua
Executable file
@@ -0,0 +1,150 @@
|
||||
---------------------------------
|
||||
-- Script de détection de présence via livebox
|
||||
-- Auteur : Sopalin
|
||||
-- Date : 22 Juillet 2016
|
||||
-- Nécessite un switch classique
|
||||
-- source :
|
||||
|
||||
---------------------------------
|
||||
require "scripts/lua/functions"
|
||||
|
||||
--recupere les minutes
|
||||
time=os.time()
|
||||
seconds=tonumber(os.date('%S',time))
|
||||
minutes=tonumber(os.date('%M',time))
|
||||
heures=tonumber(os.date('%H',time))
|
||||
|
||||
|
||||
commandArray={}
|
||||
|
||||
function testActive(name, active)
|
||||
if active then
|
||||
--commandArray[name]='On'
|
||||
switchIfNeeded(name, 'On')
|
||||
else
|
||||
switchIfNeeded(name, 'Off')
|
||||
--commandArray[name]='Off'
|
||||
end
|
||||
debug("### Test active Name : "..name.." active "..tostring(active))
|
||||
end
|
||||
|
||||
if heures == 8 then
|
||||
commandArray['Variable:Detection_Manon_20H'] = "0"
|
||||
commandArray['Variable:Detection_Theo_20H'] = "0"
|
||||
--uservariables['Detection_Manon_20H'] = 0
|
||||
--uservariables['Detection_Theo_20H'] = 0
|
||||
--print('Detection_Theo_20H='..string(uservariables['Detection_Theo_20H']))
|
||||
end
|
||||
|
||||
--time = os.date("*t")
|
||||
if (minutes % 5 == 4) then
|
||||
--if (true) then
|
||||
|
||||
--import des fontions pour lire le JSON
|
||||
json = (loadfile "/opt/domoticz/scripts/lua/JSON.lua")()
|
||||
|
||||
--Récupération des informations sur la livebox
|
||||
--Utilisation d'un script VBS sous windows
|
||||
--Utilisation d'un script bash pour extraire les données
|
||||
----------------------------------------------------------------
|
||||
--Lecture des données
|
||||
|
||||
local f = assert(io.open("/tmp/Devices.txt","r"))
|
||||
local livebox = f:read('*all')
|
||||
f:close()
|
||||
--Décodage ud fichier
|
||||
local jsonLivebox = json:decode(livebox)
|
||||
if jsonLivebox == nil then
|
||||
return commandArray
|
||||
end
|
||||
|
||||
--debug("DEBUG")
|
||||
--debug(timedifference(otherdevices_lastupdate['Presence Thomas']))
|
||||
|
||||
commandArray['Domi']='Off'
|
||||
commandArray['Domi_Work']='Off'
|
||||
commandArray['Theo']='Off'
|
||||
commandArray['Moi']='Off'
|
||||
commandArray['Manon']='Off'
|
||||
commandArray['orangepizero']='Off'
|
||||
commandArray['jerome']='Off'
|
||||
commandArray['R53PP2003X0247']='Off'
|
||||
commandArray['R53PP2003X0247-1']='Off'
|
||||
|
||||
devices = jsonLivebox['status']
|
||||
--Parcours du fichier pour vérifier la présence d'un téléphone
|
||||
for result,status in pairs(devices) do
|
||||
local name = status['Name']
|
||||
debug("Name : "..name.." Mac : "..status['Key'].." "..tostring(status['Active']))
|
||||
|
||||
if (name == "Akhesa" or name == "Playstation3" or name == "DESKTOP-MUI1HPH" or name == "Theo") then
|
||||
-- testActive('Theo', status['Active'])
|
||||
if status['Active'] then
|
||||
commandArray['Theo']='On'
|
||||
if heures >= 19 then
|
||||
commandArray['Variable:Detection_Theo_20H'] = "1"
|
||||
end
|
||||
end
|
||||
end
|
||||
if (--name == "Nefertiti" or
|
||||
string.find(name,"Jerome") or name == "Achille" or string.find(name, "Moi")
|
||||
or name == "iPhonedeJerome" or name == "iPhonedeJerome-1" or name == "jerome"
|
||||
or name == "Iphone-jerome"
|
||||
) then
|
||||
if status['Active'] then
|
||||
commandArray['Moi']='On'
|
||||
end
|
||||
end
|
||||
if (name == "DomiPro" or name == "Domi") then
|
||||
-- testActive('Domi', status['Active'])
|
||||
if status['Active'] then
|
||||
commandArray['Domi']='On'
|
||||
end
|
||||
end
|
||||
if (name == "R53PP2003X0247-1" or name == "R53PP2003X0247") then
|
||||
if status['Active'] then
|
||||
commandArray['Domi_Work']='On'
|
||||
end
|
||||
end
|
||||
if (name == "Akhenaton-3" or name == "Akhenaton") then
|
||||
testActive("Akhenaton", status['Active'])
|
||||
end
|
||||
if (name == "Manon" or name == "AcerManon"
|
||||
or name == "DESKTOP-KH8V15B" or name == "iPhone-de-Manon" or name == "IPhonedeManon")
|
||||
then
|
||||
-- testActive("Manon", status['Active'])
|
||||
if status['Active'] then
|
||||
commandArray['Manon']='On'
|
||||
if heures >= 20 then
|
||||
commandArray['Variable:Detection_Manon_20H'] = "1"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (name == "TeleChambre" or name == "AcerManon" or name == "Akhesa" or name == "AkhesaNew"
|
||||
or name == "Akhenaton" or name == "SoutiHP" or name == "Hackintosh"
|
||||
or name == "Octoprint" or name == "jerome"
|
||||
or name == "Volumio" or name == "LibreELEC"
|
||||
or name == "Recovery") then
|
||||
testActive(name, status['Active'])
|
||||
end
|
||||
|
||||
if (--name == "orangepizero" or name == "orangepizero-1" or
|
||||
name == "orangepizero-2") then
|
||||
if status['Active'] then
|
||||
commandArray['orangepizero']='On'
|
||||
end
|
||||
end
|
||||
|
||||
if (name == "RadiateurManon" or name == "RadiateurTheo" or name == "RadiateurBureau"
|
||||
or name == "RadiateurChambre") then
|
||||
if status['Active'] then
|
||||
-- nothing
|
||||
else
|
||||
-- commandArray['SendNotification']='Alerte radiateur '..name..'#Alerte radiateur ne repond pas au ping '..name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return commandArray
|
||||
Reference in New Issue
Block a user