No project description provided
Project description
EQ3 Bluetooth Smart Thermostat
A modernized temporary replacement for the native Home Assistant component.
Installation
Option 1: HACS Link
Option 2: HACS
- Or
HACS
>Integrations
>⋮
>Custom Repositories
Repository
: paste the url of this repoCategory
: Integration- Click
Add
- Close
Custom Repositories
modal - Click
+ EXPLORE & DOWNLOAD REPOSITORIES
- Search for
eq3btsmart
- Click
Download
- Restart Home Assistant
Option 2: Manual copy
- Copy the
eq3btsmart
folder insidecustom_components
of this repo to/config/custom_components
in your Home Assistant instance - Restart Home Assistant
Adding devices
- Go to
Settings
>Integrations
- Either wait for automatic discovery,
or click + ADD INTEGRATION
and search for eq3btsmart
- Addition will succeed immediately, so give the entity some minutes to connect to the thermostat
Pairing issues
See here https://github.com/rytilahti/python-eq3bt#pairing
Device entities
Setting schedules
The internal schedules of the Auto mode can be set via a service. Use Devices or Areas as target, not entities.
Viewing schedules
There is a button to fetch the schedules from the thermostats. These are shown as attributes of that button.
Setting Vacation Mode / Away Mode
There is a service to set up Away mode (vacation) with an end date/time, and target temperature.
Use Devices or Areas as target, not entities.
To easily set all thermostats to away you can combine it with an input timedate helper and a script and add them to lovelace like this:
Device options
Most notably, you can select a specific bluetooth adapter, or limit to local ones.
Differences with the original component:
- It works in HA version > 2022.7
- Support for BTProxy thanks to @ignisf (make sure you configure
active: true
in the BTProxy). - Supports auto discovery
- Supports adding via config flow (UI)
- Fixes setting operation mode
- Allows to turn off by setting temp to 4.5°
- Retries (10 times) when you change a thermostat attribute.
[x] Push instead of Pull. It updates on bluetooth advertisement instead of polling every x minutes (seems to generate less unsuccessful tries)- Connections are persistent (this may or may not reduce the battery life, but it makes the thermostats more responsive)
- Fully uses asyncio (less resource intensive)
-
Current Temperature
updates immediately, regardless of when the bluetooth connection is made. The component will apply the change as soon as it can connect with the device. - Service to fetch heating schedules and serial inside the thermostat
- Only one concurrent request per thermostat
- Service to set the heating schedules
[ ] Support for installing via yaml[ ] Support pairing while adding entity- All features of the thermostat are exposed as entities
- Bluetooth adapter, scan interval, etc are configurable.
Previous Art
This is heavily based on https://github.com/rytilahti/python-eq3bt and https://github.com/home-assistant/core/tree/dev/homeassistant/components/eq3btsmart and it should ideally be two PRs instead. Unfortunately, the changes go too deep and remove support for the CLI and other backends. Therefore, here's a self contained custom component instead.
Contributing
Environment Setup
We recommend using VS Code as IDE.
- Fork and clone the repository
- Install the poetry dependency management tool and add it to your
PATH
- Run
poetry config virtualenvs.in-project true
to havepoetry
create the virtual environment inside the project directoryThis is recommended for compatibility with VS Code
- Run
poetry install --with dev
to install dependencies and setup the virtual environment - Install the recommended extensions in VS Code
- Select the Python interpreter to be
.venv/bin/python.exe
(Linux) or.venv/Scripts/python.exe
(Windows) in VS Code
Your environment should now be setup to contain all dev and non-dev dependencies and VS Code will automatically highlight and fix issues detected by ruff
and mypy
.
To setup pre-commit
for automatic issue detection while committing you need to run the following commands:
poetry run pre-commit install
poetry run pre-commit install --hook-type commit-msg
poetry run pre-commit install-hooks
Protocol
ID_GET
0x00
INFO_GET
0x03
COMFORT_ECO_CONFIGURE
0x11 (COMFORT_TEMP * 2) (ECO_TEMP * 2)
OFFSET_CONFIGURE
0x13 TEMP_INDEX
WINDOW_OPEN_CONFIGURE
0x14 (TEMP * 2) (FLOOR(SECONDS / 300))
SCHEDULE_GET
0x20 DAY
MODE_SET
- On:
0x40 (0x40 OR 0x3C)
- Off:
0x40 (0x40 OR 0x09)
- Manual:
0x40 (0x40 OR TEMP * 2)
- Auto:
0x40 0x00
- Away:
0x40 (0x80 OR TEMP * 2) DAY (YEAR - 2000) (HOUR * 2) (MONTH)
TEMPERATURE_SET
0x41 (TEMP * 2)
COMFORT_SET
0x43
ECO_SET
0x44
BOOST_SET
0x45 (0x00 | 0x01)
LOCK_SET
0x80 (0x00 | 0x01)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for eq3btsmart-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 019103485a2c56c8053b94c674b40b26e013cee6913b3fa39163000617ccc759 |
|
MD5 | a70f4057eac07239519de46c924e5d0d |
|
BLAKE2b-256 | 46a7695b62b19297826396ca8c44c9b8b228e1ab1680d00030ad3629654ce8b9 |