ScheduleRoomTempControl

The Unofficial SmartThings Blog
Jump to: navigation, search


This smartapp is Y-R-keen-approved.png

Category: My Apps

Author:Yves Racine

ST Community handle: http://community.smartthings.com/users/yvesracine/activity

Company Link: http://www.ecomatiqhomes.com#!home/mainPage



You can now download the smartapp at my store:

http://www.ecomatiqhomes.com/store



Contents

Article(s) in the media

   http://medium.com/@KeenHome/smartthings-and-smart-vents-5a61234fa7a3#.19lf2bqz6


Summary

ScheduleRoomTempControl, the smartapp that enables better temp control in rooms based on Smart Vents

Prerequisites

 * An operational SmartThings hub fully configured (i.e. location set) 
  http://docs.smartthings.com/en/latest/publishing/index.html#ensure-proper-location
 * Some basic ST skills to create custom apps (see troubleshooting, item 1)
 * Main thermostat (optional, Z-wave, Zigbee, wi-fi): need to be connected to ST and corresponding DTH must follow all standard ST thermostat capabilities 
 * Smart Vents such as Keen Home Smart Vents, Econet, Ecovent and the Flair Vents
   N.B. For the Keen Home vents: I recommend to use the following DTHs (to avoid too much polling):
       https://github.com/yracine/keenhome.device-type (refer to the README for the installation steps and how to use the configure tile to avoid excessive polling).
       https://github.com/constjs/jcdevhandlers/tree/master/devicetypes/jscgs350/my-keen-home-smart-vent.src
    For the Flair vent, refer to 
    http://thingsthataresmart.wiki/index.php?title=My_Flair_Vent
 * ST Temperature Sensors in your rooms (optional) : for optimal vents' adjustments 
   => Do not use the ones attached to the smart vents as the temp readings are affected by the airflow.
 * ST Motion sensors (optional): to detect if rooms are occupied
 * ST Contact sensors (optional) for opening/closing vents when door/window contacts are open/closed
 * Determine your shard, please consult this thread:
  https://community.smartthings.com/t/faq-how-to-find-out-what-shard-cloud-slice-ide-url-your-account-location-is-on/53923
  Or the SmartThings documentation here:
  http://docs.smartthings.com/en/latest/publishing/index.html#ensure-proper-location

Supported Features

  • User friendly Dashboard and workflow pages for easier setup (i.e. Dashboard->GeneralSetup->RoomsSetup->ZonesSetup->SchedulesSetup-> NotificationAndOtherSettings).
  • Support of all ST connected thermostats (zigbee, z-wave, wi-fi,etc.) including Nest, Honeywell Lyric, etc.. The thermostat is optional.
  • Flexible schedule definition: you can define up to 12 schedules for your zones (mornings, weekdays, evenings, nights, weekends, etc.)
  • For each schedule, ST users can define the start & end times, the desired heating/cooling setpoints (or climates for ecobee)
  • You can set your schedules to run only for some routines/ST hello modes (ex. 'Away', 'Home', 'Night', or your own customized ones )
  • For each schedule, you can assign the included zone(s) according to your own requirements (ex. Upstairs bedrooms, 1st level, basement, etc)
  • You can define up to 8 zones for your home which can include up to 16 rooms
  • For each zone, you can define some cooling & heating ambient temp thresholds for opening (at 100%) or closing the vents (using the safeguards).
  • For each room, you can indicate not only the vent switches (up to 5 per room) to be controlled, but also any ST temp sensor, ST motion sensor, ST contact sensor that can help you to better control the temp/vent settings inside the zoned rooms
  • For each room, the occupied threshold (in minutes) can be customized based on your own needs
  • Support of ecobee climate settings for temp&fan settings
  • Automatic adjustments of the vent settings so that your occupied rooms (based on motion detection) will get the most heating/cooling during a schedule run.
  => By default, the vents are adjusted if the main thermostat's Operating State is not 'Idle' (so your HVAC is either 'Heating' or 'Cooling' or the fan is running).  
  => If you want to adjust the vents more often, then there is an option in ScheduleSetup>VentSettings to adjust the vents at every cycle (every 5 minutes)
  => The smartapp has the option to open all vents when the thermostat's OperatingState is Fan Only (In SchedulesSetup>VentSettings).  
  => This last option can be enabled on a schedule to schedule basis when needed.
  • If you want to control your smart vents with this smartapp, the following safeguards have been implemented to avoid damaging your HVAC:
  => It checks each vent's temperature and makes sure that it's within the minimum and maximum range to provide safe operation.  
     If not within the safe temp range (between 45 and 130 degrees Farenheit), it will notify you & open all vents
  => It checks the ratio of closed vents/total connected vents and will ensure that the ratio is not higher than 50%
  => It ensures that there is a minimum open level (set to 25%) for any vents inside the zone(s) scheduled at a given time 
  • However, if the ST user wants to bypass the above safeguards, then he/she can do it by setting the bypassSafeguards flag to 'true' (1st page: General Setup, scroll down for more options)
  • Please take note of the following warning about the safeguards:
  => You may want to do some research in order to avoid closing too many vents in your home (based on your HVAC model).
  • The smartapp can be manually activated by pressing on its 'arrow' icon anytime (next to its name)
  • The smartapp can be temporarily deactivated (on hold) with a power (virtual or physical) switch (optional parameter)


  • ConfigDisplayPage (see screenshots in the Look&Feel section below)

The running schedule config page shows the running schedule(s) with all zones and room parameters which may affect the thermostat and/or smart vent settings.

You can also use the page to setLevel Overrides for your each of your smart vents in the zoned rooms.

  • 3 levels of vent settings

1) The smartapps can calculate the best level based on each room's temperature and motion detection.

The right level is calculated based on the room temp vs. the room heating/cooling thresholds (depending on the thermsotat mode). If the room temp is above (in cooling mode) or below (in heating mode), the vents' level will bet set to 100%; otherwise the vents' level in the zone will set to the minimum level (according to the safeguards in General Setup).

That way, the colder/hotter rooms will get more heating/cooling.

2) The vent settings can be overridden for all vents in the scheduled zone(s)/room(s) during a schedule run

Example: During the morning schedule, set all my vents to 100%.

3) Each vent's level can be overridden at the room level

Example: Set my bedroom's vents level to 60% and my living room vents level to 25% even if all my other smart vents are set to 100% at the schedule level.

  • Override setLevel Bypass at Schedule Level

For a specific Schedule, you can now bypass all vents's overrides set (ex. at night, bypass all overrides, and set all my zoned rooms' vents to 40%).

Look & Feel

Virtual Zones devices


MyVirtualZoneP0.png MyVirtualZoneP1.png

N.B. The fields are updated every 5 minutes (not real time)

The following UI tiles can be used for controlling the zone:

- The delta temp can be increased or decreased using the up and down arrows

- The zone can be made 'active' or 'inactive' using the active tile

- All the vents in the zone can be open or closed manually by pressing the switch tile (on/off).


The other UI fields are read only:

- Thermostat mode and setpoint

- Status of all contacts in the zone

- Status of all motion sensors in the zone



Here are some screenshots of the smartapp:


Dashboard


SRTC P1.jpgSRTC P2.jpg


General Setup


SRTC General P1.jpgSRTC General P2.jpg


Rooms Setup

SRTC RoomSetup.jpgSRTC RS P1.jpg SRTC RS P2.jpgSRTC RS P3.jpg


Zones Setup


SRTC ZonesSetup.jpgSRTC ZS P1.jpg


Schedules Setup


SRTC ScheduleSetup.jpgSRTC SS P1.jpg SRTC SS P2.jpgSRTC SS P3.jpg


Running Schedule(s) Config


SRTC Config P1.jpgSRTC Config P2.jpg SRTC Config P3.jpgSRTC Config P4.jpg SRTC Config P5.jpgSRTC Config P6.jpg


Notification


ESZWS Notification.jpg

Configuration

Here are some typical use cases. For your specific use cases, you may want to contact the author (there may be some consulting fees applied).


The following use cases can be executed with any ST connected thermostat models and any ST connected temperature, motion & contact sensors (provided that they follow the standard ST capabilities).

......................................................................................................................................

Use Case #1: I have a single HVAC system with 1 main thermostat

......................................................................................................................................


I have a single HVAC system (with 1 main thermostat), several rooms, and I want to schedule different setpoints (or ecobee climates) during the day.

Let's say that you want to configure 3 main zones: Ground Floor, Basement, & Upstairs. And, that you want to have 3 different schedules: 'Home', 'Away', 'Sleep'.


  • Example: default 'Home': Beginning time: 5:30pm, End time: 11:30pm, Cool Temp: 75, Heat Temp: 72
  • Example: default 'Sleep': Beginning time: 11h30pm to 8h00am, Cool Temp: 70, Heat Temp: 70
  • Example: default 'Away': Beginning time: 8h00am, to 5h30pm, Cool Temp: 77, Heat Temp: 66


FYI, the smartapp also allows the ST hello mode (routine) association in the Schedules set up, so that schedules can run when a specific mode is set.

  • a) General Setup> In the 1st setup page, you need to specify the number of rooms, the number of zones (3), and the number of schedules (3) to be configured, and your main thermostat.
  • b) Rooms Setup> just configure the different rooms in your house
  • c) Rooms Setup> For each room, you'd need to indicate which temperature sensor to be used.
   section("Room ${indiceRoom}-TempSensor [optional]") {
       "Temp sensor for better temp adjustment", "capability.temperatureMeasurement"
   }

  • d) Rooms Setup> For each room, you'd need to indicate which motion sensor to be used.


   section("Room ${indiceRoom}-MotionSensor [optional]") {
       "Motion sensor (if any) to detect if room is occupied", "capability.motionSensor"
   }

  • e) Rooms Setup> For each room where you want to check if it's occupied or not, you need to set the following flag parameter to true and the number of minutes (past time window) used to determine whether the room is occupied or not.
   section("Room ${indiceRoom}-Do vent adjustment when occupied room only [optional]") {
       "Will do vent adjustement only when Occupied [default=false]"
   }
   section("Room ${indiceRoom}-Do vent adjustment with this occupied's threshold [optional]") {
       "Threshold in minutes for motion detection [default=15 min]"
   }


  • f) Rooms Setup> for each room, set your smart vents by using the following parameters:
    section("Room ${indiceRoom}-Vents Setup [optional]")  {
          "Vent switch no ${j} in room", "capability.switch" 
     }           

  • g) Zones Setup> you'd need to configure the 3 zones in your home: Ground Floor, Basement, and Upstairs and include the rooms in the proper zones that you want to control later with your schedules.


  • h) Zones Setup> you'd need to configure your heat and cool temp thresholds for your zones. Based on these values, the vents will be then (partially) closed when the thresholds are met.
   section("Zone ${indiceZone}-Cool Temp threshold in the zone (below it, when cooling, the vents are -partially- closed)") {
       "Cool Temp Threshold"
   }
   section("Zone ${indiceZone}-Heat Temp threshold in the zone (above it, when heating, the vents are -partially- closed)") {
       "Heat Temp"
   }

If the HVAC mode is cooling, then as soon as the current room temperature reaches the cool temp threshold (not in real time, but close enough), then the smartapp will (partially) close the vents (Let's say below or equal to 70 degrees).


In the same vein, if the mode is heating, when the current temperature inside a room reaches the heat temp threshold (above or equal to 76 degrees), then the smartapp will close the vents.

Otherwise, it will leave them open.


The algorithm will then direct more airflow (heat/cool) to the rooms that need it most.

It will only take into account your occupied rooms if applicable.

By default, the smartapp will set the vents' level based on the logic explained above.

If you want to override the smartapp's calculations, you can do it at 2 levels:

- Schedule Setup> At the Schedule level by using the following parameters:


   "Set all Vents in Zone(s) to a specific Level during the Schedule"
   "Bypass all vents overrides in zone(s) during the Schedule (default=false)?"


- Rooms Setup> At the room level, for each smart vent defined:

   "set vent no ${j}'s level in room [optional, range 0-100]"


- i) Schedules Setup> you configure the day of the week and start & end times, and your thermostat's setpoints for each schedule.

Schedules can override in the same time slots, but you need to configure (in schedules 1,2,3) the generic ones first (for no motions events), and then, the specific ones after (for motion events).

   section("Schedule ${indiceSchedule}- Day & Time of the desired Heating/Cooling settings for the selected zone(s)") {
           "Which day of the week to trigger the zoned heating/cooling settings?"
                       metadata: [
                           values: [
                               All Week',
                               'Monday to Friday',
                               'Saturday & Sunday',
                                'Monday',
                                'Tuesday',
                                'Wednesday',
                                'Thursday',
                                'Friday',
                                'Saturday',
                                'Sunday'
       "Beginning time to trigger the zoned heating/cooling settings",
       "End time",
   }
   section("Schedule ${indiceSchedule}-Cool setpoint during the schedule [optional,when no program/climate available]") {
       "Cool Temp, default = 75°F/23°C", 
   }
   section("Schedule ${indiceSchedule}-Heat setpoint during the schedule [optional,when no program/climate available]") {
       "Heat Temp, default=72°F/21°C", 
   }


  • j) Notifications & Other Settings> On the last setup page, set the following input parameter to true (at least at the beginning) to get detailed notifications on what the smartapp does.

You can change this setting later when it's no longer needed.

   section("Detailed Notifications") {
       "Detailed Notifications?", metadata: [values: ["true", "false"]], 
   }


......................................................................................................................................

Use Case #2: I do not want to set any setpoints in my schedule, I just want to control my smart vents

......................................................................................................................................

  • a) Schedules Setup> set the following flag to 'true' (by default, it is set to 'false'):
   section("Do not set the thermostat setpoints in schedule [optional, default=The thermostat setpoints are set]") {
       "Do not set the thermostat setpoints?"
   }

The smartapp will then not set your thermostat's setpoints during a schedule run, it will just adjust the vents. The vents adjustment can be done every 5 minutes, or only when your HVAC is 'cooling' or 'heating' or your fan is running.

The algorithm will then direct more airflow (heat/cool) to the zoned rooms. Make sure to include all your zones in the corresponding Schedules. For any rooms that are not part of the scheduled zones, the vents will be closed to the minimum level set in General Setup according to your safeguards.

Please take note of the safeguards in the Supported Features section above. As specified, the smartapp will never close all the vents inside a zone in order to avoid excessive airflow pressure inside your vents.


  • b) Schedule Setup> If you want to adjust the vents every 5 minutes during a schedule run, you'd need to set the following parameter to 'true' (by default, it is set to 'false'):
   section("Schedule ${indiceSchedule}-Adjust vent settings every 5 minutes [optional]") {
       "Adjust vent settings every 5 minutes (default=only when heating/cooling/fan running)?", 
   }

......................................................................................................................................

Use Case #3: I would like to bypass and fully close my vents or modify the safeguards

......................................................................................................................................


  • If you want to control your smart vents with this smartapp, the following safeguards have been implemented to avoid damaging your HVAC:
 => It checks each vent's temperature and makes sure that it's within the minimum and maximum range to provide safe operation.  
    If not within the safe temp range (between 45 and 130 degrees Fahrenheit), it will notify you & open all vents
 => It checks the ratio of closed vents/total connected vents and will ensure that the ratio is not higher than 50%
 => It ensures that there is a minimum open level (set to 10% by default and it's customizable) for any vents inside the zone(s) scheduled at a given time 
  • However, if the ST user wants to bypass the above safeguards, then he/she can do it by setting the bypassSafeguards flag to 'true' (1st setup page: General Setup, scroll down for more options).


  • a) General Setup> In the 1st setup page, just set the following input parameter to 'true':
   section("Bypass the safeguards [default=some safeguards are implemented to avoid closing them totally ]") {
       "Close the vents totally?"

As specified in the features section, the smartapp will (by default) partially close the vents to avoid damage to your HVAC. By setting the above parameter to 'true', the safeguards will not be implemented, and your vents will be fully closed.


  • b) General Setup>If you want to keep the safeguards, you can also modify the following safeguards to tailor them to your HVAC.
   "Safeguard's Minimum Vent Level in Zone",  description: "[default=10%]")
   "Safeguard's Minimum Vent Level Outside of the Zone",  description: "[default=25%]")
   "Safeguard's Maximum Vent Temp", description: "[default= 131F/55C]") 
   "Safeguard's Minimum Vent Temp", description: "[default= 45F/7C]")


......................................................................................................................................

Use Case #4: I would like to temporarily put the smartapp's processing on hold for a while.

......................................................................................................................................

  • a) General Setup> On the 1st setup page, set the following power switch:
   section("What do I use for the Master on/off switch to enable/disable smartapp processing? [optional]") {
       "capability.switch", required: false,description: "Optional")
   }

If you want to use a virtual switch instead of a physical switch, you'd need to create an on/off button tile in the IDE.

- Hit create new device at the rigth top corner

- Populate the different fields (name, label, etc)

- Set the device type to On/Off button tile

- Press the 'create' button at the bottom of the page

You can now use the switch to turn off/off the smartapp processing!


......................................................................................................................................

Use Case #5: I want to adjust my vents based on some contact sensors.

......................................................................................................................................

  • a) General Setup> On the 1st setup page, set the following flags
    section("Enable Contact Sensors to be used for vent/temp adjustments [optional, default=false]") {
        "Enable vent adjustment set in schedules based on contact sensors?", type:"bool",
    }


  • b) Rooms Setup> you'd need to indicate the contact sensor to be used in each room for better vent/temp adjustment
   section("Room ${indiceRoom}-ContactSensor [optional]") {
        "Contact sensor for better vent adjustment", "capability.contactSensor", 
   }
  • c) Rooms Setup> If you want to open your vent when the contact is open (inverted logic from the default which is to close the vent when

the contact is open), then set the following flag to 'true'.


       "Inverse temp/vent logic,contact open=>vent is open [default=false]", "bool",  


That's it. You can enable/disable either the temp or the vent adjustment in General Setup when needed.




......................................................................................................................................

Use Case #6: I want detailed Logging/Notifications or I want to enable Ask Alexa Notifications

......................................................................................................................................

In order to have detailed Logging/Notifications, you'd need to do the following:

  • a) Notifications & Other Settings Setup> On the last setup page, set the following flag to true
   "Detailed Logging & Notifications?", required:false
  • b) Set the filtering level (ERROR, WARNING, DEBUG, TRACE): the TRACE level is the more detailed tracing you can get.
   "log filtering [Level 1=ERROR only,2=<Level 1+WARNING>,3=<2+INFO>,4=<3+DEBUG>,5=<4+TRACE>]?",required:false, metadata: [values: [1,2,3,4,5]]
  • c) To receive push notifications, answer 'Yes' to the following input parameter


   "Send a push notification?", metadata: [values: ["Yes", "No"]], 


  • d) To receive the notifications configured above through Ask Alexa, set the following flag to true


   "Ask Alexa verbal Notifications?", type:"bool"

This way, you will get the same level of notifications (ERROR, WARNING, DEBUG,TRACE) verbally via the Ask Alexa smartapp.

N.B. The logs are available under the IDE at:

https://graph.api.smartthings.com/ide/logs (or whatever your shard is)

You can click at the top of the window on the smartapp name to filter the logs.

................................................................................................................................

Use Case #7: I want to manually control my zones using virtual Zone devices under ST

.................................................................................................................................

For more details on the installation steps, please refer to

https://github.com/yracine/device-type.myecobee/blob/master/smartapps/ScheduleRoomTempControl.md

To create new devices under ST, for each of your zones in ZonesSetup, do the following:

  • a) ZonesSetup> set the following flag to true
    section("Zone ${indiceZone}-Create a virtual device for controlling the zone?") {
        "Virtual Device for the zone?", "bool", 
    }


  • b) Press "Next" in the smartapp's workflow till the final page and 'Done'. This will create the virtual zone(s) under ST

after about 1 minute.


After instantiation of the new devices, if you have difficulties to send commands to the smartapp using the virtual Zone(s), please refer to the troubleshooting section below.

http://thingsthataresmart.wiki/index.php?title=ScheduleRoomTempControl#issue_.2311:_I_cannot_control_my_zones_using_the_virtual_zones_created



.................................................................................................................................

Use Case #8: I want to adjust the zone's setpoints based on some zone's dynamic temp deltas

.................................................................................................................................


I want to adjust the zone's setpoints or the vent settings based on some zone's temp deltas vs. main tstat's scheduled setpoints (ex: -3F cooling delta temp applied against the tstat's cooling setpoint of 75F = 72F).

Make sure to include the right rooms in the zone(s) for the temp delta adjustments.


  • a) Zones Setup> set the following delta values for the zone
   section("Zone ${indiceZone}-Dynamic Cool Temp Adjustment for Vents/Zone Tstats based on the coolSP in Schedule - to make the zone cooler or warmer") {
       "Dynamic Cool Temp Adjustment for the zone [default = +/-0F or +/-0C]"
   }
   section("Zone ${indiceZone}-Dynamic Heat Temp Adjustment for Vents/Zone Tstats based on the heatSP in Schedule- to make the zone cooler or warmer") {
       "Dynamic Heat Temp Adjustment for the zone [default = +/-0F or +/-0C]"
   }
  • b) And, then create your schedules & associate your cooling/heating setpoints as indicated in uses case #1

Troubleshooting

.................................................................................................................................

Issue #1: I don't know how to create a custom smartapp

.................................................................................................................................

See the explanations of a fellow community member here:

http://community.smartthings.com/t/faq-an-overview-of-using-custom-code-in-smartthings/16772

And, here are some basic explanations with screenshots.

  • a) Point your browser to you SmartThings IDE for your country (i.e. http://ide.smartthings.com or whatever your shard is) and Log In.

Loginscreen.jpg

  • b) Once you are logged in, find the My SmartApps link on the top of the page. Clicking My SmartApps will allow you to produce a new SmartApp.

MySmartApps.png

  • c) Find the button on this page labeled +New SmartApp and click it.

+NewSmartApp.png

  • d) Since you already have the code in your computer’s clipboard, find the tab along the top section called From Code. In the area provided, paste (typically CTRL+V) the code you copied from GitHub. Click Create in the bottom left corner of the page.

NewSmartAppCreate.png

  • e) This will bring up another page, with the code now formatted within the IDE. If the code was copied correctly, there are no other steps except to save and publish the code. In the upper right corner of the page, find and click Save. Now, click Publish (For Me), and you should receive a confirmation that the code has been published successfully.

SavePublish.png

.................................................................................................................................

Issue #2: I created the smartapp in the IDE, but I don't know where to execute it

.................................................................................................................................


For the initial setup, under the ST app, click on the Marketspace? item in the bottom menu, and then, on the smartapps link and finally, MyApps (last item in the list).

If you still do not see your smartapp, please make sure that you have published it in the IDE!


For any subsequent execution, under the ST mobile app, click on automations>smartapps in the bottom menu. The list of installed smartapps will then appear.

......................................................................................................................................

Issue #3: I've set up some schedules, but no schedule seems to be running or my vents are not adjusting as anticipated

......................................................................................................................................


Usually, if you have issues with the scheduling, it may be because you've inputted a ST hello (location) mode for your schedules where you should only rely on the date & time based scheduling. First, try removing the ST location mode(s) associated to the schedule to avoid any scheduling issues. The ST hello (location) scheduling is less reliable than the ecobee's scheduling by default as it's dependent on your ST routines (Good Morning, GoodBye, I'm back).

To review your scheduling, refer to the steps below.

  • a) Notifications and Other Settings> On the last page, set the following input parameter to true (at least at the beginning) to get detailed notifications on what the smartapp does.

You can change this setting later when it's no longer needed.

   section("Detailed Notifications") {
       "Detailed Notifications?", metadata: [values: ["true", "false"]], required:false
   }
  • b) Schedules Setup> make sure to set the right day of the week and start & end times for each schedule.
   section("Schedule ${indiceSchedule}- Day & Time of the desired Heating/Cooling settings for the selected zone(s)") {
       "Which day of the week to trigger the zoned heating/cooling settings?",
                       metadata: [
                           values: [
                               All Week',
                               'Monday to Friday',
                               'Saturday & Sunday',
                                'Monday',
                                'Tuesday',
                                'Wednesday',
                                'Thursday',
                                'Friday',
                                'Saturday',
                                'Sunday'
       "Beginning time to trigger the zoned heating/cooling settings",
       "End time",
   }
  • c) Schedules Setup> for each schedule, make sure that your ST hello mode is correctly associated to your schedule

You may not want to run your schedule for all routines, if so, make sure that the right ST hello mode is set.

   section("Schedule ${indiceSchedule}-Set for specific mode(s) [default=all]")  {
       "Choose Mode", options: enumModes
   }


  • d) Use live logging in the IDE to do some live debugging

Prior to enabling live logging, go to the smartapp's notification & other options page (last page), set detailedNotification to true and set the logging level to 5.

Go to https://graph.api.smartthings.com/ide/logs, and click on the smartapp at the top.

Look at the debugging trace to know why your schedule is not running or your vents are not adjusting, and correct the smartapp's parameters accordingly.


  • e) You may run the smartapp manually to test your schedules.

Click on the arrow icon on the smartapp in order to run it manually. You can check in the logs as indicated above to debug your scheduling issue.

You also can view all the detailed notifications sent to you in the IDE, by clicking on your location's notifications at:

https://graph.api.smartthings.com/location/list

By doing so, you will understand the smartapp's logic a little bit better and adjust your schedules and zones setup accordingly.


.................................................................................................................................

Issue #4: I've set up some schedules, but my schedules override each other and I don't have the right setpoints

.................................................................................................................................

In the smartapp, schedules can override each other, but you may want to define the generic ones (or default ones) first (schedules 1,2,3 for instance when house is not occupied), and then, the specific ones after (ex. schedules 4,5,6 when house is occupied) to set the right setpoints. You can use the ST hello (location) mode (ex.Home, Night, Away) to distinguish the generic ones from the more specialized ones (ex. 4h-6h pm evenings vs. 4h-6h pm evenings when Away).

Please follow the steps specified in 3) above in order to see the detailed logic followed by the smartapp.

.................................................................................................................................

Issue #5: java.lang.NullPointerException: Cannot get property 'X' on null object

.................................................................................................................................


Just update your smartapp by going through all the smartapp setup pages by pressing 'Next' till 'Done'.

The smartapp was recently modified to include some defensive code to ensure that the smartapp is rescheduled. This is intended to alleviate some of the ST scheduling issue as discussed in these threads:


http://community.smartthings.com/t/scheduler-and-polling-quits-after-some-minutes-hours-or-days/16997

http://community.smartthings.com/t/schedule-not-working/3895

http://community.smartthings.com/t/is-it-me-or-schedules-not-firing-this-evening/10176


.................................................................................................................................

Issue #6: java.util.concurrent.TimeoutException: Execution time exceeded 'x' app execution seconds

.................................................................................................................................

ST has introduced some generic rate limiting rules for all smartapps and device handlers. For cloud-to-cloud integration, these rate limiting constraints are sometimes too low, and this exception can be raised from time to time.

There are some threads about it in the ST community forum:

http://community.smartthings.com/t/rate-limiting-too-restrictive-max-execution-time-exceptions/17985

http://community.smartthings.com/t/execution-times-increasing/19979

http://community.smartthings.com/t/unschedule-api-execution-time-too-long/11232

Note: If you enable the detailedNotification flag in the last page (Notification and other options), please be aware that you may need to press the 'Done' button at least twice as sometimes ST will raise the rate limiting error when pressing 'Done'.


.................................................................................................................................

Issue #7: I want to upgrade the code but I don't know how

.................................................................................................................................

Most of the time (unless specified otherwise), you just need to copy and paste the smartapp's new code into the IDE at:


https://graph.api.smartthings.com/ide/apps

- Click on the smartapp that you want to update

- Paste the code into the code window (and make sure to copy all the lines)

- And save & publish.


P.S. Any upgrades (when required) will be sent to you via emails with a zip file attached.


.................................................................................................................................

Issue #8: I'm seeing some null values in room or zone or schedule names

.................................................................................................................................


Do not use the "back button" on your phone/tablet to navigate inside the smartapp as this can create room/zone/schedule with null values. Use the links within the app to navigate from one page to the next (or back).

If you have null values, you can either:

  • a) Click on the room(s) and/or the zone(s) and/or the schedules with null values and populate their fields properly
  • b) Change the number of rooms/zones/schedules to reflect the true number of rooms/zones/schedules. Let's say you have 5 rooms and the last one is null, then just change the number of rooms to be 4.


.................................................................................................................................

issue #9: My new Ask Alexa's Message Queues are not showing up in the smartapp

.................................................................................................................................


You'd need to execute the ScheduleRoomTempControl smartapp under Automation/Smartapps in the ST mobile app by doing "Next" till "Done" to subscribe to the new AskAlexaMQHandler. The new handler will then be able to process any Queue refresh value from Ask Alexa.


You can then go to the AskAlexa smartapp, and make any queue changes... The updated queue values will be then sent to the smartapp.


.................................................................................................................................

issue #10: My virtual zone just created is not populated with values

.................................................................................................................................


In the case of ScheduleRoomTempControl, some fields like the thermostat's mode and setpoint will not be populated if no master thermostat is provided in GeneralSetup.

Please note that the virtual zone devices are only populated with values when the corresponding zones are scheduled in the smartapp. They must be also be active. Make sure that your zones are active under ZonesSetup.


It can take few minutes for the active zones to be populated.


.................................................................................................................................

issue #11: I cannot control my zones using the virtual zones created

.................................................................................................................................


If the virtual zones are not responsive to any commands (i.e., set target temp delta, make the zone active/inactive, switch to turn on/off vents in the zone) issued from the new virtual Zone device(s),

  • a) Go back to ScheduleRoomTempControl under Automation/Smartapps in the ST mobile app and go through the workflow again (rooms->zones->schedules->Notifications)
  • b) Press 'Next' till the final page and then 'Done'. This will ensure to register the event handlers in the smartapp to be able to 'listen' to commands coming from the virtual Zone Device(s).

.................................................................................................................................

issue #12: I don't see the same values in my virtual Zones and the ZonesSetup parameters

.................................................................................................................................


As soon as you have used My Virtual Zone device for controlling the smartapp's zones, the settings values in ZonesSetup will not match as the settings are read-only. The right values will be always in the Virtual zone device unless you delete it permanently.

In the smartapp, you can see the right cooling/heating setpoint deltas and active value in the running Schedule Config page accessible from the dashboard page.

.................................................................................................................................

issue #13: I cannot delete my virtual Zones

.................................................................................................................................


Like any ST devices, you'd need first to unselect (remove) any virtual zones from all smartapps and routines to be able to delete them.

Like any ST devices, you'd need first to unselect (remove) any virtual zones from all smartapps and routines to be able to delete them.

a) To know which smartapps are using the virtual zones, go to

https://graph.api.smartthings.com/device/list

or click on the smartapps tab on the device itself under the ST mobile app.

b) Click on any virtual zone devices.

And note all smartapps under the list "In Use By".

c) Unselect the virtual zones from the smartapps in b.

d) Go to the ecobeeSetZoneWithSchedule smartapp, and set the following flag to 'false' in ZonesSetup:


    section("Zone ${indiceZone}-Create a virtual device for controlling the zone?") {
        "Virtual Device for the zone?"
    }


e) Press 'Next' till the last page and press 'Done'.