Данные полезной нагрузки для термостата ZigBee для изменения системного режима термостата в режиме API - PullRequest
0 голосов
/ 10 октября 2019
Can anyone tell me what is the data payload to change the system mode of the ZigBee based thermostat?

I have found the cluster ID and attribute ID for the system mode i.e 0x0201 (cluster ID) & 0x001C (attribute ID) but unable to frame the data payload.

Zigbee walker output

Digi International -- ZDO/ZCL Walker v1.03
Started at Mon Nov 11 10:14:28 2019
Performing discovery on 00-0d-6f-00-0a-93-e5-40.
Endpoint 0x01  Profile 0x0104  Device 0x0301  Ver 0x00
   input/server cluster 0x0000
      attr 0x0000, type 0x20 (UNSIGNED_8BIT) 0x01 = 1
      attr 0x0002, type 0x20 (UNSIGNED_8BIT) 0x02 = 2
      attr 0x0003, type 0x20 (UNSIGNED_8BIT) 0x03 = 3
      attr 0x0004, type 0x42 (STRING_CHAR) "Centralite"
      attr 0x0005, type 0x42 (STRING_CHAR) "3157100-E"
      attr 0x0007, type 0x30 (ENUM_8BIT) 0x81 = 129
   input/server cluster 0x0001
      attr 0x0020, type 0x20 (UNSIGNED_8BIT) 0x1C = 28
      attr 0x0036, type 0x20 (UNSIGNED_8BIT) 0x00 = 0
      attr 0x0037, type 0x20 (UNSIGNED_8BIT) 0x00 = 0
      attr 0x0038, type 0x20 (UNSIGNED_8BIT) 0x00 = 0
      attr 0x0039, type 0x20 (UNSIGNED_8BIT) 0x00 = 0
      attr 0x003E, type 0x1B (BITMAP_32BIT) 0x00000000
   input/server cluster 0x0003
      attr 0x0000, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
   input/server cluster 0x0020
      attr 0x0000, type 0x23 (UNSIGNED_32BIT) 0x00000000 = 0
      attr 0x0001, type 0x23 (UNSIGNED_32BIT) 0x0000001C = 28
      attr 0x0002, type 0x21 (UNSIGNED_16BIT) 0x0001 = 1
      attr 0x0003, type 0x21 (UNSIGNED_16BIT) 0x0014 = 20
      attr 0x0004, type 0x23 (UNSIGNED_32BIT) 0x000000F0 = 240
      attr 0x0005, type 0x23 (UNSIGNED_32BIT) 0x0000001C = 28
      attr 0x0006, type 0x21 (UNSIGNED_16BIT) 0x0078 = 120
   input/server cluster 0x0201
      attr 0x0000, type 0x29 (SIGNED_16BIT) 0x0B39 = 2873
      attr 0x0003, type 0x29 (SIGNED_16BIT) 0x02BC = 700
      attr 0x0004, type 0x29 (SIGNED_16BIT) 0x0BB8 = 3000
      attr 0x0005, type 0x29 (SIGNED_16BIT) 0x02BC = 700
      attr 0x0006, type 0x29 (SIGNED_16BIT) 0x0C80 = 3200
      attr 0x0009, type 0x18 (BITMAP_8BIT) 0xFF
      attr 0x0010, type 0x28 (SIGNED_8BIT) 0x00 = 0
      attr 0x0011, type 0x29 (SIGNED_16BIT) 0x029A = 666
      attr 0x0012, type 0x29 (SIGNED_16BIT) 0x029A = 666
      attr 0x0015, type 0x29 (SIGNED_16BIT) 0x02BC = 700
      attr 0x0016, type 0x29 (SIGNED_16BIT) 0x0BB8 = 3000
      attr 0x0017, type 0x29 (SIGNED_16BIT) 0x02BC = 700
      attr 0x0018, type 0x29 (SIGNED_16BIT) 0x0BB8 = 3000
      attr 0x0019, type 0x28 (SIGNED_8BIT) 0x0A = 10
      attr 0x001B, type 0x30 (ENUM_8BIT) 0x05 = 5
      attr 0x001C, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x001E, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x0023, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x0024, type 0x21 (UNSIGNED_16BIT) 0xFFFF = 65535
      attr 0x0025, type 0x18 (BITMAP_8BIT) 0x00
      attr 0x0029, type 0x19 (BITMAP_16BIT) 0x0000
      attr 0x0030, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x0031, type 0x29 (SIGNED_16BIT) 0x8000 = 32768
   input/server cluster 0x0202
      attr 0x0000, type 0x30 (ENUM_8BIT) 0x05 = 5
      attr 0x0001, type 0x30 (ENUM_8BIT) 0x04 = 4
   input/server cluster 0x0204
      attr 0x0000, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x0001, type 0x30 (ENUM_8BIT) 0x00 = 0
   input/server cluster 0x0B05
      attr 0x0100, type 0x23 (UNSIGNED_32BIT) 0x08000000 = 134217728
      attr 0x0101, type 0x23 (UNSIGNED_32BIT) 0x08000001 = 134217729
      attr 0x0102, type 0x23 (UNSIGNED_32BIT) 0x08000157 = 134218071
      attr 0x0103, type 0x23 (UNSIGNED_32BIT) 0x08006CA7 = 134245543
      attr 0x0104, type 0x21 (UNSIGNED_16BIT) 0x01ED = 493
      attr 0x0105, type 0x21 (UNSIGNED_16BIT) 0x01EF = 495
      attr 0x0106, type 0x21 (UNSIGNED_16BIT) 0x023E = 574
      attr 0x0107, type 0x21 (UNSIGNED_16BIT) 0x0218 = 536
      attr 0x0108, type 0x21 (UNSIGNED_16BIT) 0x0050 = 80
      attr 0x0109, type 0x21 (UNSIGNED_16BIT) 0x0048 = 72
      attr 0x010A, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x010B, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x010C, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x010D, type 0x21 (UNSIGNED_16BIT) 0x0003 = 3
      attr 0x010E, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x010F, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0110, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0111, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0112, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0113, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0114, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0115, type 0x21 (UNSIGNED_16BIT) 0x0001 = 1
      attr 0x0116, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0117, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0118, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x0119, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x011A, type 0x21 (UNSIGNED_16BIT) 0x0000 = 0
      attr 0x011B, type 0x21 (UNSIGNED_16BIT) 0x2401 = 9217
      attr 0x011C, type 0x20 (UNSIGNED_8BIT) 0xFF = 255
      attr 0x011D, type 0x28 (SIGNED_8BIT) 0xDA = 218
  output/client cluster 0x000A
    no attributes
  output/client cluster 0x0019
      attr 0x0000, type 0xF0 (IEEE_ADDR) ff-ff-ff-ff-ff-ff-ff-ff
      attr 0x0001, type 0x23 (UNSIGNED_32BIT) 0xFFFFFFFF = 4294967295
      attr 0x0002, type 0x23 (UNSIGNED_32BIT) 0x04045010 = 67391504
      attr 0x0004, type 0x23 (UNSIGNED_32BIT) 0xFFFFFFFF = 4294967295
      attr 0x0006, type 0x30 (ENUM_8BIT) 0x00 = 0
      attr 0x0007, type 0x21 (UNSIGNED_16BIT) 0xC2DF = 49887
      attr 0x0008, type 0x21 (UNSIGNED_16BIT) 0x0023 = 35
      attr 0x0009, type 0x21 (UNSIGNED_16BIT) 0x1388 = 5000
      attr 0x000A, type 0x23 (UNSIGNED_32BIT) 0x5BAF4865 = 1538213989
Completed at Mon Nov 11 10:15:02 2019
(34 seconds elapsed)

Я создаю фрейм согласно этому - [Отправить команды кластерной библиотеки Zigbee (ZCL) с помощью API] [1]

Ниже приведен мой сконструированный фрейм для изменения системного режима термостата все еще нижняя рамка не меняет режим системы (ВЫКЛ, ОБОГРЕВ, Охлаждение).

7E 00 19 11 01 00 0D 6F 00 0A 93 E5 40 FF FE 01 01 02 01 0104 00 00 00 01 00 00 1C 8B

Может ли кто-нибудь помочь мне с правильным кадром, особенно с частью полезной нагрузки данных, изменить режим системы термостата?

1 Ответ

1 голос
/ 11 октября 2019

Вы подтвердили, что можете присоединиться к сети термостата Nest? Вам нужно будет вручную собрать фрейм ZCL (Zigbee Cluster Library) для чтения или записи идентификатора этого атрибута.

Если у вас есть сниффер 802.15.4, вы сможете контролировать обмен данными между термостатом и другимустройство, чтобы определить, что происходит, и, возможно, выяснить, как воспроизвести эти кадры из XBee. Прошло много времени с тех пор, как я работал с сетями Zigbee, поэтому я не знаю, каковы стандарты для домашней автоматизации сейчас и насколько сложно присоединиться к существующей сети высокой доступности.

Вы не сделалине указывать язык, но Digi предоставляет библиотеку XBee Host C с открытым исходным кодом для взаимодействия со своими модулями XBee (которые вы указали в теге), и она включает в себя ZCL и ZDO / ZDP (Zigbee Data Objects / Profile)) слой. Один из примеров (Zigbee Walker) использует обнаружение ZDO и ZCL для вывода списка конечных точек, кластеров и атрибутов на устройстве.

...