Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Scene condition not evaluated properly after reboot


Question

Posted

I have this scene:

Please login or register to see this image.

/monthly_2020_09/image.png.d96069d5a6a18e0871e75b138cb0bee3.png" />

 

Whenever the HC3 is rebooted (or "restarted" as part of backup) this scene stops working. I see the button press being registered in History, but scene is not triggered. It looks like the condition is always evaluated to false or something. I have to manually, in the UI or mobile app, turn the device in condition on/off and then it's fine. I tried, as part of debugging, flipping the condition (using "Turned on") and also inverting it, but nothing works. Comparing the JSON from API right after the reboot and after the on/off dance, it's the same (except for pieces like "last modified", etc.).

 

Is this a known issue? Any other ideas what to try and where to look to get some clue? Running HC3 with 5.040.

 

 

19 answers to this question

Recommended Posts

  • 0
  • Inquirer
  • Posted

    The device in the "Do" block in Fibaro Double Switch 2. So the compatibility should be top-notch. Just in case.

     

    Pinging @A.Socha.

    • 0
    Posted (edited)
    On 9/1/2020 at 6:40 PM, cincura.net said:

    I have this scene:

    Please login or register to see this link.

     

    Whenever the HC3 is rebooted (or "restarted" as part of backup) this scene stops working. I see the button press being registered in History, but scene is not triggered. It looks like the condition is always evaluated to false or something. I have to manually, in the UI or mobile app, turn the device in condition on/off and then it's fine. I tried, as part of debugging, flipping the condition (using "Turned on") and also inverting it, but nothing works. Comparing the JSON from API right after the reboot and after the on/off dance, it's the same (except for pieces like "last modified", etc.).

     

    Is this a known issue? Any other ideas what to try and where to look to get some clue? Running HC3 with 5.040.

     

     

    This is 'normal behaviour.' for  Fibaro: after a reset or reboot it 'forgets' the values of it's variables and the state of it"s switches. If the device in question is polled (which means it is not a variable and polling is not off for the device) the real state will be known after a few minutes when the first poll happened. If no polling occurs the only possibility for a a variable is to change it's state BY A SCENE (so, NOT mamually) and, for a device, to toggle it's state and this can be done  manually as most newer devices will automatically report a CHANGE of their state to the gateway

    Edited by wienog
    • 0
  • Inquirer
  • Posted
    6 minutes ago, wienog said:

    This is 'normal behaviour.' for  Fibaro: after a reset or reboot it 'forgets' teh calues of it's variables and the state of it"s switches. If the device in question is polled (which means it is not a variable and polling is not off for the device) the real state will be known after a few minures when the first poll happened.

     

    That's "interesting". I can imagine that the polling will eventually "set" the value. But I'm wondering how the variables get "restarted"? Also what about battery operated devices? The response to polling might come after many hours and hence some scenes might be "broken" for hours.

    • 0
    Posted
    9 minutes ago, cincura.net said:

     

    That's "interesting". I can imagine that the polling will eventually "set" the value. But I'm wondering how the variables get "restarted"? Also what about battery operated devices? The response to polling might come after many hours and hence some scenes might be "broken" for hours.

    See my edited post aboive: variables are not 'polled' and so will not automatically be 'set' to the value they had before the reboot. Second problem is that changing the value of a variable MANUALLY (by going to the variables-panel' and changing it there will not trigger anything. The variable needs to be changed by the gateway itself to be useful. AFAIK the only way to do this is to run an existing scene that will put it back to the desired state or write a small scene that does just that and run that scene. Not very user-friendly, I know but I'm not sure  there are other solutions like 'automatically resetting the variables to their pre-reboot' state. In some cases that would be just what you do NOT want, for example, when you suspect the state of a  variable (or a device) to be the exact problem for which you need the reboot.

    • 0
  • Inquirer
  • Posted
    1 hour ago, wienog said:

    variables are not 'polled' and so will not automatically be 'set' to the value they had before the reboot.

     

    I can't replicate this. I created a variable, changed the value in a scene and rebooted HC3. After reboot the variable had correct value.

    • 0
    Posted

    @cincura.net

     

    Yes, that is true but more of a coincidence than a fact. Where the Fibaro does get the values for it's devices and variables after a reboot is not clear to me. I suppose it does not make a list of which device is in which state and which varaiable has which value..

    I thought for some time that Fibaro after a reboot looked at the newest backup to decide the state of devices and variables , but i know now that is not the case either.

    I just don't know how they do it;

    But you are right: OFTEN but not always the varaibles , or some of them, have the value they had before the reboot.

    • 0
  • Inquirer
  • Posted

    Putting aside the variables, even for devices, after the reboot I see the previous states of the devices in UI/mobile app. Anyway.

     

    But as an extra test I modified the scene this way:

    Please login or register to see this image.

    /monthly_2020_09/image.png.f9b351f5d0a1359827f07e7088b192c4.png" />

     

    The two condition blocks evaluate (or at least should) always (OK, not in NULL logic) to `true`. Yet after reboot after pressing the button, the scene is not executed. What's more interesting is the fact, that setting the switch in condition to "Off" state in another scene does not solve the problem. I needs to be set to "On" (and "Off") and then in starts working as expected.

     

    How can this be reasonably explained?

    • 0
    Posted (edited)

    @cincura.net

     

    That's exactly what I said: the Home Center just DOES NOT KNOW after a reboot the state of things (be it devices or variables) untill you MANUALLY alter the state of a device, after which the new state is sent to the system and now it DOES know the state of that (and only that) device . For a variable as I said before you need to do it through a scene.

     

    As long ast the home center does not know the state of a device it will not ACT on a scene where that state is used as a condition, not even when you try to force it by maling a scene like the last one you showed.

    The reasoning of HC is this: "This guy asks me to do something if that device is ON or when that device is OFF but I have a problem because I just do not know what the state is, so I do nothing (not even when the scene is constructed in a way that it should run with the device-condition ON or OFF, the homecenter just refuses to process any scene that contains conditions for devices or variables of which he is not sure of the state or value, regardless)

     

    Probably what plays here is the information stored in the HC which shows the last time the state of a device was changed, something we use in scenes every day  ("If heating has been on for 20 minutes, turn it off").. Maybe, but that is just a guess, this information of last change is erased by a reboot and that is why the HC refuses to act.

    Edited by wienog
    • 0
  • Inquirer
  • Posted
    9 hours ago, wienog said:

    That's exactly what I said: the Home Center just DOES NOT KNOW after a reboot the state of things (be it devices or variables) untill you MANUALLY alter the state of a device, after which the new state is sent to the system and now it DOES know the state of that (and only that) device . For a variable as I said before you need to do it through a scene.

     

    9 hours ago, wienog said:

    As long ast the home center does not know the state of a device it will not ACT on a scene where that state is used as a condition, not even when you try to force it by maling a scene like the last one you showed.

     

    Strictly speaking, when I set the state of the device to "Off" (and hence the HC3 (should) knows the state) via another scene, it still does not trigger. It needs to be "On" (and "Off" to be in proper state for the scene). Which is like ?‍♂️. Or maybe like ?‍♂️?‍♂️?‍♂️. I'm having trouble putting this behavior into my brain with my ~20 years of professional developer experience. Why would be it be done this way?

    • Thanks 1
    • 0
    Posted
    14 hours ago, cincura.net said:

     

     

    Strictly speaking, when I set the state of the device to "Off" (and hence the HC3 (should) knows the state) via another scene, it still does not trigger. It needs to be "On" (and "Off" to be in proper state for the scene). Which is like ?‍♂️. Or maybe like ?‍♂️?‍♂️?‍♂️. I'm having trouble putting this behavior into my brain with my ~20 years of professional developer experience. Why would be it be done this way?

     

    Why would it be done this way ?  Because it's Fibaro :-). Fibaro has it's reasons which reason does not understand...

    It's one of the strange details you find out about along the way and you learn to live with. Don't know if there is a structural solution for this behaviour. For example: making and saving a 'list' iof the state of devices and variables MIGHT be a solution, but, on the other hand: what if exactly the state of one of these devices is exactly the reson you need the reboot ? Then the whole problem starts all over again.

    • 0
    Posted

    Work around is to force everything off after reboot ?

    • 0
  • Inquirer
  • Posted
    2 minutes ago, Hearts said:

    Work around is to force everything off after reboot ?

     

    In my case that would have to be on followed by off. I skipped on using the condition and rather do it in code in Lua.

    • 0
    Posted

    Ok, and you run this Lua manually after reboot or power failure ?

    • 0
  • Inquirer
  • Posted
    1 minute ago, Hearts said:

    Ok, and you run this Lua manually after reboot or power failure ?

     

    No. Handling the condition in code seems to be working just fine (as if no reboot happened).

    • 0
    Posted

    Handling in block scenes working also fine. but if the reboot happened everything stopped working because of the (knows the state) 

    • 0
    Posted
    On 9/5/2020 at 8:11 PM, cincura.net said:

     

     

    Strictly speaking, when I set the state of the device to "Off" (and hence the HC3 (should) knows the state) via another scene, it still does not trigger. It needs to be "On" (and "Off" to be in proper state for the scene). Which is like ?‍♂️. Or maybe like ?‍♂️?‍♂️?‍♂️. I'm having trouble putting this behavior into my brain with my ~20 years of professional developer experience. Why would be it be done this way?

    That is correct: the change of state needs to be logged by HC3 If the state is "Off" and you make  a scene to put it to "off" nothing will happen. What you need to do is either toggle twice if you want the original state back.

    But i guess you found an other solution already through LUA.

    • 0
  • Inquirer
  • Posted
    2 hours ago, wienog said:

    That is correct: the change of state needs to be logged by HC3 If the state is "Off" and you make  a scene to put it to "off" nothing will happen.

     

    That's what's inconsistent and makes me wanna cry. After the reboot the condition is not evaluated to true or false because HC3 doesn't know the state, yet flipping the switch to off, when it thinks it's off, results in the behavior you/I described.

    • 0
    Posted

    This bug is extremely frustrating because it introduces random behaviour into the HC3 after a backup has been run. You cannot predict whether a scene will run because you don’t know whether it can evaluate the state of a device - even when that device’s correct state is show in the app and the web UI. 
     

    I find that if I manually change the state of the fibaro single switch and double switch and roller shutter devices, after the backup, then the HC3 knows them and scènes run normally.  So, after each backup I have to go around the house and change the state of almost every device.  The problem is, if you forget one device then any scene with that device as a condition MIGHT fail.

     

    Crazy. 
     

    Has anyone found a better workaround? @A.Socha Can you ask one of the developers for a suggested workaround please?

     

     

    • 0
    Posted

    Seems to be addressed in HC3 firmware 5.070.42.

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...