RedAlan Posté(e) le 12 novembre 2017 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
pepite Posté(e) le 12 novembre 2017 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
lamparo Posté(e) le 12 novembre 2017 Signaler Partager 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é. Lien vers le commentaire Partager sur d’autres sites More sharing options...
OJC Posté(e) le 12 novembre 2017 Signaler Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés