Added documentation for heat control

pull/36/head
Danielhiversen 2015-02-19 20:14:37 +01:00
parent f46e0408b3
commit 8b590a43be
1 changed files with 33 additions and 3 deletions

View File

@ -1,5 +1,26 @@
"""
Adds support for a heat control.
Adds support for a thermostat.
Specify a start time, end time and a target temperature.
If the the current temperature is lower than the target temperature,
and the time is between start time and end time, the heater will
be turned on. Opposite if the the temperature is higher than the
target temperature the heater will be turned off.
If away mode is activated the target temperature is sat to a min
temperature (min_temp in config). The min temperature is also used
as target temperature when no other temperature is specified.
If the heater is manually turned on, the target temperature will
be sat to 100*C. Meaning
the thermostat probably will never turn off the heater.
If the heater is manually turned off, the target temperature will
be sat according to normal rules. (Based on target temperature
for given time intervals and the min temperature.)
A target temperature sat with the set_temperature function will
override all other rules for the target temperature.
Config:
@ -28,6 +49,12 @@ target_sensor = tellstick_sensor.Stue_temperature
time_temp = 0700-0745:17,1500-1850:20
min_temp = 10
For the example the heater will turn on at 0700 if the temperature
is lower than 17*C away mode is false. Between 0700 and 0745 the
target temperature will be 17*C. Between 0745 and 1500 no temperature
is specified. so the min_temp of 10*C will be used. From 1500 to 1850
the target temperature is 20*, but if away mode is true the target
temperature will be sat to 10*C
"""
@ -75,6 +102,7 @@ class HeatControl(ThermostatDevice):
self.min_temp = float(config.get("min_temp"))
self._manual_sat_temp = None
self._away = False
self._heater_manual_changed = True
hass.states.track_change(self.heater_entity_id,
@ -108,6 +136,8 @@ class HeatControl(ThermostatDevice):
""" Returns the temperature we try to reach. """
if self._manual_sat_temp:
return self._manual_sat_temp
elif self._away:
return self.min_temp
else:
now = datetime.datetime.time(datetime.datetime.now())
for (start_time, end_time, temp) in self.time_temp:
@ -159,8 +189,8 @@ class HeatControl(ThermostatDevice):
def turn_away_mode_on(self):
""" Turns away mode on. """
self.set_temperature(None)
self._away = True
def turn_away_mode_off(self):
""" Turns away mode off. """
self.set_temperature(self.min_temp)
self._away = False