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

Code : Tout sélectionner

commandArray[#commandArray+1]={['Climatiseur'] = 'On'}

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