Skip to content

Latest commit

 

History

History
205 lines (130 loc) · 3.49 KB

hvac.md

File metadata and controls

205 lines (130 loc) · 3.49 KB

hvac

This module implements an HVAC Task based on the Ecobee thermostat.

Mode Objects

class Mode(IntEnum)

Define the thermostat operating mode.

HVACTask Objects

class HVACTask(Task,  Sensor)

Ecobee controller HVAC system.

This task makes use of the Ecobee hold feature to control the HVAC system. This task does not modify the Ecobee schedule but it expects that at times where the production system runs (daylight for PV for instance), the comfort setting temperatures are set to "unreachable" values. The task is going to optimally heat or cool the home depending on power availability and user defined target temperatures.

min_run_time

@property
def min_run_time()

Minimal run time for the HVAC.

It is to prevent damage of the water heater by turning it on and off too frequently.

hvac_mode

@property
def hvac_mode()

Current HVAC mode.

adjust_priority

def adjust_priority()

Adjust the priority based on the estimate run time.

adjust_power

def adjust_power()

Update the power necessary to run HVAC system.

indoor_temp

@property
def indoor_temp()

Current indoor temperature.

get_ecobee

def get_ecobee()

Load the ecobee service object from the storage.

register

def register(name, uri, raise_exception=True)

Register 'task' as sensor and task.

HVACParam Objects

class HVACParam(threading.Thread)

This class provides information to the HVAC task.

This class is a thread because some of the information can take several seconds to collect or compute. This class provide information such as the maximum available power to expect from the energy production system, the current outdoor temperature and the target time and temperature.

The target time is defined as the point in time when the energy production system produces enough power for the HVAC system to run. The target temperature is the temperature the home should be at target time so that the temperature is going to be as close as possible to 'goal_temperature' at goal time.

max_available_power

@property
def max_available_power()

Maximum power that should be available to operate the HVAC.

outdoor_temp

@property
def outdoor_temp()

Current outdoor temperature.

target_time

@property
def target_time()

Last point in time when the system will produce enough power.

target_temp

@property
def target_temp()

Desired temperature at 'target_time'.

optimal_temp

@property
def optimal_temp()

Optimal temperature to be at the desired temperature at goal.

is_ready

def is_ready()

Return true if all this object is ready to be used.

main

def main()

Start and register an HVAC Task and Sensor.