Page 2 sur 2
Re: dzvents.lua error timeout
Publié : 07 avr. 2023, 22:47
par pierrotori
Pour ceux qui utilises des fonctions post pour récupérer des informations sur un nas en mode veille tous les temps de minutes vous utilisez quoi comme fonction pour le réveiller en mode asynchrone
Re: dzvents.lua error timeout
Publié : 08 avr. 2023, 19:23
par pierrotori
justement dans le script livebox ce sont des appels de ce type
Code : Tout sélectionner
os.capture("curl -s -b \""..myCookies.."\" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H \"X-Context: "..myContextID.."\" -d \"{\\\"service\\\":\\\"Devices.Device.HGW\\\",\\\"method\\\":\\\"topology\\\",\\\"parameters\\\":{}}\" http://"..adresseLB.."/ws")
je pourrais les transformer en shell asynchrone ?
Re: dzvents.lua error timeout
Publié : 08 avr. 2023, 20:46
par Neutrino
Ouaip !
ça doit être le dernier script qui tourne en synchrone chez moi.
Il s'exécute assez rapidement pour ne pas en ressentir le besoin.
Mais si tu es motivé, je t'encourage à le faire

Re: dzvents.lua error timeout
Publié : 08 avr. 2023, 20:48
par Keros
dzvents.lua error timeout
Publié : 08 avr. 2023, 21:32
par pierrotori
Dans ce script tu as active toutes les devices ?
J’ai garde que le LAN et MIB sur livebox5 car la partie appel est instable
Tu l’executes tous les combien de minutes ?
Re: dzvents.lua error timeout
Publié : 08 avr. 2023, 22:04
par Neutrino
Toutes les minutes sur une livebox 4.
Re: dzvents.lua error timeout
Publié : 18 avr. 2023, 12:04
par pierrotori
Je me suis inspiré de ce tuto shell
https://www.domoticz.com/wiki/NAS_Monitoring
j'ai donc mis en place ce code afin de le reveiller
le ping permet de voir si il répond sinon envoie du curl
Code : Tout sélectionner
if item.isTimer or item.isCustomEvent then
dz.executeShellCommand(
{
command = 'ping -c 1 -q '..NasIp..' | awk -F"/" \'{print $5}\' | xargs',
callback = 'wakeontest',
timeout = 5
}
)
elseif item.isShellCommandResponse then
if item.trigger == 'wakeontest' and item.statusCode == 0 and item.data == nil then
-- il faut le reveiller
dz.executeShellCommand(
{
command = 'curl -s "http://xxx.xxx.xx.xx"',
callback = 'wakeonlan',
timeout = 5
}
)
elseif item.trigger == 'wakeononlan' or item.trigger == 'wakeontest' then
dz.executeShellCommand(
{
command = 'snmpget -v 2c -c '..CommunityPassword..' -O qv '..NasIp..' '
..OID_NAS_TEMP..' '
..OID_HDUnit..' '
..OID_HDTotal..' '
..OID_HDUsed..' '
..OID_CpuUser..' '
..OID_CpuSystem..' '
..OID_MemAvailable ..' '
..OID_MemTotalSwap ..' '
..OID_MemTotalReal..' '
..OID_MemTotalFree..' '
..OID_HDtemp1..' '
..OID_HDtemp2..' '
..OID_ifHCOutOctets..' '
..OID_ifHCInOctets ,
callback = 'sinology',
timeout = 15
}
)
elseif item.trigger == 'sinology' then
ici script standard
Du coup je vais l'améliorer pour remonter la mise en veille sur l'icone NAS on/off