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

 找回密码
 立即注册
查看: 27960|回复: 15

[基础教程] 米家除菌加湿器S接入HA 0.119(包含lovelace代码)-代码BUG更新

[复制链接]

7

主题

206

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
金钱
830
HASS币
20
发表于 2020-12-9 06:06:50 | 显示全部楼层 |阅读模式
本帖最后由 myron412 于 2020-12-11 06:35 编辑

先上成果图:
微信图片_20201209050625.png
      本人是超级小白,所以写法都是以小白的经验来写,大神们直接PASS,若有不对,冗余之处请帮忙优化,指正!      小白我0.54以后就没玩HA,后来HB瘫痪又懒得搞,所以直接换了树莓派4B安装HASSOS,我开始接触是从0.118开始。。但是因为插件在0.118有BUG,所以升级到0.119。因此,你想添加加湿器,请update你的系统,若0.119没有,请用beta版本,但因升级导致的其他问题,自行解决,反正我目前是没有问题
       此贴的lovelace参考:https://bbs.hassbian.com/thread-9731-1-1.html 而来。因此你想直接使用本贴内的仪表盘代码请安装参考贴内的card-mod、card-tools、vertical-stack-in-card、layout-card、slider-entity-row、fold-entity-row、secondaryinfo-entity-row插件。
       插件地址:https://github.com/syssi/xiaomi_airpurifier。可以通过HACS安装,也可以手动安装。手动安装自行在config下建立custom_component文件夹,考入插件。理论上本插件支持目前为止小米,智米的空气净化器,加湿器,风扇,台扇等。方法类似,可以自行研究。

       代码configuration.yaml部分(目前我加入的东西少,所以能直接在这里加的都直接写在这里,强迫症的可以自行修改):
1.
fan:
  - platform: xiaomi_miio_airpurifier
    name: Xiaomi Air Humidifier
    host: 192.168.1.13
    token: YOUR_TOKEN
    model: deerma.humidifier.mjjsq
2.传感器定义
sensor:
  - platform: template
    sensors:
      airhumidifier_humidity:
        friendly_name: 环境湿度
        value_template: '{{ states.fan.xiaomi_air_humidifier.attributes.humidity }}'
        unit_of_measurement: '%'
      airhumidifier_temperature:
        friendly_name: 环境温度
        value_template: '{{ states.fan.xiaomi_air_humidifier.attributes.temperature }}'
        unit_of_measurement: '°C'

      airhumidifier_target_humidity:
        friendly_name: Target humidity
        value_template: '{{ states.fan.xiaomi_air_humidifier.attributes.target_humidity }}'
        unit_of_measurement: '%'
        icon_template: mdi:water-percent
      xiaomi_hu_water:
        friendly_name: 缺水
        value_template: "{{ states.fan.xiaomi_air_humidifier.attributes.no_water }}"
        unit_of_measurement: "。"
      xiaomi_hu_waterdet:
        friendly_name: 水箱分离
        value_template: "{{ states.fan.xiaomi_air_humidifier.attributes.water_tank_detached }}"
        unit_of_measurement: "。"
3.定义switch
switch:
  - platform: template
    switches:
      xiaomi_airpurifier_buzzer:
        friendly_name: "Buzzer"
        value_template: "{{ is_state_attr('fan.xiaomi_air_humidifier', 'buzzer', True) }}"
        turn_on:
          service: xiaomi_miio_airpurifier.fan_set_buzzer_on
          data:
            entity_id: fan.xiaomi_air_humidifier
        turn_off:
          service: xiaomi_miio_airpurifier.fan_set_buzzer_off
          data:
            entity_id: fan.xiaomi_air_humidifier
        icon_template: "mdi:volume-off"

      xiaomi_airpurifier_led:
        friendly_name: "LED"
        value_template: "{{ is_state_attr('fan.xiaomi_air_humidifier', 'led', True) }}"
        turn_on:
          service: xiaomi_miio_airpurifier.fan_set_led_on
          data:
            entity_id: fan.xiaomi_air_humidifier
        turn_off:
          service: xiaomi_miio_airpurifier.fan_set_led_off
          data:
            entity_id: fan.xiaomi_air_humidifier
        icon_template: "mdi:lightbulb-outline"
4.选择模式定义
input_select:
  airpurifier_mode:
    name: 模式
    options:
     - "小雾"
     - "中雾"
     - "大雾"
     - "恒湿"
5.恒湿数据定义
input_number:
  airhumidifier_target_humidity:
    name: Target humidity
    min: 40
    max: 70
    step: 1
    unit_of_measurement: "%"
       customize.yaml代码:
    fan.xiaomi_air_humidifier:
      friendly_name: 米家除菌加湿器S
    switch.xiaomi_airpurifier_buzzer:
      icon: mdi:volume-high
      friendly_name: 提示音
    switch.xiaomi_airpurifier_led:
      icon: mdi:led-on
      friendly_name: 指示灯
    sensor.airhumidifier_humidity:
      icon: mdi:water-percent
    sensor.xiaomi_hu_water:
      icon: mdi:store-24-hour
    sensor.xiaomi_hu_waterdet:
      icon: mdi:brightness-percent
         automations.yaml代码:

  - alias: airpurifier_set_mode
    initial_state: true
    trigger:
      platform: state
      entity_id: input_select.airpurifier_mode
    action:
      service: fan.set_speed
      data_template:
        entity_id: fan.xiaomi_air_humidifier
        speed: >
          {% if states.input_select.airpurifier_mode.state == "小雾" %}Low
          {% elif states.input_select.airpurifier_mode.state == "中雾" %}Medium
          {% elif states.input_select.airpurifier_mode.state == "大雾" %}High
          {% elif states.input_select.airpurifier_mode.state == "恒湿" %}Humidity
          {% endif %}   
          
  - alias: airpurifier_get_mode
    initial_state: true
    trigger:
      platform: time_pattern
      seconds: /5
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.airpurifier_mode
        option: >
          {% if states.fan.xiaomi_air_humidifier.attributes.speed == "Low" %}小雾
          {% elif states.fan.xiaomi_air_humidifier.attributes.speed == "Medium" %}中雾
          {% elif states.fan.xiaomi_air_humidifier.attributes.speed == "High" %}大雾
          {% elif states.fan.xiaomi_air_humidifier.attributes.speed == "Humidity" %}恒湿
          {% endif %}
          
  - alias: Select target humidity by slider
    trigger:
      platform: state
      entity_id: input_number.airhumidifier_target_humidity
    action:
      - service: xiaomi_miio_airpurifier.fan_set_target_humidity
        data_template:
          entity_id: fan.xiaomi_air_humidifier
          humidity: '{{ states.input_number.airhumidifier_target_humidity.state|int }}'

  - alias: Monitor target humidity and update slider
    trigger:
      platform: state
      entity_id: sensor.airhumidifier_target_humidity
    action:
      service: input_number.set_value
      entity_id: input_number.airhumidifier_target_humidity
      data_template:
        value: '{{ states.fan.xiaomi_air_humidifier.attributes.target_humidity }}'

      以上代码录入完毕后,请重新启动HA,再进仪表盘自定义卡片进行lovelace编辑。(概览-顶上最右边竖着的三个点-编辑仪表盘-添加卡片-拉倒最后选择手动模式选择)。
        卡片配置左边代码栏清空,直接考入下面代码:(考入代码后,右边立刻会有预览图片,若转圈,表示拷贝时有缩进没弄对,根据拷贝代码的地方底部提示调整。)PS: 我写的这个没什么经验,目前有黄字提示,但可以使用。有大神路过请帮忙修改下
cards:
  - content: |
      <br>
    style: |
      ha-card {
        --paper-item-icon-color: Gainsboro;
        --primary-text-color: ##104E8B;
        --secondary-text-color: #B3E5FC;
        background:rgba(255,255,255,0);
      }
      .card-header{
        background: url(/local/images/card/mjjs2.jpg);
        color: white;
      }
    title: 加湿器
    type: markdown
  - entities:
      - entity: fan.xiaomi_air_humidifier
        secondary_info: >-
          缺水:[[ fan.xiaomi_air_humidifier.attributes.no_water ]], 水箱分离:[[
          fan.xiaomi_air_humidifier.attributes.water_tank_detached ]]
        type: 'custom:secondaryinfo-entity-row'
      - entity: input_select.airpurifier_mode
        icon: 'mdi:air-conditioner'
        name: 档位选择:
        type: 'custom:slider-entity-row'
      - entity: input_number.airhumidifier_target_humidity
        icon: 'mdi:air-conditioner'
        name: 恒湿控制:
        type: 'custom:slider-entity-row'
    show_header_toggle: false
    style: |
      ha-card {
        --paper-item-icon-color: Gainsboro;
        --primary-text-color: black;
        --secondary-text-color: gray;
        background:rgba(255,255,255,0);
      }
      }
    type: entities
  - aspect_ratio: '492:232'
    entities:
      - entity: switch.xiaomi_airpurifier_buzzer
        tap_action:
          action: toggle
      - entity: switch.xiaomi_airpurifier_led
        tap_action:
          action: toggle
      - entity: sensor.airhumidifier_humidity
      - entity: sensor.airhumidifier_temperature
    show_state: ture
    style: |
      ha-card {
        --paper-item-icon-color: Black;
        background:rgba(255,255,255,0);
      }
    type: glance
type: 'custom:vertical-stack-in-card'
lovelace内的顶部图片在我附件,目录路径为/config/www/images/card下。没有www文件夹的自己建一个。

顶部图

顶部图

手动安装附件在最后。
xiaomi_airpurifier-develop.zip (222.21 KB, 下载次数: 68)
分享完毕!

评分

参与人数 2金钱 +36 HASS币 +20 收起 理由
yuyamin + 16 感谢楼主分享!
Roger + 20 + 20 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

6

主题

287

帖子

4151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4151
金钱
3859
HASS币
0
发表于 2020-12-9 08:14:41 | 显示全部楼层
坐楼主的沙发
回复

使用道具 举报

4

主题

139

帖子

1265

积分

金牌会员

Rank: 6Rank: 6

积分
1265
金钱
1126
HASS币
0
发表于 2020-12-9 09:39:50 | 显示全部楼层
非常不错,有空试下。
回复

使用道具 举报

1

主题

19

帖子

210

积分

中级会员

Rank: 3Rank: 3

积分
210
金钱
191
HASS币
0
发表于 2020-12-9 15:21:29 | 显示全部楼层
本帖最后由 forgotten 于 2020-12-9 17:49 编辑

Logger: homeassistant.config
Source: custom_components/xiaomi_miio_airpurifier/fan.py:7
First occurred: 下午5:46:47 (1 occurrences)
Last logged: 下午5:46:47
Platform error: fanTraceback (most recent call last):  File "/usr/src/homeassistant/homeassistant/config.py", line 823, in async_process_component_config    platform = p_integration.get_platform(domain)  File "/usr/src/homeassistant/homeassistant/loader.py", line 424, in get_platform    cache[full_name] = self._import_platform(platform_name)  File "/usr/src/homeassistant/homeassistant/loader.py", line 429, in _import_platform    return importlib.import_module(f"{self.pkg_path}.{platform_name}")  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module    return _bootstrap._gcd_import(name[level:], package, level)  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import  File "<frozen importlib._bootstrap>", line 991, in _find_and_load  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked  File "<frozen importlib._bootstrap_external>", line 783, in exec_module  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed  File "/config/custom_components/xiaomi_miio_airpurifier/fan.py", line 7, in <module>    from miio import (  # pylint: disable=import-errorImportError: cannot import name 'FanMiot' from 'miio' (/usr/local/lib/python3.8/site-packages/miio/__init__.py)

偶尔能加载,大部分是这个错误是啥意思啊
回复

使用道具 举报

7

主题

206

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
金钱
830
HASS币
20
 楼主| 发表于 2020-12-9 19:56:24 | 显示全部楼层
forgotten 发表于 2020-12-9 15:21
Logger: homeassistant.config
Source: custom_components/xiaomi_miio_airpurifier/fan.py:7
First occur ...

ha版本,python-miio 版本看一下
回复

使用道具 举报

0

主题

21

帖子

159

积分

论坛积极会员

积分
159
金钱
138
HASS币
0
发表于 2020-12-9 20:21:20 | 显示全部楼层
我也出现了楼上的问题……
回复

使用道具 举报

1

主题

3

帖子

14

积分

新手上路

Rank: 1

积分
14
金钱
11
HASS币
0
发表于 2020-12-10 09:04:58 | 显示全部楼层
感觉好高大上,看不懂
回复

使用道具 举报

1

主题

112

帖子

566

积分

高级会员

Rank: 4

积分
566
金钱
454
HASS币
0
发表于 2020-12-13 12:10:10 | 显示全部楼层
等加湿器到了试一下
回复

使用道具 举报

2

主题

102

帖子

1563

积分

金牌会员

Rank: 6Rank: 6

积分
1563
金钱
1461
HASS币
0
发表于 2020-12-13 19:42:36 来自手机 | 显示全部楼层
请问米家智能除菌加湿器的token怎样获取
回复

使用道具 举报

7

主题

206

帖子

1037

积分

金牌会员

Rank: 6Rank: 6

积分
1037
金钱
830
HASS币
20
 楼主| 发表于 2020-12-13 19:52:04 | 显示全部楼层
binghun9806 发表于 2020-12-13 19:42
请问米家智能除菌加湿器的token怎样获取

论坛搜索下吧。总有一个方法适合你
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 10:30 , Processed in 0.354897 second(s), 41 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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