Aller au contenu

Messages recommandés

Posté(e)

@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 :-)

  • Upvote 1
Posté(e)
Il y a 9 heures, Steven a dit :

Je serais toi, je vérifierais les id : 105 et 95 ... et j'enleverais le S à Weekday :-)

@Steven

Bon c'est ok ... le problème venait que l'ID est 105 etait inexistant car le module curieusement avait disparu ...

Donc inclusion , ID 111 maintenant OK.

  GEA.add(111, 1*60, "", {{"Inverse"}, {"Days", "Weekday"}, {"Time", "00:30", "06:30"}, {"turnOff", 95}, {"Repeat"}, {"Portable", 46}})

pour bien comprendre le  "Inverse" signifie que après la plage horaire , à 06h31 le module 95 va se mettre à turnOn ?

 

par contre  pendant la tranche horaire définie  , si madame veut regarder la TV  ben elle pourra pas ...je pense car 95 turnOff

 

 

j ai juste ...?

 

 

Posté(e)

Heuuu non :-).
Inverse : inverse la 1ere condition soit 111, signifie donc si pas de detection
Ta ligne signifie donc :
Si pas de détection de mouvement pendant 1 minute, les jours de semaine, entre 00h30 et 06h30, extinction du 95, et envoie push (vide d ailleurs) sur telephone 46
Non cela ne passera pas a turnOn

Madame pourra regarder la tele mais si elle s'endort, plus de détection de mouvement donc extinction :-)

Envoyé de mon Nexus 5X en utilisant Tapatalk

  • Upvote 1
Posté(e)

@Steven hello,

 

ça fonctionne a la merveille:60:

 

 

{"Function", function() fibaro:call(<id>, "setValue2", <position>) end}

Alors la valeur <position>, 0 = vertical et 100 = horizontal

 

Merci c'est cool.:D

  • Upvote 1
Posté(e)

Coucou, 

je cherche avec GEA  à actionner le bouton 1 d'un module virtuel .

 

  GEA.add(111, 1*60, "", {{"Days", "Weekday"}, {"Time", "05:00", "05:30"}, {"Program", 121, 1}})
 

wakupminos.thumb.JPG.bd51474d6328f97faf5e3b19c0594889.JPG

 

 

 

En faite, l'idée:

lors de mon réveil , le capteur de mouvement me détecte  entre 05:00 et 05:30 (je suis toujours  le premier levé :17: ) ... et me dit bonjour...

 

si faisable aussi , j'aimerais qu'elle me donne la T° ext , une meteo pour la journée ..

 

vous voyez le truc ...

 

donc je suis preneur de vos avis ...

 

Merci

 

 

 

Posté(e)
il y a 5 minutes, Sakkhho a dit :

Mais Je t ai donné la code pour les VD.

oui merci , j'ai mis en place ...

 

mais rien ne se passe ...:angry:

 

a suivre ..

Posté(e)

@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)

 

Posté(e)

@Steven  Merci beaucoup...je vais étudier tout ça .

 

Par contre pour l'agenda , tu te sers de quoi .. celui de google : S Planer  ..?

 

 

Posté(e)

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

Posté(e)
Il y a 2 heures, Steven a dit :

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.

Waouh classe :16:

t aurais pas un petit tuto pour ça aussi ...

 

Madame serait épatée ...vu qu'elle oublie des RDV des fois ....:2:

 

Merci

 

Posté(e)

@Steven ok merci je regarde ton lien et merci d'avance pour  

Citation

je t'enverrai mon VD et le bon script

 

que j’attends avec impateince ..:74:

Posté(e)

mon GEA ne fonctionne plus depuis un moment, ou il fonctionne sur 3 pattes. J'ai eu beau repartir de zéro dans une nouvelle scène, rien n'y fait.

Le code est bon, je n'ai rien modifié depuis des lustres et tout fonctionnait bien avant

Je suis en 4.133 mais c'était pareil en 4.130. La version de GEA est tjs 5.40

 

Vous commenceriez par quoi pour essayer de régler le problème ? je suis un peu perdu

Posté(e)

Bonjour, installe le watchdog de@Lazer :-). Ton GEA sera au moins relance :-)
Puis apres ligne par ligne jusqu'a trouver celle incriminée:-)

Envoyé de mon Nexus 5X en utilisant Tapatalk

Posté(e)

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

Posté(e)

@Steven

Il y a 2 heures, Steven a dit :

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.

 

j'ai une erreur , il m'a bien demandé l'autorisation pour accéder à l'agenda et puis :

 

Erreur DNS : https://ip_homecenter:port/api/callAction?deviceID=127&name=pressButton&arg1=11 (ligne 87, fichier "Code")

 

"j ai modifié : ip_homecenter:port"

 

dans ta variable var HC2_IP = tu renseignes l'ip et le port de ta HC2 ...?

dans le var MV_ID = 127; correspond au Virtual Device de google Agenda 

 

à mon avis il veut pas de https dans le var url = ...

 

si je le dégage :

 

je n'ai pas d'errreur ...

 

Posté(e)

C'est pas vraiment l'IP mais www.xxx.yy:port

Oui le 127 doit correspondre à L'ID de ton VD.

Perso, je suis toujours en HTTPS mais peut-être pas toi.

Est-ce que la fonction testit te met bien 3Ts dans ton VD ?

Envoyé de mon SM-G935F en utilisant Tapatalk

Posté(e)

BONJOUR A TOUS

voila je voudrais actionner un MV si un capteur de t° affiche une certaine valeur

si je mets

GEA.add({"Value+", id["temp.."], 30},1*30, {"VirtualDevice", id VD, id bouton})
et inversement quand la t° arrive a 25

est ce que je suis bon la étant pas chez moi 

merci encore

 
Posté(e)

Oui mais attention Value+ 30 sera actionné à 31 car Value+ signifie plus grand que.

Pour l'inverse utilise Value- 26.

Envoyé de mon SM-G935F en utilisant Tapatalk

  • Upvote 1
Posté(e)

Merci Steven
Je viens de rentrer mais là ligne ne fonctionne pas j ai un message d'erreur
Je comprends pas pourquoi
La valeur vient d'un vd est ce que ça vient pas de la
Merci encore8968e8b0b4115b1245bce11e94e72569.jpg

Envoyé de mon MHA-L09 en utilisant Tapatalk

×
×
  • Créer...