Aqara WP-P01D (lumi.plug.aeu001) [тестирование]

Этим постом открываем серию статей, посвящённых тестированию различных "умных" устройств в условиях лаборатории. 

Aqara WP-P01D (lumi.plug.aeu001)
Беспроводные протоколы: Zigbee 3.0
Модель: WP-P01D
Размеры: 86 × 86 × 47,7 мм
Рабочая температура: -10 °C ~ +40 °C
Рабочая влажность: 0 ~ 95% относительной влажности, без конденсации
Электрические параметры: 250 В~, 16 A, 50/60 Гц

Aqara WP-P01D

Розетка скрытого монтажа, устанавливается в стандартные габариты “стакана” установочной коробки. Внутренний диаметр 60-65 мм, при внешнем диаметре максимум 68 мм, и глубина 40-45 мм. Имеет 3 винтовых зажима: L, N, P. 

Нагрузка 16 А: розетка выдерживает нагрузку до 16 Ампер, что делает её подходящей для подключения мощных электроприборов. Измеряет электроэнергию: устройство предоставляет точные данные о потребляемой энергии, что позволяет контролировать энергопотребление и экономить на счетах. Память состояния питания: если электричество отключат, то после включения розетка останется в том состоянии, в котором была. Холодильник так и останется подключенным, а торшер не включится посреди ночи. Ретранслятор Zigbee: устройство расширяет площадь покрытия сигнала Zigbee и делает его более стабильным.



Входит в перечень официально поддерживаемых устройств zigbee2mqtt - https://www.zigbee2mqtt.io/devices/WP-P01D.html

Тестирование

Установка в подрозетник прошла штатно, винтовые контакты расположены удобно, 4 крепления зафиксировали устройство надёжно. Однако, рамка и корпус выполнены из пластика. Это означает, что прижимая саморезами главный модуль, он неизбежно деформируется. Конструкция крайне хлипкая. 

Устройство без проблем добавилось в ZigBee сеть. Процедура как в инструкции, нажатие на кнопку в течении 5 секунд, мигание индикатора, успех. О себе розетка информацию опубликовала:

"friendly_name":"0x54ef441000bdb71c","ieee_address":"0x54ef441000bdb71c","interview_completed":true,"interviewing":false,"manufacturer":"Aqara","model_id":"lumi.plug.aeu001","network_address":55732,"power_source":"DC Source","supported":false,"type":"Router"

Подтверждается работа в режиме ретранслятора ZigBee сигнала. Поддерживает удалённое включение/выключение:

zigbee2mqtt/0x54ef441000bdb71c {"last_seen":1710350180791,"linkquality":25,"state":"ON","temperature":0}

(!) Заявленные производителем функции измерения режима электропитания потребителя "из коробки" не работают (версия Zigbee2MQTT 1.35.1).

error 2024-03-14 17:55:09: Failed to configure '0x54ef441000bdb71c', attempt 3 (Error: Read 0x54ef441000bdb71c/1 haElectricalMeasurement(["acCurrentDivisor","acCurrentMultiplier"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'UNSUPPORTED_ATTRIBUTE')

    at Endpoint.checkStatus (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:321:28)

    at Endpoint.read (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:463:22)

    at configure (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman-converters/src/lib/modernExtend.ts:207:25)

    at Object.configure (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman-converters/src/index.ts:140:25)

    at Configure.configure (/mnt/data/root/zigbee2mqtt/lib/extension/configure.ts:120:13)

    at EventEmitter.wrappedCallback (/mnt/data/root/zigbee2mqtt/lib/eventBus.ts:167:17))

В таком режиме доступны функции: 

  • Switch 
  • On with timed off 
  • Device temperature (numeric) X
  • Power outage count (numeric) X
  • Power (numeric) X
  • Energy (numeric) X
  • Voltage (numeric) X
  • Current (numeric) X
  • Overload protection (numeric) X
  • Led indicator (binary) X
  • Button lock (binary) X
  • Charging protection (binary) X
  • Charging limit (numeric) X
  • Linkquality (numeric) 

Итог

Требуется дополнительные настройки в поддерживаемых профилях устройств на стороне Zigbee2MQTT. Как исправить ошибку, читайте в документации - https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html. Если коротко, то необходимо написать на JavaScript некий код, читающий/пишущий zigbee датапоинты устройства и конвертирующий бинарные значения в человекочитаемый формат. Безусловно, код пишется не на пустом месте, а с применением полезных библиотек. Простой пример - https://github.com/Koenkk/zigbee2mqtt.io/blob/master/docs/externalConvertersExample/freepad_ext.js. Не имея технической низкоуровневой документации на купленное устройство и не зная специфики производителя помогает только анализ логов (часто в debug или trace режиме) и поиск информации в профильных сообществах (Google в этом не большое подспорье). 

Другими словами, подключение каждого нового, не поддерживаемого устройства, превращается в интереснейший квест, с неопределённым временем решения и без гарантии того, что он будет успешно пройден. Например, для некоторых TuYa железок, на этапе конфигурации, нужно отправить "специальный магический пакет данных", без которого устройство просто не заведётся нормально. Aqara имеет свою специфику с временным лагом подключения к эндпоинтам (async/await выполнение части инициализационного скрипта). У каждого свои тонкости, причём отличающиеся не только на уровне производителей, но зачастую и внутри разных серий одного и того-же устройства. Мир open source такой увлекательный... 

В результате имеем ограничено годное устройство. Можно использовать его как ретранслятор сигнала в zigbee сети, с возможностью удалённого включения/отключения потребителя.

Испытания "на износ", под постоянной максимальной нагрузкой продолжаются на стенде.