小米xiaomi_miot集成仓库地址

集成简介

MIoT-Spec 是小米IoT平台根据硬件产品的联网方式、产品功能的特点、用户使用场景的特征和用户对硬件产品使用体验的要求,设计的描述硬件产品功能定义的标准规范。

本插件利用了miot协议的规范,可将小米设备自动接入HomeAssistant,目前已支持大部分小米米家智能设备。且该插件支持HA后台界面集成,无需配置yaml即可轻松将小米设备接入HA。

问题描述

昨天在研究玩客云静态问题后(注:后边是找到了解决方法,使用很多都失败,多次dchp绑定后发现每一次重启MAC地址都会改变,因此设置固定MAC即可,走了很多弯路)

突然发现这个功能无法加载,每次启动都报错!

昨天尝试了很多方法,重新卸载然后安装,还有恢复homeassistant到之前备份版本等等

依然报以下错误:

详情如下:

研究了好久,一直以为 xiaomi_miot 集成库问题,或者兼容性问题,所以方向是放在这两个上面,然而尝试很久依然如此。

有尝试过修改 xiaomi_miot 的py文件,也是一样不行,网上类似问题也没有

集成中小米集成一直显示如下:

也就是说集成一直没法使用,但之前明明一直正常,不可能因为做了静态IP影响到它吧?

解决办法

方法其实很简单,就是把错误点处理即可。
根本原因还是新版本 python 3.12 之后将不提供imp模块,使用import imp 发现会报错。

当定位到问题之后就好解决了!

在上边报错信息中看出来,报错位置为:

就是这句话问题,看都最后他调用了 imp 模块,所以解决办法就是屏蔽掉 imp 调用即可

步骤一:打开相应docker镜像并进入

查看 homeassistant 的 docker ID并进入到 docker 内部中

1
docker ps

使用 docker exec -it /bin/bash 命令进入

当前的镜像名称为:ghcr.io/home-assistant/raspberrypi3-homeassistant:2024.2.2
镜像ID为:3f8ac3040249
输入以下命令即可进入config中

1
docker exec -it 3f8ac3040249  /bin/bash

步骤二:打开报错文件 core.py 并屏蔽 imp 调用

1
cd /usr/local/lib/python3.12/site-packages/construct

修改之前备份一下,养成好习惯

1
vi core.py

屏蔽如下:

1
import struct, io, binascii, itertools, collections, pickle, sys, os, tempfile, hashlib, importlib #, imp

步骤三:退出docker并重启镜像

退出:

1
exit

重启:

1
docker restart 3f8ac3040249

之后就能正常使用集成了

总结

其实问题一早都显示在log里边,只是没仔细查看
网上查找的也没那么详细
加之对 python 的陌生才白耗费昨天一天
不过好在最后能发现问题

所以说,只有知道问题的根本才好解决问题,做什么事情方向对了的话后边就水到渠成,但方向不对努力就真的白搭了
这也算侧面学习 python 了。


相关链接(侵删)

  1. 解决Pycharm提示imp报错

=================我是分割线=================

欢迎到公众号来唠嗑: