Aller au contenu

tarentino

Membres confirmés
  • Compteur de contenus

    79
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par tarentino

  1. @Tomzebest - Ca veux pas même en rebootant. Pour Netatmo, moi ca marche pas
  2. Bonjour a tous, Avec mesFGS221 Switch 2x1,5kW, je n'ai plus les retour d'état sur le relai n°2 qui fonctionnait bien avant le passage en v4. Suis-je le seul ?
  3. @Chrispec Pour commencer par les pannes, de gros soucis avec les cartes mères, ventilation qui s'arrête, fuite sur la PAC, etc ... Ensuite il n'y a qu'un contact sec qui peux être programmé sur le tableau de commande mais pour une fonction unique (allumer/arrêter le chauffage, allumer/arrêter la refroidissement etc ... on ne peux agir sur la température. Sur la centrale (point 11) il y a une connection "Bus - Entrée sonde de température auxiliaire" je ne sais pas à quoi elle sert. La régulation par fil pilote est le plus simple et le plus souple à mon sens avec ce type de matériel mais pour avoir des infos c'est compliqué, j'aurais aimé pouvoir faire ça mais bon :-(
  4. @Chrispec, Je suis équipé comme toi d'un système TZEN 4000, soit une centrale C3000, un ballon B200 H2O, et deux modules de chauffage éléctrique raccordé à des thermostats par pièce. le clavier de commande centrale servant également de thermostat. Il est possible de gérer 3 zones par fil pilote, j'ai demandé au technicien Aldes plus d'infos mais ils sont un peu radins la dessus. J'ai toujours l'idée de la faire une fois qu'elle fonctionnera correctement (ça tombe souvent en panne, 2 fois chez moi et 5 ou 6 fois chez mon frère) Voici une doc intéressante : http://pro.aldes.fr/upload/documents/VC100840_Doc%20tech%20C3000-bd.pdf Si tu arrives à avoir des infos je suis preneur, et j'en ferais autant si j'arriva à avoir des infos
  5. Plugin Netatmo qui affiche désormais les infos même avec un pluviomètre, par contre au bout d'un moment plus de MAJ. Encore un peu effort et ca devrait être bon.
  6. C'est frustrant quand même, on a les fonctionnalités qui sont là ont les voit mais elle ne marche pas. Par exemple le plugin NETATMO qui ouvre beaucoup de possibilité, mais qui est bugé. Pour arriver sur le débat, FIBARO super bien, mais un peu trop fermé, Jeedom à l'air pas mal, mais pour l'instant il sont sont comme FIBRAO, dans les promesses. Pour résumer il n'y a pas à ce jour de box ou centrale domotique qui répond au besoin de tout le monde. Et comme nous sommes les heureux possesseurs d'un HC2 on voudrait que ce soit celle-ci qui soit parfaite :-) Encore un peu de patience
  7. tarentino

    Plugin Netatmo

    En 4.020 tout est a 0 pour moi également
  8. @Krikroff, merci je me doutais bien que ca venais de là
  9. Bonjour a tous, bien évidemment avec la poisse que j'ai ça ne fonctionne pas, voici le message d'erreur : [DEBUG] 11:24:15: {"product":"Eco-devices","T1_PTEC":"TH..","T1_PAPP":1910,"T1_BASE":226142,"T2_PTEC":"----","T2_PAPP":0,"T2_BASE":0,"INDEX_C1":0,"INDEX_C2":0} [ERROR] 11:24:15: line 8: attempt to index global 'json' (a nil value) Si quelqu'un as une idée, je suis en v 4.018 béta, ce qui peux expliquer beaucoup de choses. Merci d'avance
  10. @Kiek, Je suis en 4.018 béta, c'est peut-être ça le problème. Dommage, en tout cas même si j'arrive pas le faire fonctionner ton script à l'air vraiment bien, couplé à GEA c'est du tonnerre. Merci encore.
  11. @Kiek, Voici le contenu de mon fichier function mytriggeroncalendareventcreation() { //**************************************************************** //VARAIABLES A INITIALISER //**************************************************************** var HC2_IP = "xxxx.xxxx.net"; // adresse de la HC2 accessible depuis l'extàˆrieur (soit IP de votre freebox avec port dàˆdiàˆ pour HC2, ou adresse de connection externe) var LOGIN = "admin"; var PWD = "xxxxxxxx" var name = "HC2GoogleCal" var daycalname ="HC2Cal_Dayroutine" var scene = "8"; // ID de la scà‹ne "HC2Googlecal" var periode = 24 // pàˆriode d'analyse en heure var CAL_ID = "phpdot.net_8b9ijavit4vv9m7t32ojqmt8d8@group.calendar.google.com"; var DAY_CAL_ID = "phpdot.net_bsbaq5dsr5oifs54cemk5udimc@group.calendar.google.com"; // heures recup calendrier relatif au type de journàˆe (2 envois au cas o˘ problà‹me du serveur google) var heuredaycal1=0 // soit minuit var heuredaycal2=1 // soit 1h du mat // forcer mise ‡ jour calendrier relatif au type de journàˆe ‡ l'exàˆcution du script var forcedaycalupdate=0 // mettre ‡ 1 si on veut forcer (premià‹re mise en service) var ordres =[] var actions =[] var daytypes =["Travail","Repos","Absence"] var dayactions =[] // --------------------------------------------------------- // TABLE ACTIONS ET TABLES ORDRES //---------------------------------------------------------- // // la table actions doit donner les instructions dasn le màme ordre que celui de la table ordres. // les actions se dàˆfinissent selon les codages suivants : // // action sur une Variable Globale : // VSXX@YYY met la valeur XX (pas de limite nb caractà‹res) dasn la VG YYY (pas de limite nb caractà‹res) // VCXX@YY copie la valeur de la variable XX (pas de limite nb caractà‹res) dans la variable YY (pas de limite nb caractà‹res) // // s'il s'agit d'une action sur module virtuel: // MBXXXYY agit sur le bouton YY (max 2 digits) du module XXX (max 3 digits) // MSXXXYY@ZZ met le slider YY (pas de limite nb caractà‹res) du module XXX (max 3 digits) ‡ la valeur ZZ (max 3 digits) // // s'il s'agit d'une action sur scà‹ne : // S+XXX dàˆmarre la scà‹ne XXX (max 3 digits) // S-XXX stoppe la scà‹ne XXX (max 3 digits) // // s'il s'agit d'une action conditionelle : // ICCYYY@VVV|AAAAAAAA signifie IF la variable globale YYY (pas de limite de caractà‹res) suit la condition CC( ==, !=, >>, <<, >= ou <=) par raport ‡ la valeur YYY // ALORS l'action AAAAA sera exàˆcutàˆe, AAAA est une action codàˆe dàˆfinie pour un module, une scà‹ne, une variable globale ou un message // //----------------------------------------------------------------------- // Dans le calendrier des actions quotidiennes selon le type de jour, //------------------------------------------------------------------------ // Dàˆfinir les actions ‡ mener aux diffàˆrentes heures de la journàˆe (entre minuit et minuit) // il est d'attacher des actions au lever et au coucher du soleil dans le calendrier des actions quotidiennes selon un type de jour dàˆfini. // Pour cela utiliser la fonction HLSXXX pour dàˆfinir l'heure par rapport au Lever du soleil (HLS = Heure Lever Soleil), XXX est dàˆfinit sur 3 caractà‹res et est positif ou nàˆgatif (le signe fait partie des 3 caractà‹res). // HCS idem HLS pour Heure Coucher Soleil // //----------------------------------------------------------------- // Ordres depuis GoogleCal //------------------------------------------------------------------ // // Utilisation des ordres pràˆprogrammàˆs dasn la table ordres // // ou utilisation des ordres codàˆs selon la logique suivante : // // MV XX BOUTON YY --> agit sur le bouton YY (max 2 digits) du module XX (max 3 digits) // MV XX SLIDER YYY TO ZZ --> met le slider YYY (pas de limits nb caractà‹res) du module XX (max 3 digits) ‡ la valeur ZZ (max 3 digits) // // GV SET XXX TO YY --> met la valeur YY (pas de limite digits) dasn la variable globale nommàˆe XXX (pas de limits nb caractà‹res) // GV COPY XXX TO YYY --> copie/sauvegarde la valeur de la variable globale XXX (pas de limits nb caractà‹res) dans la variable globale YYY (pas de limits nb caractà‹res) // ATTENTION LA VARIABLE GLOBALE YYY DOIT DEJA EXISTER !!! // // IF XXX == AA THEN YYY ->> ne fera l'action YYY (attention ordre simple, pas d'ordre multiple !) que si la condition relative ‡ la variable globale XXX est remplie // XXX pas de limite de carcatà‹res // AA pas de limite de caractà‹res // YYY toute action sauf IF // YYY doit àtre un ordre CODE, les ordres pràˆprogrammàˆs ne sont pas (encore..) reconnus // // S+ XXX --> Dàˆmarre la scà‹ne XXX (3 digits) // S- XXX --> Stoppe la scà‹ne XXX (3 digits) // // PUSH XXX TO YY --> envoie un push XXX sur le tàˆlàˆphone identifiàˆ sous la HC2 en device# YYY (3 digits max) pour faire un rappel par exemple // // //----------------------------------------------------------------- // Ordres multiples depuis GoogleCal //------------------------------------------------------------------ // // Si on souhaite gàˆnàˆrer plusieurs actions au màme moment, lier les actions par &. // Par exemple "MV XX SLIDER YYY TO ZZ & MV XX BOUTON YY" // NB : Les actions seront ràˆalisàˆes dans l'ordre d'apparition // // Les ordres multiples fonctionnent avec les ordres pràˆprogrammàˆs ou les ordres codàˆs ou un màˆlange des deux // // --------------------------------------------------------- // TABLE DAYTYPES ET TABLES DAYACTIONS //---------------------------------------------------------- // DAYTYPES table dàˆfinissant les types de jours qui pourront àtre trouvàˆs dasn le calendrier // DAYACTIONS table dàˆfinissant les actions ‡ mener et les heures de ces actions au long de la journàˆe (de 0:00 ‡ 23:59) // //**************************************************************** //NE PAS EDITER PLUS BAS //**************************************************************** var now = new Date(); // en cas de changement de planning par rapport ‡ celui enregistràˆ dans la HC2, on envoie le nouveau planning var schedulebefore= getpreviousschedule(name,HC2_IP,LOGIN,PWD) var scheduleafter = recupplanning(now,ordres,actions,CAL_ID,periode) if (scheduleafter!=schedulebefore) { Logger.log("triggerfct : envoi nouveau planning"); envoiplanning(HC2_IP,LOGIN,PWD,scheduleafter,scene,name)} else {Logger.log("triggerfct : pas de changement de planning : pas d'envoi nouveau planning")} // en cas de changement de type de jour ET si on forcer la mise ‡ jour du planning, on envoie le nouveau planning var daytypebefore=getpreviousschedule(daycalname,HC2_IP,LOGIN,PWD) var daytypenow=traitementdaytype(DAY_CAL_ID,daytypes,dayactions) if (daytypenow!=daytypebefore && forcedaycalupdate==1) { Logger.log("triggerfct : envoi nouveau planning daytype"); envoiplanning(HC2_IP,LOGIN,PWD,daytypenow,scene,daycalname)} else {Logger.log("triggerfct : pas d'envoi nouveau planning daytype")} // envoi forcàˆ du calendrier relatif au type de jour ‡ minuit et ‡ 1:00 du mat (2 envois au cas o˘ problà‹me du serveur google) var nowminutes=now.getMinutes() if (now.getMinutes()==0 && (now.getHours()==0 || now.getHours()==1)) {envoiplanning(HC2_IP,LOGIN,PWD,daytypenow,scene,daycalname)} } //***************************************************************************** function getpreviousschedule(globvarname,HC2_IP,LOGIN,PWD) { var urlglobal = "http://" + HC2_IP + "/api/globalVariables"; var optionsglobalget = {"headers": {"Authorization": "Basic " + Utilities.base64Encode(LOGIN + ":" + PWD)}, "method":"get" }; envoi = UrlFetchApp.fetch(urlglobal, optionsglobalget) var allvars = JSON.parse(envoi.getContentText()); var schedulebefore ="" for (var i = 0; i < allvars.length; i++) { if (allvars[i].name == globvarname) { var schedulebefore = allvars[i].value; }} return schedulebefore } //******************************************************************************* function recupplanning(now,ordres,actions,CAL_ID,periode) { var cal = CalendarApp.getCalendarById(CAL_ID); var oldTimeZone = cal.getTimeZone(); // Google Script semble fonctionner en GMT, il faut donc lui imposer la bonne timezone. cal.setTimeZone("Europe/Paris"); // on peut utiliser "Etc/GMT-2" mais attention ! -2 en àˆtàˆ et -1 en hiver... "Europe/Paris" tient compte de l'heure d'àˆtàˆ // on travaille en flottant => events pour les 24h ‡ venir // var now = new Date(); var endperiode = new Date(now.getTime() + (periode * 60 * 60 * 1000)); var events = cal.getEvents(now, endperiode); var schedule = "" var description="" for (var i in events) { var ordredonne = events[i].getTitle() var heureordre = events[i].getStartTime().getHours() var minordre = events[i].getStartTime().getMinutes() var minfin=events[i].getEndTime().getMinutes() var heurefin = events[i].getEndTime().getHours() var delta = heurefin*60+minfin-heureordre*60-minordre if (delta!=0) {description = events[i].getDescription()} // mise en forme des donnàˆes heureordre=miseenforme(heureordre,2); minordre=miseenforme(minordre,2); heurefin=miseenforme(heurefin,2); minfin=miseenforme(minfin,2); // pràˆparation de la variable d'interface HC2 if (events[i].getStartTime()>now) { var ordresassocies=analyseordre(ordredonnàˆ,ordres,actions) if (schedule.length!=0) {schedule=schedule+"#"} schedule= schedule + heureordre+""+minordre+""+ordresassocies; } if (description!="") { var ordresassocies=analyseordre(description,ordres,actions) if (ordresassocies!="" && schedule.length!=0) {schedule=schedule+"#"} schedule=schedule+heurefin+""+minfin+""+ordresassocies; } } Logger.log('recupfct : schedule '+schedule) // Vàˆrif de la variable combinant toutes les actions et heures associàˆes. cal.setTimeZone(oldTimeZone); return schedule } //******************************************************************************* function analyseordre(ordredonnàˆ,ordres,actions){ var ordresassocies="" var ordresmult=chkmultipleorders(ordredonnàˆ) for (var i in ordresmult) { var ordre=rechercheordre(ordresmult[i],ordres,actions); if (ordre==ordresmult[i]) {// on n'a pas trouvàˆ l'ordre dans les ordres pràˆenregistràˆs ordre=traitementdescription(ordresmult[i])}; ordresassocies=ordresassocies+ordre+"&" } ordresassocies=ordresassocies.substring(0,ordresassocies.length -1) return ordresassocies } //******************************************************************************* function miseenforme(heure,nbdigit) { var heuretxt=heure+"" var long = heuretxt.length while (long!=nbdigit) { heuretxt="0"+heuretxt long=heuretxt.length} return heuretxt } //******************************************************************************* function rechercheordre(ordredonnàˆ,ordres,actions) { var action=ordredonnàˆ for (var j in ordres) { if (ordres[j]==ordredonnàˆ){ action=actions[j] } } Logger.log("action trouvàˆe sur ordredonnàˆ="+action) return action } //******************************************************************************* function envoiplanning(HC2_IP,LOGIN,PWD,schedule,scene,name) { var urlscene = "http://"+HC2_IP + "/api/sceneControl?id="+scene+"&action=" var optionscene = {"headers": { "Authorization": "Basic " + Utilities.base64Encode(LOGIN + ":" + PWD) }} envoi = UrlFetchApp.fetch(urlscene+"stop", optionscene); var urlglobal = "http://" + HC2_IP + "/api/globalVariables"; var dataglobal = "{\"name\" : \"" + name + "\", \"value\" : \"" + schedule + "\"}" var optionsglobalput = {"headers": {"Authorization": "Basic " + Utilities.base64Encode(LOGIN + ":" + PWD)}, "method":"PUT", "payload": dataglobal }; envoi = UrlFetchApp.fetch(urlglobal, optionsglobalput) envoi = UrlFetchApp.fetch(urlscene+"start", optionscene); } //******************************************************************************* // Dàˆtermination si ordre multiples function chkmultipleorders(description) { Logger.log("fct chkmultorders : description ="+description) var ordresmultiples = new Array(); var idx = description.indexOf(" & "); while (idx != -1) { ordresmultiples.push(description.substring(0,idx)); description=description.substring(idx+3) idx = description.indexOf(" & "); } ordresmultiples.push(description) Logger.log("fct chkmultiorders : ordresmultiples ="+ordresmultiples) return ordresmultiples } //******************************************************************************* function traitementdescription(description) { Logger.log("fct traitdesc : desc = "+description) var suiteschedule="" if (description!="") { Logger.log("fct desctab commence !") var stop=0 var prochain_espace=description.indexOf(" ",0); var descriptiontab=new Array() var descriptiontemp=description while (prochain_espace>=0) { descriptiontab.push(description.substring(0,prochain_espace)) description=description.substring(prochain_espace+1) prochain_espace=description.indexOf(" ",0) } descriptiontab.push(description) Logger.log("desctab = "+descriptiontab) suiteschedule=quelleaction(descriptiontab,"all") } return suiteschedule } //******************************************************************************* function quelleaction(descriptionaction,bornes){ var suiteschedule="" if (descriptionaction[0]=="GV"){ var actionGVdesc=actionGV(descriptionaction) suiteschedule=suiteschedule+"V"+actionGVdesc} if (descriptionaction[0]=="MV"){ var actionMVdesc=actionMV(descriptionaction) suiteschedule=suiteschedule+"M"+actionMVdesc} if (descriptionaction[0]=="S+" || descriptionaction[0]=="S-"){ suiteschedule=suiteschedule+descriptionaction[0]+descriptionaction[1]} if (descriptionaction[0]=="PUSH"){ suiteschedule=suiteschedule+"P"+descriptionaction[1]+"@"+descriptionaction[3]} if (bornes!="!IF" && descriptionaction[0]=="IF"){ var actionIFdesc=actionIF(descriptionaction) suiteschedule=suiteschedule+"I"+actionIFdesc} return suiteschedule } //******************************************************************************* function actionIF(descriptionIF) { var actionIF="" Logger.log("fct action IF = c'est du IF !") var variableGVcond=descriptionIF[1] Logger.log("fct action IF :variableGVcond="+variableGVcond) var iffonction=descriptionIF[2] Logger.log("fct action IF :iffonction="+iffonction) var condvalue=descriptionIF[3] Logger.log("fct action IF :condvalue="+condvalue) var thenaction=descriptionIF thenaction.splice(0,5) Logger.log("fct action IF :thenaction="+thenaction) if (iffonction==">" || iffonction=="<") {iffonction=iffonction+iffonction} Logger.log("IF "+variableGVcond+iffonction+condvalue+" THEN DO "+thenaction) actionIF=iffonction+condvalue+"@"+variableGVcond+"|" var suiteIF=quelleaction(thenaction,"!IF") actionIF=actionIF+suiteIF Logger.log("IF action compilàˆe ="+actionIF) return actionIF } //******************************************************************************* function actionMV(descriptionMV) { Logger.log("fct action MV = c'est du MV !") var IDmodule=descriptionMV[1] IDmodule=miseenforme(IDmodule,3) if (descriptionMV[2]=="BOUTON") { var IDbouton=descriptionMV[3] IDbouton=miseenforme(IDbouton,2)//mettre en forme sur 3 digits le IDmodule et 2 digits le IDbouton var actionMV="B"+IDmodule+IDbouton;} if (descriptionMV[2]=="SLIDER") { var IDslider=descriptionMV[3] var valueslider=descriptionMV[5] var actionMV="S"+IDmodule+IDslider+"@"+valueslider} Logger.log("fct actionMV : actionMV="+actionMV) return actionMV } //******************************************************************************* function actionGV(descriptionGV) { Logger.log("fct action GV : desctab ="+descriptionGV) var variableGV=descriptionGV[2] if (descriptionGV[1]=="SET") { var setvalueGV=descriptionGV[4] var actionGV="S"+setvalueGV+"@"+variableGV} if (descriptionGV[1]=="COPY") { var varcopyGV=descriptionGV[4] var actionGV="C"+variableGV+"@"+varcopyGV} Logger.log("fct actionGV : actionGV = "+actionGV) return actionGV } //************************************************************************************ function traitementdaytype(DAY_CAL_ID,daytypes,dayactions) { var cal = CalendarApp.getCalendarById(DAY_CAL_ID); var oldTimeZone = cal.getTimeZone(); // Google Script semble fonctionner en GMT, il faut donc lui imposer la bonne timezone. cal.setTimeZone("Europe/Paris"); // on peut utiliser "Etc/GMT-2" mais attention ! -2 en àˆtàˆ et -1 en hiver... "Europe/Paris" tient compte de l'heure d'àˆtàˆ var dayaction="" var now = new Date(); var endperiode = new Date(now.getTime() + (1 * 60 * 60 * 1000)); var events = cal.getEvents(now, endperiode); for (var i in events) { if (events[i].isAllDayEvent()) { var daytype = events[0].getTitle() Logger.log("fct trtdaytype : daytype = "+daytype) for (var j in daytypes) { // on recherche si le daytype dans la liste des dauytypes possibles et le cas àˆchàˆant le code dayaction associàˆ est enregistràˆ. if (daytype== daytypes[j]) { dayaction=dayactions[j]} } } } cal.setTimeZone(oldTimeZone); return dayaction } // Script written by Kriek (F.Lambert) - October 2014 // Voilà mon ficher, juste l'adresse et le mot de passe cachés. J'ai environ 1500 erreurs dans le rapport google journalier. @+
  12. @Kiek, as-tu trouver pourquoi le script google me renvoi une erreur. J'ai tout essayer, rien n'y fait. Si tu as besoin de plus d'infos hésite pas. Merci d'avance
  13. Salut Kriek, J'ai toujours la même erreur lors de l'execution du google script : Échec de la requête pour http://xxxxxxxxxx/api/globalVariables. Code renvoyé : 400. Réponse tronquée du serveur : {"type":"ERROR","reason":"name","message":"No variable name in uri"} (Utilisez l'option muteHttpExceptions pour examiner la réponse entière.) (ligne 298, fichier "Code") Je ne comprend pas, pour info je suis en 4.018 As-tu déjà rencontrer le pb. Merci d'avance
  14. tarentino

    Plugin Netatmo

    PITP2 : comme toi j'ai la même chose, mais mes module sont à0
  15. tarentino

    Plugin Netatmo

    Anglais ou pas, elle est connecté (Your account is connected) , mais les données ne sont pas àjour, affiche 0 surtout les modules Une idée ?
  16. tarentino

    Plugin Netatmo

    Comme toi la MAJ ne se fait pas
  17. @Did, oui même mes volets @bertanscende : Tout arrive au tableau, chaque bouton, volet, point lumineux. De ce fait je peux évoluer comme je veux. Exemple un bouton poussoir peux servir a autre chose que ce a quoi il était destiné au départ.
  18. Et pour info, tout mes modules arrive dans ma GTL, comme ca pas de problème de portée
  19. Mon installation est dans la même config que la tienne, il te suffit de mettre des waggo pour que tes poussoir soit en serie, ensuite du raccorde tes waggo au module et c'est bon. Pour ma part ca marche du feu de dieu.
  20. @Krikroff , non je suis connecté en direct sur la box pourtant. Bizarre, je vais revenir en v3 j'aurais moins de stress
  21. Bonjour, Je vois pas le panneau de configuration du plugins Ni celui du plugin netatmo d'ailleurs
  22. @steven : Le module est à 1m de la box,en fait tout mes modules sont à 1m de la box car il sont tous dans ma GTL @PITP2 : J'ai coupé au niveau du disjoncteur, mais toujours le même problème, la lumière reste allumé. Merci à vous Solution: Renvoi en garantie dès demain.
  23. Bonjour, A l'allumage ce soit j'ai un module FGD211 qui n'accepte plus de s'éteindre, lorsque je vais sur l'interface j'ai un belle croix sur le module. A t-il tout simplement rendu l'âme ou es ce déjà arriver à quelqu'un ? Merci d'avance
  24. tarentino

    Fibaro Et Apple

    Je pense que c'est ppur ca que la V4 traine, enfin j'espère
  25. Utilise GEA, le stop existe, je l'avais demandé àSteven qui l'avais gentiment ajouté.
×
×
  • Créer...