Rooms Manager: Smarter Rooms: Personalized home automation with Occupancy



@bangali Great job this app! I am having a strange issue with one of my rooms. I am getting the “Unexpected error has occurred” when trying to make changes to the rooms settings from ST app. The IDE logs show the following error message: : : error java.lang.NullPointerException: Cannot invoke method contains() on null object @line 3004 (isAnyLSwitchOn… I cant delete the room from the app or from the IDE website…
I am running the latest version of the app. Any suggestions? Also is there a way to backup my settings in case i have to uninstall the app?

Thanks in advance for any suggestions.

  • do you have locked switch defined for that room in settings?
    – if you remove the locked switch from settings are you able to save it?
    – what DTH does this locked switch use?

for now best way is to go to view all settings then check show only settings with values and save a copy of that page to save settings.


Thanks for the quick reply. That was it, I removed my lock switch and i am now able to save the room. I am using a ST virtual switch for lock automation.


sure. but not sure why using a virtual switch as a locked switch would cause this error.

are you able to recreate the error? if yes could you please set the settings which causes the error and from the view all settings page share the settings so i can check whats going on.

thank you.


Weird, I can’t duplicate it even after using the same virtual switch in the locked section. I will keep you posted if it occurs again.


please check this poll on ST and HE forums respectively:

i forgot to post the poll here. my apologies.


a user had this ask:

Currently it is only possible to temperature control a room with one physical thermostat.

My current scenario, I have one or more vents in each room along with a temp sensor. I want to be able to allow controlling each room using the central thermostat.

When a room needs HVAC but the central thermostat is not running, reduce/increase current setpoint on the physical thermostat to service the demand.

i am waiting for the user to respond so i can tag this with their id. didnt realize connected vents were popular. :slight_smile:

i have an idea on how to make vents work better when using a central cooling/heating systems. here is what i am thinking:

allow specifying another option to manage temperature lets call it "manage vents only". with this option the app will require a temperature sensor, both heat and cool temperature and vents. then open and close vents proportionately based on the current room temperature and specified heating and cooling temperature.

the other part of the setup is ... in one room set it up with the thermostat and temperature sensor from all of the rooms that are heated and cooled. then set the heat and cool temperature to the highest and lowest value respectively throughout the house.

this way the room with the thermostat will average all the rooms temperature to set the cooling and heating mode and each room will open and close vents according to their own temperature rule.

was i able to explain that?

thoughts on the feature?

thank you.


updated to github with the following changes:

*  Version: 0.65.0
*   DONE:   8/13/2018
*	1) fixed temperature colors on DTH for ST
*	2) added option to select which room motion sensors trigger occupancy from VACABT state.
*	3) added option to trigger busy check with repeated motion to the existing checks for state change trigger.
*	4) added option to override OCCUPIED state trigger devices when in ENGAGED state.
*	5) on HE added support for deleting rules.
*	6) added option to override OCCUPIED and ENGAGED state trigger devices when in ASLEEP state.
*	7) added option to override OCCUPIED, ENGAGED and ASLEEP state trigger devices when in LOCKED state.
*	8) fixed a bug on power time type selection when limiting power trigger during certain hours.
*	9) started work on save and restore settings. currently only allows viewing settings to save.
*	10) fixed bug for only on state change where mode and lux change would still trigger rules evaluation.
*	11) added github update notification via sms.


this is the rooms manager settings page from HE which works independent from the rooms themselves to support various kind of announcements and notifications with speakers, colors or even sms. and more is coming:


Feature request: Anyway of making a simulated presence sensor to go with this app. I’m looking for something where I can use webcore pistons to track what rooms people are in and use that to make certain scenes and pistons activate only when a certain person is in a room. I know it’s complicated ,but I would like a virtual presence sensor where I can add the room they are in and use it as a sleep tracker. Webcore has a presence sensor ,but I’m looking for a virtual one for people who either too young to have a phone or aren’t willing to use the app.


when selecting presence sensors it does not allow selecting a virtual presence sensor?

or did you mean something else?


updated to github with the following changes:

*  Version: 0.70.0
*   DONE:   8/18/2018
*	1) removed the `lock` capability which i had included for use on HE since HE does not support 'lock only' capability.
*	2) fixed send event for switch and button in rooms occupany device.
*	3) added support for multiple button devices in room button device.
*	4) added dimming lights to off over configurable number of seconds.
*   5) added sms settings with time window for when sms should be sent.
*	6) added selectable time for github update sms notification.
*   7) added sms support for low battery notification.
*   8) renamed device health check to device connectivity check so folks dont confuse it with ST device health check.
*	9) added option to not speak sunrise and sunset announcement and only do color notification.
*	10) added option in battery check to add battery devices that are not otherwise used in rooms to battery check.
*	11) on HE added support for notify my echo for spoken messages from the room but not rooms manager yet.


Hey I just wanted to thank you for creating this amazing app! I really appreciate it, it’s nice to be able to get some organization on my Smart House. I’m having an issue though when setting up any of the room buttons. Every time I select any of my Hue Dimmer Switches (4 buttons) the whole app crashes with an unexpected error, kicks me out of the program, and forces me to delete the room and start completely over. But, I find it strang that when I use any of my Hue Tap switches (4 buttons) it works perfectly fine. I was wondering if anyone else was having this kind of problem? I’d really love to be able to figure out what’s going on so I could use these dimmer switches as room buttons. And again thank you, for your time making this app and helping everyone with their Smart Homes problems!


you are welcome.

let me check … which DTH are you using with these hue dimmers?

also if you do this with live logs open what is error logged when this happens?


Sorry about the late reply.

I am using the Hue Sensor (Connect) smartapp and its DTH Here is a link to the those.

Here is the Live Logging error that I get when configuring the Room Devices - Room Button Settings

ee94b54d-09e6-4071-bcea-495a44fdb53d 1:49:00 AM: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.util.LinkedHashMap#leftShift.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface java.util.Map]
[interface java.util.Map$Entry] @line 1110 (pageButtonDetails)

Here is the Live Logging error that I get when trying to change the already created button.

8e599620-0c13-451b-aeaf-8d16c3bc993f 1:46:22 AM: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.util.LinkedHashMap#leftShift.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface java.util.Map]
[interface java.util.Map$Entry] @line 1110 (pageButtonDetails)


no worries. thanks for the details. one last question so i can check the right version … which version of the code is currently deployed?

EDIT: think i found the line. if i put up a patch to the code on github will you be able to give it a try?


update to github with the following changes:

*  Version: 0.72.5
*   DONE:   8/30/2018
*	1) added humidity indicator to device occupancy DTH.
*	2) moved couple more room devices input settings to room devices page.
*	3) changed humidity from integer to decimal. humidity rules coming in next version.
*	4) coded and commented room restore settings since HE does not support updating settings input by user.
*	5) all room devices with multiple devices now use average values for illuminance, temperature etc.
*	6) changed some formatting for rooms manager settings on HE.
*	7) added support for critical device connectivity failure notification with SMS.
*	8) process temperature changes at a minimum interval of 30 seconds.
*   9) fixed a bug where new rooms were not being updated when using adjacent rooms.
*	10) cleaned up a bug here and there and optimized


coming next settings and rules to manage humidity.

meanwhile searching for why my humidity subscription was not working … ran in to this thread from a while ago:

that uses another humidity sensor to baseline what the value should be in places humidity fluctuates heavily like in a shower. then with that baseline + any offset turn on the shower exhaust fan as needed to get the humidity back to the baseline level.

the logics already written out. :slight_smile:


quote when selecting presence sensors it does not allow selecting a virtual presence sensor?

or did you mean something else? /quote

I mean a simulated device handler that I can use to update and calculate what room a person might be in based on certain conditions ,so I can run other pistons based on what room a person is in (not just if a person is in a room). Also looking for a way of adding the sleep status to a person living in my house without making a global variable.

I understand you need a smart app to do this since device handlers can’t store variables and a simulated presence sensor to go with this app would be a great way to do this.

I have two people in my house that don’t use smartphones. I’d like to know when they are asleep, where they are and when they leave so I can make all my devices act accordingly (armed away, lights off, etc) .


maybe use virtual presence sensors in ST and pistons to update the status of this presence sensors based on various conditions?

then use those virtual presence sensors with rooms manager. this would also work with another person living in the house without a global variable.