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
Neutrino a écrit : 05 avr. 2023, 20:00 http et shell command
ça m'a changé la vie :)
https://www.domoticz.com/wiki/DzVents:_ ... d_handling
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. :mrgreen:
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