first commit

This commit is contained in:
Souti
2025-03-06 11:09:58 +01:00
commit 11f7d440ff
330 changed files with 38306 additions and 0 deletions

150
lua/script_time_livebox.lua Executable file
View 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