Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 989
  • Inscription

  • Dernière visite

  • Jours gagnés

    205

Messages posté(e)s par jojo

  1. pour Sunset, Sunrise, tu ne dois rien faire. 

    L'option {"Time", "Sunrise", "Sunset"} dit que le tâche ne pourra s'exécuter que si les conditions sont remplies ET qu'on est entre le Sunrise et le SunSet.

    Il calcule automatiquement le sunrise et le sunset en fonction de la date et de ta position géographique, mais tu peux mettre {"Time", "Sunrise", "22:00"} et la tâche s'exécutera entre le sunrise et 22:00

  2. on oublie pour l'instant le FGBS, car il fonctionne (à  l'envers) pour l'instant

     

    Sunset / Sunrise est calculé automatiquement, mais on peut dire entre Sunrise et 22:00 ?

    tu défini tes id dans une table, il doit y avoir un exemple dans le code que tu as chargé

    local id = {
    CHAUDI7RE = 103,  ALARME = 54, TEMPERATURE = 49
               }
    
  3. sauf faute de frappe

    -- allumage de la chaudière entre lever et coucher du soleil, si présent et température < 18°C depuis 10 min
    GEA.add ({id["CHAUDIRERE"], id["ALARME"], {"value-", id["TEMPERATURE"], 18}}, 10*60, "Chaudière ON", {{"Inverse"}, {"Time", "Sunrise", "Sunset"}, {"turnOn", id["CHAUDIRERE"]}})
    -- extinction de la chaudière si température > 20°C depuis 10 min
    GEA.add ({{"value+", id["TEMPERATURE"], 20}, id["CHAUDIRERE"]}, 10*60, "Chaudière OFF car température = #value#", {{"turnOff", id["CHAUDIRERE"]}})
    -- extinction de la chaudière si le soir
    GEA.add (id["CHAUDIRERE"], 1, "Chaudière OFF car Sunset", {{"Time", "Sunset", "Sunrise"}, {"turnOff", id["CHAUDIRERE"]}})
    
    
  4. J'ai enfin pris le temps d'essayer de m'attaquer au problème.

    En lisant le 1° post, j'ai des questions quand aux conditions àvérifier pour la présence.

    En SURVOLLANT les posts suivants, il me semble que le besoin aurait évolué ?

    Demande de GEA toujours d'actualité, suivant quel scénario ?

  5. je ne la reboot jamais, parfois je fais un save manuel de ma scène GEA.

    Quand j'aurai tout refait la semaine prochaine, je verrai si je ne dois pas programmer un reboot automatique régulièrement

          HC2 = Net.FHttp("127.0.0.1",11111);
          response, status, errorCode = HC2:POST("/api/settings/reboot", "data=reboot");
     
          if errorCode == 0 
            then
              fibaro:log("Reboot en cours")
            else
              fibaro:log("erreur : reboot impossible");
          end
    
  6. voici un autre code qui évite de devoir communiquer les credential admin 

          HC2 = Net.FHttp("127.0.0.1",11111);
          response, status, errorCode = HC2:POST("/api/settings/reboot", "data=reboot");
     
          if errorCode == 0 
            then
              fibaro:log("Reboot en cours")
            else
              fibaro:log("erreur : reboot impossible");
          end
    
    • Upvote 1
  7. pour faire un ET, c'est toutes les conditions sur la même ligne GEA.add. 

    Pour faire un OU, ce sont des lignes différentes

    GEA.add ({id["DETECTION_MVT"], {"value-",id["LUX"], 100}, -1, "", ...)
    GEA.add ({id["DETECTION_MVT"], {"Global", "Jour_Nuit", "Nuit"}}, -1, "", ...)
    
  8. tu ne commences pas par le plus simple...

    Perso j'ai plus de 500 lignes de code GEA, et seulement 15 avec des stopTask, RestartTask, ...

    Donc 90% des besoins peuvent être couverts sans maîtrise de ces notions complexes.

    Si je puis me permettre, commence par bien maîtriser les autres notions de GEA, ça te sera plus utile dans l'immédiat, et cela te permettra de mieux appréhender celles-ci.

    Voici un exemple :

      -- Lampe SdJ
         -- Extinction automatique de la lampe après 30s.
         local autoOffSdJ = GEA.add ({DeviceID["LUM_HALLNUIT_SDJ"], auth_LumHallNuit}, 31, "", {{"turnOff"}})
         -- Appuie sur l'interrupteur de la lampe, on stoppe l'extinction automatique.
         GEA.add (DeviceID["LUM_HALLNUIT_SDJ"], -1, "", {{"StopTask", autoOffSdJ}})
         -- Allumage de la lampe sur détection mouvement
         GEA.add ({DeviceID["MVT_HALLNUIT_SDJ"], auth_LumHallNuit, {"Value-", DeviceID["LUX_HALLNUIT_SDJ"], 5}, {"Value", DeviceID["LUM_HALLNUIT_SDJ"],0}}, -1, "", {{"turnOn", DeviceID["LUM_HALLNUIT_SDJ"]}, {"RestartTask", autoOffSdJ}})
         -- Extinction de la lampe dans tous les cas après 10 min
         GEA.add ({DeviceID["ALARME_ACTIVE"], DeviceID["LUM_HALLNUIT_SDJ"]}, 10*60, "Extinction du Hall de Nuit SdJ, car allumée depuis #duration#. (#date# à  #time#)", {{"Inverse"}, {"turnOff", DeviceID["LUM_HALLNUIT_SDJ"]}, {"Portable", MobileID["None"]}, {"Email", UserID["Vincent"], "ALERTE - Lumière Hall de Nuit"}})
    
    

    et j'ai vu il y a quelques jours une solution qui me permetterait d'éviter ces restartTask => à  optimiser

     

    Un autre exemple

    -------------------
      -- Alarme
    -------------------
    -- Garage Annabelle
      -- GA_OPEN => fermer
       local auto_GA_Close = GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 90, "Garage Annabelle ouvert et alarme branchée. Fermeture automatique. (#date# à  #time#)",{{"turnOn", DeviceID["BOUTON_GA"]}, {"Email", UserID["Vincent"], "ALARME - Garage ouvert => fermeture automatique"}})
      -- GA_OPEN => pas réussi à  la fermer
       GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_OPEN"]}, 135, "Garage Annabelle ouvert et alarme branchée. La fermeture automatique n a PAS fonctionné. Aller voir sur place. (#date# à  #time#)",{{"Email", UserID["Vincent"], "ALARME - Garage ouvert et en erreur"}})
      -- GA_Mvt => porte garage mal fermée
       GEA.add({DeviceID["ALARME_ACTIVE"], DeviceID["GA_MVT"]}, 45, "Garage Annabelle mal fermé et alarme branchée. Aller voir sur place. (#date# à  #time#)",{{"Email", UserID["Vincent"], "ALARME - Garage mal fermé et en erreur"}})
    
    -- Désactivation alarme
      -- => arrêt tâche fermeture auto porte garage Annabelle
       GEA.add (DeviceID["ALARME_ACTIVE"], 1, "", {{"Inverse"}, {"StopTask", auto_GA_Close}})
    
    
    
    
    
  9. GEA ne sera jamais précis qu'à  30sec près, il travail par cycle de 30s.

    si tu mes une valeur entre 1 et 30 sec, l'action se réalisera endéans les 30s (mais peut-être après 10s)

    Si tu veux absolument min 30s, tu mes 31s, et alors l'action se déroulera après 30s et en déans la minute.

     

    Pour le reste, ça fonctionne ?

×
×
  • Créer...