Menu

Regle linknx pour volet avec lua marche pas

Help
Anonymous
2011-05-24
2012-12-14
  • Anonymous

    Anonymous - 2011-05-24

    Bonjour,

    Je cherche à fermer mes volets automatiquement à la tombée de la nuit
    et ce en fonction de la présence ou non.

    Pour 2 volets, ils doivent se fermer à 50% si on est présent, à 100%
    si on est absent
    Pour 2 autres volets, ils doivent se fermer à 100%

    J'ai donc écrit la règle suivante:
        <rule id="Volet_sunset">
              <condition type="timer" trigger="true"><at type="sunset"
    offset="+30m" /></condition>
              <actionlist>
                   <action type="script">
                                           status = obj("Mode_presence");
                                           if status == "on" then value = "120" else value="255" end;
                                           value_down = "255";
                                           set("Volet_Position_Salon_fenetre", value);
                                           set("Volet_Position_Cuisine_fenetre", value);
                                           set("Volet_Position_Bureau_fenetre", value_down);
                                           set("Volet_Position_Buanderie_fenetre_avant", value_down);
                   </action>
              </actionlist>
        </rule>

    Les volet salon et cuisine se ferme bien à 50 ou 100% comme prévu,
    mais les 2 autres ne bougent pas.

    Quelqu'un aurait-il vu l'erreur que je ne vois pas ?

    PS: J'ai aussi essayé en mettant directement
    set("Volet_Position_Bureau_fenetre", "255");
    Mais rien n'y fait.

    PPS:
    Définition des objets:

           <object id="Volet_Position_Bureau_fenetre" gad="12/7/0"
    type="5.xxx" flags="crwts">Volet Bureau fenetre position</object>
           <object id="Volet_Position_Salon_fenetre" gad="12/7/1"
    type="5.xxx" flags="crwts">Volet Salon fenetre position</object>
           <object id="Volet_Position_Cuisine_fenetre" gad="12/7/2"
    type="5.xxx" flags="crwts">Volet Cuisine Fenetre position</object>
           <object id="Volet_Position_Buanderie_fenetre_avant"
    gad="12/7/3" type="5.xxx" flags="crwts">Volet Buanderie Fenetre avant
    position</object>

     
  • Anonymous

    Anonymous - 2011-05-24

    Bonsoir,

    Etrange…
    A première vue tout semble correct du côté linknx.

    Est-ce que tu utilises des actuateurs différents pour piloter tes volets ?
    Tes volets sont-ils tous paramétrés de la même façon dans ETS ?
    As tu testé un set on/off tout simple sur les 2 volets récalcitrants ?

    Ben

     
  • Anonymous

    Anonymous - 2011-05-24

    C'est le même actuateur, les mêmes paramètres ETS (que j'ai vérifié et revérifié).

    Il fonctionne bien si je les pilotes via knxweb (ouverture de 0 à 255 ok), mais avec ce bout de script, rien a faire, je comprends pas.

    Et dans une autre rules, je fait un

         <action type="set-value" id="Volet_Position_Bureau_fenetre" value="255" />
         <action type="set-value" id="Volet_Position_Buanderie_fenetre_avant" value="255" />
    et ca, ca marche nickel !

     
  • Anonymous

    Anonymous - 2011-05-24

    Essaie en supprimant les doubles quotes autour de la valeur comme ceci :
    set("Volet_Position_Bureau_fenetre", 255);

    Ben

     
  • Anthony

    Anthony - 2011-05-24

    bonsoir,

    essaye de faire un "read" dans linknx de la valeur des 2 object qui posent problème
    "Volet_Position_Bureau_fenetre" et "Volet_Position_Buanderie_fenetre_avant"

    leur valeur est peut-être déjà à 255 (dans linknx et eibd )
    si c'est le cas elle n'est et donc n'est pas "ré-envoyée"
    il manque soit un listener soit l'info de retour d'état dans la GA dans ETS soit le flag "f" pour forcer l'envoi même si c'est la même valeur

    @+
    Anthony.

     
  • Anonymous

    Anonymous - 2011-05-26

    Supprimer le double quote, j'ai essayer. Ca ne marche pas.

    J'ai le flag s qui remplace le f. Ce n'est pas du au flag, c'est sur.

    Si je les pilotes directement dans ETS, aucun problème. Si je les pilotes individuellement depuis KNXWEB, aucun soucis.

    Nouvelles avancées:
    J'ai remplacé le script comme suit:

    <actionlist>
                   <action type="script">
                                           status = obj("Mode_presence");
                                           if status == "on" then value = "120" else value="255" end;
                                           value_down = "255";
                                           set("Volet_Position_Salon_fenetre", value);
                                           set("Volet_Position_Cuisine_fenetre", value);
                                           set("Volet_Position_Bureau_fenetre", value_down);
                                           set("Volet_Position_Buanderie_fenetre_avant", value_down);
                   </action>
              </actionlist>

    par

    <actionlist>
                   <action type="script">
                                           status = obj("Mode_presence");
                                           if status == "on" then value = "120" else value="255" end;
                                           value_down = "255";
                                           set("Volet_Position_Salon_fenetre", value);
                                           set("Volet_Position_Cuisine_fenetre", value);
                   </action>
                  <action type="set-value" id="Volet_Position_Bureau_fenetre" value="255" />
         <action type="set-value" id="Volet_Position_Buanderie_fenetre_avant" value="255" />
              </actionlist>

    Et ça ne marche pas non plus, alors que ces 2 lignes marche très bien dans mon script qui ferme les volets quand je quitte la maison.

    J'ai alors inverser les lignes
                                           set("Volet_Position_Salon_fenetre", value);
                                           set("Volet_Position_Cuisine_fenetre", value);
                                           set("Volet_Position_Bureau_fenetre", value_down);
                                           set("Volet_Position_Buanderie_fenetre_avant", value_down);

    en
                                           set("Volet_Position_Bureau_fenetre", value_down);
                                           set("Volet_Position_Buanderie_fenetre_avant", value_down);
                                           set("Volet_Position_Salon_fenetre", value);
                                           set("Volet_Position_Cuisine_fenetre", value);

    Et dans ce cas ci, les 2 qui bougeaient ne bougent plus. Les 2 qui ne bougeaient pas si.

    On dirait que seulement 2 instructions passent

    Quand je regarde le log de linknx, il envoi bien les 4 valeurs (knxConnection: Write …)

    Mais je n'ai pas de retour du module volet pour les 2 derniers envoyé.

    On dirait que le module hager pour volet ne reçoit pas les 2 derniers, ou ne les execute pas. Ce soir, j'essaye en ajoutant un delai de 2 secondes entre chaque volet

    Logs:

    1306350900 INFO Action : Execute LuaScriptAction

    1306350900 INFO KnxConnection : write(gad=12/7/0, buf, len=3)
    1306350900 INFO Object : New value 255 for object Volet_Position_Bureau_fenetre (type: 5.xxx)

    1306350900 INFO KnxConnection : write(gad=12/7/3, buf, len=3)
    1306350900 INFO Object : New value 255 for object Volet_Position_Buanderie_fenetre_avant (type: 5.xxx)

    1306350900 INFO KnxConnection : write(gad=12/7/1, buf, len=3)
    1306350900 INFO Object : New value 120 for object Volet_Position_Salon_fenetre (type: 5.xxx)

    1306350900 INFO KnxConnection : write(gad=12/7/2, buf, len=3)
    1306350900 INFO Object : New value 120 for object Volet_Position_Cuisine_fenetre (type: 5.xxx)

    Je reçoit un status 0 sur 2 volets (status 0 = en mouvement). Les 4 volets etait bien à la position 0 en commançant.

    1306350900 INFO Object : New value 0 for object Volet_Status_Byte_Bureau_fenetre (type: 5.xxx)
    1306350900 INFO Object : New value 0 for object Volet_Status_Byte_Buanderie_fenetre_avant (type: 5.xxx)

     
  • Anonymous

    Anonymous - 2011-05-27

    Voila, problème réglé.
    J'ai simplement mis un délai entre le démarrage de chaque volet !
    Ce serait donc le module Hager pour volet qui ne digère pas 4 instructions si rapide ? Bref, j'ai une solution.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.