Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b4d1d96
Generate the required files using Jinja
judahrand Apr 24, 2023
fd7c270
Remove old `.zip` file
judahrand Apr 24, 2023
809a066
Correct `dashboard_cards.yaml` template
judahrand Apr 24, 2023
cd25565
Update `README.md`
judahrand Apr 24, 2023
da73cdf
Make `set_current_as_main` configurable
judahrand Apr 24, 2023
cc7a428
Set defaults for `temperature` attributes
judahrand Apr 24, 2023
4e5f8b9
Simplify sample config
judahrand Apr 24, 2023
be5b0fb
Rearrange fields in sample config
judahrand Apr 24, 2023
5410225
Increase message limits for `input_texts.yaml`
judahrand Apr 24, 2023
60892ad
Add blueprint
judahrand Apr 24, 2023
4f7aa77
Fix typo
judahrand Apr 24, 2023
fe37c23
Fix blueprint
judahrand Apr 24, 2023
2da8f5b
Update README.md
judahrand Apr 24, 2023
befca9e
Merge pull request #1 from judahrand/blueprint
judahrand Apr 24, 2023
c3c6983
Migrate to CHANGELOG.md
judahrand Apr 24, 2023
65cf1d4
Fix changelog
judahrand Apr 24, 2023
1a5b055
Add newline
judahrand Apr 24, 2023
9a79f84
Allow the manual override to be overridden
judahrand Apr 25, 2023
93fbb20
Use Calendar Event Triggers
judahrand Apr 25, 2023
e578416
Use Timer Event Trigger for manual override
judahrand Apr 25, 2023
49c8761
Specifically detect changes in set temperature
judahrand Apr 25, 2023
fc3888b
Fix typo
judahrand Apr 25, 2023
d2550cd
Detect all temperature changes
judahrand Apr 25, 2023
0ece3b6
Get rid of extra temp sensor
judahrand Apr 25, 2023
f984716
Correct comment
judahrand Apr 25, 2023
d9a8b78
Only update the Calendar Helpers when event starts or ends
judahrand Apr 25, 2023
d419075
Fix typos
judahrand Apr 25, 2023
8c95700
Simplify calendar triggers
judahrand Apr 26, 2023
b87bf71
Only refresh on state changes
judahrand Apr 26, 2023
247c0de
Remove `local_` prefixes
judahrand Apr 26, 2023
060030a
Infer min/max temperature from thermostat entities
judahrand Apr 26, 2023
92d6395
Make sure not to try to set too low a temp
judahrand Apr 26, 2023
5aac0d9
React to calendar events
judahrand Apr 26, 2023
709912f
Start timer after setting manual temp
judahrand Apr 26, 2023
4c94f5c
Store error codes in `event_temperature` helper
judahrand Apr 26, 2023
3703183
Always update calendar helpers
judahrand Apr 26, 2023
14b21e0
Get rid of `manual_temperature` helper
judahrand Apr 26, 2023
af8a7b6
Fix comparison
judahrand Apr 26, 2023
bc361f2
Set temperature on calendar event or manual override end
judahrand Apr 26, 2023
b3b9a6f
Move echo block
judahrand Apr 26, 2023
9a91f4d
I don't think this is possible anymore
judahrand Apr 26, 2023
2eb4f67
Trigger on calendar end events
judahrand Apr 27, 2023
b58fe04
Get stuff working again
judahrand Apr 27, 2023
0963794
Remove time pattern trigger
judahrand Apr 27, 2023
f320af8
Improve triggers
judahrand Apr 27, 2023
42a6eeb
Only update event variables on calendar events
judahrand Apr 27, 2023
32960f1
Clean up comments
judahrand Apr 28, 2023
b193aef
Move `mode` back
judahrand Apr 28, 2023
8343243
Add `off_temperature` variable
judahrand Apr 28, 2023
18f0bec
Separate types of variable
judahrand Apr 28, 2023
75a8e80
Remove unused sensors
judahrand May 16, 2023
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
config.yaml
output/
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
06-Feb-23 | Andy Symons | First posted on the community forum

08-Feb-23 | Andy Symons | Improved robustness when sensors become unavailable. Posted on GitHub.

12-Feb-23 | Andy Symons | Improved logic when first starting with idle timers

15-Feb-23 | Andy Symons | Mode changed to queued so all triggers used but without conficting states.

19-Feb-23 | Andy Symons | Continual refresh; robust through restart, all day events, and overlappng events.

20-Feb-23 | Andy Symons | More verbose 'reason' text with event details where applicable (needs 255 character helper).

25-Feb-23 | Andy Symons | Robust against absent or invalid tempterature specification in an event. Reports errors in the reason text.
Binary file removed Heating X code generator - use on a local drive.zip
Binary file not shown.
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Heating-X-code-generator
# HeatingX

Use Microsoft Mail Merge to create YAML files for all the template sensors and helpers required for a complete home installation of Heating X zones.
Microsoft Office (WORD and EXCEL) is a prerequisite (sorry I could not find a free package to do this)
Use Jinja to create YAML files for all the template sensors and helpers required for a complete home installation of HeatingX zones.

To get started:
1. Download the ZIP file to a temporary location on a local disk drive. Problems can occur if it is used on a drive that is synchronised to a cloud service, such as iCloud or OneDrive (but you can keep a copy of the ZIP file if you wish).
2. Unzip it.
3. In the resulting folder there are detailed instructions in $README on how to use the Code Generator to generate and install all the YAML code you need for even the most conplex installation.

Basically you enter the details of your installation (zones and thermostats) in the EXCEL file, then use each of the five WORD files to generate the contents of a YAML file. They each generate a whole file except the dashboard card generator, which has to be installed one card at a time.
To get started:
1. Make sure you have Python 3 installed.
2. Create a virtual environment with `python3 -m venv .venv`.
3. Activate your virtual environment with `source .venv/bin/activate`.
4. Install the required dependencies with `python3 -m pip install requirements.txt`.
5. Make your own `config.yaml` with `cp config.yaml.sample config.yaml`.
6. Edit the contents of the resulting `config.yaml` to match your own installation (zones and thermostats).
7. Create the required files with `python generate.py` which will output the files into
the `output/` directory.
Loading