Aller au contenu

sebcbien

Membres confirmés
  • Compteur de contenus

    4 189
  • Inscription

  • Dernière visite

  • Jours gagnés

    85

Tout ce qui a été posté par sebcbien

  1. sebcbien

    Support Gea

    Je me suis acheté un oeil pour ma sdb et voici également ma config qui fonctionne: Paramètre 1 : 8 Paramètre 2 : 15 Paramètre 3 : 1 impultions Paramètre 4 : 12s Paramètre 6 : 30s -------------------- SDB ---------------------- -- la nuit allume à 10% RGBW pendant 2m puis prépare à 200 et éteint (pour allumage manuel) GEA.add({id2["SDB_MVTZ"],{"Value", id2["RGBW_DRESSING_SDB"],0},estNotHouse_Manuel}, -1, "",{{"Time", "Sunset-45", "Sunrise+45"},{"RGB", id2["RGBW_DRESSING_SDB"], 0, 0, 0, 10}}) local malampesdb = GEA.add(true, 2*60, "",{{"RGB", id2["RGBW_DRESSING_SDB"], 0, 0, 0, 200},{"Function", function() fibaro:sleep(300) end},{"turnOff", id2["RGBW_DRESSING_SDB"]}}) GEA.add(id2["SDB_MVTZ"], -1, "", {{"RestartTask", malampesdb}}) -- relance en cas de mouvement continu (blindtime) GEA.add(id2["SDB_MVTZ"], 60, "", {{"RestartTask", malampesdb},{"Repeat"}}) -----------------------------------------------
  2. sebcbien

    Support Gea

    @soulac Je pense que les {"repeat"} des lignes qui vont être restartées (5 et 7) sont inutiles. Je les ai enlevées chez moi et ça fonctionne toujours (pour des scènes similaires). Je vais modifier mes post dans le showroom dès que j'ai un peu de temps. Il y a quelques mois, j'avais un repeat par erreur sur une ligne -1 et ça me faisait planter la scène gea après quelques jours (c'était @jojo qui avait levé le lièvre)
  3. Et tu as essayé de faire un petit effort quand tu écris sur un forum, tu sais, prendre 10 secondes pour te relire... par respect pour tous ceux qui vont devoir relire tes phrases 3 fois pour essayer de comprendre ce que tu as voulu dire ? Merci.
  4. sebcbien

    Support Gea

    @pepite: pas de fausse modestie stp ! ;-) Voici le code pour ma lampe de garage, avec explications: Ici pour prévenir de l'extinction imminente, je fais clignoter les lampes une fois (pour ne pas me retrouver dans le noir pendant que je suis occupé à forer dans un coin) Je les fait clignoter au lieu de les dimmer car ce sont les tubes TL que je ne peux pas dimmer (ça ne se voit pas ou ça commence à déconner à basses valeurs). Mon script du showroom sam, lui dimme les lampes pour prévenir de l'extinction imminente A vérifier, mais en relisant un peu, le repeat de la ligne 20 me semble inutile vu que c'est un -1 (mais ça peut être utile avec un oeil fibaro pour le biind time) -----------------LAMPE GARAGE------------------ -- surveillance Lampe Garage: GEA.add(id2["GARAGE"], 180*60, "La Lampe du garage est Allumée depuis #duration# à #time#", {{"MaxTime", 8},{"Repeat"}}) -- Cas d'utilisation et besoins: -- Besoin de longues durées d'allumage via action manuelle (2h45). -- Via interupteur manuel LAMPE_GARAGE -- Allumage de la lumière manuellement (dimmer à 99%, via double click ou dernière valeur d'extinction) -- On clignotte la lampe après 1h30 et on set le dimer à 97% (passe la main au script d'extinction et de détection de mouvement) -- Dans tous les cas, après un clignottement, Un double click ramènera le dimmer à 99% et relancerait un cycle de 1h30 -- Garage était 2h45 à 99%, set 97% (Gea Mvt Garage) GEA.add({{"Value", id2["GARAGE"],99},estNotHouse_Manuel}, 165*60, "Garage 1H30 à 99%",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 98}}) -- Allumage Via DETECTEUR Mouvement GARAGE -- Allumage à 98% dès que détection mouvement. La 2e condition permet de ne pas renvoyer d'ordre d'allumage inutile GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"], 0},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, -1, "",{{"Value", id2["GARAGE"], 98}}) -- On clignotte la lampe après 7mn et on la passe à 97% ensuite on l'éteint après 5mn si toujours pas de mouvement local malampegarage = GEA.add({{"Value", id2["GARAGE"],98},estNotHouse_Manuel},7*60, "",{{"turnOff", id2["GARAGE"]},{"Function", function() fibaro:sleep(700) end},{"Value", id2["GARAGE"], 97}}) -- A chaque detection de mouvement, reset du décompte de la tâche ci-dessus GEA.add({id2["GARAGE_MVT"],{"Value", id2["GARAGE"],98},estNotHouse_Manuel}, -1, "", {{"RestartTask", malampegarage},{"repeat"}}) -- Extinction Garage GEA.add({{"Value", id2["GARAGE"],97},estNotHouse_Manuel}, 5*60, "",{{"Value", id2["GARAGE"], 99},{"Function", function() fibaro:sleep(500) end},{"turnOff", id2["GARAGE"]}}) -----------------------------------------------
  5. sebcbien

    Support Gea

    L'autre solution est de stocker dans le dimmer l'état manuel ou automatique. Par exemple: 99% si manuel. 98% si automatique. Ensuite dans gea utiliser pour chaque méthode une condition (99% ou 98%) pour exécuter un compte àrebours d'une minute ou de 5 minutes. Va voir dans le showroom gea (dans ma signature) j'utilise ça pour ma Sam et pour mon garage Sent from my Note4
  6. Tu fume quoi là? J'veux la même :-) Sent from my Note4
  7. Raté, chuis àMadrid ; -) Sent from my Note4
  8. EXTRA -> VISUALISATIONS -> MULTIGRAPH
  9. tes poissons font du yoga aussi ?
  10. Si je peux me permettre un retour... Personnellement àla longue on ne se réveille plus que quand la lumière est à100%... et encore ;-) Alors que ce soit une courbe X ou Y, dans un sens ou dans l'autre, l'impact est très faible. Ce n'est que mon expérience et ça inclus mes enfants et ma femme. J'imagine que certains doivent avoir un sommeil très léger et que une courbe logarithmique leur conviendra mieux.
  11. sebcbien

    Network Monitor

    Exemple si Google pas disponible après 10 essais -> reboot de la box adsl Sent from my Note4
  12. sebcbien

    Network Monitor

    Perso je préfère les numériques,il suffit d'un tonumber() dans d'autres scripts pour les utiliser. 0 = OK Puis 1 2 3 4 etc suivant le nombre d'erreurs ? Sent from my Note4
  13. sebcbien

    Support Gea

    Bien vu pépite. ! @erdremy, quelle méthode utilises-tu pour récupérer la météo ? Sent from my Note4
  14. Pour l'éco device, pour ne pas perdre de données, tu peux stocker tes données ailleurs temporairement. Moi j'utilise emoncms (voir aussi YAGDA dans ma signature) Une fois la solution de lazer opérationnelle, avec emoncms tu pourra exporter tes données au format csv et les importer au format voulu dans la db de lazer. Voici mon petit VD qui fait ça (et un peu plus) actuellement: et le code: local thismodule = fibaro:getSelfId(); local EmonCMS_Prefix = "" local PushToEmonCMS = true -- true = push to emoncms - false = do not push local domaine = fibaro:get(thismodule, 'IPAddress') local emoncms = Net.FHttp("emoncms.org",80) local emoncms_api_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -- your EMONCMS WRITE api Key local ConsoGaz2013_2014 = 1113 -- m3 de gaz consommées en 10/2013->11/2014 ConsoGaz2013_2014 = ConsoGaz2013_2014 * 1000 local date_index_gaz = "16/11/2014" local date_index_gaz_short = "16/11" local ConsoEau2013_2014 = 61 -- m3 d'eau consommées en 10/2013->10/2014 ConsoEau2013_2014 = ConsoEau2013_2014 * 1000 local date_index_eau = "9/10/2014" local date_index_eau_short = "9/10" local ConsoElec2013_2014 = 0 -- kWh consommés avant 06/2015 ConsoElec2013_2014 = ConsoElec2013_2014 local date_index_elec = "26/06/2015" local date_index_elec_short = "26/06" local Conso_Elec_Index = fibaro:getGlobal("HOUSE_CONSO_INDEX"); local Conso_Elec_Instant = fibaro:getGlobal("HOUSE_CONSO"); local ipECODEVICES = fibaro:get(thismodule, 'IPAddress') -- IDs générés le : 25/08/15 à 18:09:04 local id2 = { --Salon CORNICHE_SALON = 9, XBMC_REMOTE = 108, SALON_FLOD = 72, TV___AMPLI = 80, COMMANDE_CORNICHES = 65, SALON = 45, SALON_MVT = 987, SALON_TEMPERATURE_FL = 74, LAMPADAIRES_SALON = 23, MARANTZ_SALON = 1282, --Garage GARAGE_MVTZ = 1287, GARAGE_TEMPERATURE = 1288, GARAGE_MVT = 1004, GARAGE_HAUT = 1003, GARAGE_BAS = 1002, GARAGE_HUMIDITE = 1289, GARAGE_LUMINOSITE = 1290, REMOTE_GARAGE = 1138, GARAGE = 51 } local temperature_hall_aeon = fibaro:getValue(id2["GARAGE_TEMPERATURE"], "value") local humidite_hall_aeon = fibaro:getValue(id2["GARAGE_HUMIDITE"], "value") local temperature_salon_flood = fibaro:getValue(id2["SALON_TEMPERATURE_FL"], "value") ECO = Net.FHttp(ipECODEVICES) EmonCMS = {}; response = ECO:GET("/api/xdevices.json?cmd=10") -- enregistrement du retour de l API dans une table response = json.decode(response) --fibaro:debug(response.INDEX_C1) INDEX_GAZ = response.INDEX_C1 INDEX_EAU = response.INDEX_C2 INDEX_GAZ_ANNUEL = response.INDEX_C1 - ConsoGaz2013_2014 INDEX_EAU_ANNUEL = response.INDEX_C2 - ConsoEau2013_2014 fibaro:setGlobal("CONSO_GAZ", INDEX_GAZ) fibaro:setGlobal("CONSO_EAU_VILLE", INDEX_EAU) function round(num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end fibaro:log(round(tonumber((INDEX_EAU_ANNUEL/1000)*5)) .." € Eau ".. round(tonumber(INDEX_GAZ_ANNUEL/1000)*0.5) .." € Gaz" ) fibaro:call(thismodule, "setProperty", "ui.ConsoGaz.value", "Gaz: "..round(tonumber(INDEX_GAZ_ANNUEL/1000)) .."m3/" .. round(tonumber((INDEX_GAZ_ANNUEL/1000)*9.7)) .. "kWh = " .. round(tonumber(INDEX_GAZ_ANNUEL/1000)*0.63).."€") fibaro:call(thismodule, "setProperty", "ui.ConsoEau.value", "Eau: "..round(tonumber(INDEX_EAU_ANNUEL/1000)) .."m3 = " .. round(tonumber(INDEX_EAU_ANNUEL/1000)*4.3).."€") fibaro:call(thismodule, "setProperty", "ui.ConsoElec.value", "Elec: "..Conso_Elec_Index .."kWh = " .. round(tonumber(Conso_Elec_Index)*0.197).."€") fibaro:call(thismodule, "setProperty", "ui.InfoGaz.value", "Index Since " .. date_index_gaz.." (0,63€/m3)") fibaro:call(thismodule, "setProperty", "ui.InfoEau.value", "Index Since " .. date_index_eau.." (4,3€/m3)") fibaro:call(thismodule, "setProperty", "ui.InfoElec.value", "Index Since " .. date_index_elec.." (0,197€/kWh)") fibaro:call(thismodule, "setProperty", "ui.Info.value", "last Update: " .. os.date("%H:%M - %a %d/%m", os.time())) fibaro:debug(os.date("%a %d/%m", os.time()).." Gaz:".. round(tonumber(INDEX_GAZ_ANNUEL/1000)*0.63) .. "€(".. date_index_eau_short ..") Eau:".. round(tonumber(INDEX_EAU_ANNUEL/1000)*4.3) .."€(".. date_index_gaz_short ..")") function EmonCMS:Push(payloademon) payloademon = "/input/post.json?json={" .. EmonCMS_Prefix .. payloademon .. "}&apikey=" .. emoncms_api_key response, status, errorCode = emoncms:GET(payloademon); fibaro:debug("Payload: " .. payloademon) ; fibaro:debug("response: " .. response .. " Status: " .. status .. " errorcode: " .. errorCode) ; fibaro:sleep(500); end if PushToEmonCMS == true then payloademon = "CONSO_EAU_VILLE:" .. tonumber(INDEX_EAU/1000) -- /1000 = convert to m3 EmonCMS:Push(payloademon); payloademon = "CONSO_GAZ:" .. tonumber(INDEX_GAZ/1000) -- /1000 = convert to m3 EmonCMS:Push(payloademon); payloademon = "CONSO_ELEC:" .. tonumber(Conso_Elec_Index) EmonCMS:Push(payloademon); payloademon = "CONSO_ELEC_INSTANT:" .. tonumber(Conso_Elec_Instant) EmonCMS:Push(payloademon); payloademon = "TEMP_SALON:" .. tonumber(temperature_salon_flood) EmonCMS:Push(payloademon); payloademon = "TEMP_HALL:" .. tonumber(temperature_hall_aeon) EmonCMS:Push(payloademon); payloademon = "HUMI_HALL:" .. tonumber(humidite_hall_aeon) EmonCMS:Push(payloademon); end
  15. sebcbien

    Support Gea

    Ça àsa place dans le showroom gea ça ... ;-) Sent from my Note4
  16. sebcbien

    Support Gea

    Quel historien hors pair ! Tu as juste oublié de mentionner les fricadelles et le kilo de mayonnaise vandemorteele ;-) Sent from my Note4
  17. sebcbien

    Showroom Configs Gea

    si vous voulez recevoir un email de notification, mais pas de push sur mobile, voici un truc: GEA.add({estAway,estWinter}, 60, "Set Thermostats to Away at #time#", {{"VirtualDevice",id2["NETATMO_THERMOSTAT"],"2"},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"}}) Il suffit de spécifier un push vers un id inexistant : id["PHONE_FAKE"] Vous ne reçevrez alors que un email
  18. sebcbien

    Support Gea

    Salut @soulac, alors, tu as une config stable gea/fgms à nous proposer ?
  19. sebcbien

    Showroom Configs Gea

    Petit code gea qui permet de déclencher une action a un changement d'état d'une VG tout en connaissant son état précédent pendant XX minutes Je voulais déclencher une action si ma variable globale était PresentState=At_Home, mais uniquement si elle était à "Away" ou "Night_All_Off" pendant au moins 30 minutes juste avant... local estAt_Home = {"Global", "PresentState", "At_Home"} local estAwayOrNigh_All_Off = {"Global", "PresentState", "Night_All_Off|Away"} ----------------MUSIQUE SALON------------------ isLongAwayOrNightAllOff = false GEA.add(estAwayOrNigh_All_Off, 30*60, "", {{"function",function() isLongAwayOrNightAllOff = true end}}) GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff end}}, 60, "At Home entre 6h et 11h - Marantz Scénario Matin",{{"Time", "06:00", "11:00"}, {"VirtualDevice", id2["MARANTZ_SALON"], 23},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"function",function() isLongAwayOrNightAllOff=false end}}) GEA.add({estAt_Home,{"function",function() return isLongAwayOrNightAllOff end}}, 60, "At Home entre 17h et 19h30 - Marantz Scénario Soir",{{"Time", "17:00", "19:30"}, {"VirtualDevice", id2["MARANTZ_SALON"], 24},{"Portable", id["PHONE_FAKE"]},{"Email", id["ADMIN"],"Notification GEA V5 Instance 1"},{"function",function() isLongAwayOrNightAllOff=false end}})
  20. sebcbien

    Support Gea

    "L'union fait la force" c'est la devise de la Belgique pour ceux qui ne le savent pas ; -) Alarm avec deux heures ou une heure et une durée (comme pour les dérogations dans les thermostats. ) Sent from my Note4
  21. sebcbien

    Support Gea

    "il" est fort quand même ;-) Sent from my Note4
  22. sebcbien

    Support Gea

    Avec -1 la variable sera relue àchaque fois ça c'est sûr. Maintenant si tu veux te passer de VG, tu peux regarder dans le code gea comment Steven va lire la valeur du label du VD alarme et le mettre dans une fonction directement dans ta ligne gea. Sent from my Note4
  23. Ah oui c'est vrai que en v4 on peut utiliser le https... Si on peut se passer du php pour certaines fonctions c'est mieux. Sent from my Note4
  24. Super, Tu pourra partager la fonction php quand tu sera sur que ça fonctionne bien ? Je la rajouterai dans github. Perso je n'ai pas été aussi loin, j'ai fait la programmation via l'appli netatmo officielle et je me contente de changer le mode (away, program, hors gel) A mon sens la programmation des T° ne se fait qu'une fois et si un jour il faut une dérogation, on le fait sur le thermostat lui même. (WAF and KISS) ;-)
  25. sebcbien

    Support Gea

    Vu comment Steven a implémenté la fonction alarm, je ne pense pas que l'on pourra la réutiliser pour ce que tu veux faire. Ceci dit, "il" y aurait moyen de modifier le VD alarme pour stocker 2 heures différentes, (ou une heure et une durée). Ensuite "il" faudrait fouiller le code GEA et rajouter une fonction qui irait cette fonction. Le VD alarm et gea communiquent sans VG car gea utilise la valeur du label: ui.lblAlarme.value J'émet un doute sur la facilité de l'opération car pour une ligne gea.add, gea a son premier démarrage va prendre les valeurs au lancement. Modifier ensuite une valeur time ou alarm via une variable n'aura pas d'impact sur la fonction gea chargée (je pense). p.s. "il", ce ne sera pas moi ;-)
×
×
  • Créer...