Skip to content

About

Floureon (Broadlink based) thermostat integration for Home Assistant

Topics

Resources

Stars

47 stars

Watchers

5 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

Repository files navigation

Your support

This open-source project is developed in my free time. Your donation would help me dedicate more time and resources to improve project, add new features, fix bugs, as well as improve motivation and helps me understand, that this project is useful not only for me, but for more users.

Buy Me A Coffee

Intro

Component for controlling Floureon or other chinese-based WiFi smart thermostat (Beok and others). Climate component will have 3 modes: "auto" (in which will used thermostat's internal schedule), "heat (which is "manual" mode) and "off". Also, while in "heat" mode it is possible to use preset "away". Changing mode to other than "heat" will set preset to "none".

If you want to use custom or more advanced control, you should use switch component and generic thermostat in Home Assistant instead. See below for configuration.

Development

Install uv, then set up the local environment:

uv sync

The project uses Python 3.13 by default. uv installs the integration dependencies and development tools into .venv using uv.lock.

Run the tests:

uv run pytest

Run lint, formatting, and type checks:

uv run ruff check .
uv run ruff format --check .
uv run ty check

Use uv run ruff check --fix . and uv run ruff format . to apply automatic fixes. Both tools are configured in pyproject.toml. ty checks the integration and tests while allowing the Home Assistant imports supplied by the host.

The tests mock Home Assistant and network I/O, so no Home Assistant installation or thermostat is needed. Home Assistant continues to install integration dependencies from custom_components/floureon/manifest.json; keep those requirements aligned with pyproject.toml when updating them. After changing dependencies, run uv lock and include the updated uv.lock.

Configuration as a Climate

Requires Python 3.13 or newer for python-broadlink 1.x.

Name Type Default Description
host (required) string IP or hostname of thermostat.
name (required) string Set a custom name which is displayed beside the icon.
unique_id string Set a unique id to allow entity customisation in HA GUI.
schedule integer 0 Set which schedule to use (0 - 12345,67, 1 - 123456,7, 2 - 1234567).
use_external_temp boolean true Set to false if you want to use thermostat`s internal temperature sensor for temperature calculation.
precision float 0.5 Set temperature precision 1.0 or 0.5.
use_cooling boolean false Set to true if your thermostat has cooling function.

Example:

climate:
  platform: floureon
  name: livingroom_floor
  host: 192.168.0.1
  use_external_temp: false

Configuration as a Switch

Name Type Default Description
host (required) string IP or hostname of thermostat.
name (required) string Set a custom name which is displayed beside the icon.
unique_id string Set a unique id to allow entity customisation in HA GUI.
turn_off_mode string, float min_temp Thermostat turn off mode. Set to min_temp - thermostat will be turned off by setting minimum temperature, turn_off - thermostat will be turned off by turning it off completely, float - thermostat will be turned off by setting lower temperature, ex. 17
turn_on_mode string, float max_temp Thermostat turn on mode. Set to max_temp - thermostat will be turned on by setting maximum temperature, float - thermostat will be turned on by set temperature, ex. 20.5.
use_external_temp boolean true Set to false if you want to use thermostat`s internal temperature sensor for temperature calculation.

Example:

switch:
  platform: floureon
  name: livingroom_floor
  host: 192.168.0.1
  turn_off_mode: min_temp
  turn_on_mode: 23.5

About

Floureon (Broadlink based) thermostat integration for Home Assistant

Topics

Resources

Stars

47 stars

Watchers

5 watching

Forks

Used by

Contributors

Languages