Page 1 sur 2
Script lua pour Thermostat
Publié : 28 oct. 2016, 16:25
par thom
Bonjour,
J'ai tenté un script Lua pour la gestion de mon thermostat de mon garage, en fouillant dans les forums je suis arrivé à ça:
Code : Tout sélectionner
--Gestion du chauffage: Lorsque la porte est ouverte (Porte_Garage)
-- Descendre le thermostat a 10°c (Heating 1)
--Lorsque la porte est fermée (Porte_Garage)
-- Monter le thermostat a 17°c (Heating 1)
commandArray = {}
if (devicechanged['Porte_Garage'] == 'On') then
print('Porte garage ouverte')
oss = "curl 'http://ip domoticz/json.htm?type=command¶m=switchlight&idx=145&switchcmd=Set%20Level&level=10'&"
os.execute(oss)
end
if (devicechanged['Porte_Garage'] == 'Off') then
print('Porte garage fermée')
oss = "curl 'http://ip domoticz/json.htm?type=command¶m=switchlight&idx=6&switchcmd=Set%20Level&level=17'&"
os.execute(oss)
end
return commandArray
Quand je teste la commande json dans mon navigateur, tout fonctionne, mon thermostat prend la commande mais une fois dans mon script rien ne se passe.
Quelqu'un a une idée ?
Re: Script lua pour Thermostat
Publié : 28 oct. 2016, 17:08
par thier
pour mettre une consigne dans un thermostat en script lua j'utilise
local urlsdb = domoticz_url..'/json.htm?type=command¶m=udevice&idx='..thermostat..'&nvalue=0&svalue='..consigne
commandArray ['OpenURL'] = urlsdb
avec domoticz_url, thermostat et consigne qui sont définis en début de script.
Re: Script lua pour Thermostat
Publié : 28 oct. 2016, 19:30
par T0ny Oh
Vire ton "&" à la fin de ta variable "oss"
Re: Script lua pour Thermostat
Publié : 28 oct. 2016, 19:37
par vil1driver
Salut,
T0ny Oh a écrit :Vire ton "&" à la fin de ta variable "oss"
Mets plutôt un espace avant
Et remplaces curl par /usr/bin/curl
Ps: j'imagine que tu as évidemment installé curl ?
testes la commande complète dans un terminal pour en avoir le la certitude..
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 03:31
par thom
Merci pour vos réponses
J'ai essayé plusieurs choses:
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Alarme'] == 'On') then
print('Porte garage ouverte')
oss = "/usr/bin/curl 'http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=10' &"
os.execute(oss)
end
if (devicechanged['Alarme'] == 'Off') then
print('Porte garage fermée')
oss = "/usr/bin/curl 'http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=17' &"
os.execute(oss)
end
return commandArray
Mais je n'ai toujours pas de changement sur mon thermostat et vu que je suis tres novice et pas tres sur de Curl je me suis dirigé vers ça mais sans succès

:
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Alarme'] == 'On' ) then
commandArray[1]={['OpenURL']='http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=10' }
end
if (devicechanged['Alarme'] == 'Off' ) then
commandArray[1]={['OpenURL']='http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=17' }
end
return commandArray
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 08:52
par T0ny Oh
Si tu va dans les logs tu vois quoi quand tu appuie sur ton bouton ?
Comme vil1driver l'a dit, est-ce que
curl est installé ? tu est sous quel système ?
sous Debian par exemple, tu te connecte à ton serveur et tu fait :
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 12:32
par vil1driver
Ton script est un fichier ?
Si oui quel nom ?
Si non quel type ?
Oui toujours jeter un œil sur les logs..
OpenURL ne prends pas 'http://'
https://www.domoticz.com/wiki/Events
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 12:37
par thier
+1 vill1driver
Ne mets pas http://
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 20:15
par thom
Mon fichier est 'script_device_chauffage_garage.lua' je suis sur raspbian, Domoticz 3.5746
Voici le résultat de la commande curl dans mon terminal:
Code : Tout sélectionner
pi@raspberrypi:~$ curl 'http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=17' &
[1] 26452
pi@raspberrypi:~$ <html><head><title>Unauthorized</title></head><body><h1>401 Unauthorized</h1></body></html>
[1]+ Done curl 'http://192.168.2.5:8080/json.htm?type=command¶m=udevice&idx=145&nvalue=0&svalue=17'
pi@raspberrypi:~$
J'ai réessayer avec OpenUrl en enlevant Http://, mais toujours pas de changement.
Voici mon log de domoticz avec OpenUrl:
Code : Tout sélectionner
2016-10-29 14:11:40.529 User: thomas initiated a switch command (90/Alarme/On)
2016-10-29 14:11:40.540 LUA: Porte garage ouverte
2016-10-29 14:11:40.540 EventSystem: Fetching url...
2016-10-29 14:11:40.540 EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_device_chauffage_garage.lua
2016-10-29 14:11:40.530 (Dummy) Light/Switch (Alarme)
2016-10-29 14:11:45.955 User: thomas initiated a switch command (90/Alarme/Off)
2016-10-29 14:11:45.968 LUA: Porte garage fermée
2016-10-29 14:11:45.968 EventSystem: Fetching url...
2016-10-29 14:11:45.968 EventSystem: Script event triggered: /home/pi/domoticz/scripts/lua/script_device_chauffage_garage.lua
2016-10-29 14:11:45.956 (Dummy) Light/Switch (Alarme)
et lorsque je lance la commande json dans mon navigateur celle ci fonctionne tres bien:
Code : Tout sélectionner
2016-10-29 14:13:17.253 Sending SetPoint to device....
2016-10-29 14:13:17.335 (Zwave) Thermostat (Heating 1)
2016-10-29 14:13:18.307 (Zwave) Thermostat (Heating 1)
Merci de votre aide
Re: Script lua pour Thermostat
Publié : 29 oct. 2016, 20:58
par vil1driver
Unauthorized devrait te mettre la puce à l'oreille..
Mot de pass pour domoticz ?