Page 1 sur 1

[Résolu] Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 11:07
par Cissou
Bonjour,

Je cherche a réaliser un script pour réaliser un thermostat simple pour ma salle de bain,
en me basant (très fortement) sur le blog http://blog.alexandredubois.com/2014/03 ... at-simple/

J'ai nommé mon script : script_device_ThermostatSalleBain.lua
J'ai vérifié avec un file -i qu'il était bien en utf-8

Code : Tout sélectionner

-- Alexandre DUBOIS - 2014
-- Ce script permet de maintenir la température de la salle de bain entre 17°C et 19°C quand l'interrupteur
-- virtuel 'Thermostat salon' est activé.

--------------------------------
------ Variables à éditer ------
--------------------------------
local consigne = 18  --Température de consigne
local hysteresis = 0.5 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local sonde = 'Temperature Salle de Bain' --Nom de la sonde de température
local thermostat = 'Thermostat Salle de Bain' --Nom de l'interrupteur virtuel du thermostat
local radiateur = 'Radiateur Salle de Bain' --Nom du radiateur à allumer/éteindre
--------------------------------
-- Fin des variables à éditer --
--------------------------------
commandArray = {}
--La sonde Oregon 'Temperature Salle de Bain' emet toutes les 40 secondes. Ce sera approximativement la fréquence
-- d'exécution de ce script.
if (devicechanged[sonde]) then
local temperature = devicechanged[string.format('%s_Temperature', sonde)] --Temperature relevée dans le salon
    --On n'agit que si le "Thermostat" est actif
    if (devicechanged[thermostat]=='On') then
        print('-- Gestion du thermostat pour la Salle de Bain --')

     if (temperature < (consigne - hysteresis) ) then
            print('Allumage du chauffage dans la Salle de Bain')
            commandArray[radiateur]='Off'

    elseif (temperature > (consigne + hysteresis)) then
        print('Extinction du chauffage dans la Salle de Bain')
            commandArray[radiateur]='On'

    end
    end
end
return commandArray

Quand je regarde dans les logs de domoticz lorsque je mets le Termostat Salle de Bain à On

Code : Tout sélectionner

2015-02-28 10:57:21.540 (InterrupteurVirtuel) Lighting 1 (Thermostat Salle de Bain)
Je n'ai que cette ligne,
je n'ai aucune ligne indiquant que le déroulement du script.

Re: Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 13:27
par Doume
as-tu vérifié que ton script a les droits Linux rwxr-xr-x ( ou encore 755 minimum ) ?
Car s'il n'est pas executable, le moteur lua ne le lancera pas....

Re: Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 13:33
par patrice
Bonjour
Il y a tellement de conditions d déclenchement que c' est difficile comme ca.

Mets des print "coucou" ou des print nondevariable en
haut du script.
puis descent petit a petit avec des print

Re: Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 14:49
par Cissou
Bon,
J'ai vérifié avec les droits, ils n'étaient pas bon
mais ca ne fonctionne toujours pas.

J'ai fait des print et apparement ca ne rentre pas dans la boucle

Code : Tout sélectionner

if (devicechanged[sonde]) then

Re: Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 15:00
par patrice
ben c'est que ta variable sonde en haut du script n'est pas bonne

local sonde = 'Temperature Salle de Bain' --Nom de la sonde de température
Attention espaces, majuscules , accents ....

Re: Script Lua qui ne se lance pas

Publié : 28 févr. 2015, 15:05
par Cissou
Bon ben a force de test j'ai trouvé le probleme

"Bain" est différent de "bain" donc forcement il ne testait pas la bonne sonde. Pourtant j'avais relu pour etre sur des Caps

Ensuite j'avais je ne sais plus pourquoi modifié un otherdevices en devicechanged du coup ca ne marchait pas.

Et derniere modification, comme j'ai fait une installation sur une prise commandable, il faut inverser le "On" et "Off" pour le pilotage du radiateur