坚持为 ZigBee 设备构建 JSON

Posted

技术标签:

【中文标题】坚持为 ZigBee 设备构建 JSON【英文标题】:Stuck on build JSon for ZigBee devices 【发布时间】:2021-09-02 21:02:21 【问题描述】:

由于 commax 没有任何 API、支持和其他类型的帮助,我试图通过手动添加不受支持的设备来构建我的 IoT 房屋。但现在我坚持管理 Zigbee 调光器到设备。 怎么了:

    I/PAZIGBEE( 3332): CMD : ZIGBEE_CMD_ACK  -------------------------------
E/PAM_HONG( 2677): psoapUrl = http://127.0.0.1:29870
I/PAM     ( 3332): Subscribe Success http://127.0.0.1:29872
I/AdapterService( 2677): PAM DSS SubscriberThread setSubcribeEvent_while : 127.0.0.1:29872
D/Scene   ( 3145): .(ForLocalService.java:517) onStartCommand(): onStartCommand
I/PAZIGBEE( 3332): command_JoinEnable:0100000000000028;, JoinTimer = 40 sec
I/PAZIGBEE( 3332): Switch Cmd == FALSE
I/PAZIGBEE( 3332): send data = 0100000000000028;
I/PAZIGBEE( 3332): RX : fa000000000000000000000000000000000000000100;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0xFA
I/PAZIGBEE( 3332): ID           = 0x0000
I/PAZIGBEE( 3332): Address      = 0x00
I/PAZIGBEE( 3332): EP           = 0x0000
I/PAZIGBEE( 3332): Profile      = 0x0000
I/PAZIGBEE( 3332): Cluster      = 0x0000
I/PAZIGBEE( 3332): Attribute    = 0x0000
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000001
I/PAZIGBEE( 3332): RSSI         = 0x 0
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_CMD_ACK  -------------------------------
W/ProcessStats( 1888): Skipping unknown process pid 10433
I/PAZIGBEE( 3332): RX : 01ffff882bffffffffffffff0800158d0004769fb2ff;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x01
I/PAZIGBEE( 3332): ID           = 0xFFFF
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x00FF
I/PAZIGBEE( 3332): Profile      = 0xFFFF
I/PAZIGBEE( 3332): Cluster      = 0xFFFF
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x08
I/PAZIGBEE( 3332): Value                = 0x00158D0004769FB2
I/PAZIGBEE( 3332): MacAddr              = 00158d0004769fb2
I/PAZIGBEE( 3332): RSSI         = 0xFF
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_JOINNODE
I/PAZIGBEE( 3332): MacAddr              = 00158d0004769fb2
I/PAZIGBEE( 3332): sql_DB_addreesCheck()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE Addr=34859;
I/PAZIGBEE( 3332): sql_DB_macAddreesCheck()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE MAC='00158d0004769fb2';
D/dalvikvm( 1888): GC_FOR_ALLOC freed 1707K, 20% free 8654K/10752K, paused 51ms, total 51ms
I/PAZIGBEE( 3332): RX : 040210882b0bc05e0006ffff00000000000000000044;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x04
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x000B
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x0006
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000000
I/PAZIGBEE( 3332): RSSI         = 0x44
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_DESCRIPTION_REPORT / m_addModeflag[1]
I/PAZIGBEE( 3332): ADD sub device count = 0
I/PAZIGBEE( 3332): T_str        = switchBinary
I/PAZIGBEE( 3332): T_IDstr = unknown
I/PAZIGBEE( 3332): T_count = 0
I/PAZIGBEE( 3332): sql_DB_subDevice_check()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE Addr=34859 AND profile=49246 AND cluster=6 AND EP=11;
I/PAZIGBEE( 3332): addDeviceFanc() Mac(409691A8)
I/PAZIGBEE( 3332): subUuid      = a61785b2-33c0-4bc2-91b7-f7a92df610cf
I/PAZIGBEE( 3332): type         = readWrite
I/PAZIGBEE( 3332): sort         = switchBinary
I/PAZIGBEE( 3332): funcComand   = report
I/PAZIGBEE( 3332): value        = off
I/PAZIGBEE( 3332): RX : 040210882b0bc05e0008ffff00000000000000000044;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x04
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x000B
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x0008
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000000
I/PAZIGBEE( 3332): RSSI         = 0x44
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_DESCRIPTION_REPORT / m_addModeflag[1]
I/PAZIGBEE( 3332): ADD sub device count = 1
I/PAZIGBEE( 3332): T_str        = switchDimmer
I/PAZIGBEE( 3332): T_IDstr = unknown
I/PAZIGBEE( 3332): T_count = 1
I/PAZIGBEE( 3332): sql_DB_subDevice_check()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE Addr=34859 AND profile=49246 AND cluster=8 AND EP=11;
I/PAZIGBEE( 3332): addDeviceFanc() Mac(409691A8)
I/PAZIGBEE( 3332): subUuid      = 3b40c76e-b462-4fd9-95db-e2608cd1d214
I/PAZIGBEE( 3332): type         = readWrite
I/PAZIGBEE( 3332): sort         = switchDimmer
I/PAZIGBEE( 3332): funcComand   = report
I/PAZIGBEE( 3332): value        = 0
I/PAZIGBEE( 3332): precision    = 0
I/PAZIGBEE( 3332): scale                = %
I/PAZIGBEE( 3332): RX : 040210882b0bc05e0300ffff00000000000000000044;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x04
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x000B
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x0300
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000000
I/PAZIGBEE( 3332): RSSI         = 0x44
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_DESCRIPTION_REPORT / m_addModeflag[1]
I/PAZIGBEE( 3332): ADD sub device count = 2
I/PAZIGBEE( 3332): T_str        = colour
I/PAZIGBEE( 3332): T_IDstr = unknown
I/PAZIGBEE( 3332): T_count = 2
I/PAZIGBEE( 3332): sql_DB_subDevice_check()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE Addr=34859 AND profile=49246 AND cluster=768 AND EP=11;
I/PAZIGBEE( 3332): addDeviceFanc() Mac(409691A8)
I/PAZIGBEE( 3332): subUuid      = 94137451-9f60-4655-ba5a-c0ab8884436f
I/PAZIGBEE( 3332): type         = readWrite
I/PAZIGBEE( 3332): sort         = colour
I/PAZIGBEE( 3332): funcComand   = report
I/PAZIGBEE( 3332): value        = off
I/PAZIGBEE( 3332): RX : 040210882b0bc05e1000ffff00000000000000000044;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x04
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x000B
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x1000
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000000
I/PAZIGBEE( 3332): RSSI         = 0x44
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_DESCRIPTION_REPORT / m_addModeflag[1]
I/PAZIGBEE( 3332): ADD sub device count = 3
I/PAZIGBEE( 3332): T_str        = Touch link
I/PAZIGBEE( 3332): T_IDstr = unknown
I/PAZIGBEE( 3332): T_count = 3
I/PAZIGBEE( 3332): sql_DB_subDevice_check()
I/PAZIGBEE( 3332): sqlite3_open
I/PAZIGBEE( 3332): sql = SELECT COUNT(*) FROM ZigbeeDevice WHERE Addr=34859 AND profile=49246 AND cluster=4096 AND EP=11;
I/PAZIGBEE( 3332): addDeviceFanc() Mac(409691A8)
I/PAZIGBEE( 3332): RX : 040210882b0bc05e0019ffff00000000000000000044;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x04
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x000B
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x0019
I/PAZIGBEE( 3332): Attribute    = 0xFFFF
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000000
I/PAZIGBEE( 3332): RSSI         = 0x44
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_DESCRIPTION_REPORT / m_addModeflag[1]
I/PAZIGBEE( 3332): ADD sub device count = 4
I/PAZIGBEE( 3332): Unsupported Device in ZIGBEE_DESCRIPTION_REPORT Cluster(0x0019)
I/PAZIGBEE( 3332): RX : 050210882b00c05e8002000002000000000000117e4a;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0x05
I/PAZIGBEE( 3332): ID           = 0x0210
I/PAZIGBEE( 3332): Address      = 0x882B
I/PAZIGBEE( 3332): EP           = 0x0000
I/PAZIGBEE( 3332): Profile      = 0xC05E
I/PAZIGBEE( 3332): Cluster      = 0x8002
I/PAZIGBEE( 3332): Attribute    = 0x0000
I/PAZIGBEE( 3332): DataSize     = 0x02
I/PAZIGBEE( 3332): Value                = 0x000000000000117E
I/PAZIGBEE( 3332): RSSI         = 0x4A
I/PAZIGBEE( 3332):  ]]
I/PAZIGBEE( 3332): CMD : ZIGBEE_MANUFACTURE
I/PAZIGBEE( 3332): manufacturer_check() >> Unknown manufacturer1
E/PAM     ( 3332): @@ ZIGBEE Manucture Check Error [1]
I/PAZIGBEE( 3332): command_JoinEnable:010000000000001E;, JoinTimer = 30 sec
I/PAZIGBEE( 3332): Switch Cmd == FALSE
I/PAZIGBEE( 3332): send data = 010000000000001E;
I/PAZIGBEE( 3332): RX : fa000000000000000000000000000000000000000100;
I/PAZIGBEE( 3332): Zigbee Msg Received(45) [[
I/PAZIGBEE( 3332): CMD          = 0xFA
I/PAZIGBEE( 3332): ID           = 0x0000
I/PAZIGBEE( 3332): Address      = 0x00
I/PAZIGBEE( 3332): EP           = 0x0000
I/PAZIGBEE( 3332): Profile      = 0x0000
I/PAZIGBEE( 3332): Cluster      = 0x0000
I/PAZIGBEE( 3332): Attribute    = 0x0000
I/PAZIGBEE( 3332): DataSize     = 0x00
I/PAZIGBEE( 3332): Value                = 0x0000000000000001
I/PAZIGBEE( 3332): RSSI         = 0x 0
I/PAZIGBEE( 3332):  ]]

这是尝试添加 zigbee RGB 灯管理的日志

我添加到 SQLite 的内容

表根设备

"command":"addReport","object":"rootUuid":"8fbb1d52-be94-44d8-b54e-56785faaf0f7","rootDevice":"dimmer","information": "comType": "Zigbee", "manufacture": "HEIMAN", "product": "light", "commaxDevice": "light", "visible": "true", "subDevice":["value":"0","subUuid":"3b40c76e-b462-4fd9-95db-e2608cd1d214","sort":"switchDimmer","funcCommand":"report","precision":"0", "option1": "0", "option2": "100", "type":"readWrite", "subVisible": "true", "ifRunvisible": "true", "other_subcount": "1", "other_sort[1]": "switchBinary", "other_subUuid[1]": "a61785b2-33c0-4bc2-91b7-f7a92df610cf", "other_value[1]": "off", "other_precision[1]": "0", "other_option1[1]": "0", "other_option2[1]": "100", "controller": "0"]

表子设备

1.

"command": "report", "object": "rootDevice": "dimmer", "rootUuid": "8fbb1d52-be94-44d8-b54e-56785faaf0f7", "commaxDevice": "light", "subDevice": ["subUuid": "a61785b2-33c0-4bc2-91b7-f7a92df610cf", "type": "readWrite", "funcCommand": "report", "sort": "switchBinary", "value": "off"]
"command": "report", "object": "rootDevice": "dimmer", "rootUuid": "8fbb1d52-be94-44d8-b54e-56785faaf0f7", "commaxDevice": "light", "subDevice": ["subUuid": "3b40c76e-b462-4fd9-95db-e2608cd1d214", "type": "readWrite", "funcCommand": "report", "sort": "switchDimmer", "value": "0", "precision": "0", "option1": "0", "option2": "100"]

https://github.com/chechea/Cherryblossom/blob/master/IPHomeIoT/Control/app/src/main/java/com/commax/control/Card_list/Card_DimmerSwitch.java

那是一张DimmerSwitch 的卡片,我不明白为什么我尝试启动它时得到 NullPointerException。

无论如何,我仍然不明白我需要提供什么参数作为“比例”,因为我需要将“%”作为比例发送到 ZigBee。 据我所知,它只会在不发送刻度类型的情况下将值从 0 更改为 100,因此我的调光器不会在全光下运行。

【问题讨论】:

【参考方案1】:

找到了解决办法:

对于表根设备

"command":"addReport","object":"rootUuid":"8fbb1d52-be94-44d8-b54e-56785faaf0f7","rootDevice":"dimmer","information":"comType":"Zigbee","manufacture":"HEIMAN","product":"light","commaxDevice":"light","visible":"true","subDevice":["subUuid":"3b40c76e-b462-4fd9-95db-e2608cd1d214","value":"0","sort":"switchDimmer","funcCommand":"report","precision":"0","option1":"10","option2":"100","type":"readWrite","subVisible":"true","ifRunvisible":"true","subUuid":"a61785b2-33c0-4bc2-91b7-f7a92df610cf","value":"off","sort":"switchBinary"]

用于两个设备上的表子设备(开关和调光器)

"command":"report","object":"rootDevice":"dimmer","rootUuid":"8fbb1d52-be94-44d8-b54e-56785faaf0f7","commaxDevice":"light","subDevice":["subUuid":"3b40c76e-b462-4fd9-95db-e2608cd1d214","value":"0","sort":"switchDimmer","funcCommand":"report","precision":"0","option1":"10","option2":"100","type":"readWrite","subVisible":"true","ifRunvisible":"true","subUuid":"a61785b2-33c0-4bc2-91b7-f7a92df610cf","value":"off","sort":"switchBinary"]

【讨论】:

以上是关于坚持为 ZigBee 设备构建 JSON的主要内容,如果未能解决你的问题,请参考以下文章

坚持解析从服务器返回的 JSON,ios

CloudFormation 坚持认为我的 DynamoDB 创建 JSON 无效.. 但我看不出如何

tsconfig.json中增量是啥意思?

Charles Proxy iOS 坚持安装配置文件

吴恩达机器学习丨思维导图丨坚持打卡23天——构建知识脉络,回顾总结复盘

Angstrom内核 - 坚持“正在启动内核......”