homed-service-zigbee
homed-service-zigbee copied to clipboard
add Linptech ES1ZZ(TY) initial support
Данный PR скорее просьба помочь разобраться с проблемой, а возможно и совместными усилиями добавить поддержку нового устройства.
Только начинаю разбираться что к чему, поэтому в моих изменениях могут быть неточности.
Пробую добавить поддержку датчика присутствия Linptech Presence Sensor ES1 (ES1ZZ(TY)) Модель _TZ3218_awarhusb (встречается также _TZ3218_t9ynfz4x) https://www.aliexpress.com/item/1005006101306384.html
{
"active": true,
"cloud": true,
"description": "Linptech ES1ZZ(TY) Human Presence Sensor",
"discovery": true,
"endpoints": [
{
"deviceId": 1026,
"endpointId": 1,
"inClusters": [
0,
3,
4,
5,
57346,
16384,
61184,
1280
],
"outClusters": [
10,
25
],
"profileId": 260
}
],
"ieeeAddress": "b0:c7:de:ff:fe:7e:1b:2c",
"interviewFinished": true,
"lastSeen": 1715448417,
"linkQuality": 84,
"logicalType": 1,
"manufacturerCode": 4098,
"manufacturerName": "_TZ3218_awarhusb",
"modelName": "TS0225",
"networkAddress": 55185,
"powerSource": 1,
"supported": true,
"version": 70,
"name": "b0:c7:de:ff:fe:7e:1b:2c"
}
Устройство поддерживается z2m https://www.zigbee2mqtt.io/devices/ES1ZZ(TY).html https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/src/devices/linptech.ts
Топик с обсуждением, так как поддержка появилась относительно недавно https://github.com/Koenkk/zigbee2mqtt/issues/18637
ID кластеров, атрибутов, типов данных, а также минимальные и максимальные значения настроек брал оттуда. Так как в z2m используется имена кластеров, то ID брал отсюда: https://github.com/Koenkk/zigbee-herdsman/blob/924c45c724c929002490b04beeb40d77ffff6ec4/src/zspec/zcl/definition/cluster.ts
Увы, некоторые функции работают некорректно.
Из того, что точно работает:
- occupancy
- illuminance
- targetDistance
- presenceKeepTime (добавил для себя в /usr/share/homed-common/expose.json)
"presenceKeepTime": {"type": "sensor", "unit": "min", "icon": "mdi:timer"}
Из того, что не работает корректно:
- fadingTime. устройство получает настройку, что видно по изменению occupancy спустя заданное время, но нет обратного ответа с состоянием, из-за чего всегда отображается unknown. Единственный атрибут из tuyaDataPoints
- motionSensitivity и sensitivity. Motion detection sensitivity и Static detection sensitivity соответственно. После сброса устройства и подключения имеют значение 5, что соответствует максимальному (от 0 до 5). Если попробовать изменить настройки, то команда отправляется, и приходит ответ с тем же значением. Однако почему-то сразу же приходит состояние 0, поэтому невозможно настроить статическую чувствительность и чувствительность движения
2024.05.11 19:26:14.886 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" sensitivity action request finished successfully
2024.05.11 19:26:14.957 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe005" report received with type "0x20" and data "03" and transaction id 27
2024.05.11 19:26:15.307 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe005" report received with type "0x20" and data "03" and transaction id 70
2024.05.11 19:26:15.375 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe005" report received with type "0x20" and data "00" and transaction id 71
2024.05.11 19:26:16.277 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" motionSensitivity action request finished successfully
2024.05.11 19:26:16.348 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe004" report received with type "0x20" and data "03" and transaction id 31
2024.05.11 19:26:16.698 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe004" report received with type "0x20" and data "03" and transaction id 72
2024.05.11 19:26:16.767 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe004" report received with type "0x20" and data "00" and transaction id 73
- motionDetectionDistance (добавил для себя в /usr/share/homed-common/expose.json)
"motionDetectionDistance": {"type": "number", "unit": "m", "icon": "mdi:arrow-left-right"},
то же самое что и с чувствительностью, приходит максимальное изначальное состояние (600 см или 6м если конвертировать). после изменения настройки - сброс до нуля.
2024.05.11 19:26:17.847 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" motionDetectionDistance action request finished successfully
2024.05.11 19:26:17.925 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe00b" report received with type "0x21" and data "58:02" and transaction id 35
2024.05.11 19:26:18.508 (inf) zigbee: Device "b0:c7:de:ff:fe:7e:1b:2c" endpoint "0x01" cluster "0xe002" attribute "0xe00b" report received with type "0x21" and data "00:00" and transaction id 75
Основной кластер: 0xe002
Лог файл: homed.log Предварительно почистил строчки, не связанные с данным устройством.
Координатор: Sonoff ZBDongle-P
[zigbee]
adapter=znp
port=/dev/ttyUSB0
baudrate=115200
panid=0x1011
channel=11
reset=soft
write=false
У меня только один координатор, поэтому проверять работу в z2m не стал, дабы не сбрасывать настройки и не перепривязывать устройства заново.
Было бы здорово, если поможете проверить конфигурацию, возможно я что-то упускаю. Если нужно больше логов или включить debug для port или adapter, прошу дать знать. Заранее огромное спасибо!
UPD: Проверил работу устройства в z2m. настройки устанавливаются как положено, и даже после подключения к homed они же и принимаются, но в самом homed их установить не получаются, сбрасываются в ноль