Menu

missing commands

Anonymous
2010-04-12
2012-12-14
  • Anonymous

    Anonymous - 2010-04-12

    I recently added a number of groups to separately control corner window shutters:

            <object type="1.001" id="87" gad="2/0/0"><listener gad="3/0/1" /><listener gad="3/0/4" />Bureau shutters up/down (engine controlled) </object>
            <object type="1.001" id="88" gad="2/0/1"><listener gad="3/0/1" /><listener gad="3/0/4" />waskot shutters up/down (engine controlled) </object>
            <object type="1.001" id="89" gad="2/0/2"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen wasbak shutters up/down (engine controlled) </object>
            <object type="1.001" id="90" gad="2/0/3"><listener gad="3/0/1" /><listener gad="3/0/4" />Sitting Area Corner Window shutters up/down (engine controlled) </object>
            <object type="1.001" id="91" gad="2/0/4"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen window shutters up/down (engine controlled) </object>
            <object type="1.001" id="92" gad="2/0/5"><listener gad="3/0/1" /><listener gad="3/0/4" />Living vitrine shutters up/down (engine controlled) </object>
            <object type="1.001" id="93" gad="2/0/6"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen door shutters up/down (engine controlled) </object>
            <object type="1.001" id="94" gad="2/0/7"><listener gad="3/0/1" /><listener gad="3/0/5" />Room NE shutters up/down (engine controlled) </object>
            <object type="1.001" id="95" gad="2/0/8"><listener gad="3/0/1" /><listener gad="3/0/5" />Room SE shutters up/down (engine controlled) </object>
            <object type="1.001" id="96" gad="2/0/9"><listener gad="3/0/1" /><listener gad="3/0/5" />Room SW shutters up/down (engine controlled) </object>
            <object type="1.001" id="97" gad="2/0/10"><listener gad="3/0/1" /><listener gad="3/0/5" />Room NW shutters up/down (engine controlled) </object>
            <object type="1.001" id="98" gad="2/0/11"><listener gad="3/0/1" /><listener gad="3/0/5" />Room Z shutters up/down (engine controlled) </object>
    
            <object type="1.001" id="115" gad="3/0/1">All shutters up/down (functions) </object>
            <object type="1.001" id="118" gad="3/0/4"><listener gad="3/0/1" />All shutters downstairs up/down (functions) </object>
            <object type="1.001" id="119" gad="3/0/5"><listener gad="3/0/1" />All shutters upstairs up/down (functions) </object>
    

    And I am trying out the new if-false if-true stateless objects:

            <rule id="shutters_up_down">
                <condition type="timer" trigger="true">
                    <at type="sunset" offset="-20m" />
                </condition>
                <actionlist type="if-true">
                    <!-- upstairs down -->
                    <action type="set-value" id="119" value="on" />
                </actionlist>
            </rule>
    

    For some reason; the only non-corner shutter will not close with this command anymore (though that one should not have been affected by the changes).

    The strange thing is that I can see the command being send (not to 119 but separately to the composing devices).

    1271097000 INFO Object : New value on for object shut-se-mov-a (type: 1.001)
    1271097000 INFO Object : New value on for object shut-se-mov-b (type: 1.001)
    1271097000 INFO Object : New value 18 for object 232 (type: 9.xxx)
    1271097017 INFO Object : New value 17.32 for object 248 (type: 9.xxx)
    1271097019 INFO Object : New value on for object 246 (type: 1.001)
    1271097066 INFO Object : New value on for object 98 (type: 1.001)
    1271097066 INFO Object : New value on for object 119 (type: 1.001)
    1271097147 INFO Object : New value 17.11 for object 180 (type: 9.xxx)
    1271097180 INFO TimerManager : TimerTask execution. 1271097180
    1271097180 INFO Condition : TimerCondition evaluated as '1'
    1271097180 INFO Condition : TimerCondition evaluated as '0'
    1271097180 INFO SolarTimeSpec : sun_rise_set date 2010-4-12
    1271097180 INFO SolarTimeSpec : sun_rise_set returned 20:33
    1271097180 INFO SolarTimeSpec : adjustTime date 2010-4-13
    1271097180 INFO SolarTimeSpec : adjustTime returned 20:35
    1271097180 INFO PeriodicTask : Rescheduled at 2010-4-13 20:35:0 (1271183700)

    Should I not use combining group addresses when other groups are listening to them? If so, I'd better add it to my example config file.

     
  • Anonymous

    Anonymous - 2010-04-12

    shoot formatting goed messed up; I'll have another go.

    <object type="1.001" id="87" gad="2/0/0"><listener gad="3/0/1" /><listener gad="3/0/4" />Bureau shutters up/down (engine controlled) </object>
    <object type="1.001" id="88" gad="2/0/1"><listener gad="3/0/1" /><listener gad="3/0/4" />waskot shutters up/down (engine controlled) </object>
    <object type="1.001" id="89" gad="2/0/2"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen wasbak shutters up/down (engine controlled) </object>
    <object type="1.001" id="90" gad="2/0/3"><listener gad="3/0/1" /><listener gad="3/0/4" />Sitting Area Corner Window shutters up/down (engine controlled) </object>
    <object type="1.001" id="91" gad="2/0/4"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen window shutters up/down (engine controlled) </object>
    <object type="1.001" id="92" gad="2/0/5"><listener gad="3/0/1" /><listener gad="3/0/4" />Living vitrine shutters up/down (engine controlled) </object>
    <object type="1.001" id="93" gad="2/0/6"><listener gad="3/0/1" /><listener gad="3/0/4" />Kitchen door shutters up/down (engine controlled) </object>
    <object type="1.001" id="94" gad="2/0/7"><listener gad="3/0/1" /><listener gad="3/0/5" />Room NE shutters up/down (engine controlled) </object>
    <object type="1.001" id="95" gad="2/0/8"><listener gad="3/0/1" /><listener gad="3/0/5" />Room SE shutters up/down (engine controlled) </object>
    <object type="1.001" id="96" gad="2/0/9"><listener gad="3/0/1" /><listener gad="3/0/5" />Room SW shutters up/down (engine controlled) </object>
    <object type="1.001" id="97" gad="2/0/10"><listener gad="3/0/1" /><listener gad="3/0/5" />Room NW shutters up/down (engine controlled) </object>
    <object type="1.001" id="98" gad="2/0/11"><listener gad="3/0/1" /><listener gad="3/0/5" />Room Z shutters up/down (engine controlled) </object>
    
    <object type="1.001" id="115" gad="3/0/1">All shutters up/down (functions) </object>
    <object type="1.001" id="118" gad="3/0/4"><listener gad="3/0/1" />All shutters downstairs up/down (functions) </object>
    <object type="1.001" id="119" gad="3/0/5"><listener gad="3/0/1" />All shutters upstairs up/down (functions) </object>
    
     
  • Anonymous

    Anonymous - 2010-04-12

    Ok, this is just plain evil. Sorry about this; but it copies my code/rules :-/ No way to modify posts.

     
  • JensH

    JensH - 2010-04-12

    Hi,
    please let me better understand your intentions:
    you "just" want to send "3/0/5"  20 minutes before sunset, right?

    In this case some comments:
    the "if-true" only makes sense, if you have multiple/frequent "triggers", which just say…"something has changed….but  the overall conditions i.e. the result of the rule is true"
    In this case, the "if-true" actions are executed… this repeats with every newly incomming trigger, which does not make the overall condition false.
    Since you have just one condition "sunset -20m", this is just triggered once a day. So you don't need to use "if-true".
    (not in your case, but for gads used in stateless conditions, please remind to use the "s"-flag.)

    I think the reason, why your 3/0/5 is not working, is the definition of the object.:
    I haven't seen any flags in your definition:
    you should write something like
    <object type="1.001" id="119" gad="3/0/5" flags="cwtuf"><listener gad="3/0/1" />All shutters upstairs up/down (functions) </object>
    mind especially the "f" - sine this forces the sending of the "3/0/5", even if it was send as "on" before.

    Maybe that helps.
    best Regards, Jens

     
  • jef2000

    jef2000 - 2010-04-12

    Hi,

    I know the forum tool from sourceforge is like you say "plain evil", I suffer from it too.
    Concerning your rule, the condition you use is:
    <condition type="timer" trigger="true">  <at type="sunset" offset="-20m" />  </condition>
    This kind of timer condition (without "until" or "during" element) will become true at the specified time, and become false again just after. Just as if you specifiy <during>0</during>.  You can see that behavior in the traces:
    1271097180 INFO TimerManager : TimerTask execution. 1271097180
    1271097180 INFO Condition : TimerCondition evaluated as '1'
    1271097180 INFO Condition : TimerCondition evaluated as '0'

    So in this case, the stateless rule doesn't help because the rule becomes true and false alternatively.
    But when the action <action type="set-value" id="119" value="on" />  is executed, nothing happens, because the object 119 already has value "on". So what you need here is not a stateless rule, but a a stateless object (an object that will send "on" on the bus even if it's internal state is already "on")
    You can use the "s" flag for this. Since the default flags are "cwtu", parameter flags="cwtus" in the objects manipulating groups of shutters will make them "stateless" (115, 118 and 119).

    Kr,

    Jean-François

     
  • jef2000

    jef2000 - 2010-04-12

    Hi,

    Just a small precision, the "f" flag Auto-mate is talking about and the "s" flag I'm talking about are in fact the same. I renamed it "s" because it was more coherent with the introduction of stateless rules, but both are supported.

    Kr,

    Jean-François

     
  • JensH

    JensH - 2010-04-12

    Hi Jean-Francois,

    ahhaaaa! I just started to check the wiki and writing a question after seeing your first reply…. :-)
    Thanks for the addendum.
    (by now I thought "f" is to "force" the sending and "s" is just for receiving stateless rule-triggers…)

    BR, Jens

     
  • jef2000

    jef2000 - 2010-04-12

    In the past, the "f" flag was only forcing transmission of values on the bus.
    Now "f" and "s" are strictly equivalent. They make the rule "trigger" when a value is received from the bus, even if the object already had that same value. And they force sending of the object value on the bus in case the object value is set inside linknx, even if the object already had that same value.
    Be careful not to create loops with this. If a stateless rule trigger on a stateless object change and the associated action set the value of that same object….

    Kr,

    Jean-François

     
  • Anonymous

    Anonymous - 2010-04-14

    Oh yeah, that did it for me, thanks!

     

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.