Script .lua Wanscam requêtes http pour la diriger

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 <\>.
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

Bonsoir c'est encore moi et mes questions...

Sauf que ce coup ci pour ceux d'entre vous qui possèdent une caméra Wanscam HW0039 ou autre j'ai trouvé les commande HTTP pour la diriger et le snapshot...A moi de participer un peu tout de même ;)

Donc je suis en train d’essayer de créer un script.lua qui quand un capteur passe a 'on' tourne la cam a un point 1 défini a l'avance au moyen d'une adresse http et enregistrée dans la caméra.
Ensuite il faut que ça mette en route les LED de la cam
Que ça prenne un snapshot
Que ça l'enregistre quelque par je ne sais ou encore...et...ou ...que ça me l'envoie par mail (mais ça le setup de la cam le permet)
Et que la cam retourne a son point 2 lui aussi prévu a l'avance.

Donc j'ai commencé le script ou j'ai inclus toutes les commandes a ma disposition pour la cam.

Il me faut trouver comment marquer une pause pour permettre a la cam d'atteindre son premier point, d'allumer ses LED et de prendre une série de snapshot et apres de retourner se garer au point 2.

Ca fait encore beaucoup de choses mais quelques pistes me seraient utiles

Merci
commandArray = {}

if (devicechanged['fgms001_sensor']) == 'On' then
--si le capteur est sur "on" aller au point 1
commandArray[1]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
--Allumage des LED de la cam
commandArray[2]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
--La il faudrait une pose le temps que la cam soit positionnée comment faire ?
--ensuite commande de snapshot mais elle s'enregistre ou et comment ???
commandArray[3]={['OpenURL']='http://192.168.1.13:99/snapshot.cgi?use ... d=7104608a'}

end
return commandArray


--http://tutoriels.domotique-store.fr/con ... nscam.html

--snapshot : http://192.168.1.13:99/snapshot.cgi?use ... d=7104608a

--Monter :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Stop montée: http://192.168.1.13:99/decoder_control. ... d=7104608a

--Descendre :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Stop descente :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Gauche :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Stop gauche :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Droite :http://192.168.1.13:99/decoder_control. ... d=7104608a

--Stop droite :http://192.168.1.13:99/decoder_control. ... d=7104608a
------------------------------------------------------------------------------------------------------
--1er centrage ouvert30 (mémoriser position 1)

--http://192.168.1.13:99/decoder_control. ... d=7104608a

--2eme centrage fermé 32(mémoriser position 2)

--http://192.168.1.13:99/decoder_control. ... d=7104608a

--Pour le motion : 33 (rappeller position 2)

--http://192.168.1.13:99/decoder_control. ... d=7104608a

--Pour le no motion :31 (rappeller position 1)

--http://192.168.1.13:99/decoder_control. ... d=7104608a

--Autres API

--/reboot.cgi[?user=&pwd=&next_url=]

--/decoder_control.cgi?command=&onestep=&sit=&user=&pwd=&next_url=

--Montée 0
--Stop montée 1
--Descente 2
--Stop descente 3
--Gauche 4
--Gauche stop 5
--Droite 6
--Droite stop 7
--centrer 25
--Balayage vertical 26
--Balayage vertical stop 27
--Balayage horizontal 28
--Balayage horizontal stop 29
--Mémoriser position 1 30
--Rappeler position 1 31
--Mémoriser position 2 32
--Rappeler position 2 33
--Mémoriser position 3 34
--Rappeler position 3 35

--Mémoriser position 16 60
--Rappeler position 16 61

--Haut gauche 90
--Haut droite 91
--Bas gauche 92
--Bas droite 93
--Allumer LED 94 = http://192.168.1.13:99/decoder_control. ... d=7104608a
--Eteindre LED 95 = http://192.168.1.13:99/decoder_control. ... d=7104608a
--Test rotations 255 = http://192.168.1.13:99/decoder_control. ... d=7104608a

PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script .lua Wanscam requêtes http pour la diriger

Message par patrice »

Bonsoir

Il faut que tu implemente une fonction d'attente http://lua-users.org/wiki/SleepFunction

Code : Tout sélectionner

local clock = os.clock
function sleep(n)  -- seconds
  local t0 = clock()
  while clock() - t0 <= n do end
end
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

local clock = os.clock
function sleep(n) 10 seconds
local t0 = clock()
while clock() - t0 <= n do end
end

Si je pige bien on defini local clock = heure actuelle de l'os
on defini le sleep (n) en secondes
apres je pense comprendre mais dur a expliquer...

et ça je le met comme ça ? c'est le "end" qui me chiffonne il est tout seul sans son "if"...je l'enleve....
commandArray = {}

if (devicechanged['fgms001_sensor']) == 'On' then

commandArray[1]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
commandArray[2]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
local clock = os.clock
function sleep(n) 10 seconds
local t0 = clock()
while clock() - t0 <= n do end

--ensuite commande de snapshot mais elle s'enregistre ou et comment ???
commandArray[3]={['OpenURL']='http://192.168.1.13:99/snapshot.cgi?use ... d=7104608a'}

end

return commandArray
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Script .lua Wanscam requêtes http pour la diriger

Message par patrice »

Comme cela plutôt
Tu defini d'abord la fonction sleep et ensuite quand tu en as besoin dans ton code tu l"appelle avec l bonne durée

Code : Tout sélectionner

local clock = os.clock
function sleep(n)  10 seconds     
  local t0 = clock()
  while clock() - t0 <= n do end

commandArray = {}

if (devicechanged['fgms001_sensor']) == 'On' then

commandArray[1]={['OpenURL']='http://192.168.1.13:99/decoder_control.cgi?command=33&onestep=500&user=root&pwd=7104608a'}
sleep(10)
commandArray[2]={['OpenURL']='http://192.168.1.13:99/decoder_control.cgi?command=94&onestep=500&user=root&pwd=7104608a'} 
sleep (10)
--ensuite commande de snapshot mais elle s'enregistre ou et comment ???
commandArray[3]={['OpenURL']='http://192.168.1.13:99/snapshot.cgi?user=root&pwd=7104608a'}

end

return commandArray

Pas testé
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

Ah ok je vois le principe, j'éssaie ça des que possible et je te dis quoi.

Merci
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

Error: EventSystem: /home/pi/domoticz/scripts/lua/script_device_action_cam.lua:3: unexpected symbol near '10'

Je dois avoir des problèmes de syntaxe... je vais regarder sur le lien que tu m'a filé
il y a ça: function sleep(n) -- seconds
et j'ai remplacé les -- par 10 ... il n'y a pas d'erreur d'espace ou autre...

local clock = os.clock
function sleep(n) 10 seconds
local t0 = clock()
while clock() - t0 <= n do end

commandArray = {}

if (devicechanged['fgms001_sensor']) == 'On' then

commandArray[1]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
sleep(10)
commandArray[2]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}

end

return commandArray
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script .lua Wanscam requêtes http pour la diriger

Message par vil1driver »

salut,

les -- indiquent du commentaire, ce n'est pas à remplacer par quoi que ce soit :D
et tu as oublié le end de fin... le code ça ne pardonne pas les erreurs de copier/coller....


utilises winscp et notepad++ et des copier/coller ça t'éviteras ce genre de problèmes...
et ça te mettra en couleur le code, comme ça tu verras que ce qui suit les -- est d'une autre couleur... pour bien distinguer que ce n'est pas du code ;)
ou si tu es aventurier, l'éditeur de script intégré à domoticz (beta)


sinon excusez moi :D

les pauses dans les scripts lua dans domoticz... sont à EVITER !!
surtout dans ce cas précis avec cette pause de 10 secondes,
ce qui est justement le délai max du script avant que domoticz ne le kill sans sommation !!!

si tu as des logs dans ce sens ne t'étonnes pas...

sinon pour faire une pause, il y a un chouilla plus simple, lancer directement la commande linux sleep ;)

Code : Tout sélectionner

os.execute("sleep 10")
en romançant ça donnerait

Code : Tout sélectionner

function sleep(n)
  os.execute("sleep " .. tonumber(n))
end

commandArray = {}

sleep(5) -- pause de 5 secondes

...
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

Toujours sur le coup vil1driver :D

Effectivement les 10 sec on en a déjà parlé sur une de mes premières questions sur le forum...

Donc soit je fait une pause de moins de 10 sec soit j'utilise ta méthode.

Je fini mon topic sur la cam Axis et je vois ça.

Merci
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
optik8
Messages : 87
Inscription : 17 déc. 2015, 12:23

Re: Script .lua Wanscam requêtes http pour la diriger

Message par optik8 »

Donc en gros pour le script de Patrice j'ai juste a mettre 10 dans sleep(10)
local clock = os.clock
function sleep(n) -- seconds
local t0 = clock()
while clock() - t0 <= n do end

commandArray = {}

if (devicechanged['fgms001_sensor']) == 'On' then

commandArray[1]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}
sleep(10)
commandArray[2]={['OpenURL']='http://192.168.1.13:99/decoder_control. ... d=7104608a'}

end

return commandArray
Dernière modification par optik8 le 14 janv. 2016, 15:21, modifié 1 fois.
PI2, RFX
APIR2150,coco ACM-1000,Z-Wave Stick Gen5,everspring SP103,smarthome AN179,ZG8101,FGSD-002,RGBW Z-Wave,Zipato PAN04 - Micromodule 2 relais avec mesure de conso,RepeteurZ-WaveZR1202
3volets Somfy
HW0039
AXIS 1034W
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script .lua Wanscam requêtes http pour la diriger

Message par vil1driver »

ma méthode ??

si tu parles de la façon de faire la pause, ça ne changera rien au problème, il faut éviter, même si cela fait moins de 10s,
ça crée tout de même un instant ou aucun autre script n'est lancé..
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre