Script lua pour Thermostat

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 <\>.
thom
Messages : 52
Inscription : 29 sept. 2015, 03:12
Localisation : Montréal

Script lua pour Thermostat

Message 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&param=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&param=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 ?
Raspberry 2B Seafile et NAS
Raspberry 2B MotioneyeOS
Raspberry 3 Domoticz avec Zwave et Mysensors
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Script lua pour Thermostat

Message par thier »

pour mettre une consigne dans un thermostat en script lua j'utilise
local urlsdb = domoticz_url..'/json.htm?type=command&param=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.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
T0ny Oh
Messages : 38
Inscription : 06 sept. 2016, 16:29

Re: Script lua pour Thermostat

Message par T0ny Oh »

Vire ton "&" à la fin de ta variable "oss"
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua pour Thermostat

Message 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..
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
thom
Messages : 52
Inscription : 29 sept. 2015, 03:12
Localisation : Montréal

Re: Script lua pour Thermostat

Message 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&param=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&param=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&param=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&param=udevice&idx=145&nvalue=0&svalue=17' }
end
return commandArray
Raspberry 2B Seafile et NAS
Raspberry 2B MotioneyeOS
Raspberry 3 Domoticz avec Zwave et Mysensors
T0ny Oh
Messages : 38
Inscription : 06 sept. 2016, 16:29

Re: Script lua pour Thermostat

Message 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 :

Code : Tout sélectionner

apt-get install curl
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua pour Thermostat

Message 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
Dernière modification par vil1driver le 29 oct. 2016, 13:54, modifié 1 fois.
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
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Script lua pour Thermostat

Message par thier »

+1 vill1driver
Ne mets pas http://
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
thom
Messages : 52
Inscription : 29 sept. 2015, 03:12
Localisation : Montréal

Re: Script lua pour Thermostat

Message 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&param=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&param=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
Raspberry 2B Seafile et NAS
Raspberry 2B MotioneyeOS
Raspberry 3 Domoticz avec Zwave et Mysensors
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script lua pour Thermostat

Message par vil1driver »

Unauthorized devrait te mettre la puce à l'oreille..

Mot de pass pour domoticz ?
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