Aller au contenu

Help ! Scene qui ne fonctionne pas


Messages recommandés

Posté(e)

Bonjour, j'ai un soucis avec ma scène de gestion de mon ballon d'eau chaude, pourtant je ne vois pas le soucis dans mon code :

--[[
%% autostart
%% properties
%% globals
Heure_Creuse
--]]

local Maintenant = os.date("*t")
local AboStatus = fibaro:getGlobalValue("Heure_Creuse")
local startSource = fibaro:getSourceTrigger();
fibaro:debug('AboStatus : '..AboStatus)
if ( AboStatus )
then
  fibaro:debug('Passage en heure creuse')
  fibaro:debug('Allumage du ballon d\'eau chaude')
  fibaro:call(154, "turnOn");
else
  fibaro:debug('Passage en heure pleine')
  fibaro:debug('Extinction du ballon d\'eau chaude')
  fibaro:call(154, "turnOff");
end

Ce que je ne comprends pas c'est que quand mon booléen est false, je ne passe pas de dans le else !

 

 

[DEBUG] 17:06:53: AboStatus : false
[DEBUG] 17:06:53: Passage en heure creuse
[DEBUG] 17:06:53: Allumage du ballon d'eau chaude

Posté(e)

il manque ta condition dans ton test.

il faut que ta condition soit égale ou pas à "heure creuse" par exemple : if (AboStatus == "heure creuse") ou false, comme pepite te l'a indiqué.

Posté(e) (modifié)

Ta variable locale AboStatus n'est pas un boolean mais un string puisque c'est la valeur d'une variable globale. La preuve, tu peux le concaténer pour faire ton fibaro:debug() sans avoir une erreur. Donc, tu peux pas te contenter de faire (AboStatus) qui ne marche que si c'est bien un boolean. Là, ta condition se contente de vérifier si AboStatus existe (càd ~= nil). Ce qui est toujours true.

 

Donc il faut que tu mettes if (AboStatus == "false") then, sans oublier les guillemets.

Modifié par OJC
×
×
  • Créer...