We are now what I would consider to be a beta. No new additional “features” are planned. Just perhaps some code optimization and bug fixes. So please respond if you find any issues!
Attached is a zip with the latest installation files. The following additions have been made:
-
Support for both temperature units (degrees F and degrees C). Technically, this support is only needed if your thermostat is set in one type of unit, and your vera is set to display a different unit. Bottom line is…it now does not matter what units any of your thermostats are, or what units your Vera is set to display…things should “just work.”
-
Added support for two new actions for the parent device (Details will be below)
[ul][li] HoldSetpoint: Enables you to set a permanent or temporary set-point. If temporary, allows you to set the expiration time as an option.[/li]
[li] CancelSetpointHold: Removes the permanent or temporary set-point hold, and reverts the thermostat to “follow schedule”[/li][/ul]
- Added support for including new variables to the child thermostat devices. The service for all of these is “urn:honeywell-com:serviceId:ThermostatData1”
[ul][li]ThermostatUnits - “F” or “C”[/li]
[li]OutdoorHumidityAvailable - true / false[/li]
[li]IndoorHumiditySensorAvailable - true / false[/li]
[li]IndoorHumiditySensorNotFault - true / false[/li]
[li]HeatSetpointHoldType -“Temporary”, “Permanent”, or “Following Schedule”[/li]
[li]CoolSetpointHoldType -“Temporary”, “Permanent”, or “Following Schedule”[/li]
[li]HeatSetpointUntilTime - (h:mm AM/PM format) - indicates the time the next heat set-point change is scheduled to occur[/li]
[li]CoolSetpointUntilTime - (h:mm AM/PM format) - indicates the time the next cool set-point change is scheduled to occur[/li]
[li]OutdoorTemperature - provided in the DISPLAY units of vera[/li]
[li]OutdoorHumidity- as a percent (ex: 45)[/li]
[li]IndoorHumidity - as a percent (ex: 45)[/li][/ul]
Again, those variables are accessed via the individual child thermostat devices.
A note about Heat/CoolSetpopintUntilTime: even if your thermostat is in a permanent hold, you will see a time indicated here. This is the time that the thermostat would change the set-point if it were not in a permanent hold.
Here’s the details on the new actions. These actions are tied to the PARENT device:
Action Name: CancelSetpointHold
Parameters:{ThermostatID=XXXXXX}
Sample luup call to remove the setpoint holds, for a thermostat with id 123456 and your plugin parent device ID of 10. After the execution of this command, yout thermostat number 123456 will revert to “following schedule” for the set-points:
local lul_arguments = {}
lul_arguments["ThermostatID"] = 123456
luup.call_action("urn:joeyd-com:serviceId:HoneywellTCC1","CancelSetpointHold",lul_arguments,10)
The following action allows you to set types of Honeywell thermostat set-points that you cannot do with the standard thermostat device actions and device UI.
Action Name: HoldSetpoint
Parameters: {
ThermostatID=XXXXXX,
newSetpointValue=[Temperature in the DISPLAY UNITS of vera],
SetpointMode = [“COOL” or “HEAT”]
SetpointType = [“TEMPORARY” or “PERMANENT”]
SetpointEndtime = [Time in 24 hr format, eg: “15:25”]
}
You must supply the ThermostatID and the NewSetpointValue. All other arguments are optional. If you omit the SetpointMode, the action will determine which mode your thermostat is currently in (heating or cooling) and apply the setpoint accordingly. If you omit SetpointType, the action will look to your default setting for the type, and apply that.
The SetpointEndtime parameter only applies as an option for the TEMPORARY SetpointType. This is equivalent to going to your unit and selecting “hold until 5:30 PM.” After that time is reached, your thermostat reverts to “following schedule.” Note that the Honeywell thermostats support 15 minute increments only. You can supply any time in the parameter, but the action will in effect round that to the nearest 15 minutes. Example, if you enter in “15:50”, your temporary set-point will be held until 4:00 PM.
Sample luup to set the heat-point to hold at 70 degrees until 11:00 PM:
local lul_arguments = {}
lul_arguments["ThermostatID"] = 123456
lul_arguments["newSetpointValue"] = 70
lul_arguments["SetpointMode"] = "HEAT"
lul_arguments["SetpointType"] = "TEMPORARY"
lul_arguments["SetpointEndtime"] = "23:00"
luup.call_action("urn:joeyd-com:serviceId:HoneywellTCC1","HoldSetpoint",lul_arguments,10)
Again, the plug-in is pretty much feature complete at this time. ServiceXp, please see if the exposed variables allows you to do via PLEG what you want to do. At this point, I’ll be cleaning up some code and tweaking the cookie authorization scheme, and that should do it for the version 1.0 release that I will submit to the app store.