Rooms Manager: Smarter Rooms: Personalized home automation with Occupancy


thanks … checking … what type of device is it throwing the error for?


The error is coming from a room, not sure how specific you're looking for?


When a room is in the locked state (when a switch turns on) and then the switch gets turned off, the room stays in the locked state. Shouldn't it reset?


if you click on the error in the log … what is the name of device highlighted at the top of the logs?


yes it should. let me take a look.

EDIT: unless off course when you set the locked switch to off … then it checks in the following sequence: :slight_smile:

  • if room is engaged based on engaged setting set room to engaged
  • if there is motion set room to occupied
  • if there is a dim timer set room to checking
  • else set room to vacant


No i set it when the switch is on.


This may be a stupid question, but does Rooms Manager use webCoRe? I was navigating my hub UI a minute ago, and checked out the System Events page. I was somewhat surprised to see multiple events listed showing webCoRe polling the system. It's surprising because I don't have webCoRe installed on my hub. The only thing I can think of is one of the apps I do have installed is using webCoRe in some way.


right. then when the switch is turned off those checks happen in that sequence.


rooms does not use webcore unless user configures it to run pistons from rules.

when in the settings UI the app polls for webcore to see if the user should be given an option to select pistons to run. if polling determines webcore is not present on the hub that option is not provided to the user.


I tried to add the contact sensors on my external doors to Rooms Manager.

But I'm a bit confused as to why the contacts can only be used to set engaged mode, not occupied. Eg if I open my front door and my hallway is vacant, I'd expect it to go to occupied first. Actually I'd prefer to use my lock's events to trigger that, but not sure how to, so thought I'd use the contact sensor.

Also I get a null error as follows:

[app:135]( 04:39:22.027 pm [error]( Cannot get property 'device' on null object on line 2835 (contactOpenEventHandler)
[dev:326]( 04:39:21.963 pm [info]( door contact sensor was closed
[app:135]( 04:39:19.635 pm [error]( Cannot get property 'device' on null object on line 2835 (contactClosedEventHandler)
[dev:326]( 04:39:19.531 pm [info]( door contact sensor was opened

Any ideas why that is happening?


primarily to distinguish between occupied and engaged state. but there a few nuances to it:

  • if an external door opens it should set the room to checking state and turn on the lights. then when motion is sensed in the room it should change the room to occupied.
  • when the door is external and there is no motion sensor in the room opening the door will set the room to engaged and closing it will set the room to checking/vacant.
  • if the door is not outside door and the room contact only was used to set the room to occupied then it takes away the differentiation between occupied and engaged.

the distinction between occupied and engaged … looked at it another way is occupied is a transient state where you are in the room for a short period of time and the lights do not need to kept on for an extended period. whereas engaged is you are in the room for an extended period of time but may not be moving around so the lights need to be kept on and not turn off without motion. at least not till the engaged timeout set for the room expires.

if i was not able to explain that please dont hesitate to ask.

that error is from the contacts announcement routine where i did not pass in an expected device. will fix in the release this weekend. till then if you turn off contact announcement with speaker that should go away.


Thanks for the detailed explanation, that make sense, and I hadn't realised all the nuances Rooms Manager handles, very well thought out.

I do have a motion sensor in the hall, but it doesnt capture motion near the front door, at the moment. Still testing with it's placement. I didnt realise the contact opening would make the hall go into checking state. I thought checking was only used to move from Occupied to Checking to Vacant, and not the other way round as well. As my checking state had "If no light is on turn on and dim to what level?" unset, nothing turned on. I had left it unset as I didnt want the lights to go on if checking when the lights were originally off.

The other thing that threw me, is that I thought the contact sensor would be in the Room Devices section; with it being only in the Engaged section it gave the impression that the contact would only affect that Engaged state.


you are welcome. :slight_smile:

i had a hallway like that. ended up adding a motion sensor at both end of the hallway. both xiaomi so cost effective. :slight_smile:

checking is used to go from any of the other states to vacant when the app does the state change,

normally that works. but for areas with external door kind of situations you want a value in that setting so lights turn on whenever the door is opened. off course you can also use a lux value so the light only goes on when it is dark outside.

the contact sensor only affects the engaged and checking states. its off course one of the primary devices in the engaged state. as in other devices as well … really any device … can affect the checking state because its a transition state.


Yes configuring in a lux sensor is one of my next tasks. I've gone with the Samsung motion sensors at the moment.

The Xiaomi were tempting at half the price, but because a few people reported problems with them staying connected I didnt want to risk that. Short of time at the moment, and WAF also important that the lights just work as expected. I may try some Xiaomi in less important areas of the house.


It is the Basement Stairs Occupancy room device that is throwing the error:

errorjava.lang.IllegalArgumentException: Command 'getLastActivity' is not supported by device. on line 2495 (adjMotionActiveEventHandler)


thanks @talz13

good work there @bangali :frowning_face:

will fix before this weekends release.


updated to github with the following changes:

Version: 0.99.1

DONE:   12/01/2018

1) added parent/child version check.
	- first version that checks when settings are saved
	- next version will also check at runtime
	- **in 99.9% of the cases if you see any error in the logs this is the cause. i.e. rooms code was only partially updated or settings for all apps/(DTH || driver) were not saved when updating the code resulting in these errors.**
2) added feature back for room engaged with music
	- if using this feature remember to save settings for this room if its already been setup
3) added recovery for recurring processing if those schedules get cancelled
4) changed countdown timer display to 30 second interval because some users are impatient when watching the countdown to make sure it works ;-)
5) fixed bug for contact sensor spoken announcement and hidden percentage change trigger for humidity rule value


I'm trying to address an issue when entering the kitchen from the garage or deck... I am usually inside the room well before the motion sensor can see me, so it remains dark for longer than it needs to be. I'd like to make the Kitchen Occupancy room go Occupied (or Checking if needed) triggered by one of those two doors opening.

I set up the following RM:

But am seeing this error in the logs:


put those contact sensors in engaged settings and in checking settings add a level for the lights to turn on when they are off?

depending on how the room is set up physically you may or not want the kitchen room to be set to engaged with those contact sensors so there is also a setting in engaged settings to enable or disable that.

EDIT: i am also moving all door and window contact sensors from engaged settings and temperature settings to room devices so the room devices are all in one place in the future. this wont affect any functionality just make these easier to find.


Ok, so that won't result in Open -> Engaged, Closed -> Vacant? I'll give that a shot and see if it works.