Aller au contenu

Help ! Scene qui ne fonctionne pas


RedAlan

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...