DooStat Plug-in for HomeSeer Version 2.4

           

This plug-in is free but monetary rewards are accepted at http://www.doosoft.com/purchase.php.

Getting Started

  1. Install plug-in.
  2. Access the plug-in's configuration by using one of the following two methods:
    1. Clicking on Options menu item of the DooStat menu within HomeSeer® Windows Interface.
    2. Accessing HomeSeer web at http://myhomeseerweb:port/doosoft?page=config
    3. Open the HomeSeer® Options dialog from the View menu, select the Interface tab and then select DooStat from the Active Interfaces list and clicking on the Setup… button.
  3. Add Thermostats to plug-in.
    1. Specify X10 house code used by thermostat.
    2. Specify the model of DooStat.
    3. Specify Location of thermostat to be used within HomeSeer.
    4. Specify Name of thermostat to be used within HomeSeer.
    5. Click the Add button when done.
    6. Repeat for other DooStats that you wish to add.
  4. Specify plug-in options by navigating your browser to http://myhomeseerweb:port/doostat?page=options. You could also select the DooStat menu and then select Options menu.
    1. Specify whether user want to use Celsius or Fahrenheit.
    2. Specify how often user wants the web interface to refresh to provide up-to-date settings from thermostat.
    3. Specify whether user wants logging of thermostat settings changes disabled.
    4. Specify whether user wants Debug Mode enabled.
  5. Configure each thermostat by displaying the Thermostat Control Interface. Navigate your browser to http://myhomeseerweb:port/doostat?page=thermostat&housecode=$  (where $ is the house code of the thermostat) to use the web interface or select the DooStat menu to select the Windows interface. Then select the menu item with the name of your thermostat. Right-click on the Thermostat Control Interface to:
    1. Cancel initialization of a thermostat or perform a manual initialization.
    2. Right-click on the Thermostat Control Interface to access thermostat properties.
       
      1. Location
      2. Name
      3. Heat setpoint
      4. Cool setpoint
      5. Absolute minimum setpoint
      6. Absolute maximum setpoint
      7. Filter Reminder
      8. Heat Pump Recovery Mode
      9. For TXB16 thermostat, specify whether to use hardware dual setpoints.
      10. For TXB16 thermostat, specify whether to use independent retrieval of heat and cool setpoints during
        initialization and polling.  Make sure that your firmware version supports this and that you have also enabled hardware dual setpoints.
      11. For TXB16 thermostat, specify whether stat should change thermostat mode to force .
        appropriate heat/cool setpoints (necessary if stat is in AUTO mode). Note that this will potentially cause HVAC unit to temporarily turn on using an undesired mode.
      12. Enable/Disable AUTOSEND Mode
        From the DooStat Bi-directional Protocol Manual, "The AUTOSEND mode enables the controller to automatically send a message each time there is a change in temperature/setpoint/fan mode. A report of temperature change is preceded by a “Temp Change” Unit 6 level 9 report status message and a report of change in setpoint is preceded by a “Setpoint Change” Unit 6 level 10 report status message. The temperature or setpoint value is represented as a preset level in the Report Temperature group in Unit Codes 11-16.
      13. Enable/Disable ACK MESSAGE Mode
        From the DooStat Bi-directional Protocol Manual, "When this message acknowledgment mode is activated, an RCS product that receives a valid X-10 message will transmit an acknowledgment message in the form of the standard X-10 “Status” message. The ACK responses are as follows:

        Status = ON, message received and command completed.
        Status = OFF, message received but command not completed successfully.
        No ACK back, message invalid or not received.
      14. Enable/Disable ECHO COMMAND Mode
        From the DooStat Bi-directional Protocol Manual, "This message acknowledgment method echoes commands back. It uses the Preset Dim format and only works with the Preset Dim Commands in Unit Codes 1 to 4. When a Preset Level Command is received it is acknowledged by being echoed back as the same preset level on a different unit code. For instance, a Setpoint temperature transmitted as a Unit Code 1-3 Preset Level is echoed back in the corresponding temperature Preset Level in the REPORT TEMPERATURE Unit Codes 11-16. A Unit Code 4 Send Command Preset Level is echoed back as the same Preset Level in Unit Code 10."
  6. Work with thermostats
    1. Control thermostats using Thermostat Control Interface.
    2. Control thermostats via HomeSeer status page.
    3. Create HomeSeer events that trigger based upon thermostat setting changes.
    4. Create HomeSeer events that perform actions to control thermostats.
    5. Create scripts using the plug-in's scripting interface as documented in the API.

Using the Thermostat Control Interface to Control Your Thermostat

The Thermostat Control Interface is designed to mimic the functionality of the DooStat's Wall Display Unit (WDU). Pressing up or down button once will display setpoint is shown. Subsequent presses will either increment or decrement setpoint. Holding the button down causes the setpoint to change more quickly. The setpoint value is limited based upon the thermostat model according to the RCS manual. Three seconds after user has quit adjusting setpoint, the new setpoint is will then be used. Note that the system may or may not respond immediately unless the criteria specified by the RCS manual are met:

"In the HEAT mode, the heating system will be turned on at one degree below the setpoint and will turn off at the setpoint. In the COOL mode, the cooling system will be turned on at one degree above setpoint and will turn off at the setpoint. In the AUTO mode, the current heating or cooling operating mode will operate as usual with the one degree setpoint control. In order for the system to change operating mode from heating to cooling, the temperature must rise two degrees above setpoint."

Right-click on the Thermostat Control Interface to configure the thermostat.

Additional Notes

FAQ

Q. What are the "undetermined temperature type received" messages that I see in the HS log?

A. When the plug-in requests current temperature, heat setpoint, cool setpoint, or setback delta, the RCS stats report the temperature value but unfortunately the stat does not explicitly state which temperature type. The plug-in simply assumes that the next temperature value received is of the same type as that which was just requested. AUTOSEND Mode does provide the temperature type information although there are some cases where users have reported that a temperature type was not provided. In a case where the plug-in is unsure, it ignores the temperature value and reports an "undetermined temperature type received".

To overcome this hardware problem, the plug-in has an "Undetermined Temperature Type Received" event trigger and a "Poll Temperatures" event action. Users who experience this problem can create an event for each stat that uses this trigger and action. The event should be configured to prevent retriggering within a short amount of time to avoid a possible looping condition.

Q. What is involved in initialization and how does it differ from polling?

A. I will answer the second question first. Initialization and polling both send commands requesting information from the thermostats. This is done to ensure that the plug-in has the most up-to-date information especially when HomeSeer and the plug-in have not been running. While running, polling becomes less necessary if AUTOSEND Mode is enabled since this mode provides info on changes made. For Setback Mode users, polling may still be useful  because AUTOSEND Mode does not provide information on Setback Mode changes.

Since initialization occurs at startup (or by user request if deemed necessary), more steps are involved as this ensures that no major changes to the thermostat settings were made while HomeSeer and the plug-in were not running. There are 12 initialization steps and 7 polling steps. Both are show below with the polling steps shown in bold:

  1. Current temperature retrieved
  2. Current thermostat mode retrieved
  3. Current setback mode retrieved
  4. Current fan mode retrieved
  5. Current setback delta retrieved
  6. Heat setpoint retrieved (see dual setpoint control)
  7. Cool setpoint retrieved (see dual setpoint control )
  8. Hardware dual setpoint set (TXB16 only)
  9. ACK MESSAGE Mode set to Off or set to ON and confirmed as ON - only on 3rd and final initialization attempt
  10. ECHO COMMAND Mode set to Off or set to ON and confirmed as ON - only on 3rd and final initialization attempt
  11. SAFE COMMAND Mode - NO LONGER SUPPORTED.
  12. AUTOSEND Mode set to Off or set to ON and confirmed as ON - only on 3rd and final initialization attempt
Q. What are the ACK MESSAGE Mode, ECHO COMMAND Mode, SAFE COMMAND Mode, and AUTOSEND Mode?

A. The RCS X10 Thermostat manual does a good job of explaining these modes but I will briefly describe them and mention how they are used within the DooStat Plug-In.

SAFE COMMAND Mode is NO LONGER SUPPORTED within DooStat.  RCS has removed it from later firmware versions of their thermostats. The mode was intended to increase reliability by requiring that commands be sent twice within a 2 second timeframe. However, this tends to put too much strain on the X10 interface and has been known to cause the thermostats to lock up.

The plugin does use the other three modes to help ensure failsafe operations of your X10 thermostat. ACK MESSAGE Mode confirms commands sent to the unit by sending back a J Status On command (where J is the thermostat's housecode). The ECHO COMMAND mode causes commands to be echoed back as another method of confirming receipt of the command. ACK and Echo are used together as some commands require ACK mode as they are not echoed back. These commands can be enabled/disabled by right clicking on the Thermostat's Control Interface.


Q. What message and command modes must be enabled?

A. None really which would make the plug-in not much different than the original thermostat scripts. To maintain the ability of the plug-in to confirm commands sent, ACK MESSAGE Mode or ECHO COMMAND Mode needs to be enabled. To have the plug-in automatically report changes occurring at the thermostat (temperature change or someone manually changes setpoint), then AUTOSEND Mode needs to be enabled. If AUTOSEND Mode is disabled, then a faster polling time would effectively perform the same function albeit it would not be nearly as "instantaneous".


Q. How does the plug-in differ from the original thermostat scripts?

A. The plug-in takes full advantage of the use of HomeSeer events including triggers, actions, and conditions. Plug-In devices are created that allow a quick glance of the status of several important thermostat settings. The plug-in also provides a GUI for controlling your RCS X10 thermostats. The interface is designed to have the same look-and-feel as the Wall Display Unit (WDU) for your thermostat.

Additionally, the plug-in has some behind the scenes differences when compare to the thermostat scripts. Below are some of those differences:

  • Plug-In uses AUTOSEND mode (there was at least one thermostat script that used this) - this increases preset dim traffic and I cannot control when stat is sending the info. User can disable if necessary.
  • Plug-In uses ACK MESSAGE Mode and ECHO COMMAND Mode. These two modes can increase preset dim traffic but the plug-in has some control over spreading the commands apart by putting a delay between commands being sent. All of these modes can be enabled/disabled by user.
  • Plug-In performs an initialization which is where the most user reported problems have occurred. Although plug-in can use polling, it is designed to rely on AUTOSEND. Thermostat scripts used polling.
Q. What type of information logging is performed by the plug-in?

A. There is normal logging and logging that provides information for debugging. Normal logging includes reports for changes to thermostat settings. This can be disabled within the Thermostat Properties. For debugging,  there are two debug modes: simple and advanced. The advanced debug mode includes event queue processing information. Debug Mode is enabled via the Plug-In Options.

Q. Can I manually send commands to the thermostat?

A. Yes. You can send commands using HomeSeer's Control Panel but realize that HomeSeer uses Preset Dims 0-31 while the RCS X10 manual refers to Preset Levels 1-32. This means that you need to subtract 1 from the value in the RCS Preset Level table. Note that you can also send Unit ON/OFF commands from a X10 mini-controller or X10 remote. The function that the unit code commands perform depends upon the selected Decode Table (refer to RCS manual).

Q. What are the the dual setpoint options for TXB16 thermostats?

A.  "Enable hardware dual setpoints" was added to ensure that the TXB16 stats had been set to use hardware dual setpoints. When enabled, the plug-in should be able to better distinguish between setpoints by taking advantage of Cool Setpoint changes and Heat Setpoint changes reported by AUTOSEND mode. "Firmware supports ..." is for TXB16 firmware that has commands to explicitly retrieve heat and cool setpoints. "Temporarily Change..." is for TXB16s to overcome the lack of a explicit commands to SET heat and cool setpoints. Are these needed? Not necessarily. It depends upon whether you wish the hardware settings to be maintained in the event that HomeSeer and this plug-in are not running.

Q. What is the plug-in strategy for handling Thermostat Modes?

A. The plug-in uses the following logic for Thermostat Mode:

  • If in Auto Mode, the plug-in tries to does the following check:
    • If Current Temperature is more than two degrees above Cool Setpoint then plug-in assumes Cool Mode.
    • ElseIf Current Temperature is more than two degrees below Heat Setpoint then plug-in assumes Heat Mode.
    • Else the plug-in considers mode to be UNKNOWN.
  • If in System Off Mode, the plug-in considers mode to be UNKNOWN.
Q. What is the plug-in strategy for handling Setback Mode?

A. As of Version 1.2.2, the plug-in uses the following logic for Setback Mode:

Setback Mode is Off
  • Adjusting Current Setpoint while mode is Cool Mode or mode is UNKNOWN causes Current Setpoint to change and stores the value as the new Cool Setpoint.
  • Adjusting Current Setpoint while mode is Heat Mode or mode is UNKNOWN causes Current Setpoint to change and stores the value as the new Heat Setpoint.
  • Adjusting Cool Setpoint while mode is Cool Mode or mode is UNKNOWN causes Current Setpoint to be changed to the Cool Setpoint.
  • Adjusting Heat Setpoint while mode is Heat Mode or mode is UNKNOWN causes Current Setpoint to be changed to the Heat Setpoint.
Setback Mode is turned On
  • Plug-in shows that Setback Mode is ON. Heat Setpoint and Cool Setpoint are left unchanged.
  • Current Setpoint[/i] is decrease by Setback Delta when thermostat is in Heat Mode and is increased by Setback Delta when thermostat is in Cool Mode.
  • Setback Mode indicator blinks.
Setback Mode is On
  • Adjusting Current Setpoint while mode is Cool Mode or mode is UNKNOWN causes Current Setpoint to change and stores the value as the new Cool Setpoint and disables Setback Mode.
  • Adjusting Current Setpoint while mode is Heat Mode or mode is UNKNOWN causes Current Setpoint to change and stores the value as the new Heat Setpoint and disables Setback Mode.
  • Adjusting Cool Setpoint while mode is Cool Mode or mode is UNKNOWN only causes the new Cool Setpoint to be stored.
  • Adjusting Heat Setpoint while mode is Heat Mode or mode is UNKNOWN only causes the new Heat Setpoint to be stored.
    Setback Mode is turned Off
  • If mode is Cool Mode, force stored Cool Setpoint as new Current Setpoint.
  • If mode is Heat Mode, force stored Heat Setpoint as new Current Setpoint.
  • If mode is UNKNOWN, do nothing

 

Revision History

 

DooSoft
Software Solutions for Your Home Automation Efforts