Jump to content

Zwave door sensor status empty after reboot


landolfi

Recommended Posts

I have a door sensor whose status is always empty in the AC after an ISY reboot, even if I query it. I have to physically go to the door, close and open it to get ISY to recognize it's open.

The problem I have is that a program with an If condition of status=closed is executing the Then even when the status is empty. Is empty supposed to be the equivalent of closed for programming purposes?

 

 

Link to comment
26 minutes ago, landolfi said:

I have a door sensor whose status is always empty in the AC after an ISY reboot, even if I query it. I have to physically go to the door, close and open it to get ISY to recognize it's open.

The problem I have is that a program with an If condition of status=closed is executing the Then even when the status is empty. Is empty supposed to be the equivalent of closed for programming purposes?

 

 

That's because it's wireless. It didn't send it's status unless acted upon

Link to comment

I started to say that my other wireless door sensors accurately report their state after reboot without intervention, but then I realized those sensors are on Smartthings. But more importantly, is closed the same as empty/no status as far as programming is concerned? My objective is to get the door going from open to closed status to trigger an event, which it won't do without intervention if it needs an open or close inbetween. Which maybe we are saying it does require intervention and that's the nature of an open/close sensor.

Edited by landolfi
Link to comment

You can't query a battery-operated device as the device goes to sleep to preserve battery life.

The admin console will always show a blank status for battery operated devices after a reboot until the device is activated. It doesn't retain the previous status.

 

Link to comment
6 hours ago, landolfi said:

The problem I have is that a program with an If condition of status=closed is executing the Then even when the status is empty.

You could use a state variable to track the status of your wireless door sensor.  Something like:

If
        'Door Sensor-Opened' Status is On
 
Then
        $sDoorSensorOpen  = 1
        $sDoorSensorOpen  Init To $sDoorSensorOpen
Else
        $sDoorSensorOpen  = 0
        $sDoorSensorOpen  Init To $sDoorSensorOpen
 

This program will set the state variable "sDoorSensorOpen" anytime the door sensor status changes and then save it to non-volatile memory which survives an ISY reboot.  Then you just use the variable "sDoorSensorOpen" in your programs.

  • Like 1
Link to comment

@landolfi 

One idea is presented by@kclenden just above,  another is to use "Control" rather than "Status" in your program.

Control doesn't look at the status as known by the ISY, but instead fires the program based on Events.

If
        'test door.1 - Door Open' is switched On
 
Then
        ---- do whatever------------
 
Else
   - No Actions - (To add one, press 'Action')

In this case Else will never run.  A second program could be used for "switched Off" actions.

--or--

This construct will make the "switched on" and "switched off" behave similar to "Status", but without the unknown problems you're experiencing:

If
        'test door.1 - Door Open' is switched On
    And 'test door.1 - Door Open' is not switched Off
 
Then
        Set 'LR Lamp 1' On
 
Else
        Set 'LR Lamp 1' Off
 

In this case Then will run when the door open signal is received and Else will run when the door closed signal is received.

 

 

 

  • Like 1
Link to comment
6 minutes ago, landolfi said:

Thanks, Mr. Bill! Your first suggestion sounds ideal, but unfortunately it's an open/close sensor and doesn't appear in the list when I choose "Control".

it should....  try restarting the admin console.  and/or just realize those lists sometimes alphabetize weirdly.

Link to comment

 $sDoorSensorOpen  = 1
        $sDoorSensorOpen  Init To $sDoorSensorOpen

 

Question about this: If i only care whether it's closed, should I flip this to =1 for $sDoorSensorClosed and then 0 means either it's open or unknown. Or is this variable functioning to say to ISY yes, it's really open?

Link to comment
5 hours ago, landolfi said:

 $sDoorSensorOpen  = 1
        $sDoorSensorOpen  Init To $sDoorSensorOpen

 

Question about this: If i only care whether it's closed, should I flip this to =1 for $sDoorSensorClosed and then 0 means either it's open or unknown. Or is this variable functioning to say to ISY yes, it's really open?

In a programmers world, 0 typically means the negative... i.e. off, closed, false; on the other hand 1 means on, open, true.

The program will only remember the last state.  If it was 1 when the ISY restarted it will still be 1 when restart is complete-- even if someone closed the door while the ISY was off.  The variable values give you the ability to know the last known state, but if that changed while the ISY wasn't paying attention the ISY won't know it changed.

The good news is you eventually reach a point that you don't have to reboot too often, for example mine currently hasn't been rebooted in 184 days, which is about 6 months.

Did you find the door sensor under "Control"? it would be there.

Link to comment

Thanks very much, Mr. Bill!

Under Condition, I click Control. I see now that what I have been calling the door sensor device, ZW043_Barrier, is not in the Control list, but the control list includes an overlooked device called Access Control Alarm, which I apparently should have been using all along since it reports Window/Door Is Open in ISY. So I'll go with control from now on.

 

  • Like 1
Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...