jojo Posté(e) le 22 juillet 2022 Signaler Posté(e) le 22 juillet 2022 Mon premier Tuto HC3 … Idée Le principe est de faire faire des actions à la HC3, sur base d'instructions mises dans un/des calendriers Google. Le script appelle une méthode d'un QA. Perso, avec mon compte Google principal, j'ai créé 9 calendriers pour la domotique. C'est le même et unique script qui permet de tout faire. Il y a deux utilisations principales prévues : 1. Action à faire uniquement au début de l'événement 2. Actions à faire au début ET à la fin des événements. Configuration Commune du scriptParamètre de la box : Précisez l'IP externe, le port et le protocole de communication. (un reverse proxy c'est mieux qu'un simple port-forwarding) ! Sécurité : créez un utilisateur spécifique (donc ne pas utiliser admin) qui n'aura accès qu'au(x) QA(s) utilisé(s) par le(s) script(s)Identification des calendriers : Pour trouver l'identifiant du calendrier : Allez dans les paramètres du calendrier Dans la dernière section, tout en bas Intégrer l'agenda ID de l'agenda : d7t37al9xxxxxxxxxxx66o4rg@group.calendar.google.comAction : Si dans les StartVal#/EndVal# il est précisé Title, il transmettra à la box le titre de l'événement.Fréquence d'exécution du script : Par défaut, la valeur est configurée à 1 min. Cette valeur doit correspondre à la fréquence à laquelle le script tourne pour vérifier s'il y a des événements à traiter. (cfr déclencheurs, plus bas) Action à faire au début Mettez "" à toutes les variables End* Exemple de configuration du script : GoogleCalendar.gos Exemples d'utilisation : rappels pour arroser les plantes, pour sortir un certain type de poubelle, … Actions à faire au début ET à la fin de l'événement Exemple de configuration du script : Thermo.gos Exemples d'utilisation : gérer le chauffage de chaque pièce (début = confort, fin = retour en mode éco/réduit) : perso, c'est mon utilisation principale. Pour plus de facilité dans l'interface Google, j'ai créé autant de calendriers que de thermostats, mais tout aurait pu être dans un seul calendrier, puisque j'ai mis le nom du thermostat dans le titre de l'événement. Autre idée d'utilisation : programmation de l'arrosage automatique ou de la pompe de la piscine. Installation finale Créez autant de scripts que nécessaires dans GoogleScripthttps://script.google.com/home Il faudra ensuite, pour chaque copie du script, lui définir un déclencheur : Lors de sa première exécution, Google pose des questions de sécurité. => à lancer manuellement la première fois. Je joins 3 fichiers de scripts : ○ GoogleCalendar.gos : avec exemple pour traiter uniquement le début d'un événement. ○ Thermo.gos : avec exemple de traitement de début et de fin d'événements. ○ Test.gos : script minimal pour tester la connexion et le QA Ainsi que la version pdf du présent tuto.GoogleCalendar.gos Thermo.gos Test.gos Tuto - Google Calendar vers HC3.pdf 6
Dragoniacs Posté(e) le 22 juillet 2022 Signaler Posté(e) le 22 juillet 2022 Cool !Je teste ça dès que possible !!!!Envoyé de mon M2012K11AG en utilisant Tapatalk
Rik Posté(e) le 29 novembre 2022 Signaler Posté(e) le 29 novembre 2022 bonsoir, Venant de chez Eedomus, la gestion avec le calendrier intégré est tout de même de la grande utilité, pour le moment je n'y comprends rien sur la HC3. Mon rythme de vie et simple géraient avec 4 modes Seuls, Week-end, Congé et école. Ce mode s’active automatiquement avec comme base les jours de la semaine demandée. Puis les modes activent des scénarios pour la montée et descente des volets. Mon souci est dans le chauffage , je veux que le chauffage s'active selon une tranche horaire bien spécifique qui peut changer de jour en jour , donc à piloter avec les calendriers . Mais du coup cet à ce moment que je suis largué , google calendrier ces OK mais après ? je n'ai aucune notion dans l'écriture de script google . Ne peut-on pas simplement créer un scénario qui lie le google calendrier, dès que la tranche horaire est activée les scénarios fait ce qui est demandé? Exemple je sélectionne vendredi de 10H00 à 13H00 indiquant présence dans le calendrier, le scénario lie ça et donc il active le chauffage sur 21°C puis s'arrête une fois 13H00 passés. Merci pour vos réponses
jojo Posté(e) le 29 novembre 2022 Auteur Signaler Posté(e) le 29 novembre 2022 En fait l'idée est de faire faire à ta HC3 ce qui est mis dans le calendrier Google. Pourquoi ce calendrier externe à la box ? Car il est facilement modifiable; sans devoir accéder la box. Pour le chauffage, j'ai 1 calendrier par pièce où je définit le mode de chauffe de la pièce; et cela est ensuite géré par un script LUA et GEA. J'ai un autre calendrier pour les poubelles, arroser les plante, ... Ici également c'est géré par LUA sur la box. Il ne faut rien scripter côté Google (sauf mettre les bon paramètres), toute l'intelligence se trouve dans le script LUA. Je te mets en exemple les 2 QA qui sont appelés par mes Google Calendar. GoogleCalendar.fqa Gestion_Chauffage.fqa Ai-je répondu à ta question ?
Rik Posté(e) le 8 décembre 2022 Signaler Posté(e) le 8 décembre 2022 Donc si je comprends bien , un calendrier différent pour chaque action que tu veux faire . Ce qui amène à faire scénario écrit en LUA afin de réaliser l'action souhaitée . Du coup le box va aller chercher son info dans le calendrier approprié. Mais elle lie quoi? Pour elle la case est occupée donc elle réalise l'action et donc peu importe ce qui est écrit, où elle li le titre qui est donné. Si dans le cas où elle li le titre, pourquoi créer plusieurs calendriers? Merci pour tes réponses
jojo Posté(e) le 9 décembre 2022 Auteur Signaler Posté(e) le 9 décembre 2022 non, si tu veux uniquement faire des actions au début de l'événement, un calendrier, un script Google et un script LUA suffisent (le script lua fera zn fonction de ce qui est écrit dans le titre de l'événement. Mais si tu veux faire plusieurs calendriers, tu peux, le script Google le permet. Perso, je n'ai qu'un seul calendrier pour tous mes événement dont seule la date/heure de début import (sortir certaines poubelles, arroser plantes, ...) Si tu veux également gérer la fin de l'événement, tu crées un second calendrier, avec l'autre script Google et un autre LUA?. un exemple est la gestion de mon chauffage : début de l'événement, je passe en mode confort, et fin je retourne en mode eco. Ici également j'utilise le titre de l'événement pour définir la "pièce" concernée. Pour ma facilité, j'ai créé un agenda par pièce, mais j'aurais pu tout mettre dans un seul agenda. La box ne va rien lire du tout, c'est le script Google qui dit à la box quand il y a qqch à faire. Et maintenant s'il n'y a pas de script LUA pour interpréter les actions, la box ne fera rien
Rik Posté(e) le 13 décembre 2022 Signaler Posté(e) le 13 décembre 2022 Après de longue heure acharné à tenter de comprendre se que tu as écris dans tes script ( et surtout pour paraître moins bête ) je lâche l’affaire. J'ai uniquement besoin de deux choses: 1. Lorsque c'est écris "repas" il faut mettre le thermostat à 20,5°C 2. Lorsque c'est écris "Louis école" il faut activer le mode Louis école Exemple calendrier Mon pauvre début d'écriture: Merci pour ta patiente et ton aide
jojo Posté(e) le 13 décembre 2022 Auteur Signaler Posté(e) le 13 décembre 2022 d'après ta seconde copie d'écran, tu semble vouloir faire une SCENE en LUA. Je n'ai AUCUNE expérience avec les scènes de la HC3, et mon Google script appelle in QA, pas une scène. Analysons tes besoins 1 à 1 ... 1) Repas : il faut mettre la température du thermostat à 20,5°C (=temp correspondant au mode = Con) au début, et je suppose le mettre à 19°C (=temp correspondant au mode = Eco) à la fin ? J'utiliserais le script qui gère le début et la fin des événements = script Thermo.gos et le script LUA (Gestion Chauffage) que je t'ai donné comme exemple (et que tu DEVRAS adapter à ton besoin). 2) Louis école : la box doit faire qqch uniquement au début de l'événement ou au début Et à la fin ? Comme tu vois, il faut être très précis dans ce qu'on veux. Et seulement quand on sait précisément ce qu'on veut, on peut traduire cela. Malheureusement, avec toute la meilleure volonté du mon, je n'ai pas encore compris tous tes besoins, et (même si j'avais le temps) je n'en sais pas assez pour te développer une solution
Rik Posté(e) le 14 décembre 2022 Signaler Posté(e) le 14 décembre 2022 La vie générale de la maison est calé sur mon planning, le chauffage est géré via l'outil climat qui régule la température de toute la semaine du lundi au dimanche. C'est toutes les semaines la même chose. Cependant parfois mon fils rentre entre midi et je souhaite donc que le logement soit chauffé à 20,5°C (au lieu de 19°C de base) C'est une chaudière piloté via le contact du thermostat (ID n°58) 1) Donc pour le repas, il faut uniquement indiquer 20,5°C au thermostat, puis retour état initial Ensuite, selon les jours, Semaine (lundi au vendredi), week-end (samedi dimanche), congé, j'ai des modes qui s'activent. Les modes actives des scénarios qui pilotes différentes choses, monté/descente volet, activation/extinction éclairage, machine à café... 2) Simplement activer le mode dédié, soit "Louis école"
jojo Posté(e) le 14 décembre 2022 Auteur Signaler Posté(e) le 14 décembre 2022 je commence à comprendre ton besoin. Je propose que tu ouvres un topic spécifique (qui fasse référence à celui-ci) car on s'écarte du support de ce tuto 1
gorn Posté(e) le 3 janvier Signaler Posté(e) le 3 janvier Bonjour le fil, Tout mes voeux pour cette nouvelle année!!! Je suis en train d’essayer d'intégrer l'interconnexion google calendar / HC3 mais je sèche un peu. En off, j'ai intégré le QA google Nest, qui a très bien fonctionné. Pour le calendrier : J'ai créé un nouveau calendrier nommé "Domotique" J'ai créé un nouvel utilisateur dans ma domotique : Calendar Dans google script, j'ai copié / collé le script Test dans lequel j'ai modifié des paramètres : J'ai tenté d'importer les fqa pout tester les interactions mais en vain. Est-ce qu'il y a quelqu'un pour m'aider sur la suite svp?
jojo Posté(e) le 3 janvier Auteur Signaler Posté(e) le 3 janvier d'après ta copie d'écran, tu aurais fait du gros nettoyage dans le script. Je n'y vois plus la section où on défini les calendrier à analyser /* Identifiant des agendas indiquer tous les agendas dans CAL[i] en commençant par i = 0 et l'incrémentant de 1 à chaque entrée. */ var CAL = []; CAL[0] = "d7t37al9nru9...@group.calendar.google.com"; // name = 3---Domo - Therm Biblio CAL[1] = "avc9jq61djje...@group.calendar.google.com"; // name = 3---Domo - Therm Bureau CAL[2] = "3ba4uvfqtvnk...group.calendar.google.com"; // name = 3---Domo - Therm Maximilien
gorn Posté(e) le 3 janvier Signaler Posté(e) le 3 janvier (modifié) Je n'avais pas fait de ménage, j'avais juste utilisé le fichier test.gos J'ai donc importé le fichier GoogleCalendar.gos et mis l'identification du calendrier concerné. Par contre je n'assimile pas comment l'interaction se fait avec la HC3. Je pense que c'est du côté : var StartVar1 = "deviceID"; var StartVal1 = "###"; var StartVar2 = "name"; var StartVal2 = "name of the function"; var StartVar3 = "arg1"; var StartVal3 = "Title"; var StartVar4 = "arg2"; var StartVal4 = ""; Est-ce qu'il faut que je créé des "appareils" dans la HC3 pour les lier avec les devices ID dans le script? Modifié le 3 janvier par gorn
jojo Posté(e) le 3 janvier Auteur Signaler Posté(e) le 3 janvier le lien avec la box se fait ici : /* Paramètres de la box */ /* voir authentification dans backend haproxy => autre xxx.yyy.be */ var Box_User = "MonUser"; var Box_Pwd = "MonPwd"; var Box_AuthHeader ="Basic " + Utilities.base64Encode(Box_User + ':' + Box_Pwd); var Box_Options = {headers: {Authorization: Box_AuthHeader}}; var Box_IP = "xxx.yyy.be"; // xxx.yyy.be|external IP si port forwarding zzzz var Box_Port = "443"; // 443|80|zzzz - le port externe qui est redirigé vers le port interne var Box_Protocole = "https"; // http|https var Box_Cmd = "api/callAction"; puis ensuite ce qui fait l'API var StartVar1 = "deviceID"; var StartVal1 = "177"; var StartVar2 = "name"; var StartVal2 = "GoogleThermo"; var StartVar3 = "arg1"; var StartVal3 = "Title"; var StartVar4 = "arg2"; var StartVal4 = "Confort"; var EndVar1 = StartVar1; var EndVal1 = StartVal1; var EndVar2 = StartVar2; var EndVal2 = StartVal2; var EndVar3 = StartVar3; var EndVal3 = StartVal3; var EndVar4 = StartVar4; var EndVal4 = "Eco"; mais si tu suis les instructions du tuto à la lettre, ça devrait fonctionnet
gorn Posté(e) le 3 janvier Signaler Posté(e) le 3 janvier J'ai tenté de bien suivre le tuto et faire des tests mais... quelque chose doit m’échaper! J'ai fait un script google en partant de ta base : /* Paramètres de la box */ var Box_User = "Calendar"; var Box_Pwd = "**********"; var Box_AuthHeader ="Basic " + Utilities.base64Encode(Box_User + ':' + Box_Pwd); var Box_Options = {headers: {Authorization: Box_AuthHeader}}; var Box_IP = "**********"; var Box_Port = "****"; // le port externe qui est redirigé vers le port interne var Box_Protocole = "https"; var Box_Cmd = "api/callAction"; /* Identifiant des agendas indiquer tous les agendas dans CAL[i] en commençant par i = 0 et l'incrémentant de 1 à chaque entrée. */ var CAL = []; CAL[0] = "9db2dxxxxxxxxxxeb@group.calendar.google.com"; // name = 3---Domotique /* actions On définit les 3 variables possibles (et leurs valeurs) pour le début et la fin de l'événement. Si une variable (et sa valeur) n'est pas utilisée, lui assigner la valeur "". mettre Title dans la valeur de la variable si on veut qu'elle envoie de manière "dynamique" le titre de l'événement de l'agenda */ var StartVar1 = "deviceID"; var StartVal1 = "184"; var StartVar2 = "name"; var StartVal2 = "PresVacDom"; var StartVar3 = "arg1"; var StartVal3 = "Title"; var StartVar4 = "arg2"; var StartVal4 = ""; var EndVar1 = ""; var EndVal1 = ""; var EndVar2 = ""; var EndVal2 = ""; var EndVar3 = ""; var EndVal3 = ""; var EndVar4 = ""; var EndVal4 = ""; J'ai fait le déclencheur à la minute et je vois bien le nombre d'exécutions augmenter. J'ai créé un QA avec 3 variables textes : J'ai créé des évènements (j'avais mis l'event Vacances a aujourd'hui pour tester) sur l'agenda. Là où je pêche, c'est que je ne vois pas d'évolutions côté HC3 Est-ce que le titre de l'évènement doit correspondre au nom de la variable (en lisant ton tuto j'ai l'impression mais je n'arrive pas ale faire fonctionner)? Qu'est ce que je fais de pas bien?
jojo Posté(e) le 4 janvier Auteur Signaler Posté(e) le 4 janvier Dans le tuto, je ne vois nulle part mention de variable de QA. la variable StartVal2 contient le nom de la méthode/fonction qui est appelée et est comprise dans le QA dont l'ID se trouve dans la variable StartVal1. Et l'ID de ton device serait comme par hasard le même que le mien ??? As-tu également bien mis le bon ID (pas celui que je t'ai donné en exple) du calendrier à surveiller ? J'ai commencer par faire une action simple pour valider le principe. En tout cas, ça fonctionne au 1/4 de poil (coupé dans le sens de la longueur) chez moi : je l'utilise tous les jour pour la gestion du chauffage des différentes pièces et pour savoir quand sortir quelle poubelle
gorn Posté(e) le 4 janvier Signaler Posté(e) le 4 janvier (modifié) Le hasard fait des choses rigolotes parfois, l'ID du QA que j'ai fait est en effet le même que chez toi. L'ID du calendrier est le bon! Je viens de voir où les choses se passent grâce à toi. C'est dans le QA Gestion_chauffage qu'il y a la fonction :QuickApp:GoogleThermo Je vais continuer de fouiller pour savoir comment faire les interactions! Merci Modifié le 4 janvier par gorn
gorn Posté(e) le 4 janvier Signaler Posté(e) le 4 janvier @jojo une autre petite question, Comment sont rédigés tes évènements sur Google Calendar stp? Aurais-tu un exemple peut-être sur le paramétrage d'une demande de confort? Merci par avance!
jojo Posté(e) le 4 janvier Auteur Signaler Posté(e) le 4 janvier en fait toute la logique (= ce que tu veux faire faire) est dans le QA. Dans mes calendriers Google, ce n'est que quand. Ici, ,ma SdbRdC passe en mode confort de 8h15 à 9h00 (mon QA sait qu'il doit prendre action à 8h15 et à 9h00, mais c'est lui qui détermine quoi faire. Dans mon cas précis, c'est passer la SdBRdC en mode confort à 8h15 puis retour en mode Eco à 9h00, mais j'aurais pu lui dire d'allumer le sapin de Noël entre 8h15 et 9h00. Ici, je dis (tôt) à ma box qu'il faudra sortir 3 poubelles et ensuite GEA me dira les messages qu'il faut où il faut et quand il faut. La seule limite est ton imagination ...
Messages recommandés