Floureon / Beok (and other Broadlink based) thermostat component

You should ignore it.

thanks so much

Is there any possibility to use the built-in temperature sensor and the floor sensor to create a thermostat component? I would like to control the thermostat according to floor and air temperature.

Technically, there is, but I need to do some fixes. Meanwhile, you could setup “dummy” floureron climate component and configure two template sensors, which would get temperatures from climate component attributes (room_temp and external_temp). Then you could setup floureon switch and generic climate component to control your thermostat according your needs. That “dummy” climate component is a little extra, but since I’ve not done sensor implementation yet, this should work.

Thanks for the fast reply. What do you mean in setup a dummy climate component?

I mean setup as a fluoreon climate, but do not use it as a climate component anywhere. This would let you extract temperature values for the generic climate component.

When I create a generic thermostat, can I create two thermostat, one with external sensor and one with room temp? Or just only one? In the config.yaml needst to setup the switch mode and the climate mode together?

Well you can do whatever you want, but it sounds to me a conflict which climate component would turn on and turn off heating. Could you explain more what are you trying to achieve?

I have a water floor heating system, and the air temp is too “hot” to turn on the heating, but the floor is too cold to walk on. I want to achieve to heat the floor if the floor temp is cooler, or the air temp reached a target temp.

hello, I have a Beok-313 and I am trying to add it to Home Assistant.

I have added the following code into configurtion.yaml:

climate:

  • platform: floureon
    name: Termostato
    mac: 02:0F:B5:13:C6:27
    host: 192.168.0.156
    use_external_temp: false

I also added floureon files into custom_components dir in /config

but I get the following error in the logs:

Logger: homeassistant.config
First occured: 20:43:25 (1 occurences)
Last logged: 20:43:25

Platform error: climate
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config.py”, line 752, in async_process_component_config
platform = p_integration.get_platform(domain)
File “/usr/src/homeassistant/homeassistant/loader.py”, line 277, in get_platform
f"{self.pkg_path}.{platform_name}"
File “/usr/local/lib/python3.7/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1006, in _gcd_import
File “”, line 983, in _find_and_load
File “”, line 967, in _find_and_load_unlocked
File “”, line 677, in _load_unlocked
File “”, line 728, in exec_module
File “”, line 219, in _call_with_frames_removed
File “/config/custom_components/floureon/climate.py”, line 7, in
from custom_components.floureon import (
ImportError: cannot import name ‘BroadlinkThermostat’ from ‘custom_components.floureon’ (unknown location)

it seems that it is looking for a Broadlink component?
any idea?

Solved.

Thanks

how you solved ??

@algirdasc after 107.6 update got those errors:

2020-03-24 18:56:08 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140038195465552] No module named 'PyCRC'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 134, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1234, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/core.py", line 1257, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 198, in handle_service
    self._platforms.values(), func, call, required_features
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 402, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 599, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 433, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 536, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/floureon/climate.py", line 282, in async_set_temperature
    device.set_mode(BROADLINK_MODE_MANUAL, self._thermostat_loop_mode, self.thermostat_get_sensor())
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 697, in set_mode
    # The sensor command is currently experimental
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 604, in send_request
    def send_request(self, input_payload):
ModuleNotFoundError: No module named 'PyCRC'
2020-03-24 18:56:09 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140038195465552] No module named 'PyCRC'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 134, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1234, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/core.py", line 1257, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 198, in handle_service
    self._platforms.values(), func, call, required_features
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 402, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 599, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 433, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 536, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/floureon/climate.py", line 282, in async_set_temperature
    device.set_mode(BROADLINK_MODE_MANUAL, self._thermostat_loop_mode, self.thermostat_get_sensor())
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 697, in set_mode
    # The sensor command is currently experimental
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 604, in send_request
    def send_request(self, input_payload):
ModuleNotFoundError: No module named 'PyCRC'
2020-03-24 18:56:39 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140038195465552] No module named 'PyCRC'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 134, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1234, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/core.py", line 1257, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 198, in handle_service
    self._platforms.values(), func, call, required_features
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 402, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 599, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 433, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 536, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/floureon/climate.py", line 282, in async_set_temperature
    device.set_mode(BROADLINK_MODE_MANUAL, self._thermostat_loop_mode, self.thermostat_get_sensor())
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 697, in set_mode
    # The sensor command is currently experimental
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 604, in send_request
    def send_request(self, input_payload):
ModuleNotFoundError: No module named 'PyCRC'
2020-03-24 18:56:39 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.140038195465552] No module named 'PyCRC'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 134, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1234, in async_call
    await asyncio.shield(self._execute_service(handler, service_call))
  File "/usr/src/homeassistant/homeassistant/core.py", line 1257, in _execute_service
    await handler.func(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 198, in handle_service
    self._platforms.values(), func, call, required_features
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 402, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 599, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 433, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 536, in async_service_temperature_set
    await entity.async_set_temperature(**kwargs)
  File "/config/custom_components/floureon/climate.py", line 282, in async_set_temperature
    device.set_mode(BROADLINK_MODE_MANUAL, self._thermostat_loop_mode, self.thermostat_get_sensor())
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 697, in set_mode
    # The sensor command is currently experimental
  File "/usr/local/lib/python3.7/site-packages/broadlink/__init__.py", line 604, in send_request
    def send_request(self, input_payload):
ModuleNotFoundError: No module named 'PyCRC'

I have too this error after upgrade 0.107.6

1 Like

That is strange. I could try upgrading my HA version and test. But meanwhile, could you please try modifying manifest.json of the floureon component and add “PyCRC” to requirements as follows:

...
"requirements": ["broadlink==0.12.0", "PyCRC"]
...

Or if that does not help - change broadlink version from 0.12.0 to 0.13.0

Nope it does not work. neither changing broadlink to 0.13.0

Same error for me like mamra Andreas and same resullt as mamra with your suggestion

Please update manifest.json from my repository:

2 Likes

Thanks, now works!!

thanks…
i was just ready to write that pycrc gets installed instead of PyCRC because the gen_requirements_all.py of homeassistant core became case insensitive!!
Thank you