『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: 27hh

[修仙教程] 【持续更新优化】小米米家智能设备通用接入HomeAssistant插件

  [复制链接]

2

主题

98

帖子

1692

积分

金牌会员

Rank: 6Rank: 6

积分
1692
金钱
1594
HASS币
0
发表于 2021-1-8 18:26:31 | 显示全部楼层
本帖最后由 foxwywh 于 2021-1-9 08:31 编辑

邦先生一代晾衣架用了最新的插件,在调试助手下是能控制,报下面错误:
##晾衣架配置文件   
cover:
  - platform: xiaomi_miot_raw
    name: '晾衣架'
    host: 192.168.2.28
    token: e*8
    mapping:
      motor_control:
        siid: 2
        piid: 1
#      current_position:
#        siid: 2
#        piid: 11
#      target_position:
#        siid: 2
#        piid: 13
    params:
      motor_control:
        open: 1
        close: 2
        stop: 0
日志:
2021-01-08 18:19:12 DEBUG (SyncWorker_13) [miio.miioprotocol] 192.168.2.28:54321 (ts: 1970-01-11 10:13:09, id: 212) << {'id': 212, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4010}
2021-01-08 18:19:12 DEBUG (SyncWorker_5) [miio.miioprotocol] 192.168.2.28:54321 >>: {'id': 213, 'method': 'set_properties', 'params': [{'did': 'motor_control', 'siid': 2, 'piid': 1, 'value': 1}]}
2021-01-08 18:19:13 DEBUG (SyncWorker_12) [miio.miioprotocol] 192.168.2.28:54321 (ts: 1970-01-11 10:13:10, id: 222) << {'id': 222, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4010}

这是json参数:

{
    "type": "urn:miot-spec-v2:device:airer:0000A00D:mrbond-m1s:1",
    "description": "Airer",
    "services": [
        {
            "iid": 1,
            "type": "urn:miot-spec-v2:service:device-information:00007801:mrbond-m1s:1",
            "description": "Device Information",
            "properties": [
                {
                    "iid": 1,
                    "type": "urn:miot-spec-v2:property:manufacturer:00000001:mrbond-m1s:1",
                    "description": "Device Manufacturer",
                    "format": "string",
                    "access": [
                        "read"
                    ]
                },
                {
                    "iid": 2,
                    "type": "urn:miot-spec-v2:property:model:00000002:mrbond-m1s:1",
                    "description": "Device Model",
                    "format": "string",
                    "access": [
                        "read"
                    ]
                },
                {
                    "iid": 3,
                    "type": "urn:miot-spec-v2:property:serial-number:00000003:mrbond-m1s:1",
                    "description": "Device Serial Number",
                    "format": "string",
                    "access": [
                        "read"
                    ]
                },
                {
                    "iid": 4,
                    "type": "urn:miot-spec-v2:property:firmware-revision:00000005:mrbond-m1s:1",
                    "description": "Current Firmware Version",
                    "format": "string",
                    "access": [
                        "read"
                    ]
                }
            ]
        },
        {
            "iid": 2,
            "type": "urn:miot-spec-v2:service:airer:00007817:mrbond-m1s:1",
            "description": "Airer",
            "properties": [
                {
                    "iid": 1,
                    "type": "urn:miot-spec-v2:property:motor-control:00000038:mrbond-m1s:1",
                    "description": "Motor Control",
                    "format": "uint8",
                    "access": [
                        "write"
                    ],
                    "value-list": [
                        {
                            "value": 0,
                            "description": "ause"
                        },
                        {
                            "value": 1,
                            "description": "Up"
                        },
                        {
                            "value": 2,
                            "description": "Down"
                        }
                    ]
                }
            ]
        },
        {
            "iid": 3,
            "type": "urn:miot-spec-v2:service:light:00007802:mrbond-m1s:1",
            "description": "Light",
            "properties": [
                {
                    "iid": 1,
                    "type": "urn:miot-spec-v2:propertyn:00000006:mrbond-m1s:1",
                    "description": "Switch Status",
                    "format": "bool",
                    "access": [
                        "read",
                        "write",
                        "notify"
                    ]
                }
            ]
        }
    ]
}



问题:1、是不是不支持miot 1.0?2、把晾衣架灯做成开关无效,原因同上?3、如果是以上问题,最好加以改进,我家miot1.0的设备超多,没法利用这么好的功能。

回复

使用道具 举报

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

 楼主| 发表于 2021-1-8 22:44:32 | 显示全部楼层
foxwywh 发表于 2021-1-8 18:26
邦先生一代晾衣架用了最新的插件,在调试助手下是能控制,报下面错误:
##晾衣架配置文件   
cover:

奇怪呀,我自己也是邦先生的晾衣架,是可以正常用的。-9999错误目前不清楚原因。
回复

使用道具 举报

1

主题

78

帖子

326

积分

中级会员

Rank: 3Rank: 3

积分
326
金钱
248
HASS币
0
发表于 2021-1-9 00:10:57 | 显示全部楼层
这个真牛批,刚买了一个这个插座。。。顶
回复

使用道具 举报

2

主题

98

帖子

1692

积分

金牌会员

Rank: 6Rank: 6

积分
1692
金钱
1594
HASS币
0
发表于 2021-1-9 08:30:22 | 显示全部楼层
本帖最后由 foxwywh 于 2021-1-9 09:37 编辑
27hh 发表于 2021-1-8 22:44
奇怪呀,我自己也是邦先生的晾衣架,是可以正常用的。-9999错误目前不清楚原因。 ...

邦先生一代的配置应该没错,目前我只配置成功了电热毯,调试助手里,电热毯显示版本是2,而邦先生版本是1这是不是原因所在?我家大部分设备设备都是版本1,如果能解决这个问题就太好了!!!!!另外附上调试晾衣架的调试命令及日志:
miiocli -d device --ip 192.168.2.28 --token e*8 raw_command 'set_properties' '[{"did":"随便写","piid":1,"siid":2,"value":1}]'

日志:
DEBUG:miio.miioprotocoliscovered 0519acad with ts: 1970-01-12 01:27:51, token: b'ffffffffffffffffffffffffffffffff'
DEBUG:miio.miioprotocol:192.168.2.28:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': '随便写', 'piid': 1, 'siid': 2, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.2.28:54321 (ts: 1970-01-12 01:27:55, id: 1) << {'id': 1, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4010}
DEBUG:miio.click_common:Exception: {'code': -9999, 'message': 'user ack timeout'}
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/miio/click_common.py", line 59, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/miio/click_common.py", line 280, in wrap
    kwargs["result"] = func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/miio/click_common.py", line 245, in command_callback
    return miio_command.call(miio_device, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/miio/click_common.py", line 193, in call
    return method(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/miio/device.py", line 162, in raw_command
    return self.send(command, parameters)
  File "/usr/local/lib/python3.8/site-packages/miio/device.py", line 143, in send
    return self._protocol.send(
  File "/usr/local/lib/python3.8/site-packages/miio/miioprotocol.py", line 213, in send
    self._handle_error(payload["error"])
  File "/usr/local/lib/python3.8/site-packages/miio/miioprotocol.py", line 273, in _handle_error
    raise DeviceError(error)
miio.exceptions.DeviceError: {'code': -9999, 'message': 'user ack timeout'}
Error: {'code': -9999, 'message': 'user ack timeout'}
bash-5.0#


回复

使用道具 举报

1

主题

118

帖子

2482

积分

金牌会员

Rank: 6Rank: 6

积分
2482
金钱
2364
HASS币
0
发表于 2021-1-10 21:39:10 | 显示全部楼层
小米窗帘的piid和siid怎么填,我填出来的状态怎么是相反的?楼主帮我看看
{
        "type": "urn:miot-spec-v2:device:curtain:0000A00C:lumi-hmcn01:1",
        "description": "Curtain",
        "services": [{
                "iid": 1,
                "type": "urn:miot-spec-v2:service:device-information:00007801:lumi-hmcn01:1",
                "description": "Device Information",
                "properties": [{
                        "iid": 1,
                        "type": "urn:miot-spec-v2:property:manufacturer:00000001:lumi-hmcn01:1",
                        "description": "Device Manufacturer",
                        "format": "string",
                        "access": ["read"]
                }, {
                        "iid": 2,
                        "type": "urn:miot-spec-v2:property:model:00000002:lumi-hmcn01:1",
                        "description": "Device Model",
                        "format": "string",
                        "access": ["read"]
                }, {
                        "iid": 3,
                        "type": "urn:miot-spec-v2:property:serial-number:00000003:lumi-hmcn01:1",
                        "description": "Device Serial Number",
                        "format": "string",
                        "access": ["read"]
                }, {
                        "iid": 4,
                        "type": "urn:miot-spec-v2:property:firmware-revision:00000005:lumi-hmcn01:1",
                        "description": "Current Firmware Version",
                        "format": "string",
                        "access": ["read"]
                }]
        }, {
                "iid": 2,
                "type": "urn:miot-spec-v2:service:curtain:00007816:lumi-hmcn01:1",
                "description": "Curtain",
                "properties": [{
                        "iid": 1,
                        "type": "urn:miot-spec-v2:property:fault:00000009:lumi-hmcn01:1",
                        "description": "Device Fault",
                        "format": "uint8",
                        "access": ["read", "notify"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "No Faults"
                        }]
                }, {
                        "iid": 2,
                        "type": "urn:miot-spec-v2:property:motor-control:00000038:lumi-hmcn01:1",
                        "description": "Motor Control",
                        "format": "uint8",
                        "access": ["write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Pause"
                        }, {
                                "value": 1,
                                "description": "Open"
                        }, {
                                "value": 2,
                                "description": "Close"
                        }, {
                                "value": 3,
                                "description": "Toggle"
                        }]
                }, {
                        "iid": 3,
                        "type": "urn:miot-spec-v2:property:current-position:00000039:lumi-hmcn01:1",
                        "description": "Current Position",
                        "format": "uint8",
                        "access": ["read", "notify"],
                        "unit": "percentage",
                        "value-range": [0, 100, 1]
                }, {
                        "iid": 6,
                        "type": "urn:miot-spec-v2:property:status:00000007:lumi-hmcn01:1",
                        "description": "Status",
                        "format": "uint8",
                        "access": ["read", "notify"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Stopped"
                        }, {
                                "value": 1,
                                "description": "Opening"
                        }, {
                                "value": 2,
                                "description": "Closing"
                        }]
                }, {
                        "iid": 7,
                        "type": "urn:miot-spec-v2:property:target-position:0000003A:lumi-hmcn01:1",
                        "description": "Target Position",
                        "format": "uint8",
                        "access": ["read", "write", "notify"],
                        "unit": "percentage",
                        "value-range": [0, 100, 1]
                }]
        }, {
                "iid": 6,
                "type": "urn:miot-spec-v2:service:identify:0000782C:lumi-hmcn01:1",
                "description": "Identify",
                "actions": [{
                        "iid": 1,
                        "type": "urn:miot-spec-v2:action:identify:00002801:lumi-hmcn01:1",
                        "description": "Identify",
                        "in": [],
                        "out": []
                }]
        }, {
                "iid": 4,
                "type": "urn:lumi-spec:service:curtain-cfg:00007802:lumi-hmcn01:1",
                "description": "curtain-cfg",
                "properties": [{
                        "iid": 1,
                        "type": "urn:lumi-spec:property:manual-enabled:00000001:lumi-hmcn01:1",
                        "description": "manual-enabled",
                        "format": "int32",
                        "access": ["read", "notify", "write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Disable"
                        }, {
                                "value": 1,
                                "description": "Enable"
                        }]
                }, {
                        "iid": 2,
                        "type": "urn:lumi-spec:property:polarity:00000002:lumi-hmcn01:1",
                        "description": "polarity",
                        "format": "int32",
                        "access": ["read", "notify", "write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Positive"
                        }, {
                                "value": 1,
                                "description": "Reverse"
                        }]
                }, {
                        "iid": 3,
                        "type": "urn:lumi-spec:property:pos-limit:00000003:lumi-hmcn01:1",
                        "description": "pos-limit",
                        "format": "int32",
                        "access": ["read", "notify", "write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Unlimit"
                        }, {
                                "value": 1,
                                "description": "Limit"
                        }]
                }, {
                        "iid": 4,
                        "type": "urn:lumi-spec:property:en-night-tip-light:00000004:lumi-hmcn01:1",
                        "description": "en-night-tip-light",
                        "format": "int32",
                        "access": ["read", "notify", "write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "Disable"
                        }, {
                                "value": 1,
                                "description": "Enable"
                        }]
                }, {
                        "iid": 5,
                        "type": "urn:lumi-spec:property:run-time:00000005:lumi-hmcn01:1",
                        "description": "run-time",
                        "format": "int32",
                        "access": ["read", "notify"],
                        "unit": "none",
                        "value-range": [0, 255, 1]
                }]
        }, {
                "iid": 5,
                "type": "urn:lumi-spec:service:motor-controller:00007803:lumi-hmcn01:1",
                "description": "motor-controller",
                "properties": [{
                        "iid": 1,
                        "type": "urn:lumi-spec:property:adjust-value:00000001:lumi-hmcn01:1",
                        "description": "adjust-value",
                        "format": "int32",
                        "access": ["write"],
                        "unit": "none",
                        "value-range": [-100, 100, 1]
                }],
                "events": [{
                        "iid": 1,
                        "type": "urn:lumi-spec:event:cutain-manual-open:00005001:lumi-hmcn01:1",
                        "description": "cutain-manual-open",
                        "arguments": []
                }, {
                        "iid": 2,
                        "type": "urn:lumi-spec:event:cutain-manual-close:00005002:lumi-hmcn01:1",
                        "description": "cutain-manual-close",
                        "arguments": []
                }]
        }, {
                "iid": 7,
                "type": "urn:lumi-spec:service:remote-cfg:00007804:lumi-hmcn01:1",
                "description": "remote-cfg",
                "properties": [{
                        "iid": 1,
                        "type": "urn:lumi-spec:property:remote-identify:00000001:lumi-hmcn01:1",
                        "description": "remote-identify",
                        "format": "string",
                        "access": ["read", "notify"],
                        "unit": "none"
                }, {
                        "iid": 2,
                        "type": "urn:lumi-spec:property:remote-list:00000002:lumi-hmcn01:1",
                        "description": "remote-list",
                        "format": "string",
                        "access": ["read", "notify"],
                        "unit": "none"
                }, {
                        "iid": 3,
                        "type": "urn:lumi-spec:property:remote-pair:00000003:lumi-hmcn01:1",
                        "description": "remote-pair",
                        "format": "int32",
                        "access": ["write"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "exit"
                        }, {
                                "value": 1,
                                "description": "enter"
                        }]
                }, {
                        "iid": 4,
                        "type": "urn:lumi-spec:property:remote-pair-status:00000004:lumi-hmcn01:1",
                        "description": "remote-pair-status",
                        "format": "int32",
                        "access": ["read", "notify"],
                        "unit": "none",
                        "value-list": [{
                                "value": 0,
                                "description": "配对成功"
                        }, {
                                "value": 1,
                                "description": "配对失败"
                        }, {
                                "value": 2,
                                "description": "配对中"
                        }, {
                                "value": 3,
                                "description": "退出配对"
                        }]
                }, {
                        "iid": 5,
                        "type": "urn:lumi-spec:property:remote-delete:00000005:lumi-hmcn01:1",
                        "description": "remote-delete",
                        "format": "string",
                        "access": ["write"],
                        "unit": "none"
                }]
        }, {
                "iid": 8,
                "type": "urn:lumi-spec:service:sunrise-mode:00007801:lumi-hmcn01:1",
                "description": "sunrise-mode",
                "actions": [{
                        "iid": 1,
                        "type": "urn:lumi-spec:action:sunrise-mode:00002801:lumi-hmcn01:1",
                        "description": "sunrise-mode",
                        "in": [],
                        "out": []
                }]
        }]
}
回复

使用道具 举报

1

主题

111

帖子

550

积分

高级会员

Rank: 4

积分
550
金钱
439
HASS币
0
发表于 2021-1-11 00:42:24 | 显示全部楼层
本帖最后由 lipwah 于 2021-1-11 00:49 编辑

帮先生晾衣架
2021-01-11 00:37:16 DEBUG (SyncWorker_0) [miio.miioprotocol] 192.168.3.3:54321 >>: {'id': 104, 'method': 'set_properties', 'params': [{'did': 'motor_control', 'siid': 2, 'piid': 2, 'value': 2}]}
2021-01-11 00:37:20 DEBUG (SyncWorker_0) [miio.miioprotocol] 192.168.3.3:54321 (ts: 1970-01-12 05:14:10, id: 104) << {'id': 104, 'error': {'code': -9999, 'message': 'user ack timeout'}, 'exe_time': 4010}
回复

使用道具 举报

4

主题

340

帖子

2612

积分

金牌会员

Rank: 6Rank: 6

积分
2612
金钱
2272
HASS币
0
发表于 2021-1-11 17:21:58 | 显示全部楼层
看来很多设备都会出现间歇性的-9999抽风
回复

使用道具 举报

0

主题

7

帖子

361

积分

中级会员

Rank: 3Rank: 3

积分
361
金钱
354
HASS币
0
发表于 2021-1-11 18:23:28 | 显示全部楼层
cxq19880310 发表于 2021-1-8 14:24
大佬,问一下云仪开窗器我把代码弄出来了,关键piid和siid不会填,应该如何填写呢
{
type: "urn:miot-spec- ...

雲儀開窗器有組件了~

https://github.com/dominic2708/yunyi_windows
回复

使用道具 举报

32

主题

986

帖子

4233

积分

论坛元老

Rank: 8Rank: 8

积分
4233
金钱
3207
HASS币
110

教程狂人论坛风云人物

 楼主| 发表于 2021-1-11 20:54:14 | 显示全部楼层
baobaobuku 发表于 2021-1-10 21:39
小米窗帘的piid和siid怎么填,我填出来的状态怎么是相反的?楼主帮我看看
{
        "type": "urn:miot-spec-v2:dev ...

状态相反是什么意思,是说运动方向和操作的方向相反吗?这样的话把下面params里的open和close交换一下就行
回复

使用道具 举报

1

主题

118

帖子

2482

积分

金牌会员

Rank: 6Rank: 6

积分
2482
金钱
2364
HASS币
0
发表于 2021-1-12 17:39:58 | 显示全部楼层
本帖最后由 baobaobuku 于 2021-1-12 17:48 编辑
27hh 发表于 2021-1-11 20:54
状态相反是什么意思,是说运动方向和操作的方向相反吗?这样的话把下面params里的open和close交换一下就 ...

现在可以了,但是没有状态反馈,一直显示打开状态,而且进度条怎么一直是50%,这是写死的吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-28 18:11 , Processed in 0.065952 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表