Coder Social home page Coder Social logo

eq3btsmart's People

Contributors

bvweerd avatar dbuezas avatar eulemitkeule avatar ignisf avatar lkempf avatar toalex77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eq3btsmart's Issues

Issues with Bluetooth in Raspberry Pi

Hi,
The thermostats are not working on my RPI3 setup. Sometimes 3 or 4 connect, but usually none of them work.
The same setup (RPI and thermostats) worked fine with HA prior to 2022.7.

I see the following in my logs:

Logger: custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:124
Integration: dbuezas EQ3 Bluetooth Smart Thermostats
First occurred: 12 listopada 2022 14:08:49 (5725 occurrences)
Last logged: 13:31:53

[Łazienka mała] Broken connection [retry 1/1]: Can't find device
[Salon okno małe] Broken connection [retry 1/1]: Salon okno małe - 00:1A:22:09:B9:D5 -> /org/bluez/hci0: Failed to connect:
[Korytarz] Broken connection [retry 1/1]: Korytarz - 00:1A:22:0B:A1:B3 -> /org/bluez/hci0: Failed to connect:
[Kacper] Broken connection [retry 1/1]: Kacper - 00:1A:22:0B:7B:2D -> /org/bluez/hci0: Failed to connect:
[Salon okno duże] Broken connection [retry 1/1]: Salon okno duże - 00:1A:22:09:94:30 -> /org/bluez/hci0: Failed to connect:

And then:

Logger: custom_components.dbuezas_eq3btsmart.climate
Source: custom_components/dbuezas_eq3btsmart/climate.py:369
Integration: dbuezas EQ3 Bluetooth Smart Thermostats
First occurred: 12 listopada 2022 14:08:49 (5725 occurrences)
Last logged: 13:31:53

[Łazienka mała] Error updating, will retry later: Can't find device
[Salon okno małe] Error updating, will retry later: Salon okno małe - 00:1A:22:09:B9:D5 -> /org/bluez/hci0: Failed to connect:
[Korytarz] Error updating, will retry later: Korytarz - 00:1A:22:0B:A1:B3 -> /org/bluez/hci0: Failed to connect:
[Kacper] Error updating, will retry later: Kacper - 00:1A:22:0B:7B:2D -> /org/bluez/hci0: Failed to connect:
[Salon okno duże] Error updating, will retry later: Salon okno duże - 00:1A:22:09:94:30 -> /org/bluez/hci0: Failed to connect:

Finally

Logger: homeassistant.components.bluetooth.scanner
Source: components/bluetooth/scanner.py:364
Integration: Bluetooth ([documentation](https://www.home-assistant.io/integrations/bluetooth), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+bluetooth%22))
First occurred: 14 listopada 2022 08:59:37 (57 occurrences)
Last logged: 13:32:46

hci0 (B8:27:EB:53:6F:2B): Error stopping scanner: [org.bluez.Error.InProgress] Operation already in progress
hci0 (B8:27:EB:53:6F:2B): Error stopping scanner: [org.bluez.Error.NotReady] Resource Not Ready
Logger: bluetooth_auto_recovery.recover
Source: components/bluetooth/util.py:112
First occurred: 14 listopada 2022 09:01:40 (47 occurrences)
Last logged: 13:32:56

Bluetooth adapter hci0 could not be reset due to timeout
Bluetooth adapter hci0 successfully turned back ON

and

Logger: homeassistant.components.bluetooth.scanner
Source: components/bluetooth/scanner.py:322
Integration: Bluetooth ([documentation](https://www.home-assistant.io/integrations/bluetooth), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+bluetooth%22))
First occurred: 15 listopada 2022 04:42:19 (9 occurrences)
Last logged: 13:32:56

hci0 (B8:27:EB:53:6F:2B): Failed to restart Bluetooth scanner: hci0 (B8:27:EB:53:6F:2B): Failed to start Bluetooth: [org.bluez.Error.NotReady] Resource Not Ready
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/bluetooth/scanner.py", line 241, in _async_start
    await self.scanner.start()  # type: ignore[no-untyped-call]
  File "/usr/local/lib/python3.10/site-packages/bleak/__init__.py", line 156, in start
    await self._backend.start()
  File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/scanner.py", line 191, in start
    self._stop = await manager.active_scan(
  File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/manager.py", line 357, in active_scan
    assert_reply(reply)
  File "/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/utils.py", line 20, in assert_reply
    raise BleakDBusError(reply.error_name, reply.body)
bleak.exc.BleakDBusError: [org.bluez.Error.NotReady] Resource Not Ready

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/bluetooth/scanner.py", line 374, in _async_scanner_watchdog
    await self._async_start()
  File "/usr/src/homeassistant/homeassistant/components/bluetooth/scanner.py", line 322, in _async_start
    raise ScannerStartError(
homeassistant.components.bluetooth.scanner.ScannerStartError: hci0 (B8:27:EB:53:6F:2B): Failed to start Bluetooth: [org.bluez.Error.NotReady] Resource Not Ready

Failed pairing none type

I have a error when i want to integrate my eq3. Im on Home Assistant Core 2022.11.3 with a Raspberry pi 4 and have 3 eq3 and 2 of them are not working. And it looks like this.

image

And in the logs are this errors for 2 thoermostat:


Logger: custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:111
Integration: dbuezas EQ3 Bluetooth Smart Thermostats 
First occurred: 01:53:29 (1043 occurrences) 
Last logged: 10:52:19

[Schlafzimmer] Failed paring: 'NoneType' object has no attribute 'call'
[Schlafzimmer] Failed paring: [org.bluez.Error.AuthenticationFailed] Authentication Failed
[Wohnzimmer] Failed paring: [org.bluez.Error.AuthenticationFailed] Authentication Failed

And this for the other one:

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:121
Integration: dbuezas EQ3 Bluetooth Smart Thermostats 
First occurred: 01:53:29 (1043 occurrences) 
Last logged: 10:52:19

[Wohnzimmer] Broken connection [retry 8/10]: [org.bluez.Error.Failed] Operation failed with ATT error: 0x0e (Unlikely Error)
[Wohnzimmer] Broken connection [retry 9/10]: [org.bluez.Error.Failed] Operation failed with ATT error: 0x0e (Unlikely Error)
[Wohnzimmer] Broken connection [retry 10/10]: [org.bluez.Error.Failed] Operation failed with ATT error: 0x0e (Unlikely Error)
[Wohnzimmer] Broken connection [retry 1/1]: [org.bluez.Error.Failed] Operation failed with ATT error: 0x0e (Unlikely Error)
[Schlafzimmer] Broken connection [retry 1/1]: [org.bluez.Error.Failed] Operation failed with ATT error: 0x0e (Unlikely Error)

I think it's a firmware problem because the one thermostat that works has a firmware update that I haven't done yet and the 2 others are on the current firmware.

Ok solved the problem with pair over the bluetoothctl tool.

No thermostats after Core Update Online

Since the last update to the new core version, my thermostats are no longer visible or are shown as inactive

The following error messages are given to me according to the log

Error setting up entry Bad for dbuezas_eq3btsmart
Error setting up entry Wohnzimmer for dbuezas_eq3btsmart
Error setting up entry Schlafzimmer for dbuezas_eq3btsmart
Error setting up entry Küche for dbuezas_eq3btsmart

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
File "/config/custom_components/dbuezas_eq3btsmart/init.py", line 39, in async_setup_entry
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
AttributeError: 'ConfigEntries' object has no attribute 'async_setup_platforms'

Adding integration: {"message":"Invalid handler specified"}

First of all let me express my gratitude for your work, this is looking really great! I have a bunch of these eQ3 thermostats and currently they stopped working with the former integration due to Python Bluetooth framework issues. So I hope to get them back now.

I did create the custom_integrations/ folder and HomeAssist picks it up obviously, I get this warning on startup:

2023-01-21 16:38:26.806 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration dbuezas_eq3btsmart which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

To be expected I guess.

But when I try to access the integration pressing "+ add integration" and picking it by name I get an error:

Fehler
Der Konfigurationsfluss konnte nicht geladen werden: {"message":"Invalid handler specified"}

Sorry, it's in German, in English this would say something like "Error: Could not load configuration flow: {"message":"Invalid handler specified"}"

I have no idea whatsoever what to do with this message and/or how to diagnose and fix it - I have 30 years of C experience but little to no Python and even less HA hacking, sorry :(

FYI I just upgraded to HA release 2023.1 before doing this.

Thank you!

KeyError: props

also a lot of those in the logs when using via Bluetooth Proxy

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/dbuezas_eq3btsmart/binary_sensor.py:89
Integration: eQ-3 Bluetooth Smart Thermostats (dbuezas) (documentation, issues)
First occurred: 12:19:02 PM (1123 occurrences)
Last logged: 4:08:11 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 553, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 610, in _async_write_ha_state
attr.update(self.extra_state_attributes or {})
File "/config/custom_components/dbuezas_eq3btsmart/binary_sensor.py", line 89, in extra_state_attributes
return json.loads(json.dumps(details["props"], default=json_serial))
KeyError: 'props'

Feature Request: A configurable switch for heating signal

Would it be possible to add a way to configure a switch that would be turned on every time the thermostat is in "Heating" state? And turned off otherwise? Ideally... maybe base it on the valve state 10% and configure a threshold when it turns on / off.

I'm looking for ways to redo my integrations with eq3 and that would probably make it really easy for me.

There are ways around it, of course, but it would save me a few automations ;).

Sometimes valves are auto discovered twice

It detected all of my valves, but one of them showed up twice. Let me know what I can provide to help you troubleshoot this (not sure if it's even worth troubleshooting, just wanted to report)

Device not found error

Problem
Hass does not connect to the thermostat; logs show "device not found" error.

Pairing via CLI worked. Can connect to the device (see screenshot)

image

Logs (debug mode)

2023-02-02 23:25:01.979 ERROR (MainThread) [custom_components.dbuezas_eq3btsmart.climate] [eq3_living_room] Error updating: Device not found
2023-02-02 23:25:24.771 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/dbuezas_eq3btsmart/sensor.py", line 122, in fetch_serial
    await self._thermostat.async_query_id()
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 160, in async_query_id
    await self._conn.async_make_request(value)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 174, in async_make_request
    await self._async_make_request_try(value, retries)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 213, in _async_make_request_try
    raise ex
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 186, in _async_make_request_try
    conn = await self.async_get_connection()
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 94, in async_get_connection
    raise Exception("Device not found")
Exception: Device not found

Software versions
dbuezas_eq3btsmart: v5.0.1
HACS: 1.30.1
Home Assistant 2023.2.0
Supervisor 2023.01.1
Operating System 9.5
Device: raspberry pi 3b+

Integration options
image

current_temperature doesn't update after setting mode or preset

current_temperature is (mis)used to give quick feedback and remember what temperature the user wants to set.
If setting it fails it will be retried on the next update, but if the user changes the temp with the thermostat's physical wheel, then the current_temperature will be reset to whatever the new target_temperature is.

Bug: if one sets mode to OFF, the current temperature is not updated to 4.5°

Connection with usb bt dongle

Logger: custom_components.dbuezas_eq3btsmart.climate
Source: custom_components/dbuezas_eq3btsmart/climate.py:369
Integration: dbuezas EQ3 Bluetooth Smart Thermostats
First occurred: 18:38:03 (89 occurrences)
Last logged: 22:18:06

[Termo_Cameretta] Error updating, will retry later: [org.bluez.Error.NotPermitted] Not paired
[Thermo_Cameretta] Error updating, will retry later: [org.bluez.Error.NotPermitted] Not paired
[Thermo_Cameretta] Error updating, will retry later: Thermo_Cameretta - 00:1A:22:16:F7:09 -> /org/bluez/hci1: Failed to connect: [org.bluez.Error.Failed] le-connection-abort-by-local: Interference/range; External Bluetooth adapter w/extension may help; Extension cables reduce USB 3 port interference
[Thermo_Cameretta] Error updating, will retry later: Thermo_Cameretta - 00:1A:22:16:F7:09 -> /org/bluez/hci1: Failed to connect:
[Thermo_Cameretta] Error updating, will retry later: Thermo_Cameretta - 00:1A:22:16:F7:09 -> /org/bluez/hci1: Failed to connect: failed to discover services, device disconnected

Error updating: Characteristic d0e8434d-cd29-0996-af41-6c90f4e0eb2a not found!

Hi,

Yesterday I had numerous errors with the TRVs at v1.20. After updating I am left with just a few annoying errors, one is:

Error updating: Characteristic d0e8434d-cd29-0996-af41-6c90f4e0eb2a not found!

2023-01-28 12:17:18.175 DEBUG (MainThread) [custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection] [TRV_Hal] Connected 2023-01-28 12:17:18.185 DEBUG (MainThread) [custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection] [TRV_Hal] Paired: True 2023-01-28 12:17:20.385 DEBUG (MainThread) [custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection] [TRV_Hal] Broken connection [retry 2/14]: Characteristic d0e8434d-cd29-0996-af41-6c90f4e0eb2a not found! Traceback (most recent call last): File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 190, in _async_make_request_try await conn.start_notify(PROP_NTFY_UUID, self.on_notification) File "/usr/local/lib/python3.10/site-packages/bleak/__init__.py", line 639, in start_notify raise BleakError(f"Characteristic {char_specifier} not found!") bleak.exc.BleakError: Characteristic d0e8434d-cd29-0996-af41-6c90f4e0eb2a not found!

TRV is at v1.46
HA 2023.1.7
eq3btsmart 5.0.1

I'm using a USB BTdongle + 1 esp proxy, but for this TRV the proxy is out of range.

In the cl tool bluetoothctl I can see at least all TRV info and connection status

What and how can I provide or test what the root cause is?

Problem with one device (Characteristic 1056 not found!)

Hi @dbuezas ,

Thank you very much for the integration!!

I have got 3 of these EQ3 valves and it's working for two of them but it's not connecting to one of the devices and the following errors are showing:

Logger: homeassistant.helpers.entity
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:97
Integration: dbuezas EQ3 Bluetooth Smart Thermostats
First occurred: 18 d’octubre de 2022, a les 23:14:42 (114 occurrences)
Last logged: 01:30:03

Update for climate.eq3_salon2 fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 515, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 718, in async_device_update
    await task
  File "/config/custom_components/dbuezas_eq3btsmart/climate.py", line 388, in async_update
    await self._async_thermostat_update()
  File "/config/custom_components/dbuezas_eq3btsmart/climate.py", line 381, in _async_thermostat_update
    await self._thermostat.async_update()
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 239, in async_update
    await self._conn.async_make_request(PROP_WRITE_HANDLE, value)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 111, in async_make_request
    raise ex
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 97, in async_make_request
    await conn.start_notify(
  File "/usr/local/lib/python3.10/site-packages/bleak/__init__.py", line 546, in start_notify
    raise BleakError(f"Characteristic {char_specifier} not found!")
bleak.exc.BleakError: Characteristic 1056 not found!

I know the device is not the cause because it works ok with the bt-mqtt-gateway.

Target temperature should be displayed immediately

The current behaviour of the target temperature is the following: When the user sets a new target temperature via the home assistant UI, the temperature is sent to the thermostat. The target temperature UI control immediately resets and will only change to the new temperature after the thermostat has sent its new state message. This leads to undesirable behaviour since the user expects the target temperature he sets to be then displayed, and the current temperature to display this temperature once the thermostat has applied it.

Set away presets

I often miss the ability to tell all thermostats that I'll be out for xxx hours.
I think we could add presets for a bunch of intervals (e.g 1,2,4,8h, 1,2,4,7,14d, 1m) and the integration can then set the away time and away mode. This should also work for climate groups and would allow for a quick config.

The other option is to make an automation and trigger it with buttons.

Opinions?
How do you do this?

[EQ-3] Error updating: Device not found

I'm using an Esphome BT proxy with the following config:

esphome:
  name: office-bluetooth
  friendly_name: office-bluetooth

esp32:
  board: esp32dev
  framework:
    type: esp-idf

logger:

api:
  

ota:
  

wifi:
  

  ap:
    

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

I get entries in the HA logs like:

This error originated from a custom integration.

Logger: custom_components.dbuezas_eq3btsmart.climate
Source: custom_components/dbuezas_eq3btsmart/climate.py:326
Integration: eQ-3 Bluetooth Smart Thermostats (dbuezas) (documentation, issues)
First occurred: 15:30:10 (2 occurrences)
Last logged: 15:40:13

[EQ-3] Error updating: Device not found

I'm running HA in K8S on a Raspberry PI 4.

Cannot lock TRV with automation in HA

id: '1676912753979'
alias: LOCK TRVs
description: Lock all TRVs
trigger: []
condition: []
action:
  - device_id: bb0e4c4fd82ddb9358ea572131cd4f7d
    domain: lock
    entity_id: lock.trv_living_room_big_locked
    type: lock
  - device_id: 88a3ee930c6a5b8c0018b98d70705a7a
    domain: lock
    entity_id: lock.trv_living_room_small_locked
    type: lock
  - device_id: d005c810c8d5f8e17fa5f252e1005e12
    domain: lock
    entity_id: lock.trv_corridor_locked
    type: lock
  - device_id: d694c8dfe5c0cd59da4530a2a2394631
    domain: lock
    entity_id: lock.trv_wc_locked
    type: lock
  - device_id: ebd2877034e66b152803607c71e676e5
    domain: lock
    entity_id: lock.trv_office_locked
    type: lock
  - device_id: 2f180db4fe772e6cd034a1ad835b8c06
    domain: lock
    entity_id: lock.trv_bedroom_locked
    type: lock
  - device_id: 56177077ef7d1b9175660f2d2eb5f85d
    domain: lock
    entity_id: lock.trv_bathroom_locked
    type: lock
mode: single

Trace gives the following:
image

Filter or ignore some bluetooth devices

Hi! Integration finds probably all local bt devices, not just eq3 valves.
...so..is it possible to add filtering to autodiscovery
or/and an ignore option for devices already found? I only have "documentation" available in the options.

discover

Cannot add repo in HACS

On adding this integration in HACS as per instructions in the README, it says that the repo could not be found. Looks like a leading slash in the URL could be the problem?

image

Afterwards, the error "Repository David Buezas /https://github.com/dbuezas/eq3btsmart not found" is displayed.

BT Proxy extremely unreliable

Hi folks,
first - thanks for the awesome integration. It works extremely well with devices connected to my primary BT dongle.
I have two thermostats that are further away and connected through an esphome BT proxy (D1 ESP32 Mini). Unfortunately the latter have extreme connection issues and constantly disconnect as you can see below (nr. 2 and 4)
image
My esp home config is:

substitutions:
  name: esp32-bluetooth-proxy-bb0438
  friendly_name: Bluetooth Proxy bb0438
packages:
  esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: ***


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password


esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:
  active: true

and the logs show the following.

[09:58:31][D][esp32_ble_tracker:215]: Pausing scan to make connection...
[09:58:31][I][esp32_ble_client:069]: [1] [00:1A:22:11:F4:32] 0x00 Attempting BLE connection
[09:58:32][I][esp32_ble_client:149]: [1] [00:1A:22:11:F4:32] Connected
[09:58:32][D][esp32_ble_tracker:266]: Starting scan...
[09:58:32][D][esp-idf:000]: E (18303) BT_L2CAP: slave connection parameters update failed, the parameters are out of range

[09:58:32][D][esp-idf:000]: E (18311) BT_APPL: service change write ccc failed

[09:58:32][W][bluetooth_proxy.connection:096]: [1] [00:1A:22:11:F4:32] Error writing char/descriptor at handle 0x430, status=5
[09:58:33][W][bluetooth_proxy:246]: [0] [00:1A:22:11:F4:B0] Connection already established
[09:58:33][W][bluetooth_proxy.connection:096]: [0] [00:1A:22:11:F4:B0] Error writing char/descriptor at handle 0x430, status=5
[09:58:33][W][bluetooth_proxy:246]: [0] [00:1A:22:11:F4:B0] Connection already established
[09:58:34][W][bluetooth_proxy.connection:096]: [0] [00:1A:22:11:F4:B0] Error writing char/descriptor at handle 0x430, status=5
[09:58:42][W][bluetooth_proxy:246]: [1] [00:1A:22:11:F4:32] Connection already established
[09:58:42][W][bluetooth_proxy.connection:096]: [1] [00:1A:22:11:F4:32] Error writing char/descriptor at handle 0x430, status=5
[09:58:43][W][bluetooth_proxy:246]: [1] [00:1A:22:11:F4:32] Connection already established
[09:58:43][W][bluetooth_proxy.connection:096]: [1] [00:1A:22:11:F4:32] Error writing char/descriptor at handle 0x430, status=5
[10:00:03][D][esp-idf:000]: W (109201) BT_APPL: gattc_conn_cb: if=3 st=0 id=3 rsn=0x16

[10:00:03][D][esp-idf:000]: W (109207) BT_APPL: gattc_conn_cb: if=4 st=0 id=4 rsn=0x16

[10:00:03][D][esp-idf:000]: W (109209) BT_APPL: gattc_conn_cb: if=5 st=0 id=5 rsn=0x16```
I researched a lot throughout the internet but could hardly find anything on these issues. Any ideas?

Can't pair eq3

Hi,

I still have a lot of problems with the eq3 valves with pairing.
With the original version eq3btsmart it still works without pairing.
Is there an option to use the module without pairing?

New devices discovered multiple times

Hi,
I have the following issue. Some CC-RT-BLE devices which were discovered appear multiple times on the list.
There is no way to ignore them or get rid of them. I don't want to configure them, because they are actually connected via other HAs in my house.
image

See 00:1A:22:0B:6C:4B appears multiple times on the list.

BT Proxy

Hi,

I see there is finally running functionality of BT Proxy. Is it working via Shelly Gen2 devices? I have Shelly Plus 1 PM which can work as a proxy for BT. Is it any way to pair Eq3 BLE with Shelly?

Exception: Device not found

Hello,

first of all thank you for your work in making this component. I have some issue in adding my devices in HASS. They worked until two days ago as I updated from the version 2022.04 to the latest stable, and they work if I add them to CalorBT app. I tried the whole procedure a couple of time for each device with the same result.

HASS: 2023.1.4 Docker
OS: RaspiOS on Raspberry 3B
Device MAC: 00:1A:22:16:C5:0D - last firmware version, the device is located 0.5-1 meter from the raspi.
dbuezas_eq3btsmart version: 4.0.1 from HACS

.... after deleting the devices from CalorBT, deactivating phone BT (just to be sure), factory reset of device, and pairing as described in the README.md:

bluetoothctl:

[bluetooth]# trust 00:1A:22:16:C5:0D
[CHG] Device 00:1A:22:16:C5:0D Trusted: yes
Changing 00:1A:22:16:C5:0D trust succeeded
[bluetooth]# pair 00:1A:22:16:C5:0D
Attempting to pair with 00:1A:22:16:C5:0D
[CHG] Device 00:1A:22:16:C5:0D Connected: yes
Request passkey
[agent] Enter passkey (number in 0-999999): [NEW] Primary Service (Handle 0x6db4)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0200
	00001801-0000-1000-8000-00805f9b34fb
	Generic Attribute Profile
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0200/char0210
	00002a05-0000-1000-8000-00805f9b34fb
	Service Changed
[agent] Enter passkey (number in 0-999999): [NEW] Descriptor (Handle 0xe4fc)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0200/char0210/desc0220
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
[agent] Enter passkey (number in 0-999999): [NEW] Primary Service (Handle 0x9b34)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0300
	0000180a-0000-1000-8000-00805f9b34fb
	Device Information
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0300/char0310
	00002a29-0000-1000-8000-00805f9b34fb
	Manufacturer Name String
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0300/char0320
	00002a24-0000-1000-8000-00805f9b34fb
	Model Number String
[agent] Enter passkey (number in 0-999999): [NEW] Primary Service (Handle 0xa30c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0400
	3e135142-654f-9090-134a-a6ff5bb77046
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0400/char0410
	3fa4585a-ce4a-3bad-db4b-b8df8179ea09
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0400/char0420
	d0e8434d-cd29-0996-af41-6c90f4e0eb2a
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Descriptor (Handle 0xe4fc)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/service0400/char0420/desc0430
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
[agent] Enter passkey (number in 0-999999): [NEW] Primary Service (Handle 0x7940)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/serviceff00
	9e5d1e47-5c13-43a0-8635-82ad38a1386f
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/serviceff00/charff01
	e3dd50bf-f7a7-4e99-838e-570a086c666b
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Descriptor (Handle 0xe4fc)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/serviceff00/charff01/descff03
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/serviceff00/charff04
	92e86c7a-d961-4091-b74f-2409e72efe36
	Vendor specific
[agent] Enter passkey (number in 0-999999): [NEW] Characteristic (Handle 0x006c)
	/org/bluez/hci0/dev_00_1A_22_16_C5_0D/serviceff00/charff06
	347f7608-2e2d-47eb-913b-75d4edc4de3b
	Vendor specific
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D UUIDs: 3e135142-654f-9090-134a-a6ff5bb77046
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D UUIDs: 9e5d1e47-5c13-43a0-8635-82ad38a1386f
[agent] Enter passkey (number in 0-999999): [CHG] Device 00:1A:22:16:C5:0D ServicesResolved: yes
[agent] Enter passkey (number in 0-999999): [DEL] Device 6C:AB:46:EF:5D:DC 6C-AB-46-EF-5D-DC
[...]
[agent] Enter passkey (number in 0-999999): XXXXXX
[DEL] Device 72:F3:0B:06:F4:B3 72-F3-0B-06-F4-B3
[DEL] Device 55:0E:51:55:CB:67 55-0E-51-55-CB-67
[CHG] Device 00:1A:22:16:C5:0D Paired: yes
Pairing successful
Agent registered
[CHG] Controller B8:27:EB:0E:A1:08 Pairable: yes
[bluetooth]# paired-devices
Device 00:1A:22:16:C9:EE CC-RT-BLE
Device 00:1A:22:16:C5:0D CC-RT-BLE
[bluetooth]# info 00:1A:22:16:C5:0D
Device 00:1A:22:16:C5:0D (public)
	Name: CC-RT-BLE
	Alias: CC-RT-BLE
	Paired: yes
	Trusted: yes
	Blocked: no
	Connected: no
	LegacyPairing: no
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
	UUID: Vendor specific           (3e135142-654f-9090-134a-a6ff5bb77046)
	UUID: Vendor specific           (9e5d1e47-5c13-43a0-8635-82ad38a1386f)

I have waited for about 30 minutes, but no autodiscover. Than I tried to add it manually. The device is not found.

homeassistant.log

2023-01-17 01:03:02.984 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/dbuezas_eq3btsmart/sensor.py", line 121, in fetch_serial
    await self._thermostat.async_query_id()
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 160, in async_query_id
    await self._conn.async_make_request(value)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 174, in async_make_request
    await self._async_make_request_try(value, retries)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 213, in _async_make_request_try
    raise ex
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 186, in _async_make_request_try
    conn = await self.async_get_connection()
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 94, in async_get_connection
    raise Exception("Device not found")
Exception: Device not found

Do someone has some suggestion?
Thanks in advance. Best,

Connection issue

Hi,

my HA is discovering some of EQ3 TRV but is say is offline and disconnected. When I press "connect" nothing happened. I tried to use manual pairing but my HA not support it.

Log cleanup: Pairing not available

There is a lot of those in the logs. Since we are not using pairing to use proxy - can this be removed?

This error originated from a custom integration.

Logger: custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:174
Integration: eQ-3 Bluetooth Smart Thermostats (dbuezas) (documentation, issues)
First occurred: 12:18:59 PM (864 occurrences)
Last logged: 4:08:23 PM

[Sypialnia] Failed paring: Pairing is not available in ESPHome.
[EQ3 Gabinet] Failed paring: Pairing is not available in ESPHome.
[EQ3 Rurkowy] Failed paring: Pairing is not available in ESPHome.
[EQ3 Gościnny] Failed paring: Pairing is not available in ESPHome.

Broken connection issue in log

Hi,

thank you for this integration!

It looks like it is working fine, but I have many errors in log like these:

[A-Zimmer] Broken connection [retry 1/14]: [org.bluez.Error.NotPermitted] Not paired
[A-Zimmer] Broken connection [retry 1/14]: A-Zimmer - 00:1A:22:08:BF:D6: Failed to connect: [org.bluez.Error.Failed] Software caused connection abort
[A-Zimmer] Broken connection [retry 2/14]: [org.bluez.Error.NotPermitted] Not paired
[A-Zimmer] Broken connection [retry 2/14]: A-Zimmer - 00:1A:22:08:BF:D6: Failed to connect: [org.bluez.Error.Failed] Software caused connection abort
[A-Zimmer] Broken connection [retry 3/14]: [org.bluez.Error.NotPermitted] Not paired

most only "1/14" , sometimes 2/14 and 3/14.

Is this "normal", or what can I do? Setting temperature is working fine...

Thanks!

BT Proxy: ESPHomeClient' object has no attribute '_device_path'

This is showing up in the logs all the time when using BTProxy only

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/dbuezas_eq3btsmart/sensor.py:178
Integration: eQ-3 Bluetooth Smart Thermostats (dbuezas) (documentation, issues)
First occurred: 12:19:02 PM (1122 occurrences)
Last logged: 4:08:11 PM

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 553, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 607, in _async_write_ha_state
state = self._stringify_state(available)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 572, in _stringify_state
if (state := self.state) is None:
File "/config/custom_components/dbuezas_eq3btsmart/sensor.py", line 178, in state
return self._thermostat._conn._conn._backend._device_path
AttributeError: 'ESPHomeClient' object has no attribute '_device_path'

[Fix Released] ESP32 BTProxies not working.

Hello,

Got a problem where the thermostats are not visible through ESP Home Bluetooth Proxy integration.
The Thermostats were successfully paired using the BT from the server, communicated, all good.
I them moved them away (only reachable through the ESPHome bluetooth_proxy) and they became unavailable.

I only have the "bluetooth_proxy:" added to the esphome yaml and use the Wemos D1 Mini (Wifi & BT). The BT Proxy works as other BT sensors connect and work.

I tried also adding the esp32_ble_tracker without any luck.

After update to 1.0.3 thermostats unavailable

After the last update to 1.0.3 version from 1.0.0 my thermostats became unavailable. My logs show multiple warnings:

"Logger: homeassistant.components.climate
Source: runner.py:119
Integration: Climate (documentation, issues)
First occurred: 20:11:07 (3 occurrences)
Last logged: 20:11:07

Setup of climate platform dbuezas_eq3btsmart is taking over 10 seconds."

"Logger: homeassistant.bootstrap
Source: bootstrap.py:441
First occurred: 20:11:40 (8 occurrences)
Last logged: 20:18:42

Waiting on integrations to complete setup: climate.dbuezas_eq3btsmart, climate.dbuezas_eq3btsmart_2, climate.dbuezas_eq3btsmart_3"

"Logger: custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection
Source: custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py:121
Integration: dbuezas EQ3 Bluetooth Smart Thermostats
First occurred: 20:12:32 (15 occurrences)
Last logged: 20:19:04

[Thermostat living room] Broken connection [retry 1/10]:
[Thermostat bathroom] Broken connection [retry 1/10]:
[Thermostat bedroom] Broken connection [retry 1/10]:"

"Logger: homeassistant.components.climate
Source: helpers/entity_platform.py:430
Integration: Climate (documentation, issues)
First occurred: 20:19:17 (3 occurrences)
Last logged: 20:19:17

Timed out adding entities for domain climate with platform dbuezas_eq3btsmart after 500s"

And one error:

"Logger: homeassistant
Source: helpers/entity.py:520
First occurred: 20:11:11 (18 occurrences)
Last logged: 20:19:17

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 520, in async_update_ha_state
raise NoEntitySpecifiedError(
homeassistant.exceptions.NoEntitySpecifiedError: No entity id specified for entity Thermostat bedroom"

BTProxy support

Hi.
Is there any special (per device) configuration required for esp32 bluetooth proxy to work with this integration?

I have both

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

and

bluetooth_proxy:
  active: true

setup on all my esps (3pcs) and half of my eq3 (those outside bt dongle range) are still not visible...

Getting new values from the device is very slow

When I initiate the change through HA - it works very fast and automatically pulls any changes from the Valve that happened in the meantime.

However, if I change the temperature on the device (not through Hassio) or... it updates Valve attribute after a while - those changes get to Hassio very very slow.

It doesn't seem really consistent, but once it took over 10 minutes. I run another test and it's now over 15 minutes and it still didn't pick up the changes.

Not sure if it's a bug or a feature, but it's a bit of a pain to deal with if you change the temperature on the physical valve and Hassio doesn't pick it up for a long time (in my case, it won't start the boiler until it picks those changes)

Connection Issues: Thermostats become unavailable randomly after HA OS update

I have 5 CC-RT-BLE-EQ thermostats, which have worked fine for many months now, thanks to your efforts. After updating to Home Assistant OS 10 two weeks ago, I have a lot of intermittent connection issues. I am using the built-in Bluetooth adapter from the Raspberry Pi 3B. The following error message comes up in the logs:

This error originated from a custom integration.

Logger: custom_components.dbuezas_eq3btsmart.climate
Source: custom_components/dbuezas_eq3btsmart/climate.py:135
Integration: eQ-3 Bluetooth Smart Thermostats (dbuezas) (documentation, issues)
First occurred: 18:33:25 (4 occurrences)
Last logged: 18:41:47

[kitchen] Error updating:

There is a traceback with error messages related to this integration:

Traceback (most recent call last):
File "/usr/local/lib/python3.10/asyncio/locks.py", line 214, in wait
await fut
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
return fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/config/custom_components/dbuezas_eq3btsmart/sensor.py", line 122, in fetch_serial
await self._thermostat.async_query_id()
File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 160, in async_query_id
await self._conn.async_make_request(value)
File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 164, in async_make_request
await self._async_make_request_try(value, retries)
File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 203, in _async_make_request_try
raise ex
File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 182, in _async_make_request_try
await asyncio.wait_for(
File "/usr/local/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

I have already fully rebooted and power-disconnected the Pi a few times, to no avail. According to the changelog, they updated the BlueZ package in Home Assistant OS 10:

Updated software packages
[...] The latest version of the Bluetooth package BlueZ 5.66 comes with various bug fixes for improved communication with Bluetooth devices. [...]

Here is my System Information report:

## System Information

version | core-2023.5.2
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.10.11
os_name | Linux
os_version | 6.1.21-v7
arch | armv7l
timezone | Europe/Berlin
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
GitHub API Calls Remaining | 4929
Installed Version | 1.32.1
Stage | running
Available Repositories | 1285
Downloaded Repositories | 8

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 10.1
-- | --
update_channel | stable
supervisor_version | supervisor-2023.04.1
agent_version | 1.5.1
docker_version | 23.0.3
disk_total | 28.6 GB
disk_used | 10.4 GB
healthy | true
supported | true
board | rpi3
supervisor_api | ok
version_api | ok
installed_addons | File editor (5.6.0), Let's Encrypt (4.12.8), Terminal & SSH (9.7.0), ADB - Android Debug Bridge (0.7.0), Duck DNS (1.15.0), Spotify Connect (0.12.3), MPD (1.7.2), Mosquitto broker (6.2.1), Zigbee2MQTT (1.30.4-1), Samba share (10.0.1)

</details>

<details><summary>Dashboards</summary>

dashboards | 1
-- | --
resources | 4
views | 1
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | May 4, 2023 at 00:18
-- | --
current_recorder_run | May 8, 2023 at 18:27
estimated_db_size | 49.25 MiB
database_engine | sqlite
database_version | 3.40.1

</details>

can't set a schedule

I can't set a schedule on my CC-RT-BLE-EQ from eQ-3 AG
EQ3 Firmware: 146
Home Assistant 2023.4.2

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/connection.py:225
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 14:44:41 (2 occurrences)
Last logged: 14:48:21

[2786438208] Error handling message: required key not provided @ data['days']. Got None required key not provided @ data['target_temp_0']. Got None (invalid_format) Sascha from 192.168.178.28 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Safari/605.1.15)
[2800145768] Error handling message: required key not provided @ data['days']. Got None required key not provided @ data['target_temp_0']. Got None (invalid_format) Sascha from 192.168.178.28 (Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36)

################################################################################################

Logger: homeassistant.helpers.service
Source: helpers/service.py:553
First occurred: 14:43:46 (1 occurrences)
Last logged: 14:43:46

Unable to parse services.yaml for the dbuezas_eq3btsmart integration

################################################################################################

Logger: homeassistant.helpers.script.websocket_api_script
Source: helpers/script.py:410
First occurred: 14:44:41 (2 occurrences)
Last logged: 14:48:21

websocket_api script: Error executing script. Invalid data for call_service at pos 1: required key not provided @ data['days']

Integration does not appear in Home Assistant

Just installed it via HACS, and also confirmed /config/custom_components/dbuezas_eq3btsmart/ is in place, yet home assistant is not detecting a new integration and also searching for it gives no results.
Am I doing something wrong?
Thanks for any tips

Uncaught Exception: AttributeError: 'NoneType' object has no attribute 'add_job'

My thermostat was working fine at first, but now it's mostly unavailable.
I have this error that pops up constantly. Its about 700 error messages a day. Most of the times its just line 3 and downwards (so just the exception thing) but sometimes line 1 or even line 2 come before that.

2022-12-26 00:52:37.301 WARNING (MainThread) [custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection] [room] Broken connection [retry 1/14]: 
2022-12-26 00:52:47.576 WARNING (MainThread) [custom_components.dbuezas_eq3btsmart.python_eq3bt.eq3bt.bleakconnection] [room] Broken connection [retry 2/14]: 
2022-12-26 00:52:51.277 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 161, in on_notification
    self._callback(data)
  File "/config/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 154, in handle_notification
    callback()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 673, in schedule_update_ha_state
    self.hass.add_job(self.async_update_ha_state(force_refresh))
AttributeError: 'NoneType' object has no attribute 'add_job'

But see for yourself. Extended log here: https://dpaste.org/xSQRt

I don't know what else to specify here, other than maybe my setup: Raspberry Pi 3B+ with builtin bluetooth. Only one TRV which is on version 146 according to the sensor in HA. Distance between the rpi and the TRV is about 1.5m. Let me know what else you need. :)

Missing firmware version

I've got 8 TRVs in action, all (currently :) ) working through a bt proxy.

I noticed that 2 out them report firmware 1.20, while the others have the value "unknown".

Is there a way to check the installed firmware version? Could it be that really low firmwares are not reporting the value?

No communication with eq3 thermostat though device found

First of all thank you for the work on this integration.
I have successfully added the integration, though it takes a lot to find devices. I manually added a couple of them, while others were auto-discovered.
The problem is that they don't communicate with them.

image

HASS shows this error in the log:
"/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py", line 505, in get_services
raise BleakError("Not connected")

I've a Docker HASS on an Ubuntu distro with latest HASS version (2022.10.4).
bluetoothctl shows the devices and it seems it's receiving some data from them (be it only RSSI updates). A couple are already paired, others no (though pairing is not important for this as it's working on BLE).

Device 00:1A:22:16:C1:EF (public)
Name: CC-RT-BLE
Alias: CC-RT-BLE
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (3e135142-654f-9090-134a-a6ff5bb77046)
UUID: Vendor specific (9e5d1e47-5c13-43a0-8635-82ad38a1386f)
ManufacturerData Key: 0x0000
ManufacturerData Value:
00 00 00 00 00 00 00 00 00 .........
ManufacturerData Key: 0x5201
ManufacturerData Value:
45 51 30 37 34 36 39 30 33 EQ0746903
RSSI: -87

I have to say that there's nothing wrong with the devices as on an older HASS instance (with BlueZ instead of Bleak) they work as expected.
Mentioning that I'm not multi-pairing the devices (only used an older Pi with older HASS to check, but now it's powered down).

I may have some misconfiguration on my Ubuntu as I had the older BlueZ setup and removing it makes the bluetoothctl go away.
Please advice and if you could share some extra details on your setup so I (we) can replicate accordingly.

AttributeError: 'BluetoothManager' object has no attribute 'async_get_scanner_discovered_devices_and_advertisement_data_by_address'

I get this error after latest updates (Home Assistant 2023.2.2 and eq3btsmart at latest commit b3faa7a):

Feb 05 11:23:14 smooth python3.10[2221]: 2023-02-05 11:23:14.512 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Feb 05 11:23:14 smooth python3.10[2221]: Traceback (most recent call last):
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/sensor.py", line 122, in fetch_serial
Feb 05 11:23:14 smooth python3.10[2221]:     await self._thermostat.async_query_id()
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/eq3btsmart.py", line 160, in async_query_id
Feb 05 11:23:14 smooth python3.10[2221]:     await self._conn.async_make_request(value)
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 174, in async_make_request
Feb 05 11:23:14 smooth python3.10[2221]:     await self._async_make_request_try(value, retries)
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 213, in _async_make_request_try
Feb 05 11:23:14 smooth python3.10[2221]:     raise ex
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 186, in _async_make_request_try
Feb 05 11:23:14 smooth python3.10[2221]:     conn = await self.async_get_connection()
Feb 05 11:23:14 smooth python3.10[2221]:   File "/etc/hass/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py", line 108, in async_get_connection
Feb 05 11:23:14 smooth python3.10[2221]:     MANAGER.async_get_scanner_discovered_devices_and_advertisement_data_by_address(
Feb 05 11:23:14 smooth python3.10[2221]: AttributeError: 'BluetoothManager' object has no attribute 'async_get_scanner_discovered_devices_and_advertisement_data_by_address'

and all my valves are gone.

I can submit a pull request with a fix.

diff --git a/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py b/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py
index fbc4ee9..be8b207 100644
--- a/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py
+++ b/custom_components/dbuezas_eq3btsmart/python_eq3bt/eq3bt/bleakconnection.py
@@ -105,10 +105,10 @@ class BleakConnection:
             MANAGER = cast(BluetoothManager, self._hass.data[DATA_MANAGER])
 
             device_advertisement_datas = sorted(
-                MANAGER.async_get_scanner_discovered_devices_and_advertisement_data_by_address(
+                MANAGER.async_scanner_devices_by_address(
                     address=self._mac, connectable=True
                 ),
-                key=lambda device_advertisement_data: device_advertisement_data[2].rssi
+                key=lambda device_advertisement_data: device_advertisement_data.advertisement.rssi
                 or NO_RSSI_VALUE,
                 reverse=True,
             )
@@ -122,14 +122,14 @@ class BleakConnection:
                 list = [
                     x
                     for x in device_advertisement_datas
-                    if (d := x[1].details)
+                    if (d := x.ble_device.details)
                     and d.get("props", {}).get("Adapter") == self._adapter
                 ]
                 if len(list) == 0:
                     raise Exception("Device not found")
                 d_and_a = list[0]
-            self.rssi = d_and_a[2].rssi
-            self._ble_device = d_and_a[1]
+            self.rssi = d_and_a.advertisement.rssi
+            self._ble_device = d_and_a.ble_device
             UnwrappedBleakClient = cast(type[BleakClient], BleakClient.__bases__[0])
             self._conn = UnwrappedBleakClient(
                 self._ble_device,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.