Hello, it works with only one sensor, but when i add the 2nd sensor i have a issue.
This is my config:
manager:
sensor_config:
topic: homeassistant
topic_subscription:
update_all:
topic: homeassistant/status
payload: online
command_timeout: 35 # Timeout for worker operations. Can be removed if the default of 35 seconds is sufficient.
workers:
miflora:
args:
devices:
gelsomino: C4:7C:8D:6B:0C:4B
sansevieriamini: C4:7C:8D:6B:1E:88
topic_prefix: miflora
update_interval: 300
and this is a error:
pi@raspberrypi:~/bt-mqtt-gateway $ sudo ./gateway.py -d
2019-09-10 14:49:22,329 INFO bt-mqtt-gw gateway.py:61: - Starting
2019-09-10 14:49:22,336 DEBUG bt-mqtt-gw.mqtt mqtt.py:30:init - Setting LWT to: lwt_topic
2019-09-10 14:49:26,956 INFO bt-mqtt-gw.workers.miflora miflora.py:19:_setup - Adding 2 miflora devices
2019-09-10 14:49:26,959 DEBUG bt-mqtt-gw.workers.miflora miflora.py:21:_setup - Adding miflora device 'gelsomino' (C4:7C:8D:6B:0C:4B)
2019-09-10 14:49:26,963 DEBUG bt-mqtt-gw.workers.miflora miflora.py:21:_setup - Adding miflora device 'sansevieriamini' (C4:7C:8D:6B:1E:88)
2019-09-10 14:49:26,967 DEBUG bt-mqtt-gw.workers_manager workers_manager.py:93:register_workers - Added miflora config with a 2 seconds timeout
2019-09-10 14:49:26,970 DEBUG bt-mqtt-gw.workers_manager workers_manager.py:103:register_workers - Added miflora worker with 300 seconds interval and a 35 seconds timeout
2019-09-10 14:49:27,003 DEBUG bt-mqtt-gw.mqtt mqtt.py:116:callbacks_subscription - Subscribing to: miflora/update_interval
2019-09-10 14:49:27,007 DEBUG bt-mqtt-gw.mqtt mqtt.py:116:callbacks_subscription - Subscribing to: homeassistant/status
2019-09-10 14:49:27,026 DEBUG bt-mqtt-gw.workers_manager workers_manager.py:64:execute - Execution result of command MifloraWorker.config: [{'topic': 'sensor/C4-7C-8D-6B-0C-4B/miflora_gelsomino_temperature/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino_temperature", "state_topic": "miflora/gelsomino/temperature", "name": "miflora_gelsomino_temperature", "device": {"identifiers": ["C4:7C:8D:6B:0C:4B", "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_gelsomino"}, "device_class": "temperature", "unit_of_measurement": "\u00b0C"}'}, {'topic': 'sensor/C4-7C-8D-6B-0C-4B/miflora_gelsomino_moisture/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino_moisture", "state_topic": "miflora/gelsomino/moisture", "name": "miflora_gelsomino_moisture", "device": {"identifiers": ["C4:7C:8D:6B:0C:4B", "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_gelsomino"}, "icon": "mdi:water", "unit_of_measurement": "%"}'}, {'topic': 'sensor/C4-7C-8D-6B-0C-4B/miflora_gelsomino_light/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino_illuminance", "state_topic": "miflora/gelsomino/light", "name": "miflora_gelsomino_light", "device": {"identifiers": ["C4:7C:8D:6B:0C:4B", "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_gelsomino"}, "device_class": "illuminance", "unit_of_measurement": "lux"}'}, {'topic': 'sensor/C4-7C-8D-6B-0C-4B/miflora_gelsomino_conductivity/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino_conductivity", "state_topic": "miflora/gelsomino/conductivity", "name": "miflora_gelsomino_conductivity", "device": {"identifiers": ["C4:7C:8D:6B:0C:4B", "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_gelsomino"}, "icon": "mdi:leaf", "unit_of_measurement": "\u00b5S/cm"}'}, {'topic': 'sensor/C4-7C-8D-6B-0C-4B/miflora_gelsomino_battery/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino_battery", "state_topic": "miflora/gelsomino/battery", "name": "miflora_gelsomino_battery", "device": {"identifiers": ["C4:7C:8D:6B:0C:4B", "bt-mqtt-gateway/C4-7C-8D-6B-0C-4B/miflora_gelsomino"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_gelsomino"}, "device_class": "battery", "unit_of_measurement": "%"}'}, {'topic': 'sensor/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_temperature/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_temperature", "state_topic": "miflora/sansevieriamini/temperature", "name": "miflora_sansevieriamini_temperature", "device": {"identifiers": ["C4:7C:8D:6B:1E:88", "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_sansevieriamini"}, "device_class": "temperature", "unit_of_measurement": "\u00b0C"}'}, {'topic': 'sensor/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_moisture/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_moisture", "state_topic": "miflora/sansevieriamini/moisture", "name": "miflora_sansevieriamini_moisture", "device": {"identifiers": ["C4:7C:8D:6B:1E:88", "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_sansevieriamini"}, "icon": "mdi:water", "unit_of_measurement": "%"}'}, {'topic': 'sensor/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_light/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_illuminance", "state_topic": "miflora/sansevieriamini/light", "name": "miflora_sansevieriamini_light", "device": {"identifiers": ["C4:7C:8D:6B:1E:88", "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_sansevieriamini"}, "device_class": "illuminance", "unit_of_measurement": "lux"}'}, {'topic': 'sensor/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_conductivity/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_conductivity", "state_topic": "miflora/sansevieriamini/conductivity", "name": "miflora_sansevieriamini_conductivity", "device": {"identifiers": ["C4:7C:8D:6B:1E:88", "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_sansevieriamini"}, "icon": "mdi:leaf", "unit_of_measurement": "\u00b5S/cm"}'}, {'topic': 'sensor/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_battery/config', 'payload': '{"unique_id": "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini_battery", "state_topic": "miflora/sansevieriamini/battery", "name": "miflora_sansevieriamini_battery", "device": {"identifiers": ["C4:7C:8D:6B:1E:88", "bt-mqtt-gateway/C4-7C-8D-6B-1E-88/miflora_sansevieriamini"], "manufacturer": "Xiaomi", "model": "MiFlora", "name": "miflora_sansevieriamini"}, "device_class": "battery", "unit_of_measurement": "%"}'}]
2019-09-10 14:49:27,071 DEBUG bt-mqtt-gw.workers_manager workers_manager.py:171:update_all - Updating all workers
2019-09-10 14:49:27,075 INFO bt-mqtt-gw.workers.miflora miflora.py:80:status_update - Updating 2 miflora devices
2019-09-10 14:49:27,077 DEBUG bt-mqtt-gw.workers.miflora miflora.py:85:status_update - Updating miflora device 'gelsomino' (C4:7C:8D:6B:0C:4B)
2019-09-10 14:49:33,083 ERROR bt-mqtt-gw.workers.miflora logger.py:50:log_exception - Time out during update of miflora device 'gelsomino' (C4:7C:8D:6B:0C:4B)
Traceback (most recent call last):
File "/home/pi/bt-mqtt-gateway/workers/miflora.py", line 89, in status_update
yield self.update_device_state(name, data["poller"])
File "/usr/local/lib/python3.7/dist-packages/interruptingcow/init.py", line 153, in inner
return func(*args, **kwargs)
File "/home/pi/bt-mqtt-gateway/workers/miflora.py", line 118, in update_device_state
payload=poller.parameter_value(attr),
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 132, in parameter_value
self.fill_cache()
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 61, in fill_cache
firmware_version = self.firmware_version()
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 103, in firmware_version
with self._bt_interface.connect(self._mac) as connection:
File "/usr/local/lib/python3.7/dist-packages/btlewrap/base.py", line 44, in enter
self._backend.connect(self._mac)
File "/usr/local/lib/python3.7/dist-packages/btlewrap/bluepy.py", line 26, in _func_wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/btlewrap/bluepy.py", line 55, in connect
self._peripheral = Peripheral(mac, iface=iface)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 391, in init
self._connect(deviceAddr, addrType, iface)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 436, in _connect
rsp = self._getResp('stat')
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 407, in _getResp
resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 347, in _waitResp
rv = self._helper.stdout.readline()
File "/usr/local/lib/python3.7/dist-packages/interruptingcow/init.py", line 74, in handler
raise exception
exceptions.DeviceTimeoutError
2019-09-10 14:49:33,151 DEBUG bt-mqtt-gw.workers.miflora miflora.py:85:status_update - Updating miflora device 'sansevieriamini' (C4:7C:8D:6B:1E:88)
2019-09-10 14:49:39,157 ERROR bt-mqtt-gw.workers.miflora logger.py:50:log_exception - Time out during update of miflora device 'sansevieriamini' (C4:7C:8D:6B:1E:88)
Traceback (most recent call last):
File "/home/pi/bt-mqtt-gateway/workers/miflora.py", line 89, in status_update
yield self.update_device_state(name, data["poller"])
File "/usr/local/lib/python3.7/dist-packages/interruptingcow/init.py", line 153, in inner
return func(*args, **kwargs)
File "/home/pi/bt-mqtt-gateway/workers/miflora.py", line 118, in update_device_state
payload=poller.parameter_value(attr),
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 132, in parameter_value
self.fill_cache()
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 61, in fill_cache
firmware_version = self.firmware_version()
File "/usr/local/lib/python3.7/dist-packages/miflora/miflora_poller.py", line 103, in firmware_version
with self._bt_interface.connect(self._mac) as connection:
File "/usr/local/lib/python3.7/dist-packages/btlewrap/base.py", line 44, in enter
self._backend.connect(self._mac)
File "/usr/local/lib/python3.7/dist-packages/btlewrap/bluepy.py", line 26, in _func_wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/btlewrap/bluepy.py", line 55, in connect
self._peripheral = Peripheral(mac, iface=iface)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 391, in init
self._connect(deviceAddr, addrType, iface)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 436, in _connect
rsp = self._getResp('stat')
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 407, in _getResp
resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
File "/usr/local/lib/python3.7/dist-packages/bluepy/btle.py", line 347, in _waitResp
rv = self._helper.stdout.readline()
File "/usr/local/lib/python3.7/dist-packages/interruptingcow/init.py", line 74, in handler
raise exception
exceptions.DeviceTimeoutError
2019-09-10 14:49:39,187 DEBUG bt-mqtt-gw.workers_manager workers_manager.py:64:execute - Execution result of command MifloraWorker.status_update: []