Добрый день, у меня есть два дали устройства, которые я купил для теста, но ни одно из них не обнаруживается шлюзом. Первое устройство - светильник Maytony TR030-4-12WTW-DD2-B, второе - драйвер для светодиодной ленты MEAN WELL PWM-120-24DA. Подключал оба устройства к первой и второй шине и пытался ими управлять из веб-интерфейса броадкастом. Сканировал шину, но устройства не обнаруживались. Попробовал протестировать через консоль, но там на любые команды типа wb-mqtt-dali --check-presence wb-mdali_1 всегда появляются ошибки:
RuntimeError: No response from gateway
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name=‘Task-3’ coro=<dispatcher() done, defined at /usr/lib/python3/dist-packages/wb/mqtt_dali/main.py:53> exception=MqttError(‘Disconnected during message iteration’)>
Сервис wb-mqtt-dali при этом остановлен, порт 8080 не прослушивается.
ИИ-помощник предполагал, что утеряна связь с самим модулем, но он отображается в веб-интерфейсе и если на шине включать внутренний блок питания, то там появляется напряжение, загорается зеленый индикатор шины.
wb-mqtt-dali --check-presence wb-dali_1
ERROR:wb-dali_1_bus1:Timeout waiting for response Terminate() for queue index 0
ERROR:wb-dali_1_bus1:Timeout waiting for response Initialise(broadcast=True) for queue index 1
ERROR:wb-dali_1_bus1:Timeout waiting for response SearchaddrH(255) for queue index 2
ERROR:wb-dali_1_bus1:Timeout waiting for response SearchaddrM(255) for queue index 3
ERROR:wb-dali_1_bus1:Timeout waiting for response SearchaddrL(255) for queue index 4
ERROR:wb-dali_1_bus1:Timeout waiting for response Compare() for queue index 5
ERROR:wb-dali_1_bus1:Timeout waiting for response Terminate() for queue index 6
ERROR:root:Disconnected during message iteration
Traceback (most recent call last):
File “/usr/bin/wb-mqtt-dali”, line 10, in
sys.exit(asyncio.run(main(sys.argv)))
File “/usr/lib/python3.9/asyncio/runners.py”, line 44, in run
return loop.run_until_complete(main)
File “/usr/lib/python3.9/asyncio/base_events.py”, line 642, in run_until_complete
return future.result()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 415, in main
return await check_presence_service(args.check_presence_gateway, args, dali2=False, bus=args.bus)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 142, in check_presence_service
if await check_presence(driver, False):
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 814, in check_presence
return r[-1].value is True
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/wbdali_error_response.py”, line 30, in value
raise RuntimeError(“No response from gateway”)
RuntimeError: No response from gateway
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name=‘Task-3’ coro=<dispatcher() done, defined at /usr/lib/python3/dist-packages/wb/mqtt_dali/main.py:53> exception=MqttError(‘Disconnected during message iteration’)>
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 55, in dispatcher
await mqtt_dispatcher.run()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/mqtt_dispatcher.py”, line 59, in run
async for message in messages:
File “/usr/lib/python3/dist-packages/asyncio_mqtt/client.py”, line 367, in _message_generator
raise MqttError(“Disconnected during message iteration”)
asyncio_mqtt.error.MqttError: Disconnected during message iteration
root@wirenboard-AEHWTZA4:~# systemctl status wb-mqtt-dali
● wb-mqtt-dali.service - Wiren Board MQTT DALI Bridge
Loaded: loaded (/lib/systemd/system/wb-mqtt-dali.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2026-06-18 19:22:42 MSK; 16h ago
Main PID: 816 (code=exited, status=0/SUCCESS)
CPU: 38min 59.415s
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14.lunatone-iot-emulator:Lunatone IoT Gateway emulator stopped
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_1.DevicePublisher:Cleaning up all devices
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_2.DevicePublisher:Cleaning up all devices
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_3.DevicePublisher:Cleaning up all devices
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_1.DevicePublisher:Cleanup completed
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_2.DevicePublisher:Cleanup completed
Jun 18 19:22:41 wirenboard-AEHWTZA4 wb-mqtt-dali[816]: INFO:wb-dali_14_bus_3.DevicePublisher:Cleanup completed
Jun 18 19:22:42 wirenboard-AEHWTZA4 systemd[1]: wb-mqtt-dali.service: Succeeded.
Jun 18 19:22:42 wirenboard-AEHWTZA4 systemd[1]: Stopped Wiren Board MQTT DALI Bridge.
Jun 18 19:22:42 wirenboard-AEHWTZA4 systemd[1]: wb-mqtt-dali.service: Consumed 38min 59.415s CPU time.
wb-mqtt-dali --search-short wb-dali_23
ERROR:wb-dali_23_bus1:Timeout waiting for response Terminate() for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response StartQuiescentMode(<broadcast (control device)>) for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 0>) for queue index 2
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 1>) for queue index 3
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 2>) for queue index 4
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 3>) for queue index 5
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 4>) for queue index 6
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 5>) for queue index 7
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 6>) for queue index 8
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 7>) for queue index 9
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 8>) for queue index 10
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 9>) for queue index 11
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 10>) for queue index 12
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 11>) for queue index 13
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 12>) for queue index 14
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 13>) for queue index 15
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 14>) for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 15>) for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 16>) for queue index 2
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 17>) for queue index 3
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 18>) for queue index 4
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 19>) for queue index 5
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 20>) for queue index 6
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 21>) for queue index 7
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 22>) for queue index 8
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 23>) for queue index 9
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 24>) for queue index 10
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 25>) for queue index 11
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 26>) for queue index 12
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 27>) for queue index 13
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 28>) for queue index 14
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 29>) for queue index 15
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 30>) for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 31>) for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 32>) for queue index 2
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 33>) for queue index 3
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 34>) for queue index 4
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 35>) for queue index 5
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 36>) for queue index 6
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 37>) for queue index 7
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 38>) for queue index 8
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 39>) for queue index 9
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 40>) for queue index 10
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 41>) for queue index 11
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 42>) for queue index 12
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 43>) for queue index 13
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 44>) for queue index 14
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 45>) for queue index 15
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 46>) for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 47>) for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 48>) for queue index 2
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 49>) for queue index 3
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 50>) for queue index 4
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 51>) for queue index 5
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 52>) for queue index 6
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 53>) for queue index 7
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 54>) for queue index 8
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 55>) for queue index 9
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 56>) for queue index 10
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 57>) for queue index 11
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 58>) for queue index 12
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 59>) for queue index 13
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 60>) for queue index 14
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 61>) for queue index 15
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 62>) for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response QueryControlGearPresent(<address (control gear) 63>) for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response StopQuiescentMode(<broadcast (control device)>) for queue index 2
ERROR:root:Disconnected during message iteration
Traceback (most recent call last):
File “/usr/bin/wb-mqtt-dali”, line 10, in
sys.exit(asyncio.run(main(sys.argv)))
File “/usr/lib/python3.9/asyncio/runners.py”, line 44, in run
return loop.run_until_complete(main)
File “/usr/lib/python3.9/asyncio/base_events.py”, line 642, in run_until_complete
return future.result()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 423, in main
return await short_search_service(args.search_short_gateway, args, dali2=False, bus=args.bus)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 184, in short_search_service
await search_short(driver, dali2)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 779, in search_short
if resp and resp.value:
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/wbdali_error_response.py”, line 30, in value
raise RuntimeError(“No response from gateway”)
RuntimeError: No response from gateway
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name=‘Task-3’ coro=<dispatcher() done, defined at /usr/lib/python3/dist-packages/wb/mqtt_dali/main.py:53> exception=MqttError(‘Disconnected during message iteration’)>
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 55, in dispatcher
await mqtt_dispatcher.run()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/mqtt_dispatcher.py”, line 59, in run
async for message in messages:
File “/usr/lib/python3/dist-packages/asyncio_mqtt/client.py”, line 367, in _message_generator
raise MqttError(“Disconnected during message iteration”)
asyncio_mqtt.error.MqttError: Disconnected during message iteration
wb-mqtt-dali --binary-search wb-dali_23
ERROR:wb-dali_23_bus1:Timeout waiting for response StartQuiescentMode(<broadcast (control device)>) for queue index 0
ERROR:wb-dali_23_bus1:Timeout waiting for response Terminate() for queue index 1
ERROR:wb-dali_23_bus1:Timeout waiting for response Initialise(broadcast=True) for queue index 2
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrH(255) for queue index 3
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrM(255) for queue index 4
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrL(255) for queue index 5
ERROR:wb-dali_23_bus1:Timeout waiting for response Compare() for queue index 6
WARNING:commissioning:DALI send_commands retry 1/3 failed for [‘SearchaddrH(255)’, ‘SearchaddrM(255)’, ‘SearchaddrL(255)’, ‘Compare()’]
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrH(255) for queue index 7
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrM(255) for queue index 8
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrL(255) for queue index 9
ERROR:wb-dali_23_bus1:Timeout waiting for response Compare() for queue index 10
WARNING:commissioning:DALI send_commands retry 2/3 failed for [‘SearchaddrH(255)’, ‘SearchaddrM(255)’, ‘SearchaddrL(255)’, ‘Compare()’]
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrH(255) for queue index 11
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrM(255) for queue index 12
ERROR:wb-dali_23_bus1:Timeout waiting for response SearchaddrL(255) for queue index 13
ERROR:wb-dali_23_bus1:Timeout waiting for response Compare() for queue index 14
WARNING:commissioning:DALI send_commands retry 3/3 failed for [‘SearchaddrH(255)’, ‘SearchaddrM(255)’, ‘SearchaddrL(255)’, ‘Compare()’]
ERROR:wb-dali_23_bus1:Timeout waiting for response Terminate() for queue index 15
ERROR:wb-dali_23_bus1:Timeout waiting for response StopQuiescentMode(<broadcast (control device)>) for queue index 0
ERROR:root:Disconnected during message iteration
Traceback (most recent call last):
File “/usr/bin/wb-mqtt-dali”, line 10, in
sys.exit(asyncio.run(main(sys.argv)))
File “/usr/lib/python3.9/asyncio/runners.py”, line 44, in run
return loop.run_until_complete(main)
File “/usr/lib/python3.9/asyncio/base_events.py”, line 642, in run_until_complete
return future.result()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 419, in main
return await binary_search_service(args.binary_search_gateway, args, dali2=False, bus=args.bus)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 165, in binary_search_service
await commissioning.binary_search()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 690, in binary_search
found_addr = await self.find_next_device(low, high)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 258, in find_next_device
return await self.binary_search_finder.find_next_device(low, high)
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 119, in find_next_device
if not await self.compare(high):
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/commissioning.py”, line 200, in compare
return responses[-1].value is True
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/wbdali_error_response.py”, line 30, in value
raise RuntimeError(“No response from gateway”)
RuntimeError: No response from gateway
ERROR:asyncio:Task exception was never retrieved
future: <Task finished name=‘Task-3’ coro=<dispatcher() done, defined at /usr/lib/python3/dist-packages/wb/mqtt_dali/main.py:53> exception=MqttError(‘Disconnected during message iteration’)>
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/main.py”, line 55, in dispatcher
await mqtt_dispatcher.run()
File “/usr/lib/python3/dist-packages/wb/mqtt_dali/mqtt_dispatcher.py”, line 59, in run
async for message in messages:
File “/usr/lib/python3/dist-packages/asyncio_mqtt/client.py”, line 367, in _message_generator
raise MqttError(“Disconnected during message iteration”)
asyncio_mqtt.error.MqttError: Disconnected during message iteration
Так…
Насколько я вижу вы пробуете работать с устрйоством имеющим имя “wb-dali_1”.
При этом имя подключенного - “wb-dali_14”.
Вот и не могу понять - ожидаете ответ от отсутствующего?
Ну, когда вы почти явно написали, что цифры после ‘_’ - это адрес устройства, стало понятнее но на шине нет ни одного устройства:
wb-mqtt-dali --check-presence wb-dali_14
INFO:root:DALI devices are NOT present
root@wirenboard-AEHWTZA4:~# wb-mqtt-dali --search-short wb-dali_14
root@wirenboard-AEHWTZA4:~# wb-mqtt-dali --binary-search wb-dali_14
INFO:commissioning:No device left to address, exiting
Читая форум, я видел рекомендации поменять ДА+ и ДА- местами. Последнее время, как оказалось, я тестировал с переполюсовкой. Подключил правильно и сейчас драйвер от Mean Well управляется по броадкасту, лампа maytony ни на что не реагирует. Возможно, лампа не исправна, мне ее дали для тестов. Можете порекомендовать какие-то, протестированные вами, светильники для магнитного трека шириной 23 мм?
Ну отлично. Хотя для шины полярность по стандарту неважна - некоторые производители это не учитывают.
Рекомендую померить ток через шину именно на сам светильник. То есть отключить шину светильника от общей шины DALI и подключить через мультиметр. Ожидаемо - несколько (2-3, до 10) мА. Ну и перевернуть и тоже измерить ток. Если тока не будет совсем - высоковероятно драйвер неисправен.
Насколько знаю такие не тестировали, кроме Maytony.
Подключил мультиметр в разрыв шины DALI, без попыток сканировать шину потребление 9.5 мА, если сканировать шину то скачет от 9.2 до 9.7 мА. Сидел рядом с лампой и во время сканирования или отправки броадкаст команд в светильнике начинает, что-то трещать. Звук похож на треск от жесткого диска, только очень тихий. Смена полярности влияет только на громкость этого треска: тихо или очень тихо, потребление не меняется. Можете подсказать, если светильник исправен, то при подаче на него питания он должен включаться или нет(возможно, он ранее где-то использовался и был каким-то образом настроен)? Мой ни разу не включался, начинаю подозревать его в неисправности
Многовато. В пределах, конечно, нормы но (померил у себя: 2-3 мА) на верхней граниице.
Похоже на проблему в силовой части драйвера.
Да, светильники DALI по умолчанию при подаче питания при отключенной шине DALI ведут себя как обычные - просто включаются.
Но это поведение настраивается:
Эти настройки хранятся в самом устройстве.
То есть настраивается и поведение после включения питания и поведение при пропадании шины DALI
Если настройки точно не менялись - должен включаться. Если менялись и их состояние неизвестно - проще всего проверить светильник с другим шлюзом. Ну или проверить другой, заведомо работоспособный.