Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ecobee3 support #653

Merged
merged 22 commits into from
Jan 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
fabe034
Merge pull request #3 from hollie/master
rudybrian Jan 27, 2015
a9a6887
Merge remote branch 'upstream/master'
rudybrian Feb 9, 2016
033ec7e
Initial Ecobee module commit
rudybrian Feb 9, 2016
c0ed733
More cleanup and added get_humidity() user function
rudybrian Feb 9, 2016
d57f5ae
Now capturing settings and added more user functions
rudybrian Feb 10, 2016
41d76f3
Added support for alerts
rudybrian Feb 11, 2016
afb31fd
Added support for events (holds, vacation, etc)
rudybrian Feb 12, 2016
fac5149
Added initial support for Ecobee_Generic and Ecobee_Thermostat classes
rudybrian Feb 15, 2016
96be6af
Test code that updates the state of Ecobee_Thermostat objects when th…
rudybrian Mar 15, 2016
7b646d3
Now supports nested hashes in the monitor_hash
rudybrian Mar 18, 2016
f35b2a7
Added Ecobee_Thermo_Humidity child object
rudybrian Mar 20, 2016
14584d3
Added Ecobee_Thermo_HVAC_Status child object
rudybrian Mar 21, 2016
14f7f18
Added Ecobee_Thermo_Mode child object
rudybrian Mar 23, 2016
a0a8463
Added Ecobee_Thermo_Climate child object
rudybrian Mar 25, 2016
6b00005
Added/moved todo list
rudybrian Mar 31, 2016
de1f726
Fixed bug with runtime status parsing.
rudybrian Mar 31, 2016
92d29a5
Added functions to set and clear holds
rudybrian Apr 2, 2016
02d9dfb
Updated ClimateRef tracking and fixed Ecobee_Thermo_Climate
rudybrian Apr 20, 2016
4b24e03
Logging cleanup
rudybrian Jul 11, 2016
5b59785
Merge branch 'master' of git://github.com/hollie/misterhouse into add…
rudybrian Dec 17, 2016
a4e6af9
Add Ecobee.pl user code
rudybrian Dec 17, 2016
412cd17
Perltidy source
rudybrian Dec 17, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions code/common/Ecobee.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Category=HVAC

# MisterHouse Ecobee3 thermostat controller
# Brian Rudy ([email protected])
#
# For additional functionality and configuration requirements, see Ecobee.pm

# Home/away
if ( my $state = state_now $home_occupants) {
if ( $state eq "home" ) {
print_log "Setting thermostat to home mode (occupants home)";
$ecobee_thermo->set_hold("climate_nextTransition_home");
}
else {
print_log "Setting thermostat to away mode (occupants away)";
$ecobee_thermo->set_hold("climate_nextTransition_away");
}
}

# New stuff that interacts with the Ecobee MH module

$v_query_ecobee_temp = new Voice_Cmd 'Get current thermostat temperature';

if ( my $state = said $v_query_ecobee_temp) {
print_log "Getting current thermostat temperature";
my $actualTemp = $ecobee_thermo->get_temp();
print_log "The thermostat temperature is $actualTemp";
}

if ( my $state = state_now $ecobee_thermo) {
print_log "Ecobee temperature is now " . ( $state * 0.1 ) . " degrees F";
}

if ( my $state = state_now $thermo_humid) {
print_log "Ecobee humidity is now $state\%";
}

if ( my $state = state_now $thermo_hvac_status) {
print_log "Ecobee status is now $state";
}

if ( my $state = state_now $thermo_mode) {
print_log "Ecobee mode is now $state";
}

if ( my $state = state_now $thermo_climate) {
print_log "Ecobee climate is now $state";
}

$v_clear_ecobee_hold = new Voice_Cmd 'Clear thermostat hold';
if ( my $state = said $v_clear_ecobee_hold) {
print_log "Clearing the current thermostat hold";
$ecobee_thermo->clear_hold();
}

$v_set_temp_hold = new Voice_Cmd 'Set thermostat temperature hold';
if ( my $state = said $v_set_temp_hold) {
print_log "Setting a thermostat temperature hold";
$ecobee_thermo->set_hold("temperature_nextTransition_740_760");
}

$v_set_climate_hold =
new Voice_Cmd 'Set thermostat climate hold to [home,away,sleep]';
if ( my $state = said $v_set_climate_hold) {
print_log "Setting a thermostat climate hold to $state";
$ecobee_thermo->set_hold("climate_nextTransition_$state");
}

Loading