Page 1 sur 1
Problème état interrupteur via LUA
Publié : 23 juin 2019, 18:32
par Reichmess
Bonjour
J'essaie de commander un climatiseur (vue la chaleur qui règne en ce moment...) via un script LUA
extrait du script, la commande :
if (temperature > (consigne + hysteresis)) then
print('Allumage du climatiseur')
commandArray[Climatiseur]='On'
fonctionne.
Mais si je souhaite controler l'état du switch 'Climatiseur' avec la commande :
if (temperature > (consigne + hysteresis) and otherdevices['Climatiseur'] =='Off') then
print('Allumage du climatiseur')
commandArray[Climatiseur]='On'
ça ne fonctionne pas.
Est ce que quelqu'un pourrait m'aider ?
D'avance merci.
Re: Problème état interrupteur via LUA
Publié : 23 juin 2019, 18:58
par papoo
il y a t'il plusieurs commandArray dans ton script?
il faut incrémenter chaque commandArray sinon seul le premier fonctionnera
le code avec incrémentation à répéter pour chaque commandArray
Re: Problème état interrupteur via LUA
Publié : 23 juin 2019, 21:11
par Reichmess
Bonjour
Merci pour cette réponse.
Je crois qu'il vaut mieux mettre à dispo le script complet :
-------------
-- VARIABLES--
--------------
local sonde = 'Temperature salon'
local hysteresis = 2
local Climatiseur = 'Clim Salon'
local consigne = 22
--------------
--- SCRIPT ---
--------------
commandArray = {}
if (devicechanged[sonde]) then
local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans le salon
print (temperature)
if (temperature > (consigne + hysteresis) and otherdevices['Climatiseur'] =='Off') then
print('Allumage du climatiseur')
commandArray[Climatiseur]='On'
elseif (temperature <= (consigne - hysteresis) and otherdevices['Climatiseur'] =='On') then
print('Arret du climatiseur')
commandArray[Climatiseur]='Off'
end
end
return commandArray
Le coupable est 'otherdevices['Climatiseur'] =='Off' ou 'otherdevices['Climatiseur'] =='On'
Si je retire ce test, ça fonctionne mais la commande vers le climatiseur a lieu à chaque exécution du script.
J'ai remplacé les commandes du climatiseur par commandArray[#commandArray+1]={['Climatiseur'] = 'On'} sans modification du résultat.
Re: Problème état interrupteur via LUA
Publié : 23 juin 2019, 21:24
par papoo
Essai directement avec l’idx du device des fois qu’il y ai un pb sur le nom
Re: Problème état interrupteur via LUA
Publié : 24 juin 2019, 07:18
par vil1driver
Salut,
Tu écris
Climatiseur
Et
'Climatiseur'
Essaie sans les ' et ça devrait aller.
Re: Problème état interrupteur via LUA
Publié : 25 juin 2019, 22:45
par Reichmess
Bonjour
Désolé pour ma réponse tardive.
Le remplacement de 'Climatiseur' par Climatiseur a résolu le problème.
Merci à tous pour votre aide.
Cordialement