devicechanged['devicename_Temperature'] = value
devicechanged['devicename_Humidity'] = value
devicechanged['devicename_Barometer'] = value
otherdevices['yourotherdevicename'] = "On"
otherdevices_lastupdate['yourotherdevicename'] = "2015-12-27 14:26:40"
otherdevices_svalues['yourotherthermometer'] = string of svalues
otherdevices_idx['yourotherdevicename'] retourne le numero de device
otherdevices_scenesgroups['yourotherscenegroupename'] return stat of group or scene
otherdevices_scenesgroups_idx['yourotherscenegroupename']
timeofday['Nighttime'] = true or false
timeofday['SunriseInMinutes'] = number
timeofday['Daytime'] = true or false
timeofday['SunsetInMinutes'] = number
globalvariables['MySecurityDevice'] = 'Disarmed', 'Armed Home' or 'Armed Away'
commandArray['MySecurityDevice'] = 'Arm Away' delai de 60s, 'Arm Home' delai 60s or 'Disarm'
commandArray['MyOtherDeviceName1']='On'
commandArray['MyOtherDeviceName2']='On'
commandArray['MyOtherDeviceName3']='Off'
commandArray['MyOtherDeviceName4']='On FOR 10' -- Passe à On pendant 10 secondes ?
commandArray['MyOtherDeviceName5']='Off RANDOM 30' -- Off aleatoire pendant 30 secondes ?
commandArray['MyOtherDeviceName6']='On REPEAT 5 INTERVAL 5' -- Repete la commande 5 fois toutes les 5 secondes ?
commandArray['MyOtherDeviceName7']="On FOR 2 SECONDS REPEAT 9 INTERVAL 4 SECONDS" -- Passe un device a ON 9 fois toutes les 4 secondes
commandArray[#commandArray+1]={['MyOtherDeviceName1'] = 'On'}
commandArray['Scene:MyScene']='On'
commandArray['Group:MyGroup']='Off AFTER 30' -- Passe à OFF apres 30 secondes ?
commandArray['SendNotification']='subject#body#extraData#priority#sound'
commandArray['OpenURL']='www.yourdomain.com/api/movecamtopreset.cgi'
commandArray['SendEmail']='subject#body#to'
commandArray['Variable:MyVar']='Some value'
commandArray['SetSetPoint:MySetPointIdx']='20.5'
commandArray['SendCamera:1'] = 'SubjectOfMessage AFTER 5' -- Envoie une image de la camera 1 avec comme sujet "Subject of Message" après 5 secondes. Le 1 est l'ID de la camera pas son nom.
commandArray['UpdateDevice']='idx|nValue|sValue' -- Mettre a jour un device. Ex: '96|0|Hello World'
--Afficher dans les logs le device qui active le script:
print ( "Device: '..next(devicechanged)..'" - Etat: '..devicechanged[next(devicechanged)] )
--Afficher dans les logs, tous les devices, variables ainsi que leurs etats
for deviceName,deviceValue in pairs(otherdevices) do
print ( "Device: '..deviceName..'" - Etat: '..deviceValue)
end
for variableName,variableValue in pairs(uservariables) do
print ( "Variable: '..variableName..'" - Valeur: '..variableValue)
end
-- Verifie le debut du nom du device
device=tostring(next(devicechanged))
if ((device:sub(1,3) == 'PIR') == 'On') then
-- Verifie plusieurs device
local capteurs = { "Porte entree/couloir", "Porte terrasse" }
function verifcapteur()
local capteurp = ' '
local dooropen = 0
print("Verification des capteurs...")
for cle, valeur in ipairs(capteurs) do
if otherdevices[valeur] == 'Open' then
capteurp = capteurp..' -> '..valeur..' '
dooropen = dooropen + 1
end
end
if (dooropen == 1) then
message = "Attention ! La porte :"..capteurp.."est ouverte"
return true
elseif (dooropen >= 2) then
message ="Attention ! Les portes :"..capteurp.."sont ouvertes"
return true
else
message = "Aucune portes ouvertes detecte"
return false
end
--Concatenation de la table avec etat ouvert ou non, parse cette table et verifie que rien n'est ouvert:
local contact={
otherdevices['Contact Garage'],
otherdevices['Contact Entree'],
otherdevices['Contact Baie'],
otherdevices['Contact Baie 2'],
}
print(table.concat(contact,", "))
local maison = string.match(table.concat(contact),'Open')
if maison == 'Open' then
print('Maison ouverte')
else
print('Maison ferme')
end
Dernière modification par landaisbenj le 21 févr. 2019, 09:38, modifié 5 fois.
Merci pour le deuxieme. Pas mal d'exemple en plus.
[EDIT]: J'avais pas pris le temps de regarder mais ca ouvre d'autre perspective oO. Maintenant que je m'habituais au LUA faut que je passe au LUA 2.0 :/ ^^