mairas / hysen Goto Github PK
View Code? Open in Web Editor NEWHome-assistant support for Broadlink Hysen thermostat controllers
License: Apache License 2.0
Home-assistant support for Broadlink Hysen thermostat controllers
License: Apache License 2.0
Hello,
I am getting the below error
Platform error climate.hysen - cannot import name 'ClimateEntityFeature' from 'homeassistant.components.climate.const' (/usr/src/homeassistant/homeassistant/components/climate/const.py)".
Any idea please? Thank you
--
Versions
Configuration
climate:
Hello,
I have 7 broadlink wifi thermostats at home with Home Assistant.
I am getting the following error and the thermostat is unavailable. Can someone please help? I am on Home Assistant 0.100.2. Thank you.
2019-12-13 04:51:02 ERROR (SyncWorker_14) [custom_components.hysen.climate] Failed to get Data from Broadlink Hysen Device:climate.bathroom_uf,:('broadlink_response_error', 65529)
climate:
Hi, every time I try to set loop_mode
to a value (0, 1 or 2) it resets the value of auto_mode
to 1
.
I tried with the "Beok" app and it works fine, but if I change loop_mode
via Home Assistant, auto_mode resets to 1
.
From my tests I understand that "auto_mode = (loop_mode + 1)
" but I can't go beyond that.
So if i set loop_mode
via Beok app to:
auto_mode
change to 1
auto_mode
change to 2
auto_mode
change to 3
Instead via Home Assistant Services [hysen_set_advanced] the auto_mode
always remaing to 1
.
service: climate.hysen_set_advanced
data:
entity_id: climate.termostato
loop_mode: 2
In the Climate.py file on line 1199 I can find ((loop_mode + 1) << 4) + auto_mode
and it seems to follow my thoughts...
Also, I didn't find the service to forcibly change the value of auto_mode.
sfw_version: 2.3.1
Thanks in advance
Dear, each time I restart home assistant I obtain some errors, but after that all works.
Can you fix it?
Thanks
home-assistant | EXCEPTION(calculate): list index out of range
home-assistant | EXCEPTION(calculate): list index out of rangeEXCEPTION(calculate): list index out of range
home-assistant |
home-assistant | 2019-02-20 10:06:20 WARNING (SyncWorker_3) [custom_components.climate.hysen] Broadlink Hysen Device Clock Sync Success....
home-assistant | 2019-02-20 10:06:20 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.cameretta fails
home-assistant | Traceback (most recent call last):
home-assistant | File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state
home-assistant | await self.async_device_update()
home-assistant | File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update
home-assistant | await self.hass.async_add_executor_job(self.update)
home-assistant | File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
home-assistant | result = self.fn(*self.args, **self.kwargs)
home-assistant | File "/config/custom_components/climate/hysen.py", line 452, in update
home-assistant | self._HysenData = self._broadlink_device.get_full_status()
home-assistant | File "/usr/local/lib/python3.6/site-packages/broadlink/init.py", line 648, in get_full_status
home-assistant | payload = self.send_request(bytearray([0x01,0x03,0x00,0x00,0x00,0x16]))
home-assistant | File "/usr/local/lib/python3.6/site-packages/broadlink/init.py", line 612, in send_request
home-assistant | request_payload.append(crc & 0xFF)
home-assistant | TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'
home-assistant | 2019-02-20 10:06:21 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.bagno fails
Should be solved in broadlink
instead of the HA component.
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 221, in async_update_ha_state
await self.async_device_update()
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 349, in async_device_update
await self.hass.async_add_executor_job(self.update)
File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
future.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/homeassistant/.homeassistant/custom_components/hysen/climate.py", line 858, in update
self._current_operation = STATE_UNAVAILABLE
File "/srv/homeassistant/lib/python3.5/site-packages/broadlink/__init__.py", line 648, in get_full_status
payload = self.send_request(bytearray([0x01,0x03,0x00,0x00,0x00,0x16]))
File "/srv/homeassistant/lib/python3.5/site-packages/broadlink/__init__.py", line 612, in send_request
request_payload.append(crc & 0xFF)
TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'
Hi,
This is more broadlink-library issue, but it's easily fixable in the hysen-climate device ;)
For more flexibility, the week_day & week_end attribute that is returned should be JSON compliant. This is not the case in the broadlink-library since they use single quotes instead of double quotes.
You can fix this by changing line 657 & 658 in climate.py from
attr['week_day'] = str(self._week_day)
attr['week_end'] = str(self._week_end)
to
attr['week_day'] = str(self._week_day).replace("'",'"')
attr['week_end'] = str(self._week_end).replace("'",'"')
After doing so, you get alot more flexibility for getting/setting the schedule in HA.
Hello!
Sometimes I get this error:
2020-02-06 18:42:40 ERROR (MainThread) [custom_components.hysen.climate] Failed to connect to Broadlink Hysen device MAC:34:EA:xx:xx:xx:xx, IP:192.168.0.xx, Error:timed out
I am on version 0.105.1.
The app is working perfectly.
Configuration:
climate:
I hope you can help, and thank you for this component.
Hi, I just got my thermostat in the mail today (BEOK BOT306RF-WIFI) and it is working great (from a seperate VLAN with no outside access!).
Just wanted to point out that with the changes to climate 1.0 in HA 0.96 they also added the attribute HVAC_ACTION. This is used by some other components/lovelace cards (the simple thermostat for example).
As a warning, I'm not a programmer and just installed HA today, so I could have done something wrong, but I implemented it like this:
In climate.py, I first imported the needed climate.consts:
--line42 from homeassistant.components.climate.const import (DOMAIN, SUPPORT_TARGET_TEMPERATURE,SUPPORT_PRESET_MODE, HVAC_MODE_OFF, HVAC_MODE_HEAT, HVAC_MODE_AUTO, PRESET_AWAY,
PRESET_NONE)
++line42 from homeassistant.components.climate.const import (DOMAIN, SUPPORT_TARGET_TEMPERATURE,SUPPORT_PRESET_MODE, HVAC_MODE_OFF, HVAC_MODE_HEAT, HVAC_MODE_AUTO, PRESET_AWAY,
PRESET_NONE, CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE)
Then I set the property:
@property
def hvac_action(self):
"""Return current HVAC action."""
if self._is_heating_active == 1:
return CURRENT_HVAC_HEAT
else:
return CURRENT_HVAC_IDLE
It might even be better to replace the is_heating_active attribute, but not my call.
With Version 0.92 I get the following error when checking my config:
Does this have something to do with the integration documented under https://developers.home-assistant.io/docs/en/creating_integration_file_structure.html ?
So, I am using your plugin for quite a while now and it is working perfect.
But I have an issue with the time on the thermostat. The time is running slightly off in a couple of days.
In the Room Heat app there is an option to sync the time from your phone to the thermostat.
Now I was wondering if it is possible to build a time sync in the addon. So that you can create an automation to sync the time once in a while.
Then I can automate this and the time issue is fixed.
Hysen_Climate_Device'>) implements HVACMode(s): auto, heat, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/mairas/hysen/issues
I got errors on my HA log, and the thermostat is not available. A power cycle of the thermostat followed by a restart of HA seem to work for a couple of minutes after start to fail again.
Errors:
Logger: custom_components.hysen.climate
Source: custom_components/hysen/climate.py:948
Integration: hysen
First occurred: 17:15:17 (31 occurrences)
Last logged: 18:15:23
Failed to get Data from Broadlink Hysen Climate device more than 3 times :climate.termostat_menjador,:('broadlink_response_error: ', 'The device is offline')
Logger: homeassistant.helpers.entity
Source: helpers/entity.py:477
First occurred: 17:16:01 (92 occurrences)
Last logged: 18:16:41
Update of climate.termostat_menjador is taking over 10 seconds
HA information:
version | 2020.12.0 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
virtualenv | false |
python_version | 3.8.6 |
os_name | Linux |
os_version | 5.4.83 |
arch | x86_64 |
timezone | Europe/Madrid |
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
host_os | Home Assistant OS 5.8 |
---|---|
update_channel | stable |
supervisor_version | 2020.12.6 |
docker_version | 19.03.13 |
disk_total | 38.7 GB |
disk_used | 2.0 GB |
healthy | true |
supported | true |
board | ova |
supervisor_api | ok |
version_api | ok |
installed_addons | Terminal & SSH (8.10.0) |
dashboards | 3 |
---|---|
mode | auto-gen |
resources | 0 |
I get this error in the logs but it seems that it works OK...I don't have any other broadlink devices
ERROR (MainThread) [homeassistant.components.broadlink.config_flow] Unsupported device: 0x4ead. If it worked before, please open an issue at https://github.com/home-assistant/core/issues
2021-04-08 19:16:57 ERROR (MainThread) [homeassistant.components.broadlink.config_flow] Unsupported device: 0x4ead. If it worked before, please open an issue at https://github.com/home-assistant/core/issues
Hi, I have a Beok tol47 wifi (I set it with Tuya app) with a static IP address.
I add this code in configuration.yaml (with the true mac found in Tuya app) and I have no errors.
climate:
I have a friend with the same device who uses this integration (both downloaded from HACS).
But I can't find the entity in the list... Any ideas?
(and the Broadlink integration doesn't work...)
Thank you
I get error: ERROR (SyncWorker_5) [custom_components.hysen.climate] Failed to get Data from Broadlink Hysen Device:climate.main_thermostat,:No module named 'PyCRC'
.
Running Home Assistant 0.107.7
Supervisor 213
Log Details (ERROR)
Logger: custom_components.hysen.climate
Source: custom_components/hysen/climate.py:891
First occurred: 8:53:42 PM (3 occurrences)
Last logged: 8:54:04 PM
Failed to get Data from Broadlink Hysen Device:climate.main_thermostat,:No module named 'PyCRC'
Hysen stopped working after latest update:
Logger: homeassistant.components.climate
Source: components/climate/init.py:220
Integration: Climate (documentation, issues)
First occurred: 11:48:37 PM (2 occurrences)
Last logged: 11:48:37 PM
Error adding entities for domain climate with platform hysen
Error while setting up hysen platform for climate
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 619, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 810, in add_to_platform_finish
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 533, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 571, in _async_write_ha_state
state = self._stringify_state(available)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in _stringify_state
if (state := self.state) is None:
File "/usr/src/homeassistant/homeassistant/components/climate/init.py", line 220, in state
return HVACMode(self.hvac_mode).value
File "/usr/local/lib/python3.9/enum.py", line 384, in call
return cls.new(cls, value)
File "/usr/local/lib/python3.9/enum.py", line 702, in new
raise ve_exc
ValueError: 'unavailable' is not a valid HVACMode
Hi,
So, as the title says, clock is no longer syncing. At first I thought it was a Daylight Saving Time issue since I noticed it yesterday, but now I'm not sure anymore... It's possible it hasn't been updating for a while now.
Judging by the block of code that does the daily update, it shouldn't be affected by DST since it uses the datetime library:
hysen/custom_components/hysen/climate.py
Lines 956 to 968 in 538e191
bash-5.0# python -c "import datetime; import time; print(datetime.time(hour=3))"
03:00:00
bash-5.0# python -c "import datetime; import time; print(datetime.datetime.now().time())"
11:11:53.524855
So line 963 should be ok.
I'll dive a bit deeper today/tonight and update here. Just posting the issue in case anyone noticed the same and might already have a solution 😉
Hello,
Thank you for this component!
I have just installed the latest version from the master branch and I can't connect to 3 of my thermostats.
I have 4 Beok/Floureon thermostats on my config file as follow, only climate.parents_uf is available in Home Assistant. What am I doing wrong?
climate:
2020-06-21 21:20:12 ERROR (MainThread) [custom_components.hysen.climate] Failed to connect to Broadlink Hysen device MAC:34:EA:XX:XX:XX:XX, IP:192.168.30.167, Error:[Errno 9] Bad file descriptor
2020-06-21 21:20:13 ERROR (MainThread) [custom_components.hysen.climate] Failed to connect to Broadlink Hysen device MAC:34:EA:XX:XX:XX:XX, IP:192.168.30.73, Error:[Errno 9] Bad file descriptor
2020-06-21 21:20:14 ERROR (MainThread) [custom_components.hysen.climate] Failed to connect to Broadlink Hysen device MAC:34:EA:XX:XX:XX:XX, IP:192.168.30.38, Error:[Errno 9] Bad file descriptor
Thank you
After setting up the integration using HACS with only MAC and IP modification according my settings, sensors appear unavailable.
Hi
Just upgraded to home-assistant 0.96.0 and get this message on config test:
Failed config
General Errors:
- Platform not found: climate.hysen
Successful config (partial)
1
Config which has worked and not changed for a long time:
- platform: hysen
scan_interval: 15
devices:
kjellerbad:
name: Kjellerbad
host: 192.168.1.25
mac: '34:ea:34:7a:e7:fe'
target_temp_default: 25
target_temp_step: 1
sync_clock_time_per_day: True
#current_temp_from_sensor_override: 0 # if this is set to 1 always use the internal sensor to report current temp, if 1 always use external sensor to report current temp.
update_timeout: 5
Did a git pull to latest version. No change.
After updating to Home Assistant 2021.12 this warning appears in logs:
Logger: homeassistant.helpers.entity
Source:helpers/entity.py:549 First
occurred: 20:25:57 (1 occurrences)
Last logged: 20:25:57Entity climate.termostato (<class 'custom_components.hysen.climate.HASS_Hysen_Climate_Device'>) implements device_state_attributes. Please report it to the custom component author.
As I read, it's necessary to change 'device_state_attributes' with 'extra_state_attributes'
Logger: custom_components.hysen.climate
Source: custom_components/hysen/climate.py:547
Integration: hysen (documentation, issues)
First occurred: 11:16:37 PM (2 occurrences)
Last logged: 11:16:37 PM
Failed to Authenticate with Broadlink Hysen Climate device:climate.beok_salon , ('broadlink_response_error: ', 'The device is offline')
Failed to add Broadlink Hysen Climate device:beok_salon @192.168.1.130, C8:F7:42:FA:: , to HA
Version: 028ad34
Configuration YAML
climate:
I have 4 devices and realized that the device clock differs by about 5 minutes between them.
Do you know if it is possible to set the device clock via API?
Hi
I'm on latest version. I sometimes get these errors:
Mar 01 09:11:22 home-assistant hass[6262]: 2019-03-01 09:11:22 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Mar 01 09:11:22 home-assistant hass[6262]: Traceback (most recent call last):
Mar 01 09:11:22 home-assistant hass[6262]: File "/root/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/service.py", line 289, in _handle_service_pl
atform_call
Mar 01 09:11:22 home-assistant hass[6262]: await getattr(entity, func)(**data)
Mar 01 09:11:22 home-assistant hass[6262]: File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
Mar 01 09:11:22 home-assistant hass[6262]: result = self.fn(*self.args, **self.kwargs)
Mar 01 09:11:22 home-assistant hass[6262]: File "/root/.homeassistant/custom_components/hysen/climate.py", line 673, in turn_off
Mar 01 09:11:22 home-assistant hass[6262]: self._broadlink_device.set_power(HYSEN_POWEROFF)
Mar 01 09:11:22 home-assistant hass[6262]: File "/root/homeassistant/lib/python3.6/site-packages/broadlink/init.py", line 725, in set_power
Mar 01 09:11:22 home-assistant hass[6262]: self.send_request(bytearray([0x01,0x06,0x00,0x00,remote_lock,power]) )
Mar 01 09:11:22 home-assistant hass[6262]: File "/root/homeassistant/lib/python3.6/site-packages/broadlink/init.py", line 616, in send_request
Mar 01 09:11:22 home-assistant hass[6262]: response = self.send_packet(0x6a, request_payload)
Mar 01 09:11:22 home-assistant hass[6262]: File "/root/homeassistant/lib/python3.6/site-packages/broadlink/init.py", line 305, in send_packet
Mar 01 09:11:22 home-assistant hass[6262]: response = self.cs.recvfrom(2048)
Mar 01 09:11:22 home-assistant hass[6262]: socket.timeout: timed out
Mar 01 09:12:23 home-assistant hass[6262]: 2019-03-01 09:12:23 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Mar 01 09:12:23 home-assistant hass[6262]: Traceback (most recent call last):
Mar 01 09:12:23 home-assistant hass[6262]: File "/root/homeassistant/lib/python3.6/site-packages/homeassistant/helpers/service.py", line 289, in _handle_service_pl
atform_call
Since it says timeout, I'm guessing the hysen doesn't reply. Should this be handled better instead of a crash?
After update Home Assistant (Hassio) from 0.108.5 to 0.108.6 in log happens the next error:
Logger: custom_components.hysen.climate
Source: custom_components/hysen/climate.py:891
Failed to get Data from Broadlink Hysen Device:climate.main_thermostat,:name ‘calculate_crc16’ is not defined
Hello, how can I set a schedule in the thermostat via hysen_set_time schedule if loop_mode mode is set: 2 (1234567) without weekend_period?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.