Aller au contenu

HANSOLO

Membres confirmés
  • Compteur de contenus

    1 501
  • Inscription

  • Dernière visite

  • Jours gagnés

    15

Tout ce qui a été posté par HANSOLO

  1. HANSOLO

    Support Gea

    :wub: :wub: :wub:
  2. HANSOLO

    Support Gea

    Ha oui, pas pensé àgérer l'ordre des commandes!
  3. HANSOLO

    Support Gea

    Héhé, commence àte connaître
  4. HANSOLO

    Support Gea

    Tu n'as pas oublié de mettre l'id du module pilotant la lampe en entête pour un déclenchement immédiat?
  5. HANSOLO

    Support Gea

    -- Allumage automatique lampe entrée sous sol -- GEA.add( id["CPT_MOUV_ENTREE_SS_SOL"], -1 ,"",{{"turnOn", id["LAMPE_ENTREE_SS_SOL"]},{"If",{{"Global", "COMMANDE_MANUEL", "MANUEL_NON"}}},{"Repeat"}}) -- Allumage manuel lampe entrée sous sol alors maj variable globale GEA.add(id["LAMPE_ENTREE_SS_SOL"], -1,"",{{"Global", "COMMANDE_MANUEL", "MANUEL_OUI"}}) -- Extinction automatique lampe entrée sous sol -- GEA.add( id["LAMPE_ENTREE_SS_SOL"], 90,"",{{"turnOff", id["LAMPE_ENTREE_SS_SOL"]},{"Repeat"},{"If",{{"Global", "COMMANDE_MANUEL", "MANUEL_NON"}}}}) -- Si les lampes entrée sous sol sont allumées plus de 5 mn je les éteinds -- GEA.add( id["LAMPE_ENTREE_SS_SOL"], 5*60, "les lampes entrée sous sol sont allumées depuis plus de 5 minutes donc je les éteinds #time#", {{"turnOff"},{"Repeat"},{"If",{{"Global", "COMMANDE_MANUEL", "MANUEL_OUI"}}}}) Mais à mon avis ça va tourner en rond, le fait d'allumer la lampe par le détecteur va mettre la VG à OUI quand même. Rappelle toi quand tu as soumis cette demande, j'avais préconisé un FGS-221 pour utiliser l'entrée BP2 pour piloter la lampe (connectée en O1) et mettre à jour la VG. De cette manière tu dissocie bien commande manuelle et par le détecteur. Les repeat ne sont pas très utiles.
  6. HANSOLO

    Support Gea

    BP = bouton poussoir (ou bouton pression pour Steven)
  7. :DUn bouton Kronenbourg ou un bouton poussoir?
  8. HANSOLO

    Support Gea

    Avec GEA et la commande manuelle tu allume la lampe et tu met à jour une variable globale ex Manu : oui Une ligne pour éteindre si la lumière est allumée 5 mn ET Manu = oui et mettre Manu à non Tu ajoute la condition Manu = non dans ta ligne pour éteindre 90s après l'allumage par le détecteur PS c'est mieux si tu utilise un BP pour la commande manuelle
  9. HANSOLO

    Jour Chômé

    Merci, j'en prend note
  10. Je confirme le Scheduler ou GEA
  11. HANSOLO

    Jour Chômé

    function doCalculate(time, label, variable) local jour = josdGetJourSemaine(os.date("%w", time)) josdJourChomeReturn = (jour=="samedi" or jour=="dimanche" or josdJourFerie(time) or josdJourVacances()) if josdJourChomeReturn then display(jour, "OUI", label, variable, time) else display(jour, "NON", label, variable, time) end end Juste à ajouter le " or josdJourVacances() " dans la fonction "DoCalculate" voir ci-dessus. Pense à intercaler le code pour les congés avant les deux dernières lignes. (entre deux fonctions déjà existante ou juste avant les deux dernières lignes mais pas après)
  12. HANSOLO

    Jour Chômé

    Regarde sur le blog indiqué au début, l'auteur originel gère les vacances scolaires. N'ayant pas l'utilité, je n'ai pas repris cette fonctionnalité (pour des vacances scolaires passe encore, mais pour des congés durant les périodes scolaires pas très pratique de modifier dans le code) Merci Casinos, je garde sous le coude pour la prochaine version.
  13. Oui, pas de problème. Il n'y a pas de contrôle si une charge est connectée ou pas.
  14. HANSOLO

    Jour Chômé

    Id 3 du bouton précisé
  15. HANSOLO

    Ruban Led

    Ou colle néoprène sur le ruban et sur la surface àcoller, attendre 5-10 mn et tu colle
  16. HANSOLO

    Jours Chômés

    V2 améliorée par STEVEN publiée
  17. HANSOLO

    Jour Chômé

    V2 améliorée par STEVEN publiée
  18. HANSOLO

    Jour Chômé

    Des risque de plantage si on charge trop la main loop d'après ce que j'ai lu dans le forum, du coup je suis les conseils avisés.
  19. HANSOLO

    Jour Chômé

    exact
  20. HANSOLO

    Jour Chômé

    je mettrais gea.add({"Global","",""},30,"",{{"Virtual..... attention vérifie la syntaxe je l'écrit de mémoire à partir de mon tel
  21. HANSOLO

    Jours Chômés

    Voilà c'est publié. http://www.domotique-fibaro.fr/index.php/topic/1420-jour-ch%C3%B4m%C3%A9/
  22. HANSOLO

    Jour Chômé

    V2 du 27/06/2014 grandement amélioré par STEVEN Nouveautés de la V2: - Calcul si le jour en cours et jour +1 est chômé ou pas - Choix des jours fériés France ou Suisse - Ce qui change par rapport à la V1: ajout d'un label dans le module virtuel et ajout d'une variable globale JourChomeJ1, pour lancer le calcul depuis GEA ou SCHEDULER bouton 3 au lieu de 2 pour la version précédente. Objectif: calculer si le jour en cours est chômé (WE ou férié) ou pas et stocker le résultat dans une variable globale, le tout sans dépendre d'un agenda externe à la HC2 et de script intermédiaire. Il s'agit d'une légère adaptation du code pour la VERA LITE de josDBlog http://gurau-audibert.hd.free.fr/josdblog/2014/01/lua-vacances-jours-chomes-et-jours-feries/ 1er étape, dans le panneau des variables, créer deux variables globale prédéfinie JourChome JourChomeJ1 avec les valeurs prédéfinies OUI NON. 2 iém étape, créer un module virtuel avec deux labels et un bouton: Le détail: Et ci-dessous la code à coller dans le bouton du module virtuel: -- Retourne OUI si le jour courant et J+1 est un jour chômé (WE ou férié) -- Adapté de http://gurau-audibert.hd.free.fr/josdblog/2014/01/lua-vacances-jours-chomes-et-jours-feries/ -- Pour la HC2 par Hansolo -- V1 26/06/2014 Initié par HANSOLO -- V2 27/06/2014 Amélioré par STEVEN, gestion des JS SUISSE et calcul J et J+1 local france = true local suisse = false local geneve = false -- Retourne le jour de la semaine en clair function josdGetJourSemaine(jour) --fibaro:debug ("jour: ") josdGetJourSemaineTab={[0]="dimanche",[1]="lundi",[2]="mardi",[3]="mercredi",[4]="jeudi",[5]="vendredi",[6]="samedi"} return josdGetJourSemaineTab[tonumber(jour)] end -- Retourne le jour de Pâques au format epoch -- annee : année (Integer) dont on désire connaître le jour de Pâques (ex : 2014) function josdGetJourPaques(annee) local a=math.floor(annee/100); local b=math.fmod(annee,100); local c=math.floor((3*(a+25))/4); local d=math.fmod((3*(a+25)),4); local e=math.floor((8*(a+11))/25); local f=math.fmod((5*a+,19); local g=math.fmod((19*f+c-e),30); local h=math.floor((f+11*g)/319); local j=math.floor((60*(5-d)+b)/4); local k=math.fmod((60*(5-d)+,4); local m=math.fmod((2*j-k-g+h),7); local n=math.floor((g-h+m+114)/31); local p=math.fmod((g-h+m+114),31); local jour=p+1; local mois=n; josdGetJourPaquesAnnee=annee; josdGetJourPaquesEpochPaque=os.time{year=annee,month=mois,day=jour,hour=12,min=0}; return josdGetJourPaquesEpochPaque; end -- Retourne true si le jour courant est un jour férié function josdJourFerie(time) local today=os.date("%m-%d", time); local annee=tonumber(os.date("%Y", time)); -- Dates fixes josdJourFerieTab = {} local epochPaques=josdGetJourPaques(annee); if (france) then josdJourFerieTab["01-01"] = true; -- 1er janvier josdJourFerieTab["05-01"] = true; -- Fête du travail josdJourFerieTab["05-08"] = true; -- Victoire des alliés josdJourFerieTab["07-14"] = true; -- Fête nationale josdJourFerieTab["08-15"] = true; -- Assomption josdJourFerieTab["11-01"] = true; -- Toussaint josdJourFerieTab["11-11"] = true; -- Armistice josdJourFerieTab["12-25"] = true; -- Noà«l -- Dates variables josdJourFerieTab[os.date("%m-%d",epochPaques)] = true; -- Pâques josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60)] = true; -- Lundi de Pâques = Pâques + 1 jour josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*39)] = true; -- Ascension = Pâques + 39 jours josdJourFerieTab[os.date("%m-%d",epochPaques+24*60*60*50)] = true; -- Pentecôte = Ascension + 50 jours end if (suisse) then josdJourFerieTab["01-01"] = true; -- 1er janvier josdJourFerieTab["08-01"] = true; -- Fête national josdJourFerieTab["12-25"] = true; -- Noà«l -- Dates variables if (geneve) then josdJourFerieTab[jeuneGenevois(time)] = true; -- jeunes genevois else josdJourFerieTab[jeuneFederal(time)] = true; -- jeunes genevois end josdJourFerieTab[os.date("%m-%d", epochPaques)] = true; -- Pâques josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60)] = true; -- Lundi de Pâques = Pâques + 1 jour josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60*39)] = true; -- Ascension = Pâques + 39 jours josdJourFerieTab[os.date("%m-%d", epochPaques+24*60*60*50)] = true; -- Pentecôte = Ascension + 50 jours josdJourFerieTab[os.date("%m-%d", epochPaques-48*60*60)] = true; -- Vendredi-saint = Pâques - 2 jour end return josdJourFerieTab[today]; -- (nldr : Both nil and false make a condition false) end -- Calcul le jeudi qui suit le 1er dimanche de septembre function jeuneGenevois(time) local jour = 1 local annee = tonumber(os.date("%Y", time)) while (os.date("%A", os.time{year=annee, month=9, day=jour}) ~= "Sunday") do jour = jour + 1 end return os.date("%m-%d", os.time{year=annee, month=9, day=(jour+4)}) end -- Calcul le lundi qui suit le 3ème dimanche de septembre function jeuneFederal(time) local jour = 1 local annee = tonumber(os.date("%Y", time)) while (os.date("%A", os.time{year=annee, month=9, day=jour}) ~= "Sunday") do jour = jour + 1 end return os.date("%m-%d", os.time{year=annee, month=9, day=(jour+15)}) end -- Affiche le résultat function display(jour, result, label, variable, time) selfId = fibaro:getSelfId() fibaro:debug ("Jour chomé: " .. result) -- Mise à jour de la variable globale if (variable) then fibaro:setGlobal(variable, result) end -- Mise à jour du label du module virtuel fibaro:call(selfId,"setProperty","ui."..label..".value", jour .. " " .. os.date("%d.%m.%Y ",time).." Jour chomé: ".. result) end -- Lancement du calcul function doCalculate(time, label, variable) local jour = josdGetJourSemaine(os.date("%w", time)) josdJourChomeReturn = (jour=="samedi" or jour=="dimanche" or josdJourFerie(time)) if josdJourChomeReturn then display(jour, "OUI", label, variable, time) else display(jour, "NON", label, variable, time) end end doCalculate(os.time(), "Label1", "JourChome") doCalculate(os.time()+24*60*60, "Label2", "JourChomeJ1") J’exécute le code tous les jours à 00H15 depuis le Scheduler (90 étant l'ID de mon module virtuel et 3 la position du bouton) ce qui évite d'utiliser le main loop du module virtuelle et d'éventuels problèmes. luaDaySchedule:add("00:15","90", 3 , "pressButton",{"All"},true) La même chose depuis GEA. GEA.add({"Global", "", ""}, 30, "", {{"VirtualDevice", 90, 3},{"Time", "00:00", "00:01"}}) Pour choisir les jours fériés France ou Suisse (au début du code) local france = oui local suisse = non local geneve = non Merci à STEVEN pour les améliorations. Voilà un truc tout simple que j'utilise pour gérer mes volets Correction du 13/07/2014, utiliser true ou false pour la sélection des calendriers des jours fériés local france = true local suisse = false local geneve = false Correction du 14/04/2015, calcul du jeudi de l’ascension erroné Correction du 03/05/2015, calcul du jeudi de l'ascension dans la partie Suisse Correction du 25/05/2015, calcul du lundi de pentcôte
  23. HANSOLO

    Support Gea

    Super, ça m'étonnait vu que la syntaxe est bonne.
  24. HANSOLO

    Support Gea

    Essaye GEA.add({id["PISCINE"]},30,"Mise en Marche pompe piscine",{{"Inverse"},{"Time", "18:30", "18:31"},{"turnOn", id["PISCINE"]},{"Repeat"}}) -- Mise en marche pompe Piscine -- GEA.add({id["PISCINE"]},30,"Mise en arrêt pompe piscine",{{"Time", "00:30", "00:31"},{"turnOff", id["PISCINE"]},{"Repeat"}}) -- Arret pompe Piscine -- Ajout de { & } autour de id["Piscine"]
  25. HANSOLO

    Support Gea

    La syntaxe me parait bonne, si tu reçois des notifications pour d'autres commandes on peut écarter un mauvais paramétrage. Je ne vois pas! Perso, ayant un Windows Phone je n'utilise pas les notifications.
×
×
  • Créer...