hbdk / eco2-tools Goto Github PK
View Code? Open in Web Editor NEWThe tools needed to use Eco2 thermostats with Home Assistant os
License: MIT License
The tools needed to use Eco2 thermostats with Home Assistant os
License: MIT License
Hi,
I got an error for one of my thermostat...
2023-02-27 18:40:13.900 | ERROR | libetrv.device:connect:95 - Unable connect to 00:04:2f:4f:xx:xx. Retrying in 100ms
The Mac is right.. even I can't read the code out...
The only difference is the Mac of that starting with 0:04 and not 00:04...
Same ocure with key reading to....
building is slow and the image could easily be used other places.
I am trying to pair a device and receive the following error, on a side note should the scan tool list multiple device ids? If not probably my raspis bluetooth module is not strong enough?
Proceeding with '00:04:2f:79:44:cf' as ID
Press the clock button on the thermostat when you get the following message:
'libetrv.device:connect:54 - Trying connect to 00:04:2f:79:44:cf'
Starting
2021-01-23 16:54:56.180 | DEBUG | libetrv.device:connect:54 - Trying connect to 00:04:2f:79:44:cf
2021-01-23 16:55:05.955 | DEBUG | libetrv.device:send_pin:87 - Write PIN to 00:04:2f:79:44:cf
Traceback (most recent call last):
File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.8/site-packages/libetrv/cli.py", line 79, in <module>
fire.Fire(CLI)
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.8/site-packages/libetrv/cli.py", line 47, in retrieve_key
print("Secret Key:", self._device.secret_key)
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 22, in __get__
return self.get_data_object(device).retrieve()
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 59, in retrieve
self.read()
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 91, in read
data = etrv_read_data(self.device, handler, send_pin, use_encoding)
File "/usr/local/lib/python3.8/site-packages/libetrv/utils.py", line 20, in etrv_read_data
data = device.ble_device.readCharacteristic(handler)
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 530, in readCharacteristic
resp = self._getResp('rd')
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 407, in _getResp
resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 368, in _waitResp
raise BTLEGattError("Bluetooth command failed", resp)
bluepy.btle.BTLEGattError: Bluetooth command failed (code: 14, error: Request attribute has encountered an unlikely error)
In 5 seconds this script will try to retrieve a secure key from eTRV device. Don't forget to save it for later. Before that be sure that device is in pairing mode. You can achieve that by pressing button on device
stopping
Hi
I'm not sure if that is actually question for you. If not just point me to the proper channel. :P
I was trying to replace build-in schedule in Eco2 with very simple automation in Hassio. I set Eco2 to manual mode and created something like this (mostly for testing):
- id: '1606402829689'
alias: VRT Sypialnia Off
description: ''
trigger:
- platform: time
at: '07:10'
condition: []
action:
- condition: state
entity_id: climate.sypialnia_thermostat
attribute: temperature
state: 17
mode: queued
But it doesn't work. The automation is of course executed but it doesn't do anything as well as when executed manually. Actually the only way I found it working was by changing target temp from lovelace
thermostat card, which let me to believe that I did something wrong in the config.
I've also tried to do something like this for the action part:
action:
- service: mqtt.publish
data:
payload: '{"temperature":22}'
topic: etrv/DanfossSypialnia/set
but being noob here, I'm not even sure if that's the proper approach, not to mention how and what to actually send. And it also didn't work.
Any tips? :)
Hi
I'm currently testing Hassio on Pi Zero W and wanted to try adding my Danfoss valves with your wrappers. I added your repo but when trying to install any of three add-ons I'm getting this message:
The command '/bin/sh -c pip3 install 'git+https://github.com/keton/etrv2mqtt.git'' returned a non-zero code: 139
I have reported it upstream already, but posting an issue here as well for good measure.
Each Full HA Snapshot becomes 1GB bigger if Eco2 tools are installed.
Hi, I am using a HassIO box - Home Assistant 2022.12.8 - Supervisor 2022.12.1 - Operating System 9.4
I can add the custom repository, and add the etrv2mqtt addon using that, and start it (dont think it works though)
I can also install the etrv-scan from the same repository. But here is the limitations. It does seem to install the required dependencies. The log states:
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 80, in <module>
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 22, in scan
for device, key in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.9/site-packages/libetrv/device.py", line 41, in scan
devices = btle.Scanner().scan(1)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 852, in scan
self.start(passive=passive)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 800, in start
self._mgmtCmd(self._cmd())
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'scan'
Detected eTRV devices:
Done scanning
Is there a workaround for this?
I have been running with this addon on my RPI3+ for a several years and it has been running great but suddenly it makes my thermostats to freeze. They keep the red light on and do not respond to anything. The only way to make to responsive again is to takeout the batteries. Is it only me having this issue?
etrv2mqtt has been updated to include multiple fixes, amongst them is the timezone inclusion fix.
Hello i have this problem:
Operating System HassOS 4.17
Supervisor: 2020.11.0
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.8/site-packages/libetrv/cli.py", line 79, in
fire.Fire(CLI)
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 138, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 463, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.8/site-packages/fire/core.py", line 672, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.8/site-packages/libetrv/cli.py", line 22, in scan
for device in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.8/site-packages/libetrv/device.py", line 38, in scan
devices = btle.Scanner().scan(timeout)
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 854, in scan
self.stop()
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 803, in stop
self._mgmtCmd(self._cmd()+"end")
File "/usr/local/lib/python3.8/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'scanend' (code: 11, error: Rejected)
Detected eTRV devices:
Done scanning
when I find the address of the head myself, I can't pull out the key
Proceeding with '00:04:2f:61:24:1e' as ID
Press the clock button on the thermostat when you get the:
'libetrv.device:connect:54 - Trying connect to 00:04:2f:61:24:1e'
messeage
Starting
2020-11-27 12:17:14.641 | DEBUG | libetrv.device:connect:54 - Trying connect to 00:04:2f:61:24:1e
2020-11-27 12:17:14.655 | ERROR | libetrv.device:connect:68 - Unable connect to 00:04:2f:61:24:1e. Retrying in 100ms
2020-11-27 12:17:14.768 | ERROR | libetrv.device:connect:68 - Unable connect to 00:04:2f:61:24:1e. Retrying in 100ms
Hi
When running etrv-scan I cant see any devices. This is what I find in the logfile, can I get help getting it right?
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 80, in
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 22, in scan
for device, key in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.9/site-packages/libetrv/device.py", line 41, in scan
devices = btle.Scanner().scan(1)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 852, in scan
self.start(passive=passive)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 800, in start
self._mgmtCmd(self._cmd())
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'scan'
Detected eTRV devices:
Done scanning
Best regards
Hi @HBDK ,
When Hassio starts up, the climate thermostat is off,
you can turn it on, by clicking on the fire icon, but you cannot turn it off again.
When on, it displays target temperature and Heat, no matter whether current temperature is below or above target temperature.
Is there any functionality behind this?
I expect, when off, the Hassio climate thermostat is not functional and displays "off".
When on:
But how do you expect this to work?'
Thanks
So I pressed the clock button and this was the response.
Press the clock button on the thermostat when you get the following message:
'libetrv.device:connect:54 - Trying connect to 00:04:2f:0f:13:1f'
Starting
2024-01-07 11:52:35.672 | DEBUG | libetrv.device:connect:81 - Trying connect to 00:04:2f:0f:13:1f
2024-01-07 11:52:43.430 | DEBUG | libetrv.device:send_pin:114 - Write PIN to 00:04:2f:0f:13:1f
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 80, in
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 48, in retrieve_key
print("Secret Key:", self._device.secret_key)
File "/usr/local/lib/python3.9/site-packages/libetrv/properties.py", line 22, in get
return self.get_data_object(device).retrieve()
File "/usr/local/lib/python3.9/site-packages/libetrv/properties.py", line 59, in retrieve
self.read()
File "/usr/local/lib/python3.9/site-packages/libetrv/properties.py", line 91, in read
data = etrv_read_data(self.device, handler, send_pin, use_encoding)
File "/usr/local/lib/python3.9/site-packages/libetrv/utils.py", line 20, in etrv_read_data
data = device.ble_device.readCharacteristic(handler)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 530, in readCharacteristic
resp = self._getResp('rd')
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 407, in _getResp
resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 368, in _waitResp
raise BTLEGattError("Bluetooth command failed", resp)
bluepy.btle.BTLEGattError: Bluetooth command failed (code: 14, error: Request attribute has encountered an unlikely error)
In 5 seconds this script will try to retrieve a secure key from eTRV device. Don't forget to save it for later. Before that be sure that device is in pairing mode. You can achieve that by pressing button on device
stopping
Hi.
I've got myself a RPi 4 where every step needed to add Eco2 works as it should. I have tiles with temp and such.
One of the reasons I was trying all of this is because one the thermostats I have sits right where my PC has exhaust which means the measured temp is way off and schedule doesn't work properly. I can't do anything about those two sitting close to each other so I wanted to use other temperature measurement device (Xiaomi Mijia BLE Temperature and Humidity Sensor to be specific) and control Eco2 by its values.
And I wonder how and if that's even possible? From what I see the only thing I can change is setting 'Heat'. But I don't even know what that actually means (and how to actually disable it). Thermostat like that doesn't have on/off only workload. It has different levels of opening valve to achieve different level of heating power. As far I understand, having scheduled setting enabled through the official app, with Away/Home set to some hours during the day, Eco2 sets heating power to be "just enough" to achieve its goal.
As far I see there's no indication of the mode the Eco2 is at the moment - I didn't see any difference in HA if there was Home or Away engaged.
Am missing something here? I know I'm very noobish with all of this :P
BTW I know you're responsible for wrapping up tools needed to add it to the hassio not the toole themselves, so this topic maybe shouldn't be meant for you, but I figured out I'll start with you as you should have knowledge about that and maybe the answer is quite simple ;)
Hi. Is there a chance you could make an update for your package that would include PR that repairs issue with date not having timezone? Keton doesn't seem to support this as this PR lives there for few months already. :(
Hi
Not sure if that's something for your "wrapper" but for some unknown reason etrv2mqtt stopped connecting to Eco2s. I have two devices and I didn't change the layout so it's not like the range changed. Do you know anything about this? Should I head to keton/etrv2mqtt instead?
Hi. I tried updating to 0.02 but I'm getting error:
22-02-08 13:47:55 INFO (SyncWorker_3) [supervisor.docker.addon] Export image 87a644c9/aarch64-addon-etrv2mqtt to /data/tmp/tmpyw_dr16u/image.tar
22-02-08 13:48:54 INFO (SyncWorker_3) [supervisor.docker.addon] Export image 87a644c9/aarch64-addon-etrv2mqtt done
22-02-08 13:48:54 INFO (MainThread) [supervisor.addons.addon] Building backup for add-on 87a644c9_etrv2mqtt
22-02-08 13:55:51 INFO (MainThread) [supervisor.addons.addon] Finish backup for addon 87a644c9_etrv2mqtt
22-02-08 13:56:02 INFO (MainThread) [supervisor.backups.manager] Creating partial backup with slug 9f4973c2 completed
22-02-08 13:56:02 INFO (SyncWorker_3) [supervisor.docker.interface] Updating image 87a644c9/aarch64-addon-etrv2mqtt:0.01 to hbdk/eco2-tools:0.02
22-02-08 13:56:07 ERROR (SyncWorker_3) [supervisor.docker.addon] Invalid build environment, can't build this add-on!
Is it related directly to etrv2mqtt
, like error is suggesting and I should go there? Or is it somehow related to your package?
I am running my eTRVs far away from my HA, so I was trying with the ESPHome bluetooth proxy nearby.
It doesn't seem to work. The keytool never finds anything when I press the button (I already had the MAC), and the etrv scan just shows:
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 80, in <module>
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 22, in scan
for device, key in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.9/site-packages/libetrv/device.py", line 41, in scan
devices = btle.Scanner().scan(1)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 852, in scan
self.start(passive=passive)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 790, in start
self._mgmtCmd("le on")
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'le on' (code: 17, error: Invalid Index)
Detected eTRV devices:
Done scanning
in the logs..
Is this something that can work and if so, is it something that has to be addressed on the ESPHome side, or here?
Hi,
the original Danfoss App, has scheduling implemented in a very limiting way. Only two temperatures, only 3 heating time slots.
Can I achieve more complex schedules like the following with this software? Will manual control still be useable and open window detection still work?
I need schedules like:
USER A home:
7:45-10:30 -> 24°C
10:30-12:00 -> 21°C
12-19:30 -> 23°C
19:30-0:00 -> 22°C
0:00-7:45 -> 16°C
etc.
USER B home:
7:45-10:30 -> 22°C
10:30-12:00 -> 19°C
12-19:30 -> 21°C
etc.
Background I have a baby and wife with very different heating requirements.
<< Made new Issue to etrv2mqtt (keton/etrv2mqtt#16) so followup there !! >>
Seems that new HA Core 2022.8.x with Bluetooth functionality somehow broke this. etrv_scan log shows:
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 79, in
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 22, in scan
for device in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.9/site-packages/libetrv/device.py", line 38, in scan
devices = btle.Scanner().scan(timeout)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 852, in scan
self.start(passive=passive)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 800, in start
self._mgmtCmd(self._cmd())
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'scan'
Detected eTRV devices:
Done scanning
Hi,
When the etrv2mqtt home assistant addon tries to connect to one of my valves, it generates this error and the Add on stops.
`'MainProcess' (8), thread 'MainThread' (548024991760):
Traceback (most recent call last):
File "/usr/local/bin/etrv2mqtt", line 8, in
sys.exit(entrypoint())
│ │ └ <function entrypoint at 0x7f97bf4e50>
│ └
└ <module 'sys' (built-in)>
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/cli.py", line 28, in entrypoint
main(sys.argv[1])
│ │ └ ['/usr/local/bin/etrv2mqtt', '/data/options.json']
│ └ <module 'sys' (built-in)>
└ <function main at 0x7f98b32550>
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/cli.py", line 17, in main
deviceManager.poll_forever()
│ └ <function DeviceManager.poll_forever at 0x7f97a51c10>
└ <etrv2mqtt.devices.DeviceManager object at 0x7f9800d250>
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/devices.py", line 94, in poll_forever
schedule.run_all(delay_seconds=1)
│ └ <function run_all at 0x7f97a51550>
└ <module 'schedule' from '/usr/local/lib/python3.8/site-packages/schedule/init.py'>
File "/usr/local/lib/python3.8/site-packages/schedule/init.py", line 570, in run_all
default_scheduler.run_all(delay_seconds=delay_seconds)
│ │ └ 1
│ └ <function Scheduler.run_all at 0x7f97a50160>
└ <schedule.Scheduler object at 0x7f97a47ee0>
File "/usr/local/lib/python3.8/site-packages/schedule/init.py", line 109, in run_all
self._run_job(job)
│ │ └ Every 3600 seconds do _poll_devices() (last run: [never], next run: 2021-09-29 00:57:08)
│ └ <function Scheduler._run_job at 0x7f97a503a0>
└ <schedule.Scheduler object at 0x7f97a47ee0>
File "/usr/local/lib/python3.8/site-packages/schedule/init.py", line 147, in _run_job
ret = job.run()
│ └ <function Job.run at 0x7f97a513a0>
└ Every 3600 seconds do _poll_devices() (last run: [never], next run: 2021-09-29 00:57:08)
File "/usr/local/lib/python3.8/site-packages/schedule/init.py", line 466, in run
ret = self.job_func()
│ └ functools.partial(<bound method DeviceManager._poll_devices of <etrv2mqtt.devices.DeviceManager object at 0x7f9800d250>>)
└ Every 3600 seconds do _poll_devices() (last run: [never], next run: 2021-09-29 00:57:08)
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/devices.py", line 82, in _poll_devices
device.poll(self._mqtt)
│ │ │ └ <etrv2mqtt.mqtt.Mqtt object at 0x7f97a535e0>
│ │ └ <etrv2mqtt.devices.DeviceManager object at 0x7f9800d250>
│ └ <function TRVDevice.poll at 0x7f97a519d0>
└ <etrv2mqtt.devices.TRVDevice object at 0x7f97a534f0>
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/devices.py", line 44, in poll
ret = eTRVUtils.read_device(self._device)
│ │ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ │ └ <etrv2mqtt.devices.TRVDevice object at 0x7f97a534f0>
│ └ <staticmethod object at 0x7f97ad5be0>
└ <class 'etrv2mqtt.etrvutils.eTRVUtils'>
File "/usr/local/lib/python3.8/site-packages/etrv2mqtt/etrvutils.py", line 34, in read_device
return eTRVData(device.name, device.battery, device.temperature.room_temperature, device.temperature.set_point_temperature, datetime.now())
│ │ │ │ │ │ │ │ │ │ └ <method 'now' of 'datetime.datetime' objects>
│ │ │ │ │ │ │ │ │ └ <class 'datetime.datetime'>
│ │ │ │ │ │ │ │ └ <libetrv.properties.eTRVProperty object at 0x7f97ade340>
│ │ │ │ │ │ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ │ │ │ │ │ └ <libetrv.properties.eTRVProperty object at 0x7f97ade340>
│ │ │ │ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ │ │ │ └ <libetrv.properties.eTRVProperty object at 0x7f97ade2b0>
│ │ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ │ └ <libetrv.properties.eTRVProperty object at 0x7f97ade490>
│ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
└ <class 'etrv2mqtt.etrvutils.eTRVData'>
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 22, in get
return self.get_data_object(device).retrieve()
│ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ └ <function eTRVProperty.get_data_object at 0x7f97af2700>
└ <libetrv.properties.eTRVProperty object at 0x7f97ade490>
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 61, in retrieve
return self.retrieve_object(self.device)
│ │ │ └ <libetrv.device.eTRVDevice object at 0x7f97a536a0>
│ │ └ <libetrv.data_struct.NameData object at 0x7f970e8580>
│ └ <function eTRVSingleData.retrieve_object at 0x7f97af2f70>
└ <libetrv.data_struct.NameData object at 0x7f970e8580>
File "/usr/local/lib/python3.8/site-packages/libetrv/properties.py", line 129, in retrieve_object
return getattr(self, self.get_direct_field())
│ │ └ <function eTRVSingleData.get_direct_field at 0x7f97af2ee0>
│ └ <libetrv.data_struct.NameData object at 0x7f970e8580>
└ <libetrv.data_struct.NameData object at 0x7f970e8580>
File "/usr/local/lib/python3.8/site-packages/libetrv/fields/base.py", line 22, in get
return self.from_raw_value(raw_value, data)
│ │ │ └ <libetrv.data_struct.NameData object at 0x7f970e8580>
│ │ └ b'Sovev\xc3\xa6relset\x00\x00\x00'
│ └ <function TextField.from_raw_value at 0x7f97aecdc0>
└ <libetrv.fields.string.TextField object at 0x7f97af56a0>
File "/usr/local/lib/python3.8/site-packages/libetrv/fields/string.py", line 18, in from_raw_value
return raw_value.decode('ascii').strip('\0')
│ └ <method 'decode' of 'bytes' objects>
└ b'Sovev\xc3\xa6relset\x00\x00\x00'
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)`
Any hint on what the cause is and eventually what I can do to resolve it?
Three other valves are working perfectly
Thanks,
/Ghassan
Hello.
(this is the first time I actively use github/open an issue)
I am running latest Home Assistant, installed the 3 addons, scan does not work.
I have, however, read the MAC from my phones BT menu, it actually shows in the name of the thermostat...
Added it to the key tool and was already up and running for some days, but trying again, it wont work.
Thermostat status is unavailable/unknown...
Not sure what to do.
Start scanning
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 80, in <module>
fire.Fire(CLI)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 141, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 466, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/usr/local/lib/python3.9/site-packages/fire/core.py", line 681, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/usr/local/lib/python3.9/site-packages/libetrv/cli.py", line 22, in scan
for device, key in eTRVDevice.scan(timeout):
File "/usr/local/lib/python3.9/site-packages/libetrv/device.py", line 41, in scan
devices = btle.Scanner().scan(1)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 852, in scan
self.start(passive=passive)
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 800, in start
self._mgmtCmd(self._cmd())
File "/usr/local/lib/python3.9/site-packages/bluepy/btle.py", line 312, in _mgmtCmd
raise BTLEManagementError("Failed to execute management command '%s'" % (cmd), rsp)
bluepy.btle.BTLEManagementError: Failed to execute management command 'scan'
Detected eTRV devices:
Done scanning
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.