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

Thermostat Controller #8212

Merged
merged 76 commits into from
May 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
31d0268
Heating controller added. Created by myself initially in LUA running …
arijav Apr 17, 2020
ee47415
Was not propertly committed
arijav Apr 17, 2020
1e1a2c1
Add config version tag
arendst Apr 17, 2020
a82b87a
Fix compile warning
arendst Apr 17, 2020
5c19a01
Merge commit '431ad4256545abd953589c1455a90164dcde5b8a' into Heating
arijav Apr 17, 2020
7965701
no message
arijav Apr 17, 2020
2f2f3bf
Merge branch 'development' into development
arijav Apr 17, 2020
72ca178
Revert "Update settings.ino"
arijav Apr 17, 2020
e347c26
Revert "Update i18n.h"
arijav Apr 17, 2020
bba8298
Update
arijav Apr 17, 2020
4965259
Prep ESP32 template
arendst Apr 17, 2020
ee98151
Provide ESP32 base module support
arendst Apr 17, 2020
22e05c2
No Map file is generated for ESP32
Jason2866 Apr 17, 2020
36c9a44
Fix Zigbee DimmerUp/DimmerDown malformed
s-hadinger Apr 17, 2020
fa51f9f
Add the possibility to add Custom env
Jason2866 Apr 17, 2020
3f9fdc0
Remove warning/errors when compiling Zigbee for ESP32
s-hadinger Apr 17, 2020
8ada812
Add ESP32 optional brownout disable
arendst Apr 17, 2020
80f364c
Merge branch 'development' of https://github.com/arijav/Tasmota into …
arijav Apr 17, 2020
ba0a2ff
Corrections to reduce settings
arijav Apr 17, 2020
b3094aa
New driver created for heating control. I have created initially this…
arijav Apr 17, 2020
f545818
Update settings.h
arijav Apr 17, 2020
ade012a
Reduction of types
arijav Apr 18, 2020
68d7227
Merge branch 'new_branch' of https://github.com/arijav/Tasmota into n…
arijav Apr 18, 2020
f937504
Correction of second counter and integration into Bitfield to save 1 …
arijav Apr 18, 2020
46612cd
Correction to counter_seconds
arijav Apr 18, 2020
5122ea6
Fix kCommandSource adding heating source
arijav Apr 18, 2020
a979136
Fix kCommandSource adding heating source
arijav Apr 18, 2020
602a6cd
Merge branch 'new_branch' of https://github.com/arijav/Tasmota into n…
arijav Apr 18, 2020
1deb92a
Fix kCommandSource adding heating source
arijav Apr 18, 2020
b477851
Adding debug features, disable by default
arijav Apr 18, 2020
95a4d6c
Adding debug features, disable by default
arijav Apr 18, 2020
4485184
Fix merge
arijav Apr 19, 2020
96a586c
Update README.md
arijav Apr 19, 2020
bade7b1
Update README.md
arijav Apr 19, 2020
714f2d4
Update README.md
arijav Apr 19, 2020
e96eb3a
Heating plan removed since it can be implemented via timers/rules
arijav Apr 20, 2020
c5b7109
Disable debug by default
arijav Apr 20, 2020
4cac6de
Command defines moved from i18n.h into the driver, driver name change…
arijav Apr 20, 2020
262ab63
Removed of all driver name
arijav Apr 20, 2020
4c8c75c
Comments aligned in the proper way
arijav Apr 20, 2020
f24c8ee
Corrected merge issue
arijav Apr 20, 2020
058d23f
Heating structure aligned and unneeded defines removed
arijav Apr 23, 2020
ab04f41
Fix merge
arijav Apr 23, 2020
f325a43
Fix merge
arijav Apr 23, 2020
29ec129
Fix merge
arijav Apr 23, 2020
7ea9619
Fix merge
arijav Apr 23, 2020
88e0af9
Fix merge
arijav Apr 23, 2020
7c336a1
Fix merge
arijav Apr 23, 2020
bbb4fbd
Fix merge
arijav Apr 23, 2020
6225298
Fix merge
arijav Apr 23, 2020
6915346
Fix merge
arijav Apr 23, 2020
65c0a92
Added functions for arming/disarming thermostat from web timers
arijav Apr 24, 2020
12a3aac
Code activated by debug define corrected
arijav Apr 24, 2020
c577a95
Reduction of floats and implementation of overflow protection
arijav Apr 26, 2020
83cdd2f
Correction overflow protection
arijav Apr 26, 2020
9e0aa7d
Correct merge
arijav Apr 26, 2020
ec94424
Correct merge
arijav Apr 26, 2020
795eb10
Correct merge
arijav Apr 26, 2020
69eb9d2
Merge branch 'new_branch' of https://github.com/arijav/Tasmota into n…
arijav Apr 26, 2020
05a9fe5
Correct merge
arijav Apr 26, 2020
ba3457e
Correct merge
arijav Apr 26, 2020
c71b4d3
Correct merge
arijav Apr 26, 2020
d7f8189
Bugfix manual to auto corrected, reduction of floats and rampup ctr. …
arijav Apr 29, 2020
98dc4d8
Support added for DS18B20 temperature sensor and reduction of variabl…
arijav Apr 29, 2020
e238038
Implementation of Fahrenheit temperatures as option
arijav May 1, 2020
20f3d8d
Implementation of Fahrenheit temperatures as option
arijav May 1, 2020
b6954f5
Diagnostic feature added
arijav May 2, 2020
920c7ff
Merge corrected
arijav May 2, 2020
d600832
Preliminary implementatino of multi-controller, in-depth testing and …
arijav May 2, 2020
6766039
Fix merge
arijav May 2, 2020
516b11f
Comment fix
arijav May 2, 2020
6f5c35f
Corrections to manual state and extension of debug features for 4 out…
arijav May 3, 2020
5bdf430
Added cooling functionality
arijav May 5, 2020
4b2d4e3
Code optimizations
arijav May 5, 2020
3e8a82e
Small comment changes
arijav May 5, 2020
19d8592
Merge branch 'development' into new_branch
arendst May 7, 2020
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
29 changes: 29 additions & 0 deletions tasmota/my_user_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,35 @@
//#define USE_HRE // Add support for Badger HR-E Water Meter (+1k4 code)
//#define USE_A4988_STEPPER // Add support for A4988/DRV8825 stepper-motor-driver-circuit (+10k5 code)

// -- Thermostat control ----------------------------
//#define USE_THERMOSTAT // Add support for Thermostat
#define THERMOSTAT_CONTROLLER_OUTPUTS 1 // Number of outputs to be controlled independently
#define THERMOSTAT_SENSOR_NAME "DS18B20" // Name of the local sensor to be used
#define THERMOSTAT_RELAY_NUMBER 1 // Default output relay number for the first controller (+i for following ones)
#define THERMOSTAT_SWITCH_NUMBER 1 // Default input switch number for the first controller (+i for following ones)
#define THERMOSTAT_TIME_ALLOW_RAMPUP 300 // Default time in seconds after last target update to allow ramp-up controller phase in minutes
#define THERMOSTAT_TIME_RAMPUP_MAX 960 // Default time maximum ramp-up controller duration in minutes
#define THERMOSTAT_TIME_RAMPUP_CYCLE 1800 // Default time ramp-up cycle in seconds
#define THERMOSTAT_TIME_SENS_LOST 30 // Maximum time w/o sensor update to set it as lost in minutes
#define THERMOSTAT_TEMP_SENS_NUMBER 1 // Default temperature sensor number
#define THERMOSTAT_TIME_MANUAL_TO_AUTO 60 // Default time without input switch active to change from manual to automatic in minutes
#define THERMOSTAT_TIME_ON_LIMIT 120 // Default maximum time with output active in minutes
#define THERMOSTAT_TIME_RESET 12000 // Default reset time of the PI controller in seconds
#define THERMOSTAT_TIME_PI_CYCLE 30 // Default cycle time for the thermostat controller in minutes
#define THERMOSTAT_TIME_MAX_ACTION 20 // Default maximum thermostat time per cycle in minutes
#define THERMOSTAT_TIME_MIN_ACTION 4 // Default minimum thermostat time per cycle in minutes
#define THERMOSTAT_TIME_MIN_TURNOFF_ACTION 3 // Default minimum turnoff time in minutes, below it the thermostat will be held on
#define THERMOSTAT_PROP_BAND 4 // Default proportional band of the PI controller in degrees celsius
#define THERMOSTAT_TEMP_RESET_ANTI_WINDUP 8 // Default range where reset antiwindup is disabled, in tenths of degrees celsius
#define THERMOSTAT_TEMP_HYSTERESIS 1 // Default range hysteresis for temperature PI controller, in tenths of degrees celsius
#define THERMOSTAT_TEMP_FROST_PROTECT 40 // Default minimum temperature for frost protection, in tenths of degrees celsius
#define THERMOSTAT_TEMP_RAMPUP_DELTA_IN 4 // Default minimum delta temperature to target to get into rampup mode, in tenths of degrees celsius
#define THERMOSTAT_TEMP_RAMPUP_DELTA_OUT 2 // Default minimum delta temperature to target to get out of the rampup mode, in tenths of degrees celsius
#define THERMOSTAT_TEMP_PI_RAMPUP_ACC_E 200 // Default accumulated error when switching from ramp-up controller to PI in hundreths of degrees celsius
#define THERMOSTAT_TIME_OUTPUT_DELAY 180 // Default output delay between state change and real actuation event (f.i. valve open/closed)
#define THERMOSTAT_TEMP_INIT 180 // Default init target temperature for the thermostat controller
#define THERMOSTAT_TIME_MAX_OUTPUT_INCONSIST 3 // Default maximum time where the input and the outpus shall differ (for diagnostic) in minutes

// -- End of general directives -------------------

/*********************************************************************************************\
Expand Down
4 changes: 3 additions & 1 deletion tasmota/support_features.ino
Original file line number Diff line number Diff line change
Expand Up @@ -560,8 +560,10 @@ void GetFeatures(void)
#ifdef USE_OPENTHERM
feature6 |= 0x00000200; // xsns_69_opentherm.ino
#endif
#ifdef USE_THERMOSTAT
feature6 |= 0x00000400; // xdrv_39_heating.ino
#endif

// feature6 |= 0x00000400;
// feature6 |= 0x00000800;

// feature6 |= 0x00001000;
Expand Down
4 changes: 2 additions & 2 deletions tasmota/tasmota.h
Original file line number Diff line number Diff line change
Expand Up @@ -319,9 +319,9 @@ enum DevGroupShareItem { DGR_SHARE_POWER = 1, DGR_SHARE_LIGHT_BRI = 2, DGR_SHARE

enum CommandSource { SRC_IGNORE, SRC_MQTT, SRC_RESTART, SRC_BUTTON, SRC_SWITCH, SRC_BACKLOG, SRC_SERIAL, SRC_WEBGUI, SRC_WEBCOMMAND, SRC_WEBCONSOLE, SRC_PULSETIMER,
SRC_TIMER, SRC_RULE, SRC_MAXPOWER, SRC_MAXENERGY, SRC_OVERTEMP, SRC_LIGHT, SRC_KNX, SRC_DISPLAY, SRC_WEMO, SRC_HUE, SRC_RETRY, SRC_REMOTE, SRC_SHUTTER,
SRC_MAX };
SRC_THERMOSTAT, SRC_MAX };
const char kCommandSource[] PROGMEM = "I|MQTT|Restart|Button|Switch|Backlog|Serial|WebGui|WebCommand|WebConsole|PulseTimer|"
"Timer|Rule|MaxPower|MaxEnergy|Overtemp|Light|Knx|Display|Wemo|Hue|Retry|Remote|Shutter";
"Timer|Rule|MaxPower|MaxEnergy|Overtemp|Light|Knx|Display|Wemo|Hue|Retry|Remote|Shutter|Thermostat";

const uint8_t kDefaultRfCode[9] PROGMEM = { 0x21, 0x16, 0x01, 0x0E, 0x03, 0x48, 0x2E, 0x1A, 0x00 };

Expand Down
Loading