Skip to main content

No project description provided

Project description

"Buy Me A Coffee" hacs_badge

EQ3 Bluetooth Smart Thermostat

A modernized temporary replacement for the native Home Assistant component.

Home Assistant Forum Post

Installation

Option 1: HACS Link

  1. Click Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.
  2. Restart Home Assistant

Option 2: HACS

  1. Or HACS > Integrations > > Custom Repositories
  2. Repository: paste the url of this repo
  3. Category: Integration
  4. Click Add
  5. Close Custom Repositories modal
  6. Click + EXPLORE & DOWNLOAD REPOSITORIES
  7. Search for eq3btsmart
  8. Click Download
  9. Restart Home Assistant

Option 2: Manual copy

  1. Copy the eq3btsmart folder inside custom_components of this repo to /config/custom_components in your Home Assistant instance
  2. Restart Home Assistant

Adding devices

  1. Go to Settings > Integrations
  2. Either wait for automatic discovery,

image

image

or click + ADD INTEGRATION and search for eq3btsmart

image
  1. 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

image

Setting schedules

The internal schedules of the Auto mode can be set via a service. Use Devices or Areas as target, not entities.

image

Viewing schedules

There is a button to fetch the schedules from the thermostats. These are shown as attributes of that button.

image

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.

image

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:

image

Device options

Most notably, you can select a specific bluetooth adapter, or limit to local ones.

image

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 have poetry create the virtual environment inside the project directory

    This 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eq3btsmart-0.0.2.tar.gz (15.0 kB view hashes)

Uploaded Source

Built Distribution

eq3btsmart-0.0.2-py3-none-any.whl (16.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page