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

标题: 米家智能墙壁插座 功率上报 时间间隔问题 [打印本页]

作者: zyling    时间: 2022-12-20 12:45
标题: 米家智能墙壁插座 功率上报 时间间隔问题
最近装了个米家智能墙壁插座 ,通过蓝牙MESH连接多模网关接入HA这个插座:https://home.miot-spec.com/s/zimi.plug.zncz01


使用观察了几天,这货HA控制开关正常,但是实时功率上报几乎不可用,数据很久时间都不会更新。

但是,当打开米家APP,查看这个插座时,实时功率数据会立马刷新,HA实体也会立即更新到数据 。
而在未打开米家APP时,实时功率基本不变化

这样在HA里想按实时功率来作些自动化根本用不了

请问这是BUG吗?可以修改它的上报时间间隔吗?


作者: dscao    时间: 2022-12-20 13:13
本帖最后由 dscao 于 2022-12-20 14:53 编辑

早期买了两个,一样的情况。好在用途上是做太阳能热水器和燃气热水器的阀门开关,没有功率无所谓。
后来需要用就买绿米zigbee的了,蓝牙mesh这款实在不太好,就是便宜。
https://home.miot-spec.com/s/zimi.plug.zncz01
看这个,好像有一个参数控制是否上报嘛,修改一下插件可能有用,元旦回家试试。

作者: zyling    时间: 2022-12-20 14:55
dscao 发表于 2022-12-20 13:13
早期买了两个,一样的情况。好在用途上是做太阳能热水器和燃气热水器的阀门开关,没有功率无所谓。
后来需 ...

我是接洗衣机,想通过功率判断 洗衣完成情况

看来得拆下来换别的。家里wifi信号全覆盖,wifi版的插座应该会更好用吧
作者: dscao    时间: 2022-12-20 15:15
本帖最后由 dscao 于 2022-12-20 19:17 编辑

如果是最新master版的gateway3插件, custom_components\xiaomi_gateway3\core\converters\devices.py
1390行:
加一句:MathConv("enable-upload-power", "number", mi="6.p.1", min=0, max=1),

  1.     # https://www.ixbt.com/live/chome/umnaya-rozetka-xiaomi-zncz01zm-s-energomonitoringom-i-bluetooth-mesh-integraciya-v-home-assistant.html
  2.     3083: ["Xiaomi", "Electrical Outlet", "ZNCZ01ZM"],
  3.     "spec": [
  4.         Converter("outlet", "switch", mi="2.p.1"),
  5.         MathConv("power", "sensor", mi="3.p.1", multiply=0.01),
  6.         Converter("led", "switch", mi="4.p.1", enabled=False),
  7.         MathConv("enable-upload-power", "number", mi="6.p.1", min=0, max=1),
  8.         Converter("power_protect", "switch", mi="7.p.1", enabled=False),
  9.         MathConv("power_value", "number", mi="7.p.2", multiply=0.01,
  10.                  min=0, max=1638400, enabled=False),
  11.     ],
复制代码


重启后,将实体 enable-upload-power 改成 1,再看看功率会不会更新。

我现在不在家没有设备测试,你可以试一下,测试前备份好原来的 devices.py 文件,防止有问题可以立即恢复回去。
楼下的朋友提醒,改为这样试试:
  1. {
  2.     # https://www.ixbt.com/live/chome/umnaya-rozetka-xiaomi-zncz01zm-s-energomonitoringom-i-bluetooth-mesh-integraciya-v-home-assistant.html
  3.     3083: ["Xiaomi", "Electrical Outlet", "ZNCZ01ZM"],
  4.     "spec": [
  5.         Converter("outlet", "switch", mi="2.p.1"),
  6.         MathConv("power", "sensor", mi="3.p.1", multiply=0.01),
  7.         Converter("led", "switch", mi="4.p.1", enabled=False),
  8.         BoolConv("enable-upload-power", "switch", mi="6.p.1"),
  9.         Converter("power_protect", "switch", mi="7.p.1", enabled=False),
  10.         MathConv("power_value", "number", mi="7.p.2", multiply=0.01,
  11.                  min=0, max=1638400, enabled=False),
  12.     ],
  13. },
复制代码
enable-upload-power实体开关 打开


作者: zyling    时间: 2022-12-20 17:07
dscao 发表于 2022-12-20 15:15
如果是最新master版的gateway3插件, custom_components\xiaomi_gateway3\core\converters\devices.py
1390 ...

晚上测试。要是可以用那就太好了,不用更换插座了
作者: flyibeat    时间: 2022-12-20 17:10
dscao 发表于 2022-12-20 15:15
如果是最新master版的gateway3插件, custom_components\xiaomi_gateway3\core\converters\devices.py
1390 ...

其实可以用`BoolConv`,直接生成开关实体,插件的作者也写了For MIoT uint8 properties you should use `BoolConv`

新建一个xiaomi_gateway3.py更好修改,他这个可以覆盖已存在的设备信息You can write you own external converter without change integration code. Just create xiaomi_gateway3.py file in Hass config folder.

the new device is added to the top of the list, so it will have a higher priority when checking for a model match and you can override the built-in converters
作者: dscao    时间: 2022-12-20 19:11
flyibeat 发表于 2022-12-20 17:10
其实可以用`BoolConv`,直接生成开关实体,插件的作者也写了For MIoT uint8 properties you should use `B ...

是哦,里面注释中有说明,用 BoolConv ,那就更好了。

作者: zyling    时间: 2022-12-20 19:57
本帖最后由 zyling 于 2022-12-20 21:26 编辑
dscao 发表于 2022-12-20 15:15
如果是最新master版的gateway3插件, custom_components\xiaomi_gateway3\core\converters\devices.py
1390 ...

按这样改了,重启也有生成实体

但是过了3小时,功率还是没变化过(当前空载)。

刚接了充电器、电热锅,HA上的实时功率仍未变化,还一直显示在2W左右。

打开米家APP一瞬间,立马就刷出来实时功率215W了。
感觉这个插座是米家APP去请求才GET到实时功率,平时不打开APP它也不主动报送

期待继续完善代码

作者: maxmib    时间: 2022-12-21 00:04
遇到过相同问题,按作者的回复添加一个自动化可以解决,可以查看一下这个插件在github上的issue
作者: MX10085    时间: 2022-12-21 08:39
看着便宜,入了两个同样所插座,记号一下
作者: flyibeat    时间: 2022-12-21 08:50
maxmib 发表于 2022-12-21 00:04
遇到过相同问题,按作者的回复添加一个自动化可以解决,可以查看一下这个插件在github上的issue ...

可以指一下issue链接吗,我找了一圈,暂时只看到反馈这个问题的,没看到教写自动化的
作者: flyibeat    时间: 2022-12-21 08:59
zyling 发表于 2022-12-20 19:57
按这样改了,重启也有生成实体

但是过了3小时,功率还是没变化过(当前空载)。

看描述似乎是插座的功率变化不会让它主动连接网关上报数据,只有打开app,让网关主动连接插座才能实时获取数据。
有一个猜想,可以尝试一下,不知道对不对。就是把这个插座再用miot auto集成添加到ha,走云端,看能不能实现app的主动连接效果。两个集成都添加它,只要插座一直与网关通讯反馈数据,gateway3中就能实时获得数据。
作者: zyling    时间: 2022-12-21 09:42
flyibeat 发表于 2022-12-21 08:59
看描述似乎是插座的功率变化不会让它主动连接网关上报数据,只有打开app,让网关主动连接插座才能实时获 ...

你说的这个我早就试了,这两个集成一起使用,两个实时功率的实体一样,不会主动刷新。
作者: flyibeat    时间: 2022-12-21 09:45
zyling 发表于 2022-12-21 09:42
你说的这个我早就试了,这两个集成一起使用,两个实时功率的实体一样,不会主动刷新。 ...

看来我得选择绿米的插座了
作者: zyling    时间: 2022-12-21 09:55
flyibeat 发表于 2022-12-21 09:45
看来我得选择绿米的插座了

找找,有一些走wifi的墙壁插座,准备买个试试。

当然,要是通过集成修改代码能做到功率上报最好了。估计要等大神有空解决
作者: MX10085    时间: 2022-12-21 09:59
本帖最后由 MX10085 于 2022-12-21 11:23 编辑

按楼上说法试了下,我使用Xiaomi Miot Auto集成,发现有个开启功率上报开关,打开就行,不过数据更新时间有点迷!
前面两图是Xiaomi Miot Auto集成,最后图片是Xiaomi Gateway 3集成。



[attach]44256[/attach]

[attach]44257[/attach]

[attach]44258[/attach]



作者: zyling    时间: 2022-12-21 10:04
maxmib 发表于 2022-12-21 00:04
遇到过相同问题,按作者的回复添加一个自动化可以解决,可以查看一下这个插件在github上的issue ...

https://github.com/AlexxIT/XiaomiGateway3/issues/866
只找到相关的一个issue

解决的自动化在哪呢,可以提示下吗?
作者: dscao    时间: 2022-12-21 10:12
zyling 发表于 2022-12-20 19:57
按这样改了,重启也有生成实体

但是过了3小时,功率还是没变化过(当前空载)。

看这里提供的日志 https://github.com/AlexxIT/XiaomiGateway3/issues/188

每次上报功率前都有一次写入 "piid":1,"siid":6,"value":1

你试着手动不停的打开新生成的实体开关,看看功率会不会变化。如果可以,后面用自动化每30秒打开一次这个实体。


作者: zyling    时间: 2022-12-21 11:34
dscao 发表于 2022-12-21 10:12
看这里提供的日志 https://github.com/AlexxIT/XiaomiGateway3/issues/188

每次上报功率前都有一次写入  ...

按你说的试了,确实有效果,打开开关的同时,功率就更新了
接下来就是做个自动化了
作者: dscao    时间: 2022-12-21 13:32
本帖最后由 dscao 于 2022-12-21 14:05 编辑
zyling 发表于 2022-12-21 11:34
按你说的试了,确实有效果,打开开关的同时,功率就更新了
接下来就是做个自动化了 ...

这样的话就解决了,不过需要自动化配合一下,相当于app在刷新打开这个开关。
插件本身不知道有没有类似的定时任务,如果有的话可以优化修改插件。或者提交一下这个情况给插件作者。
我先提交了一个PR了,下次合并后就可以直接更新了。


作者: zyling    时间: 2022-12-21 13:55
dscao 发表于 2022-12-21 13:32
这样的话就解决了,不过需要自动化配合一下,相当于app在刷新打开这个开关。
插件本身不知道有没有类似的 ...

感谢感谢,现在30秒刷新一次,那这个插座的实时功率上报就算完美解决了

不用麻烦再买绿米等其他的了,这个插座的价格美丽多了
作者: flyibeat    时间: 2022-12-21 16:36
zyling 发表于 2022-12-21 13:55
感谢感谢,现在30秒刷新一次,那这个插座的实时功率上报就算完美解决了

不用麻烦再买绿米等其他的了,这 ...

蓝牙的这款离网关远的话,延迟咋样呀
作者: zyling    时间: 2022-12-21 18:01
flyibeat 发表于 2022-12-21 16:36
蓝牙的这款离网关远的话,延迟咋样呀

我的在阳台用,能连接到客厅的多模网关,使用没问题
作者: killer123    时间: 2022-12-23 13:52
本帖最后由 killer123 于 2022-12-23 14:18 编辑
dscao 发表于 2022-12-21 13:32
这样的话就解决了,不过需要自动化配合一下,相当于app在刷新打开这个开关。
插件本身不知道有没有类似的 ...

谢谢 dscao兄在Github的回复,转一圈又回来,按教程用了master版,加了实体终于好了,感谢
作者: jjf89757    时间: 2022-12-23 17:38
killer123 发表于 2022-12-23 13:52
谢谢 dscao兄在Github的回复,转一圈又回来,按教程用了master版,加了实体终于好了,感谢 ...

可以麻烦把怎么解决的说下吗,没看懂
作者: maxmib    时间: 2022-12-23 19:25
flyibeat 发表于 2022-12-21 08:50
可以指一下issue链接吗,我找了一圈,暂时只看到反馈这个问题的,没看到教写自动化的 ...

https://github.com/al-one/hass-x ... 65#event-8086156250
作者: rkevin    时间: 2022-12-26 16:02
你用的是什么版本的固件?我用支持子网关的新固件,蓝牙问题好多
作者: killer123    时间: 2022-12-26 17:46
jjf89757 发表于 2022-12-23 17:38
可以麻烦把怎么解决的说下吗,没看懂

先按dscao兄在4楼的帖子,给插座加一个实体
BoolConv("enable-upload-power", "switch", mi="6.p.1"),
(实测最新2.1.2版就能用,不一定要master版)
然后加一个自动化,每隔一段时间去打开新建的实体就能刷新电源功率的。
例子如下
alias: Xiaomi Bluetooth mesh outlet reports power by activates every 30 seconds
description: ""
trigger:
  - platform: time_pattern
    seconds: /30
condition: []
action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id:
        - switch.28d12736123a_enable_upload_power
mode: single
作者: jjf89757    时间: 2022-12-26 19:18
killer123 发表于 2022-12-26 17:46
先按dscao兄在4楼的帖子,给插座加一个实体
BoolConv("enable-upload-power", "switch", mi="6.p.1"),
( ...

BoolConv("enable-upload-power", "switch", mi="6.p.1"),
在请教下(完全门外汉),这个加哪里,我插座面板是连接到中枢网关,网关通过miot auto连接到ha的
作者: killer123    时间: 2022-12-26 21:15
jjf89757 发表于 2022-12-26 19:18
BoolConv("enable-upload-power", "switch", mi="6.p.1"),
在请教下(完全门外汉),这个加哪里,我插座 ...

这个教程的方法是基于Xiaomi Gateway3插件的,不适应miot auto。
作者: zyling    时间: 2022-12-28 20:24
HA的自动化我没弄,习惯用NR来实现同样的自动化了
作者: zyling    时间: 2023-1-10 20:04
dscao 发表于 2022-12-21 13:32
这样的话就解决了,不过需要自动化配合一下,相当于app在刷新打开这个开关。
插件本身不知道有没有类似的 ...

昨天更新了最新版的插件 v3.0-alpha.1,
发现这个功能代码仍未被合并,还是需要手动修改添加代码才行。
作者: dscao    时间: 2023-1-10 20:19
zyling 发表于 2023-1-10 20:04
昨天更新了最新版的插件 v3.0-alpha.1,
发现这个功能代码仍未被合并,还是需要手动修改添加代码才行。 ...

作者说:这种情况应该是每 X 秒“ping”一次这个属性,看起来它应该是一个“请求”服务,而不应该是开关。
所以就没有合并。

那么这个集成就需要增加一项“ping”指定属性的功能,不知道什么时候能实现。


作者: zyling    时间: 2023-1-11 00:15
dscao 发表于 2023-1-10 20:19
作者说:这种情况应该是每 X 秒“ping”一次这个属性,看起来它应该是一个“请求”服务,而不应该是开关。 ...

目前这个插座只添加那一行代码已经可以算是完美了。

您能不能帮忙研究一下“领普门窗传感器”,怎样用这个集成?
买了两个,还未能接入HA
作者: flyibeat    时间: 2023-1-11 14:18
本帖最后由 flyibeat 于 2023-1-11 14:42 编辑
zyling 发表于 2023-1-11 00:15
目前这个插座只添加那一行代码已经可以算是完美了。

您能不能帮忙研究一下“领普门窗传感器”,怎样用这 ...

查了一下好像是ble连接的,这个需要你贴一下插件的debug日志看看数据结构了,日志需要如链接内的那种类型https://github.com/AlexxIT/XiaomiGateway3/issues/180

要得到设备发送的pdid,edata,eid信息
或者先添加(XXXX为插件显示的设备码)
  1. {
  2. XXXX: ["linptech", "Door/Window Sensor", "MS1BB"],
  3. "spec": [
  4.      MiBeacon, BLEContact, BLEBattery,
  5. ],
  6. }
复制代码


作者: zyling    时间: 2023-1-11 16:29
flyibeat 发表于 2023-1-11 14:18
查了一下好像是ble连接的,这个需要你贴一下插件的debug日志看看数据结构了,日志需要如链接内的那种类型h ...

谢谢,我晚上查看下日志,
找一下设备发送的pdid,edata,eid信息

然后再向您请教
作者: zyling    时间: 2023-1-12 21:30
flyibeat 发表于 2023-1-11 14:18
查了一下好像是ble连接的,这个需要你贴一下插件的debug日志看看数据结构了,日志需要如链接内的那种类型h ...

这个插件的debug日志要如何查看呀?
还没学会这个
作者: flyibeat    时间: 2023-1-13 08:41
zyling 发表于 2023-1-12 21:30
这个插件的debug日志要如何查看呀?
还没学会这个

https://github.com/AlexxIT/XiaomiGateway3#debug-mode
作者: rkevin    时间: 2023-1-26 17:59
MX10085 发表于 2022-12-21 09:59
按楼上说法试了下,我使用Xiaomi Miot Auto集成,发现有个开启功率上报开关,打开就行,不过数据更新时间有 ...

您的多模固件版本是?我用了有从网关的版本,不显示功率
作者: MX10085    时间: 2023-1-27 17:51
rkevin 发表于 2023-1-26 17:59
您的多模固件版本是?我用了有从网关的版本,不显示功率

固件是 1.0.5_0008,我用node-red每30秒自动刷新一下,这样不用每次更新Xiaomi Gateway 3集成,都要修改文件。
作者: farmer111    时间: 2023-1-30 16:37
使用Xiaomi Miot Auto接入的同学 可以加入一个自动化就可以解决 30秒刷新一次 也可以自己修改 设备ID记得改成自己的 代码如下

alias: Update the outlet power every 30s
trigger:
  - platform: time_pattern
    seconds: /30
condition:
  - condition: device
    type: is_on
    device_id: e0935779acce9f808249141b53fb9ced
    entity_id: switch.zimi_zncz01_66e0_switch
    domain: switch
action:
  - service: xiaomi_miot.set_property
    data:
      entity_id: switch.zimi_zncz01_66e0_switch
      field: enable_upload_power
      value: 0
  - service: xiaomi_miot.set_property
    data:
      entity_id: switch.zimi_zncz01_66e0_switch
      field: enable_upload_power
      value: 1
  - service: xiaomi_miot.get_properties
    data:
      entity_id: switch.zimi_zncz01_66e0_switch
      mapping:
        - siid: 3
          piid: 1
      update_entity: true
mode: single
作者: liukks    时间: 2023-3-17 14:40
来试一试,改了可以不
作者: billrice    时间: 2023-3-23 13:53
farmer111 发表于 2023-1-30 16:37
使用Xiaomi Miot Auto接入的同学 可以加入一个自动化就可以解决 30秒刷新一次 也可以自己修改 设备ID记得改 ...

前两天插件升级以后不好用了
我改了一下

  1. action:
  2.   - device_id: b10a66a4f99e4099150899637888537d
  3.     domain: select
  4.     entity_id: select.zimi_zncz01_799d_enable_upload_power
  5.     type: select_option
  6.     option: Disable
  7.   - device_id: b10a66a4f99e4099150899637888537d
  8.     domain: select
  9.     entity_id: select.zimi_zncz01_799d_enable_upload_power
  10.     type: select_option
  11.     option: Enable
  12. mode: single
复制代码

作者: xuyong    时间: 2023-3-31 15:15
billrice 发表于 2023-3-23 13:53
前两天插件升级以后不好用了
我改了一下

请问修改后的全部代码能发一下吗?我把你这个修改部份贴到楼上的有错误
作者: farmer111    时间: 2023-5-9 00:38
xuyong 发表于 2023-3-31 15:15
请问修改后的全部代码能发一下吗?我把你这个修改部份贴到楼上的有错误 ...
  1. alias: 插座功率刷新
  2. description: ""
  3. trigger:
  4.   - platform: time_pattern
  5.     minutes: /10
  6. condition:
  7.   - condition: device
  8.     type: is_on
  9.     device_id: e0935779acce9f808249141b53fb9ced
  10.     entity_id: switch.zimi_zncz01_66e0_switch
  11.     domain: switch
  12. action:
  13.   - device_id: e0935779acce9f808249141b53fb9ced
  14.     domain: select
  15.     entity_id: select.zimi_zncz01_66e0_enable_upload_power
  16.     type: select_option
  17.     option: Disable
  18.   - device_id: e0935779acce9f808249141b53fb9ced
  19.     domain: select
  20.     entity_id: select.zimi_zncz01_66e0_enable_upload_power
  21.     type: select_option
  22.     option: Enable
  23. mode: single
复制代码

作者: TestUser123    时间: 2023-7-8 20:26
farmer111 发表于 2023-5-9 00:38

请问 device_id: 是指?谢谢
作者: mars.z    时间: 2023-8-10 18:55
刚收到货,才发现发现竟然还有这个问题,有点坑啊,这个功率上报的问题。不过用中枢极客版创建一个自动化,插座开启状态下开始循环固定时间开启上报功率,也算是解决了
作者: Necroneco    时间: 2023-10-15 14:47
墙壁插座更新新版固件之后, 已经没这问题了, 会正常上报数据了
作者: wayes    时间: 2023-12-29 11:05
标题: RE: 米家智能墙壁插座 功率上报 时间间隔问题
本帖最后由 wayes 于 2024-1-20 11:47 编辑

大佬,device_id: e0935779acce9f808249141b53fb9ced是换成自己的TOKEN值吧,我替换了,显示
Message malformed: Unknown device '14a81775bce5247ef85294b021d90c1'


下面的  entity_id: switch.zimi_zncz01_66e0_switch
这几个值也换成自己的了


麻烦解答下

作者: wayes    时间: 2024-2-16 23:25
wayes 发表于 2023-12-29 11:05
大佬,device_id: e0935779acce9f808249141b53fb9ced是换成自己的TOKEN值吧,我替换了,显示
Message malfo ...

搞定了,傻了吧唧的,device_id不是token
配置-设备与服务,选中设备,浏览器地址栏最后那串数字就是device_id
作者: jey0722    时间: 2024-3-31 09:32
Necroneco 发表于 2023-10-15 14:47
墙壁插座更新新版固件之后, 已经没这问题了, 会正常上报数据了

多久上报一次
作者: Necroneco    时间: 2024-3-31 23:24
jey0722 发表于 2024-3-31 09:32
多久上报一次

挺快的,变了就会报吧,几秒之内
作者: TestUser123    时间: 2024-4-9 10:40
新版的Gateway 3 V4好像改了converter的命名,自定义的方式失效了,应该怎么改呢?谢谢
作者: jey0722    时间: 2024-4-9 10:48
TestUser123 发表于 2024-4-9 10:40
新版的Gateway 3 V4好像改了converter的命名,自定义的方式失效了,应该怎么改呢?谢谢 ...

V4上报还不及时?楼上不是说新版几秒钟之内就上报的吗
作者: TestUser123    时间: 2024-4-9 11:42
jey0722 发表于 2024-4-9 10:48
V4上报还不及时?楼上不是说新版几秒钟之内就上报的吗

我好像很久更新插座固件,一直使用的是增加        BoolConv("enable-upload-power", "switch", mi="6.p.1"), 的方式定时更新

刚才看了一下V4的文档,好像是devices.py的地址换了
把根目录中的自定义文件改为from custom_components.xiaomi_gateway3.core.devices import *
就可以了
作者: zyling    时间: 2024-5-13 15:19
TestUser123 发表于 2024-4-9 11:42
我好像很久更新插座固件,一直使用的是增加        BoolConv("enable-upload-power", "switch", mi="6.p.1" ...

请教具体怎么改?
作者: vatiro    时间: 2024-11-14 17:34
楼主您好,我现在好像也遇到了您这个问题,就是功率一直显示0w,米家app打开后刷新出实时功率,请问您目前的解决方案是什么?
作者: 没内涵    时间: 2024-11-14 18:57
直接把所有的插座用miot auto集成添加一遍
然后每10分钟enable-upload-power选择disable再enable一下就可以了




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5