os.execute et variables script

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 <\>.
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

os.execute et variables script

Message par dokho »

Bonjour,

Dans mes scripts LUA j'utilise pour mes notifications pushover cette commande:

Code : Tout sélectionner

os.execute('curl -s --data "token=MACLEFTOKEN&user=MONUSER&title=Domoticz+Alerte&priority=2&retry=60&expire=180&message=TEMPERATURE CONGELO TROP HAUTE" https://api.pushover.net/1/messages.json')
Ce qui me permet de gérer la priorité des notifications, le retry et le délai d'expiration.

J'aimerais pouvoir inclure dans les notifications une variable locale (genre dans l'exemple ci-dessus la température du congélo: tempcongelo)

Quelqu'un saurait-il me dire comment ajouter cette variable dans le texte de ma notification ?

Sachant que j'ai déjà essayé quelques trucs:

Code : Tout sélectionner

os.execute('curl -s --data "token=MACLEFTOKEN&user=MONUSER&title=Domoticz+Alerte&priority=2&retry=60&expire=180&message=TEMPERATURE CONGELO TROP HAUTE ..tempcongelo" https://api.pushover.net/1/messages.json')

Code : Tout sélectionner

os.execute('curl -s --data "token=MACLEFTOKEN&user=MONUSER&title=Domoticz+Alerte&priority=2&retry=60&expire=180&message=TEMPERATURE CONGELO TROP HAUTE `..tempcongelo`" https://api.pushover.net/1/messages.json')

Code : Tout sélectionner

os.execute('curl -s --data "token=MACLEFTOKEN&user=MONUSER&title=Domoticz+Alerte&priority=2&retry=60&expire=180&message=TEMPERATURE CONGELO TROP HAUTE '..tempcongelo'" https://api.pushover.net/1/messages.json')
Sans grand succès ...

Si quelqu'un a une idée je suis preneur :)
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: os.execute et variables script

Message par dokho »

Je me réponds à moi même (ça peut p-e servir à quelqu'un):

Code : Tout sélectionner

os.execute('curl -s --data "token=MACLEFTOKEN&user=MONUSER&title=Domoticz+Alerte&priority=2&retry=60&expire=180&message=TEMPERATURE CONGELO TROP HAUTE: ' .. tempcongelo .. ' " https://api.pushover.net/1/messages.json')
beny
Messages : 3
Inscription : 16 févr. 2018, 21:10

Re: os.execute et variables script

Message par beny »

Voici le code que j'utilise, tiré du forum anglais, j'ai rajouté les options pour que cela fonctionne en priorité 2
En espérant que cela vous aide.

Code : Tout sélectionner

function notifyMe(iPriority, sTitle, sBody, sSound, sDevice, sRetry, sExpire)
   -- iPriority = -2,-1,0,1,(2 ne fonctionne pas)
   -- sTitle = title of message
   -- sBody = message
   -- sSound = sound, empty is default sound
   -- sDevice = your device name, empty is all devices
   -- sRetry = obligatoire en cas de priorité 2. En seconde, au minimum 30 secondes (par défaut 60s)
   -- sExpire = obligatoire en cas de priorité 2. Temps en secondes ou le message va être répété. maximum  10800 secondes (3h) (par défaut 300s)
   -- Check for optional sound and device parameter
   -- tel-carine ou tel-benoit
   -- exemple d'utilisation : notifyMe('0','test','test uniquement tel carine','','tel-carine')
   if sSound == nil then sSound = '' end
   if sDevice == nil then sDevice = '' end
   if sRetry == nil then sRetry = 30 end
   if sExpire == nil then sExpire = 300 end
   local sUserKey = 'uahsywx7rwwdurdk1e7abb7sfm675w'
   local sToken = 'a1g34z4ojmup3kfin1a3axga8zi66z'
   -- Replace any percent signs with their ascii values, as they are special characters
   sTitle = string.gsub(sTitle, '%%', '%%25')
   sBody = string.gsub(sBody, '%%', '%%25')
   local sMsg = 'curl --data "token=' .. sToken .. '&user=' .. sUserKey .. '&title=' .. sTitle .. '&message=' .. sBody .. '&priority=' .. tostring(iPriority) .. '&retry=' .. sRetry .. '&expire=' .. sExpire .. '&sound=' .. sSound .. '&device=' .. sDevice .. '" https://api.pushover.net/1/messages.json'
   os.execute(sMsg)
end
Répondre