Welcome to Domotique-fibaro

 

Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous serez en mesure de contribuer à ce site en soumettant votre propre contenu ou en répondant au contenu existant. Vous serez en mesure de personnaliser votre profil, de recevoir des points de réputation comme une récompense pour la soumission de contenu, tout en communiquant avec d'autres membres via votre boîte de réception privée, et bien plus encore! Ce message sera supprimé une fois que vous vous êtes connecté.

 

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Steven

Membres confirmés
  • Compteur de contenus

    3 483
  • Inscription

  • Dernière visite

Réputation sur la communauté

1 571 Excellent

À propos de Steven

  • Rang
    Maitre Yoda du forum
  • Date de naissance 18/04/1971

Profile Information

  • Sexe :
    Homme
  • Ville :
    Valleiry, Haute-Savoie
  • Box
    Home Center 2
  • Version
    4.130

Visiteurs récents du profil

1 222 visualisations du profil
  1. Voici le script Google. Il va chercher dans ton agenda les entrées des 2 prochaines semaines et les envoi dans un Module Virtuel. /** * ======================================================================================================== * Création de variable globale sur la HC2 * ======================================================================================================== **/ var HC2_IP = "hc2.xxxxxxxxx.xx"; var LOGIN = "username"; var PWD = "password"; var CAL_ID = 'xxxxxx.yyyyyyy@gmail.com' var TIMEZONE = "GMT+2"; var DATE_FORMAT = "dd.MM"; var ALL_DAY = ""; var TIME_FORMAT = "HH:mm"; var MV_ID = 87; var options = {"headers": { "User-Agent": "MY_APP_NAME (App URL/your email address)", "Authorization": "Basic " + Utilities.base64Encode(LOGIN + ":" + PWD) }} /** * ---------------------------------------------------------------------------- * Recherche les entrées de l'agenda et les envoi au MV après avoir appuyer * sur le bouton Reset * ---------------------------------------------------------------------------- **/ function findAndSend() { var cal = CalendarApp.getCalendarById(CAL_ID); var now = new Date(); var nowPlus2Weeks = new Date(now.getTime() + (14 * 24 * 60 * 60 * 1000)); var events = cal.getEvents(now, nowPlus2Weeks); var index = 1; reset(); events.sort(function(a, b) { return a.getStartTime() - b.getStartTime(); }); for (var i=0 ; i < events.length && i < 10; i++) { var d = getDateTime(events[i]) send("ui.Label"+index+".value", d + " - " + events[i].getTitle()); index += 1; } } function getDateTime(event) { var dt = "" if (event.isAllDayEvent()) { dt = Utilities.formatDate(event.getStartTime(), TIMEZONE, DATE_FORMAT); dt += " " + ALL_DAY; } else { dt = Utilities.formatDate(event.getStartTime(), TIMEZONE, DATE_FORMAT); dt += " "; dt += Utilities.formatDate(event.getStartTime(), TIMEZONE, TIME_FORMAT); } return dt; } function testit() { reset(); send("ui.Label1.value", "3Ts"); } /** * --------------------------------------------------------------------------------------------------------- * Action * --------------------------------------------------------------------------------------------------------- **/ function send(name, value) { var url = "https://"+HC2_IP + "/api/callAction?deviceID="+MV_ID+"&name=setProperty&arg1="+name+"&arg2="+value + " " envoi = UrlFetchApp.fetch(url, options) } /** * --------------------------------------------------------------------------------------------------------- * Retourne toutes les variables * --------------------------------------------------------------------------------------------------------- **/ function reset() { var url = "https://" + HC2_IP + "/api/callAction?deviceID="+MV_ID+"&name=pressButton&arg1=11"; envoi = UrlFetchApp.fetch(url, options) } et je te joint mon Module Virtuel. Le script appuie sur le bouton "Refresh" pour supprimer ce q'il y a dans le MV puis insert les événements un par un. Lorsque tu auras crée ton script sur ton drive.google.com, teste le en choisissant la fonction "testit", il te demandera l'autorisation pour accéder à ton agenda. Ensuite planifie le lancement de la fonction "findAndSend" pour quelle tourne toutes les heures. Et voilà. Google_Agenda.vfib
  2. il y existe dans d'autre langage la fonction evaluate() mais pas en LUA. Je fais ainsi comme décrit par @Lazer local f = { toto = function() print("Je suis toto") end, tata = function() print("Et moi sa soeur") end } f["tata"]()
  3. Tu peux t'appuyer la dessus pour commencer puis je t'enverrai mon VD et le bon script. http://www.domotique-info.fr/2013/11/google-script-au-service-de-votre-zibase/ Envoyé de mon SM-G935F en utilisant Tapatalk
  4. Google. J'ai un script Google sur mon Google drive qui lit mes agendas et pousse les rendez-vous dans un VD qui contient des labels vides. Envoyé de mon SM-G935F en utilisant Tapatalk
  5. @minos Voici ce que j'utilise à la maison GEA : -- si je passe devant mon détecteur entre 07:30 et 07:45, j appuie sur le bouton 1 de mon VD impérihome -- MaxTime,1 car si je passe 2x devant, j ai pas envie d être spammé local matin = GEA.add(id["DETECTEUR_PORTE"], -1, "", {{"Time", "07:30", "07:45"}, {"VirtualDevice", id["IMPERIHOME"], "1"}, {"MaxTime", 1}}) -- Relance de la ligne ci-dessus car le maxtime,1 l a stoppé pour toujours GEA.add(true, 30, "", {{"Time", "23:30", "23:30"}, {"RestartTask", matin}}) Le code de mon bouton 1 du VD Imperihome : Il m'annonce : le jour, la température extérieur, s'il pleut ou non, si une chambre d'enfant est allumée puis les rendez-vous de la journée s'il y en a. Bien évidement les textes ont été adapté pour que le TTS les prononce correctement (Rendé vous, Kaindra, 22 virgule 5, "..." pour faire une pause) local id_temp_ext = 101 local id_pluviometre = 103 local id_lumiere_chambre_1 = 198 local id_lumiere_chambre_2 = 30 local id_lumiere_chambre_3 = 26 local id_vd_agenda = 87 local message = "" local jours = {"dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"} local mois = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre"} local today = jours[tonumber(os.date("%w"))+1] .. os.date(" %d ") .. mois[tonumber(os.date("%m"))] message ="Nous sommes le " .. today .."..." message = message .. "La température extérieur est de " .. fibaro:getValue(id_temp_ext, "value") message = message:gsub("%.", " virgule ") .." degrés" -- 22.5 devient 22 virgule 5 local rain = fibaro:getValue(id_pluviometre, "value") if (tonumber(rain) > 0) then message = message .. "...Il pleut" else message = message .. "...Il ne pleut pas" end local allume = false if (tonumber(fibaro:getValue(id_lumiere_chambre_1, "value")) > 0) then message = message .. "...La chambre de Nolan est allumée" allume = true end if (tonumber(fibaro:getValue(id_lumiere_chambre_2, "value")) > 0) then message = message .. "...La chambre de Kaindra est allumée" allume = true end if (tonumber(fibaro:getValue(id_lumiere_chambre_3, "value")) > 0) then message = message .. "...La chambre de Nora est allumée" allume = true end if (not allume) then message = message .. "...Les chambres sont éteintes" end -- Récupéré l adresse IP et le port enregistré dans le VD local ip_module = fibaro:get(fibaro:getSelfId(),"IPAddress") local port = fibaro:get(fibaro:getSelfId(),"TCPPort") HC2 = Net.FHttp(ip_module, port) status, response = HC2:GET("/api/rest/speech/tts?text="..message:gsub(" ", "+")) fibaro:debug(response) fibaro:debug(status) -- Lecture de l agenda local found = false local events = "" local now = os.date("%d.%m") fibaro:debug(now) for i = 1, 6 do local e = fibaro:getValue(id_vd_agenda, "ui.Label"..i..".value") if (string.find(e, now)) then found = true events = events .. ".." .. e:gsub(":", " heure "):gsub(now, "") events = events:gsub("heure 00", "heure ") end end if (found) then events = "Les rendé vous de la journée sont .." .. events else events = "Aucune entrée dans l'agenda" end fibaro:sleep(8000) status, response = HC2:GET("/api/rest/speech/tts?text="..events:gsub(" ", "+")) fibaro:debug(response) fibaro:debug(status)
  6. Embête toi pas avec un tuto, colle juste 2, 3 lignes de code et basta ... cela pourra déjà aider pas mal de gens, du moins aiguiller. Merci encore
  7. @speedoxx007 Le code que tu vas avoir besoin est le suivant : {"Function", function() fibaro:call(<id>, "setValue2", <position>) end} Je ne sais pas exactement quel doit être la valeur de <position>, je présume que 0 = horizontal et 100 = vertical Donc si on reprend comme exemple une de tes lignes cela nous donne ceci : GEA.add( {{"Global", "PresentState","Away"},{"Global+","VDSoleilAzimut", 221},{"Global-","VDSoleilAzimut",300}}, 30,"",{{"Open",id["TERRASSE_DROITE"],100}, {"Function", function() fibaro:call(id["TERRASSE_DROITE"], "setValue2", 0) end}}) @minos Je serais toi, je vérifierais les id : 105 et 95 ... et j'enleverais le S à Weekday :-)
  8. Grrr désolé c'est fibaro:sleep(5000) et non pas sleep(5000)
  9. Tu as raison, il faut ajouter une pause ... elseif (trigger.type == "property") then fibaro:sleep(2000) local prop = trigger.propertyName local device = trigger.deviceID local val = fibaro:getValue(device, prop) ... Edit : Heuuu, non même pas, il faut sauver 2x l'icone pour que le scénario soit capable de retrouvé l'information ... étrange.
  10. Il semblerait que cela soit la "value2" Donc la mauvais nouvelle est que GEA ne permet pas, nativement, de gérer cette valeur. Néanmoins, il y a des astuces comme {"Function", ...} Aurais-tu la possibilité de créer un scénario LUA vide et d'y coller le code suivant fibaro:call(121, "setValue2", 0) sleep(5000) fibaro:call(121, "setValue2", 99) Afin de voir si ce dernier fait bouger les lamelles de ton store vénitien dans les 5 secondes
  11. @speedoxx007 Pourrais-tu envoyé le code que tu obtiens à cette adresse : http://<ip_de_ta_hc2>/api/devices/<id_de_ton_store_a_lamelle>
  12. http://gea.piccand.me/doku.php/syntaxe#liste_des_options {“Days”, <jours>} Ne vérifie l'évenement que si le jour d'exécution est dans le/les jours indiqués (jours peut prendre les valeurs suivantes “Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, All, Weekday, Weekend”) Donc pas de "S" à WeekDays
  13. Tuto HC2

    J'utilise déjà ma propre version. Il est pas tombé en désuétude, il fonctionne juste tellement bien qu'il n'y a rien à faire :-)
  14. Oui c'est les API Google. Pour le HS :-) Il n'y a pas d’événement déclencheur particulier. Perso, je fais ainsi : local params = fibaro:args() if (params) then -- On a reçu un argument print(json.encode(params)) -- for k, v in ipairs(params) do -- if (v.id) then ... end -- if (v.mode) then ... end --end else -- On a rien reçu end
  15. Si jamais, il y a toujours celui-ci qui fonctionne : Mais il est moins bien que celui de @Krikroff