RedAlan Posté(e) le 12 novembre 2017 Signaler Posté(e) le 12 novembre 2017 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
pepite Posté(e) le 12 novembre 2017 Signaler Posté(e) le 12 novembre 2017 Bonsoir, Je me demande s'il ne fait pas écrire if AboStatus == false then..Envoyé de mon Nexus 5X en utilisant Tapatalk
lamparo Posté(e) le 12 novembre 2017 Signaler Posté(e) le 12 novembre 2017 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é.
OJC Posté(e) le 12 novembre 2017 Signaler Posté(e) le 12 novembre 2017 (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é le 12 novembre 2017 par OJC
Messages recommandés