Wifi thermostat (Beok, Floureon, Beca Energy) component

I have to add friendly_name: to my config file, i don’t think it liked name:

Blockquote
I have no idea why do you want 1 degree hysteresis for a boiler. It will click your relay like crazy.
Eventually it will burn and crash.

When I mean boiler in fact I mean home temperature, where to me variation between 19 - 21 is far too much. 19.1 is too cold but boiler is not even kicking in and then it will only switch off once you reach 21 that to me personally feels too warn.

Where my previous thermostat could efficiently operate between 19.5 - 20.5 providing comfortable temperature all the time.

Not even mentioning that once you switch it off at 21 degrees radiators are still hot that will take house temperature even higher.

As a side note, i had to change some of my nodered flows from testing for “state = auto” to “state = idle” as it was trying to set the mode every 15 seconds as the state wasn’t auto when being polled…

Just to inform that I’m experiencing same issue. I have 8 floor heatings with external sensor so this is quite problematic for me. Thanks though for awesome work here!

My testing, by default I want to have sen 1:

  • If I change temperature from Home Assistant -> sen 1 is changed to sen 0
  • If I change from manual to automatic (and otherwise) in Home assistant -> sen 0
  • If I power off from Home assistant and power on from Beok -app -> sen 1 stays
  • If I power off and power on (manual heating) in Home Assistant -> sen 0
  • If I power off and power on automatic in Home Assistant -> sen 1 seemed to stay first time but other times changed to sen 0

Edit: I want to have external_sensor (sen 1) always, not sen 2 as I wrote first. My mistake!

If you’re interested, you could try using mine component (https://github.com/algirdasc/hass-components/tree/master/floureon). It can control Floureon thermostats using PID algorithm, also I’ve fixed constant settings reset when changing thermostat params. It’s not perfect, but you could give it a shot.

@matti
From my experience, this is how it should work.

This is implemented here:

Cheers,
us

I made a mistake in my first post, sorry: I want to have sen 1 (external_sensor) always. I edited my previous post according to this.

Does this change the matter any way?

In my opinion if I choose external_sensor (sen 1) or internal sensor with external sensor limit (sen 2), Home Assistant should not change it to sen 0 -mode in any situation. This is security risk: external sensor reading is vital at least in my application, other wise the heating cables might overheat resulting to fire hazard if sen 0 is used.

I’m not sure if I understand: the component itself acts as PID via home assistant and “overrides” the thermostats own control? Correct?

@matti
From what you say, you want the second working situation:

  1. External sensor
    In this mode the thermostat doesn’t take in consideration the internal sensor.
    Thus, the room_temp is irrelevant.
    current_temperature = external_temp , that is, the temperature read by the external sensor (the sensor situated outside the thermostat and linked to the connector found at the back of the thermostat)
    target_temperature is the temperature you set in manual mode or taken from the schedule in auto mode
    The thermostat tries to bring the current_temperature = external_temp to the target_temperature (taking into account the hysteresis).
    That means, it opens the valve until it gets there and then closes the valve.
    Independently, if the current_temperature = external_temp reaches the external_limit_temp it closes the valve, no matter what.

I didn’t check clemenTal version, if you use that one.
I know for sure that my version is right.
If you select external sensor, the hysteresis is done based of that external sensor reading.
Also, external limit temperature acts as a overheating protection (if reached, it shuts off the relay no matter what).

Cheers,
us

Well, yes and no. There are two modes:
Mode “Eco” means Home Assistant will take control of your thermostat using PID algorithm. All controls made via thermostat will reset HomeAssistant thermostat mode to Manual/Auto.
Mode “Auto/Manual” means that Home Assistant will not control thermostat, only update temperature sensor state and set target temperature on thermostat. Changing target temperature / mode via thermostat will set apropriate states on Home Assistant side.

I wrote this component to be able use PID algorithm or use native thermostat algorithms if needed.

Hi guys
Sorry i’m pretty new to home assistant but i’m doing my best.
I’m tryng to control my beok thermostate but i had no luck. This is what i did:

  • Create a brand new virtualbox image with the one supplied in home assistant
  • updated it to the last home assistant version 0.91.3
  • created a custom_config/ directory under my config directory
  • created a broadlink directory under custom_config
  • downloaded the broadlink.py and init.py from the above link and moved it to their directory
  • edited the config file whit my thermostate info.

So i assume i’ve done everything in the right way, but when i check my conf i get this error:

File “”, line 219, in _call_with_frames_removed
File “/config/custom_components/broadlink/init.py”, line 7

^

SyntaxError: invalid syntax

Anyone can help me? Thanks to everyone for this wonderful comunity

i was using the component but after update to 0.91.3 it stop working. climate.broadlink not found.

Checked on https://ru.aliexpress.com/item/Beok-TGR87-Wi-Fi-16A/32933138700.html - works perfectly!

In fhem, there is a module to communicate with the thermostat directly. I tried to kinda understand it, but it’s really hard to understand imo. It’s using the broadlink stuff too, but to communicate with it directly.

after updating hassio, i’m having this errors:

Platform not found: climate.broadlink
Unable to find platform broadlink. Search path was limited to path of component: homeassistant.components

i have this folder
\hassio\config\custom_components\broadlink

in this folder, I’ve copied this files:
__init__.py
climate.py

in my configuration.yaml I have

climate:
   - platform: broadlink
     friendly_name: Boiler
     mac: "34:EA:xx:xx:xx:xx"
     host: 192.168.1.123

what I’m doing wrong?

I’ve not got the MAC address in speech marks and i’m running 0.91.2

i had the configured mac like that (with quotation marks) forever and it always worked.
i think is related to changes on how custom_components are loaded in hassio

Hi, I have an issue since day one of using this component, in previous and current version.
Every time I restart home assistant (quite frequent since I’m adding bits and pieces to my config), the thermostats time gets set one day before the current date. The time remains correct, but the day of the week is always moved one day back.
I haven’t found the reason, is it possible to call a service to set the correct time and date in an automation at the start of home assistant?

thanks

@gaggio
Hi,
There’s an error in clementTal’s code.

def set_time(self):
    try:
        device = self.connect()
        if device.auth():
            now = datetime.now()
            device.set_time(now.hour, now.minute, now.second, now.weekday())
    except timeout:
        _LOGGER.error("set_schedule timeout")

The now.weekday starts with 0 for Sunday.
The device’s weekday starts with 1 for Monday. Thus, Sunday is actually 7.
See:

file climate.py

async def async_set_time_now(self):
    """Set device time to system time."""
    clock_weekday = int(dt_util.as_local(dt_util.now()).strftime('%w'))
    if clock_weekday == 0:
        clock_weekday = 7
    clock_hour = int(dt_util.as_local(dt_util.now()).strftime('%H'))
    clock_min = int(dt_util.as_local(dt_util.now()).strftime('%M'))
    clock_sec = int(dt_util.as_local(dt_util.now()).strftime('%S'))
    await self._try_command(
        "Error in set_time", 
        self._hysen_device.set_time, 
        clock_hour, 
        clock_min, 
        clock_sec, 
        clock_weekday)

Cheers,
us

Ha, I’ve just spotted that on mine as well !
Tho I don’t use the timer function on the thermostat at all