I created a scene that has an event that fires if the ambient temp goes above 70F, and it runs every minute. The LuuP code for the event reads:
[code]local TS_DEVICE_NUM = 5 – Thermostat Device Number
local MAX_TEMP = 70 – Degrees Fahrenheit
local TSH_SID = “urn:upnp-org:serviceId:TemperatureSetpoint1_Heat”
luup.call_action (TSH_SID, “SetCurrentSetpoint”, {NewCurrentSetpoint = tostring (MAX_TEMP)}, TS_DEVICE_NUM)[/code]
This works. The point of it is to make it so renters cannot set the temp above 70F, or if they do, it will set it back down. My CA8900 does not report setpoints, so the Temperature Min/Max plugin will not work. This is the only way to do it unless I want to spend more money and buy more expensive thermostats.
However, this only works when the ambient temperature changes between pollings. I’m getting this in the logs:
06 09/30/11 16:42:22.192 Device_Variable::m_szValue_set device: 5 service: urn:upnp-org:serviceId:TemperatureSensor1 variable: CurrentTemperature was: 80 now: 80 #hooks: 1 upnp: 0 v:0x79f7e0/NONE duplicate:1 <0x803>
It appears it is marking it as a duplicate, and then not firing the event. If the ambient temp changes by one degree and it’s picked up on the next scene run, then it fires. Is there any way to make this fire every time the scene runs? I don’t want the renters sitting there and turning it back up everytime it gets set down to 70. They will do it, I know they will. They will also replace the thermostats with cheap ones to get around it, so I’m going to have to set up notifications if communication is lost.
This is to get around renters setting the thermostats to 85 and leaving all of the windows open on -20F days and running my heat bills up to $1k+ a month.