Floureon / Beok (and other Broadlink based) thermostat component

Hi,
Thanks for that. I managed to figure it out in the end🤦‍♂️, but it was too late and forgot to leave a reply.
Thanks again.

Alin

1 Like

HI,

I’m on 0.115.6 on Docker container. Recently i updated the Floureon Component and my thermostat stopped working.
i get this error in log:

ERROR (MainThread) [custom_components.floureon] Thermostat 192.168.0.26 set_time error: module 'broadlink' has no attribute 'hello'

Does anyone has the same error or know why it is not working anymore ?

Looks like your broadlink lib is outdated. Did you updated manifest.json file in floureon component?

Yes, it looks like this

{ "domain": "floureon", "name": "Floureon Thermostat", "documentation": "https://github.com/algirdasc/hass-floureon", "dependencies": [], "codeowners": ["@algirdasc"], "issue_tracker": "https://github.com/algirdasc/hass-floureon/issues", "requirements": ["pythoncrc", "broadlink>=0.15.0"] }

when go inside the docker container and check the broadlink vesion with ‘pip show broadlink’ i got: Name: broadlink Version: 0.15.0

Hi!
I also bought Fan coil Thermostat, Beok TGR87G-WIFI-AC2, and I tried to control with this component, but seem they are not supported. I tested both configurations, as Climate and as Switch, I got the next errors:

  • “device” object has not attribute “set_power”
  • “device” object has not attribute “set_mode”

The Fan coil Thermostats has 4 switch outputs: 1 to control a valve, and 3 more to control the fan speed, and of course, a temp sensor. I guess this is clashing with normal thermostats, with only one output.

@Globetrotter, did you manage to control it?

Thanks a lot!

Hi!

I’m reviewing the code to understant it in order to try to cover the Fan coil Thermostats. I have a question regarding this component implementation, maybe anyone can support me:

  • The flouren component is importing the HA broadlink component, but in HA broadlink component documentation I haven’t seen any support to thermostat, just Power Strips, Sensors, Smart Plugs, Universal Remotes and Wi-Fi Controlled Switches. I can’t see the hello(), auth(), set_temp(), and other APIs in the broadlink code (https://github.com/home-assistant/core/tree/dev/homeassistant/components/broadlink), but they are being used by the fluoren component. What I’m checking wrong? Is my analisys wrong and those APIs should not be found in the broadlink component? or is the flouren component using a different broadlink component?

I’m not familiar with HA component implementation, and just a little bit with Python, so apologies if I did a silly question…

Thanks for your support in advance!

Hi, you’re looking at the wrong code - you should be looking at broadlink python library: https://github.com/mjg59/python-broadlink/tree/master/broadlink

Thanks for the feedback!! Now I can see all the APIs :grinning:

But then, a new question comes to my mind, and it’s related to my previous post, how this “broadlink” component should be installed in my HA? I have not seen in documentation, and as you can see in my previuos post, my broadlink “device” do not have the “set_power”, “set_mode”, etc.

I would suggest you to debug/develop using plain python. You could list all available methods and properties of your floureon/broadlink device and maybe there would be possibility to implement your device to floureon component.

Thanks for the hint, I will do so!

Hi,
Seems my thermostat is not supported by the library… It can be detected by the library, but it did not found available methods. “devtype” reported is 0x4F5B, which is not in the list of supported devices…

:sob: :sob:

I would suggest trying to create issue at broadlink python github repository, maybe broadlink-python lib developer would find a way and implement your controller. Then I could implement that implementation (inception, or should i say impleption?) in floureon component.

Hi,
there was some interest here in the cloud controlled thermostats (Floureon byc17.gh3). There is finally a python api access: https://github.com/opravdin/weback-unofficial.
If you want to checkout the integration I made, go here: https://github.com/ltekieli/floureon-cloud

I have the same issue. As soon as one thermostat is offline, Home Assistant becomes unresponsive once a minute for a few seconds. In this time I also cannot turn on lights etc.
This is what I can see in the logs:

Logger: custom_components.floureon
Source: custom_components/floureon/__init__.py:63 
Integration: floureon ([documentation](https://github.com/algirdasc/hass-floureon), [issues](https://github.com/algirdasc/hass-floureon/issues)) 
First occurred: 20:07:23 (86 occurrences) 
Last logged: 21:32:48

Thermostat 192.168.178.56 read_status error: [Errno -4000] Network timeout 

@algirdasc: Did you have a chance to look into it?

Sorry for the delay, had some changes in my personal life. I had a change to look into it, the problem was with sync/async context mixup, please update to the latest version, this issue should be fixed now.

Wow, that’s great. I have tested it and it works. You are amazing!

Hi all, I’m getting this warning in my homeassistant log.
2020-12-07 18:35:10 WARNING (MainThread) [homeassistant.components.switch] SwitchDevice is deprecated, modify FloureonSwitch to extend SwitchEntity

Is this OK, or do I need to change something. My config sections below:

switch:  
  - platform: floureon
    name: Elec floor heating
    mac: 24:df:a7:d6:66:c7
    host: 192.168.1.18
    turn_off_mode: turn_off
    turn_on_mode: max_temp
climate:
  platform: floureon
  name: Underfloor electric heating
  host: 192.168.1.18
  use_external_temp: false

On Beok you can select internal sensor (air temperature), external (floor temperature), both external and internal (SEN 2) to avoid overheating floor.
After updating temperature from Home Assistant it resets sensor to 0 on thermostat. Is there any way to prevent that?

Hi Lukasz,
This is a nice attempt but is not working for me.
I get this:
‘File “/config/custom_components/floureon-cloud/climate.py”, line 57, in setup_platform
add_entities([Thermostat(login, password, device, name)])
File “/config/custom_components/floureon-cloud/climate.py”, line 74, in init
self.update()
File “/config/custom_components/floureon-cloud/climate.py”, line 148, in update
self._current_temperature = self._device.current_temperature()
File “/config/custom_components/floureon-cloud/climate.py”, line 180, in current_temperature
result = self.shadow()
File “/config/custom_components/floureon-cloud/climate.py”, line 174, in shadow
resp = self._client().get_thing_shadow(thingName=self._device_name)
File “/usr/local/lib/python3.8/site-packages/botocore/client.py”, line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File “/usr/local/lib/python3.8/site-packages/botocore/client.py”, line 661, in _make_api_call
raise error_class(parsed_response, operation_name)’

Hi
I just got this message. (HA 2021.3.3)

Logger: homeassistant.loader
Source: loader.py:802
First occurred: 12:19:20 PM (1 occurrences)
Last logged: 12:19:20 PM

No 'version' key in the manifest file for custom integration 'floureon'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'floureon'

Hopefully you could deal with this in the near future