标签:#<标签:0x00007FC409300C08>

Hi,

感谢您分享您的工作。

我设法为3H的MI空气净化器添加了传感器,但是以某种方式,我对所有传感器都获得了“无”价值。

Here is my code:

sensor: - platform: template sensors: mi_air_purifier_temp: friendly_name: "Temperature" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'temperature') }}" unit_of_measurement: "°C" device_class: "temperature" mi_air_purifier_humidity: friendly_name: "Humidity" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'humidity') }}" unit_of_measurement: "%" device_class: "humidity" mi_air_purifier_air_quality_pm25: friendly_name: "Air quality (AQI) PM2.5" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'aqi') }}" unit_of_measurement: "μg/m³" icon_template: "mdi:weather-fog" mi_air_purifier_avg_air_quality_pm25: friendly_name: "Average air quality (AvgAQI) PM2.5" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'average_aqi') }}" unit_of_measurement: "μg/m³" icon_template: "mdi:weather-hazy" mi_air_purifier_use_time: friendly_name: "Time used" value_template: > {% macro phrase(value, name) %} {%- set value = value | int %} {%- set end = 's' if value > 1 else '' %} {{- '{} {}{}'.format(value, name, end) if value | int > 0 else '' }} {%- endmacro %} {% set weeks = (state_attr('fan.xiaomi_airpurifier_3h', 'use_time') | int / 604800) | int %} {% set days = ((state_attr('fan.xiaomi_airpurifier_3h', 'use_time') | int - (weeks * 604800)) / 86400) | int %} {% set hours = ((state_attr('fan.xiaomi_airpurifier_3h', 'use_time') | int - (weeks * 604800) - (days * 86400)) / 3600) | int %} {% set minutes = ((state_attr('fan.xiaomi_airpurifier_3h', 'use_time') | int - (weeks * 604800) - (days * 86400) - (hours * 3600)) / 60) | int %} {% set seconds = (state_attr('fan.xiaomi_airpurifier_3h', 'use_time') | int - (weeks * 604800) - (days * 86400) - (hours * 3600) - (minutes*60)) | int %} {{ [ phrase(weeks, 'week'), phrase(days, 'day'), phrase(hours, 'hr'), phrase(minutes, 'min'), phrase(seconds, 'sec') ] | select('!=','') | list | join(', ') }} icon_template: "mdi:heart-pulse" mi_air_purifier_filter_used: friendly_name: "Filter used" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'filter_hours_used') }}" unit_of_measurement: "hrs" icon_template: "mdi:heart-off" mi_air_purifier_filter_remaining: friendly_name: "Filter remaining" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'filter_life_remaining') }}" unit_of_measurement: "%" icon_template: "mdi:heart-outline" mi_air_purifier_purify_volume: friendly_name: "Purified volume" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'purify_volume') }}" unit_of_measurement: "m³" icon_template: "mdi:warehouse" mi_air_purifier_speed: friendly_name: "Motor speed" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'motor_speed') }}" unit_of_measurement: "rpm" icon_template: "mdi:speedometer" mi_air_purifier_led_brightness: friendly_name: "Led brightness" value_template: "{{ state_attr('fan.xiaomi_airpurifier_3h', 'led_brightness') }}" unit_of_measurement: "lx" icon_template: "mdi:brightness-5"

Any idea?

Thank you.

检查平台定义

扇子:

  • platform: xiaomi_miio
    name: “Mi Air Purifier 3H”

然后,您应该使用fan.mi_air_purifier_3h。或者,您可以用作名称小米Airpurifier 3H

1喜欢

对我来说,我还有另一个问题。它显示出良好的值。但是它仅在我重新启动Hassio时才更新。不是在发生变化时。这是为什么?我还需要其他东西还是可能缺少什么?

谢谢你发现它。那正是问题。

在这里更新Lovelace: Xiaomi - Mi air purifier 3H card

关于可用性闪烁。我有同样的问题,我在Core Repo上打开了相应的票:https://github.com/home-assistant/core/issues/36972

另外,我在论坛上创建了另一个线程:MIIO小米空气净化器的可用性闪烁

I’ve seen the “official” integration for the various Air Purifiers, including the 3 and 3H, but I do not use the Xiaomi Gateway.
I haven’t found a way to retrieve the “token” to be able to integrate the Air Purifier 3. Does anyone know how this can be retrieved,as the official integration seems to have all the functions I need. I just can’t seem to get the token needed to make it work.

一直试图让我的3H与家庭助理联系而没有太多运气。19463331伟德国际我只会在日志中“无法发现设备”错误。

如果我在另一台计算机上运行Miiocli,我可以成功从设备中获取所有详细信息,以使令牌正确。命令我正在使用:

miiocli -d airpurifiermiot -token -ip 状态

但是,HA组件只是说无法发现设备,以下配置。

- 平台:Xiaomi_miio主机:<我的IP地址>令牌:型号:Zhimi.AirPurifier.MB3名称:Xiaomi Air Purifier 3H一个

If I go into portainer and run the exact same miiocli command from above from the HA container, a python exception is thrown

信息:miio.cli:调试模式活动调试:miio..miioprotocol:无法在地址 debug上发现设备:miio.click_common:异常:无法发现设备 trackback(最新呼叫:file“/usr/local/lib/python3.8/site-packages/miio/click_common.py”,第59行,在__call__ return __ return self.main(*args,** kwargs)file”/python3.8/site-packages/click/core.py”,第782行,在main rv = self.invoke(ctx)文件中“/usr/local/lib/lib/python3.8/site-packages/click/core/core。py”,第1259行,在Invoke return _process_result(sub_ctx.command.invoke(sub_ctx)))文件“/usr/local/lib/lib/python3.8/site-packages/click/corick/core..py”_process_Result(sub_ctx.command.invoke(sub_ctx))文件“/usr/local/lib/lib/python3.8/site-packages/click/core.py”,第1066行,在Invoke return return ctx.invoke(self.callback, * self.callback, * self.callback, **ctx.params)文件“/usr/local/lib/python3.8/site-packages/click/core.py”,第610行,在Invoke return return callback(*args,** kwargs)文件“/usr/usr/local/local/local local/local/lib/python3.8/site-packages/miio/click_common.py”,第280行,在包裹kwargs [“ result”] = func(*args,** kwargs)文件“/usr/local/lib/lib/python3.8/site-packages/site-packages/click/click/decorators。610,在Invoke返回回调(*args,** Kwargs)文件“/usr/local/lib/python3.8/site-packages/miio/miio/click_common.py”,第245行,in Command_callback return miio_command.call(miio_device,miio_device,miio_device,miio_device,call(miio_device,miio_device,call)*args,** kwargs)文件“/usr/local/lib/python3.8/site-packages/miio/click_common.py”,第193行,在呼叫返回方法(*args,** kwargs)文件中/local/lib/python3.8/site-packages/miio/airpurifier_miot.py”,第300行,在self.get_properties_for_mapping()文件中的prop中的状态miio/mio_device.py”,第29行,在get_properties_for_mapping return self.get_properties(文件“/usr/local/lib/lib/python3.8/site-packages/miio/device.py.p.properties values.extendeNd(self.send(属性_getter,_props [:max_properties])))文件“/usr/local/lib/python3.8/site-packages/miio/device.py”,第146行,在发送retend return return self._protocol.send(file'local/lib/python3.8/site-packages/miio/miio/mioprotocol.py”,第160行,在send seld.send_handshake()文件中“/usr/local/lib/lib/python3.8/site-packages/miio/miiio/miioprotocol。py”,第87行,在send_handshake rish rish deviceException(“无法发现设备%s”%self.ip)

Miiocli版本在两种情况下均为0.5.3,因此我不知道HA容器中导致其失败的情况有什么不同。我可以从Docker容器中使用净化器,因此我认为这不是网络问题。

Hoping someone can shed light on this.

Hi,

您已经解决了吗?
我遇到了同样的问题,我无法通过Miiocli与设备进行通信,但是Mi Home App的作品,我从那里提取了令牌。

不幸的是,我仍然被困。您是否可以在单独的机器上通过Miiocli连接到HA,或者根本没有连接?

我根本无法联系。
就我而言,这显然是因为净化器在不同的子网上。
在我的Unifi配置中制定了规则,现在它有效!

恐怕我不是Docker用户,所以您的问题与我的问题不同。
也许还必须在您的情况下应用一些网络规则?

有趣的是,当我在另一台机器上使用MIICLI测试时,我的HA实例实际上是在其他子网上,我可能与净化器在同一子网上。

我也有一个Unifi路由器 + WAP,请介意分享您所做的更改?谢谢!我之所以想是因为我可以使用网络问题,也许存在!

您可能需要Mihack应用程序

Or just read the complete thread, I posted links to how to acquire the token.:眨眼:

1喜欢

Yeah sure, this is what I added to my custom config (config.gateway.json) in Unifi:

“ 5010”:{“ description”:“ hass”,“ destinate”:{“ address”:“ 192.168.2.0/24”},“ log”:“ disable”:“ disable”,“ outbound-interface”:“ eth1.2”,“协议”:“ all”,“ source”:{“ address”:“ 192.168.1.0/24”},“ type”:“ masquerade”},,

其中192.168.1.x是我的正常局域网,192.168.2.x是我的vlan。
Eth1.2显然也是我的VLAN。

Hello, a Xiaomi gateway is mandatory or we can go without ?

You can go without.

非常感谢您,在我的子网中添加了化妆店规则,为我修复了这一点。我猜小米出于任何原因与默认网关有问题。

@mistaed您不会有更多有关在另一个子网上连接到小米的需要的更多信息吗?我在他们自己的子网上运行我的IoT设备,但我的HA在我的家庭子网上。我可以ping小米,但似乎无法连接。

Hi@Danny-117, I first verified the token is correct by running miiocli on the same subnet as the Xiaomi.
一旦有效,我就在路由器上创建了化妆式规则,而不是在两个子网之间的路线如下:

  • 资料来源:HA IP地址
  • 协议:任何
  • 目的地:小米子网接口
    我不确定为什么我需要这一点,因为路由器已经遍布两个子网,并且路由通常工作正常。