D-GK Posté(e) le 28 janvier 2016 Signaler Posté(e) le 28 janvier 2016 Suite aux nombreuses questions de nouveaux utilisateurs de la HC2, je vous propose un petit tutoriel sur la gestion manuelle de "modes" dans la maison. Dans mon exemple, il y a 5 modes déclenchant chacun une scène différente (les modes étant "In" (Présence), "Out" (Absence), "Sleep" (Dodo), "Wake Up" (Réveil) et TV. Vous pouvez envisager bien d'autres scénarios (soirée romantique, fiesta à la maison...) mais voici ceux par lesquels j'avais commencé mon implémentation domotique. La première chose est de créer une variable globale qui enregistrera le statut de la maison. Il faut donc aller dans Panneaux > Panneau Variables puis créer une nouvelle variable prédéfinies en cliquant sur Ajouter. Il faut rentrer un nom (en faisant bien attention à la casse (Majuscule, minuscule)) car cela pourrait avoir un impact dans vos scènes puis rentrer les différents modes. Afin de gérer des cas d'erreur, j'ai également créer pour cette variable une valeur "Default" que je détaillerais après. Une fois la variable créée, il faut créer un nouveau VD (Virtual Device). Pour le faire il faut aller dans Modules > Ajouter un Périphérique Virtuel. En allant dans l'onglet Avancé, renseignez un nom, une pièce si vous le souhaitez. En dessous, choisissez le nombre de boutons que vous voulez faire apparaître puis cliquer sur "Ajouter un réglage". Vous vous retrouvez en dessous avec le paramétrage de ces boutons. Il suffit de répéter l'opération plusieurs fois pour obtenir plusieurs lignes comme dans l'exemple ci-dessous. Dans chacun des boutons, nous allons mettre à jour le statut de la maison en modifiant la valeur de la variable globale. Pour le faire, nous allons utiliser comme exemple l'instruction qui pour le bouton 'In' affectera la valeur In à 'Mode_Maison' (il faut également bien cocher "Code Lua" en bas des propriétés du bouton) fibaro:setGlobal('Mode_Maison','In') Afin de gérer le cas, ou nous voudrions rappuyer sur le bouton In une deuxième fois, nous allons passer par la valeur "Default" évoqué plus haut. Avec le code ci-dessous : local value = fibaro:getGlobal('Mode_Maison') if (value == 'In') then fibaro:setGlobal('Mode_Maison','Default') end fibaro:setGlobal('Mode_Maison','In') J'ai été amené à rajouter ce code car le mode TV éteignait certaines lumières, hors si quelqu'un avait rallumé la lumière avec un interrupteur entre temps, la scène ne se déclenchait pas car la variable était déjà en "Mode : TV". Le fait de repasser par le statut "Default" permet simplement de redéclencher la scène TV même si elle était déjà en mode "TV" au préalable. Une fois que vous avez créé l'ensemble de vos boutons et mis à jour la valeur des différents modes, il faut créer les scènes spécifiques à chaque mode. Afin de faciliter la maintenance, j'ai choisi de créer une scène LUA par mode. Pour le faire, il suffit d'aller dans Scène > Ajouter une scène (Dans mon cas, j'ai utilisé du LUA mais vous pouvez également utiliser les scènes en mode bloc) Ici, un exemple de code qui éteint 2 interrupteurs : --[[ %% properties %% globals --]] -- Liste des interrupteurs local interId = {39,104} fibaro:debug('TV Mode') -- Arrêter les interrupteurs for i = 1, #interId do fibaro:call(interId[i], 'turnOff') end Vous noterez que je n'ai rien mis sous properties, ni sous globals. En effet je ne souhaitais pas que l'ensemble des scènes se déclenchent lorsque la variable Mode_Maison a été mise à jour. J'ai donc créer une scène principale qui se charge de lancer la bonne scène. Ce code utilise l'instruction fibaro:startScene(XX) Ou XX correspond au numéro de la scène à lancer (Vous trouvez l'ID dans l'onglet Général de vos scènes). Le code prend donc la forme ci-dessous : --[[ %% properties %% globals Mode_Maison --]] local valueHouseMode = fibaro:getGlobal('Mode_Maison') fibaro:debug(valueHouseMode) if (valueHouseMode=='Out') then fibaro:debug('Out Scene') fibaro:startScene(10) elseif (valueHouseMode=='TV') then fibaro:debug('TV Scene') fibaro:startScene(11) else fibaro:debug('Switch Error') end Ce code est appelé à chaque fois que la variable "Mode_Maison" est modifiée grâce aux lignes : --[[ %% properties %% globals Mode_Maison --]] Puis nous récupérons, la valeur de "Mode_Maison" : local valueHouseMode = fibaro:getGlobal('Mode_Maison') Avant d'être testée pour lancer la scène qui nous intéresse fibaro:debug('TV Scene') fibaro:startScene(18) Et voilà , vos scènes se lancent en fonction du changement de mode de votre maison. Vous pouvez bien évidemment compléter les différents modes en rajoutant des if / elseif en fonction de vos attentes. Il y a bien évidemment plusieurs solutions pour arriver à ce résultat, mais j'ai considéré que c'était la manière la plus propre afin de limiter le nombre d'instances lancées en simultanées. N'hésitez pas à me faire part de vos remarques si certaines parties ne sont pas claires afin que je complète ce tutoriel qui a pour but de s'adresser aux débutants. 8
chrispec Posté(e) le 28 janvier 2016 Signaler Posté(e) le 28 janvier 2016 Un grand merci pour ce partage !
Rocketlud Posté(e) le 28 janvier 2016 Signaler Posté(e) le 28 janvier 2016 Bien sympa ce petit Tuto merci
krastavac Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 Merci Moi qui suis jaloux des possibilités de la HC2 par rapport à HCL, je suis frustré de constater quelque ligne plus bas que c'est pour HC2. Je suggère pour des sujet de ce type soit de proposer une solution alternative pour HCL soit, dans le titre, mentionner HC2.
mprinfo Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 Soit d'acheter une hc2 Envoyé de mon SM-G900F en utilisant Tapatalk
D-GK Posté(e) le 29 janvier 2016 Auteur Signaler Posté(e) le 29 janvier 2016 @krastavac, pour le coup il y a un petit icone Tuto HC2 Sur le fond je suis persuadé qu'il doit être possible de faire un équivalent pour HCL, mais n'en ayant jamais eu une entre les mains je ne peux pas te proposer d'alternative malheureusement. Pour le reste, je suis ravi de voir que ce petit tuto plait
klael Posté(e) le 29 janvier 2016 Signaler Posté(e) le 29 janvier 2016 C'est possible avec une HCL, il faut simplement un peu de plus de scène . Sur le principe tu créés une variable qui reprend tes différents modes, tu créés autant de scènes qui change la valeurs de la variable et tu regroupes le tout dans un VD qui appel les différentes scènes avec une commande HTTP.
krastavac Posté(e) le 31 janvier 2016 Signaler Posté(e) le 31 janvier 2016 A vrai dire, j'étais bien motivé de passer à une HC2 mais constatant que ma HCL avec quelques scènes basiques plante de manière intempestives, ça m'a refroidi. Je reste en observateur pour le moment et profite pour m'enrichir de cette expérience Bon dimanche
laranjeira61 Posté(e) le 1 février 2016 Signaler Posté(e) le 1 février 2016 merci pour ce petit tuto, simple mais efficace et le code est simple a comprendre pour commencer
pocket998 Posté(e) le 24 février 2016 Signaler Posté(e) le 24 février 2016 Bonsoir, Merci pour le tuto. J'avais une question, J'ai créée les variables J'ai créée le VD, dans chaque texte du bouton j'ai mis le code local value = fibaro:getGlobal('Mode_Maison') if (value == 'In') then fibaro:setGlobal('Mode_Maison','Default') end fibaro:setGlobal('Mode_Maison','In')
pocket998 Posté(e) le 24 février 2016 Signaler Posté(e) le 24 février 2016 puis j'ai créée une scène LUA pour éteindre comme dans l'exemple 2 lumières --[[ %% properties %% globals --]] -- Liste des interrupteurs local interId = {39,104} fibaro:debug('TV Mode') -- Arrêter les interrupteurs for i = 1, #interId do fibaro:call(interId[i], 'turnOff') end mais après j'ai pas compris ce qu'il fallait faire ? Désolé je suis nouveau merci pour votre aide
pocket998 Posté(e) le 24 février 2016 Signaler Posté(e) le 24 février 2016 C'est bon j'ai trouvé. J'ai créée 1 VD et 2 scènes.
pocket998 Posté(e) le 24 février 2016 Signaler Posté(e) le 24 février 2016 Salut, @D-GK Merci pour ton tuto c'est exactement ce que je cherchai. Que veux dire fibaro:debug('Switch Error' Est'il possible de faire une scène pour activer exemple In et Out pour pouvoir le mettre en première page sur l'application Fibaro sur le Ipad ? Merci pour ton aide. Salutations.
D-GK Posté(e) le 25 février 2016 Auteur Signaler Posté(e) le 25 février 2016 Salut pocket988, ravi que le tutoriel te serve En fait cette scène teste la valeur de la variable globale. Si celle ci n'existe pas dans le if / elsif j'affiche un message. (Switch est simplement le moyen de faire les if / elsif dans d'autres langages) À ma connaissance, il n'est pas possible de mettre un VD sur la page d'accueil de l'application tablette malheureusement. Envoyé de mon SM-G901F en utilisant Tapatalk
pocket998 Posté(e) le 25 février 2016 Signaler Posté(e) le 25 février 2016 Salut. Merci pour les explications. Je voulais faire la scène comme tu a fais mais nouveau làdedans je savais pas. J'ai créée 2 scènes pour activer désactiver les scènes que j'ai mi sur la page principale de l'iPad. Merci et bonne journée Envoyé de mon iPhone en utilisant Tapatalk
Messages recommandés