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

 找回密码
 立即注册
查看: 11000|回复: 95

[技术探讨] 云米零冷水zero 16L(吕布)热水器接入HA,用大神的miot auto

  [复制链接]

19

主题

686

帖子

3440

积分

论坛元老

Rank: 8Rank: 8

积分
3440
金钱
2749
HASS币
20
发表于 2022-1-4 10:44:56 | 显示全部楼层 |阅读模式
本帖最后由 ms2 于 2022-1-13 20:32 编辑

家里的燃气热水器坏了,因为也用了7年了,所以干脆换一个,想着反正都是买,那就搞个支持HA的吧,虽然好像接入HA也没什么用处。然后就在论坛里找看哪家的支持,看来看去,还是云米的有点希望。我想着应该能行吧,然后就入手了一个。
--------------------------------------------------------------------------------------------------------
已完美解决,anlong大神(miot auto插件作者)一出马,就几行代码的事,看二楼,加上这几行代码,直接整个面板就出来了(此代码应该也适用其它小米设备的调用,这太牛了),如下图:
UC截图20220111213855.png
1月12日anlong大神插件最新更新:我测试了上面的温度设置,改不了温度,今天跟大神沟通了,大神几分钟就把插件更新了,解决了这个问题,然后还问了模式设置怎么改成中文,大神以前的文档里有,但当时没看明白,现在搞明白了,更新后如下:
UC截图20220112140707.png
注意看:模式-自定义   这几个字,以前是英文的,可以直接改成中文的。全部代码如下:
游客,如果您要查看本帖隐藏内容请回复

--------------------------------------------------------------------------------------------------------
下面这些可看可不看了:上面anlong已给出了代码,有了这几行代码,所有的事情都变得简单了。
买回来才发现,这插件对我的热水器,用不了,然后看到另一个大神做的小米插件:https://bbs.hassbian.com/thread-12007-1-1.html,这真是神一般的存在,我一开始以为这个是HA原生的集成呢,真是太好用了。
用了这个小米的miot auto插件后,直接在HA的集成界面里,就把我的热水器接入了,现在说说我碰到的问题,请教一下大家。接入后,在开发者工具,状态里得到2个东西:
a.png
b.png
接入后,直接可用的是:热水器开关,以及热水器当前的水温,开关直接用是没问题的,但默认的水温,如果想做自动化是用不了的,因为不是数值的属性,然后我就做了一个sensor 如下:
sensor:
  - platform: template
    sensors:
      yunmi_waterheater_temp:   #热水器小温
        friendly_name: 云米温度
        value_template: "{{ states.water_heater.viomi_u27_47a2_water_heater.attributes.current_temperature }}"
        unit_of_measurement: °C
这样水温也搞定了,输出的是数值属性,可以直接做自动化调用了。

然后问题来了,其它几个重要的属性在HA里可以看到(一键即热、当前模式、目标温度、巡航预约),但是不知道怎么拿出来用,对应的数据如下:

min_temp: 30  #最低水温
max_temp: 65  #最高水温
operation_list: Custom, AI, Children, Comfortable, Old Man, Kitchen  #可设置操作模式列表
current_temperature: 23  #当前热水器水温,如果在用的过程中,显示实时水温
temperature: 42  #已设置的水温
target_temp_high: 65  #目标最高水温
target_temp_low: 30  #目标最低水温
operation_mode: Custom  #已设定的操作模式
model: viomi.waterheater.u27
lan_ip: 192.168.1.38
mac_address: xx:xx:xx:xx:xx:xx
entity_class: MiotWaterHeaterEntity
miot_type: urn:miot-spec-v2:device:water-heater:0000A02A:viomi-u27:1
water_heater.fault: 0  #热水器错误状态,0应该是正常
water_heater.target_temperature: 42  #目标水温,可在服务里用set_property设置
water_heater.temperature: 23  #当前水温
water_heater.mode: 0  #,可在服务里用set_property设置,设置模式,0是Custom(Custom, AI, Children, Comfortable, Old Man, Kitchen)
water_heater.status: 2  # 这个会随热水器总开关变化,如果是关的,这里会显示0,如果一键即热打开,这里显示4
water_heater.on: true  #热水器开关,可在服务里用set_property设置
cruise_appointment.on: false  #自动巡航预约开关,可在服务里用set_property设置
cruise_appointment.start_hours: 19  #设置的自动巡航预约开始时间-小时,可在服务里用set_property设置
start_minutes-5-3: 0  #设置的自动巡航预约开始时间-分钟,可在服务里用set_property设置
cruise_appointment.end_hours: 21  #设置的自动巡航预约结束时间-小时,可在服务里用set_property设置
cruise_appointment.end_minutes: 0-5-6: 0  #设置的自动巡航预约结束时间-分钟,可在服务里用set_property设置
function.water_velocity: 0  #当前热水流速,这个重要,我很需要
function.preheating: false  #一键即热开关,可在服务里用set_property设置
function.cruise_press: true  #自动巡航相关的,不懂作用
state_updater: lan
sub_entities: water_heater-2.on-6
friendly_name: Xiaomi Miot Water Heater
supported_features: 3

首先,我当时看到插件作者写的可以调用小米设备的siid,piid来得到值,我当时在想这我怎么知道,后来认真看了一下作者的帖子,原来作者还帖心的把所有的小米设备的这些值都做成表了,我的热水器值如下表:https://home.miot-spec.com/spec/viomi.waterheater.u27
下面开始说说插件作者牛逼的东西了,首先我试了一下设置水温如下:
c.png
转换成代码是这样的:
service: water_heater.set_temperature
data:
  temperature: 42
target:
  entity_id: water_heater.viomi_u27_47a2_water_heater
这样直接点调试,是可以设置温度的,说明这方法可行了,那第一个问题来了,把这个服务转成lovelace可输入温度的界面怎么写,各位大神有懂的麻烦回复一下。

然后就是更复杂的了,那就是怎么样得到水流速传感器值了,测试如下:
d.png
转换成代码:
service: xiaomi_miot.get_properties
data:
  entity_id: water_heater.viomi_u27_47a2_water_heater
  throw: true
  mapping:
    function:
      siid: 2
      piid: 1
点击调试后,会在通知里得到如下结果:
Miot properties
[{'did': 'prop.2.1', 'siid': 2, 'piid': 1, 'code': 0, 'value': 0}]
注意最后那个'value': 0,这个0就是得到的水流速,上面这个表在python里是一个二维的表,怎么样才能得到我只里要的最后一个value': 0的值呢
这是第二个问题,这个传感器要怎么写,才能得到这个水流速的值,麻烦懂的大神帮个忙告诉我。
剩下就是第三个问题了,上面我问的只是怎么设置温度(目标温度),还有一键即热、当前模式、巡航预约这些,在属性表里都是可以调用的,其它这些要怎么写,各位大神,发挥你们才能的时候到了,麻烦大家回复了,谢谢。
现在总结一下我具体需要的界面及开关:
0、热水器总开关(这个接入就有了,可以直接用)
1、当前水温(这个自己搞定了)
2、当前水流速(这个可以通过服务调用出来值 ,但不知道怎么写传感器,得到的是python的二维表,不是单一的值,python我刚学,水平不够)
3、当前模式(这个在属性里有select值,但不知道怎么写到界面里)
4、一键即热(这个用服务可以调出来属性,但不知道怎么写成开关-已解决,直接写个开关模板,后面有代码
5、目标温度(这个在服务里可以调用,但不知道怎么写到界面里)
6、巡航预约开关(这个属性在服务里也可以调用出来---已解决,跟一键即热开关一样写个开关模板,后面有代码
7、巡航预约设定时间(这个是打开巡航预约开关后,会有输入时间的界面,在服务里也可以调用出值 ,但不知道怎么写界面
----------------------------------------------------------------------------------------------------
热水器各种设置,可以在开发者工具里用这个服务,所有有关开,关,或者温度值,都可以这样设置:
e.png

刚搞定“一键即热”跟“零冷水预约”这2个开关,我家没有热水回水管,我没用这功能,但看网上有些朋友很需要这开关,所以折腾了一下,感觉好像能用调用这些,都可以正常用了,代码如下:
游客,如果您要查看本帖隐藏内容请回复
目前折腾到这个程度,好像也差不多够用了:
f.png
后面的继续折腾,还有一个水流速再折腾一下,待续。。。。。。




评分

参与人数 3金钱 +19 收起 理由
chenquanhao + 4 论坛有你更精彩!
yinmyu + 5 论坛有你更精彩!
anlong + 10 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

6

主题

266

帖子

2366

积分

论坛技术达人

积分
2366
金钱
2080
HASS币
90
发表于 2022-1-11 12:39:34 | 显示全部楼层
本帖最后由 anlong 于 2022-1-12 10:20 编辑

首先为楼主的折腾精神点赞!不过。。。

Xiaomi Miot Auto 提供了一种很便捷的方式将属性转为不同的实体,以下两种方式任选一种:

1、通过`configuration.yaml`自定义:
# configuration.yaml
xiaomi_miot:
  device_customizes:
    viomi.waterheater.u27:
      sensor_properties: temperature,water_velocity
      switch_properties: on,preheating
      number_properties: target_temperature
      select_properties: mode
配置 > 设置 > 服务控制 > 配置重载:重载 XIAOMI MIOT AUTO

2、通过`customize.yaml`自定义:
# customize.yaml
water_heater.viomi_u27_47a2_water_heater:
  sensor_properties: temperature,water_velocity
  switch_properties: on,preheating
  number_properties: target_temperature
  select_properties: mode
配置 > 设置 > 服务控制 > 配置重载:位置和自定义

小米MIoT插件:miot-spec.com
回复

使用道具 举报

5

主题

259

帖子

1590

积分

金牌会员

Rank: 6Rank: 6

积分
1590
金钱
1331
HASS币
0
发表于 2022-1-4 10:54:29 | 显示全部楼层
板凳,貌似没写完呀
回复

使用道具 举报

2

主题

57

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
金钱
283
HASS币
0
发表于 2022-1-4 15:54:33 | 显示全部楼层
太牛了,等交房了也弄一个
回复

使用道具 举报

1

主题

91

帖子

738

积分

高级会员

Rank: 4

积分
738
金钱
647
HASS币
0
发表于 2022-1-4 16:20:28 | 显示全部楼层
https://bbs.hassbian.com/thread-14707-1-1.html
我是根据这个帖子用node-red把一键即热功能和小米无线开关联动的
回复

使用道具 举报

19

主题

686

帖子

3440

积分

论坛元老

Rank: 8Rank: 8

积分
3440
金钱
2749
HASS币
20
 楼主| 发表于 2022-1-4 19:58:21 | 显示全部楼层
ny3933 发表于 2022-1-4 16:20
https://bbs.hassbian.com/thread-14707-1-1.html
我是根据这个帖子用node-red把一键即热功能和小米无线开 ...

嗯,看过这个,但我没用过NR,总觉得能少用点中转的就少用
回复

使用道具 举报

0

主题

40

帖子

123

积分

注册会员

Rank: 2

积分
123
金钱
82
HASS币
0
发表于 2022-1-8 14:39:47 | 显示全部楼层
大神牛啊
回复

使用道具 举报

1

主题

43

帖子

654

积分

高级会员

Rank: 4

积分
654
金钱
611
HASS币
0
发表于 2022-1-11 12:57:45 | 显示全部楼层
厉害,看看咋样
回复

使用道具 举报

19

主题

686

帖子

3440

积分

论坛元老

Rank: 8Rank: 8

积分
3440
金钱
2749
HASS币
20
 楼主| 发表于 2022-1-11 13:14:12 | 显示全部楼层
anlong 发表于 2022-1-11 12:39
首先为楼主的折腾精神点赞!不过。。。

Xiaomi Miot Auto 提供了一种很便捷的方式将属性转为不同的实体, ...

多谢大神,我滴个天,这么简单
回复

使用道具 举报

0

主题

40

帖子

123

积分

注册会员

Rank: 2

积分
123
金钱
82
HASS币
0
发表于 2022-1-13 23:02:21 | 显示全部楼层
本帖最后由 毅力10分够不够 于 2022-1-13 23:19 编辑
anlong 发表于 2022-1-11 12:39
首先为楼主的折腾精神点赞!不过。。。

Xiaomi Miot Auto 提供了一种很便捷的方式将属性转为不同的实体, ...

大神。water_heater.viomi_u15_8f94_water_heater 这款
云米互联网燃气热水器Zero(12L零冷水)2020-02-18云米互联网燃气热水器Zero(12L零冷水)
viomi.waterheater.u15   
卫浴




规格


的用不了,也是一样的情况,接入不了  显示不可用

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-23 15:24 , Processed in 5.660159 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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