chore: 提交高层 xiaomi 封装库及示例
- 新增 xiaomi/examples/ 下 8 个示例程序(用户/家庭查询、设备列表、开关/灯光/空调控制、属性订阅、高级过滤分类、SPEC 解析) - miot_client_sub.go: 重构 SubProp/SubEvent,使用 buildPropTopic/buildEventTopic 支持通配符订阅(siid/piid=0 → +),并修复锁顺序问题(将 RequestRefreshProp 移到 Lock 外) - spec_parser.go: 新增 downloadSpecFile 方法,本地 SPEC 文件缺失时自动从 miot-spec.org 下载 - ARCH_PLAN.md: 架构设计从 Proposed 更新为 Accepted(v1.0→v1.1),补充设备分类/工厂/SPEC 映射等模块设计 - xiaomi/: 新增 miot 上层强类型封装模块,包含 Client 主入口、用户/家庭/设备 API、属性读写、动作调用、订阅通知,以及 devices/ 设备控制抽象(Switch/Light/AirConditioner/Fan/Cover/Humidifier/Vacuum/WaterHeater/Thermostat)和 specs/ SPEC 查询辅助 - 更多 xiaomi 示例(风扇/窗帘/传感器控制)
This commit is contained in:
+1
@@ -0,0 +1 @@
|
||||
{"type":"urn:miot-spec-v2:device:motion-sensor:0000A014:linp-hs1bb2:1","description":"Motion Sensor","services":[{"iid":1,"type":"urn:miot-spec-v2:service:device-information:00007801:linp-hs1bb2:1","description":"Device Information","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:manufacturer:00000001:linp-hs1bb2:1","description":"Device Manufacturer","format":"string","access":["read"]},{"iid":2,"type":"urn:miot-spec-v2:property:model:00000002:linp-hs1bb2:1","description":"Device Model","format":"string","access":["read"]},{"iid":3,"type":"urn:miot-spec-v2:property:serial-number:00000003:linp-hs1bb2:1","description":"Device ID","format":"string","access":["read"]},{"iid":4,"type":"urn:miot-spec-v2:property:firmware-revision:00000005:linp-hs1bb2:1","description":"Current Firmware Version","format":"string","access":["read"]},{"iid":5,"type":"urn:miot-spec-v2:property:serial-no:000000FF:linp-hs1bb2:1","description":"Serial Number","format":"string","access":["read","notify"]}]},{"iid":2,"type":"urn:miot-spec-v2:service:motion-sensor:00007825:linp-hs1bb2:1","description":"Motion Sensor","properties":[{"iid":1005,"type":"urn:miot-spec-v2:property:illumination:0000004E:linp-hs1bb2:1","description":"Illumination","format":"float","access":["notify","read"],"unit":"lux","value-range":[0,1000,1],"source":1,"gatt-access":[]},{"iid":1024,"type":"urn:miot-spec-v2:property:no-motion-duration:000000CB:linp-hs1bb2:1","description":"No Motion Duration","format":"uint16","access":["notify","read"],"unit":"seconds","value-range":[0,65535,1],"source":1},{"iid":2,"type":"urn:miot-spec-v2:property:custom-detect-interval:0000029C:linp-hs1bb2:1","description":"Custom Detect Interval","format":"uint16","access":[],"unit":"seconds","value-range":[10,50,10],"source":3,"gatt-access":["read","write","notify"]},{"iid":1053,"type":"urn:miot-spec-v2:property:custom-no-motion-time:0000029D:linp-hs1bb2:1","description":"Custom No Motion Time","format":"uint16","access":["notify","read"],"unit":"minutes","value-range":[1,60,1],"source":4,"gatt-access":["read","write","notify"]}],"events":[{"iid":1028,"type":"urn:miot-spec-v2:event:device-be-reset:0000503C:linp-hs1bb2:1","description":"Device Be Reset","arguments":[]},{"iid":1008,"type":"urn:miot-spec-v2:event:motion-detected:00005001:linp-hs1bb2:1","description":"Motion Detected","arguments":[1005]}]},{"iid":3,"type":"urn:miot-spec-v2:service:battery:00007805:linp-hs1bb2:1","description":"Battery","properties":[{"iid":1003,"type":"urn:miot-spec-v2:property:battery-level:00000014:linp-hs1bb2:1","description":"Battery Level","format":"uint8","access":["notify","read"],"unit":"percentage","value-range":[0,100,1],"source":1}]},{"iid":4,"type":"urn:miot-spec-v2:service:indicator-light:00007803:linp-hs1bb2:1","description":"Indicator Light","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:on:00000006:linp-hs1bb2:1","description":"Switch Status","format":"bool","access":[],"source":3,"gatt-access":["read","write","notify"]}]},{"iid":5,"type":"urn:linp-spec:service:custom-cfg:00007801:linp-hs1bb2:1","description":"custom-cfg","properties":[{"iid":1,"type":"urn:linp-spec:property:custom-no-one-time-a:00000001:linp-hs1bb2:1","description":"custom-no-one-time-a","format":"uint16","access":[],"unit":"seconds","value-range":[60,3600,1],"source":3,"gatt-access":["read","write"]},{"iid":2,"type":"urn:linp-spec:property:custom-no-one-time-b:00000002:linp-hs1bb2:1","description":"custom-no-one-time-b","format":"uint16","access":[],"unit":"seconds","value-range":[60,3600,1],"source":3,"gatt-access":["read","write"]},{"iid":3,"type":"urn:linp-spec:property:pir-single-report:00000003:linp-hs1bb2:1","description":"pir-single-report","format":"bool","access":[],"source":3,"gatt-access":["read","write"]}]}]}
|
||||
+1
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
||||
{"type":"urn:miot-spec-v2:device:smoke-sensor:0000A023:lumi-mcn02:1","description":"Smoke Sensor","services":[{"iid":1,"type":"urn:miot-spec-v2:service:device-information:00007801:lumi-mcn02:1","description":"Device Information","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:manufacturer:00000001:lumi-mcn02:1","description":"Device Manufacturer","format":"string","access":["read"]},{"iid":2,"type":"urn:miot-spec-v2:property:model:00000002:lumi-mcn02:1","description":"Device Model","format":"string","access":["read"]},{"iid":3,"type":"urn:miot-spec-v2:property:serial-number:00000003:lumi-mcn02:1","description":"Device Serial Number","format":"string","access":["read"]},{"iid":4,"type":"urn:miot-spec-v2:property:firmware-revision:00000005:lumi-mcn02:1","description":"Current Firmware Version","format":"string","access":["read"]}]},{"iid":2,"type":"urn:miot-spec-v2:service:smoke-sensor:00007838:lumi-mcn02:1","description":"Smoke Sensor","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:status:00000007:lumi-mcn02:1","description":"Status","format":"uint8","access":["read","notify"],"value-list":[{"value":1,"description":"Busy"},{"value":2,"description":"Fault"}]}],"events":[{"iid":1,"type":"urn:miot-spec-v2:event:high-concentration-of-smoke-detected:00005027:lumi-mcn02:1","description":"High Concentration Of Smoke Detected","arguments":[]}]},{"iid":3,"type":"urn:miot-spec-v2:service:battery:00007805:lumi-mcn02:1","description":"Battery","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:battery-level:00000014:lumi-mcn02:1","description":"Battery Level","format":"uint8","access":["read","notify"],"unit":"percentage","value-range":[0,100,1]}]}]}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"type":"urn:miot-spec-v2:device:temperature-humidity-sensor:0000A00A:xiaomi-mini:1:0000D063","description":"xiaomi sensor_ht mini","services":[{"iid":1,"type":"urn:miot-spec-v2:service:device-information:00007801:xiaomi-mini:1:0000D063","description":"Device Information","properties":[{"iid":1,"type":"urn:miot-spec-v2:property:manufacturer:00000001:xiaomi-mini:1:0000D063","description":"Device Manufacturer","format":"string","access":["read"],"source":4,"gatt-access":["read"]},{"iid":2,"type":"urn:miot-spec-v2:property:model:00000002:xiaomi-mini:1:0000D063","description":"Device Model","format":"string","access":["read"],"source":4,"gatt-access":["read"]},{"iid":3,"type":"urn:miot-spec-v2:property:serial-number:00000003:xiaomi-mini:1:0000D063","description":"Device ID","format":"string","access":["read"],"source":4,"gatt-access":["read"]},{"iid":4,"type":"urn:miot-spec-v2:property:firmware-revision:00000005:xiaomi-mini:1:0000D063","description":"Current Firmware Version","format":"string","access":["read"],"source":4,"gatt-access":["read"]},{"iid":5,"type":"urn:miot-spec-v2:property:serial-no:000000FF:xiaomi-mini:1:0000D063","description":"Serial Number","format":"string","access":["read"],"source":4,"gatt-access":["read"]}]},{"iid":2,"type":"urn:miot-spec-v2:service:temperature-humidity-sensor:00007814:xiaomi-mini:1:0000D063","description":"temperature humidity sensor","properties":[{"iid":1002,"type":"urn:miot-spec-v2:property:relative-humidity:0000000C:xiaomi-mini:1:0000D063","description":"Relative Humidity","format":"uint8","access":["read","notify"],"unit":"percentage","value-range":[0,100,1],"source":4,"gatt-access":["read","notify"]},{"iid":1001,"type":"urn:miot-spec-v2:property:temperature:00000020:xiaomi-mini:1:0000D063","description":"Temperature","format":"float","access":["read","notify"],"unit":"celsius","value-range":[-30,100,0.1],"source":4,"gatt-access":["read","notify"]}]},{"iid":3,"type":"urn:miot-spec-v2:service:battery:00007805:xiaomi-mini:1:0000D063","description":"Battery","properties":[{"iid":1003,"type":"urn:miot-spec-v2:property:battery-level:00000014:xiaomi-mini:1:0000D063","description":"Battery Level","format":"uint8","access":["read","notify"],"unit":"percentage","value-range":[0,100,1],"source":4,"gatt-access":["read","notify"]}],"events":[{"iid":1001,"type":"urn:miot-spec-v2:event:low-battery:00005003:xiaomi-mini:1","description":"Low Battery","arguments":[]}]}]}
|
||||
Reference in New Issue
Block a user