多语言展示
当前在线:1207今日阅读:27今日分享:41

Home Assistant MQTT相机解码warning如何解决

本经验介绍在Home Assistant 0.101.3中的BUG缓解办法。MQTT相机的topic传送图片时,出现can't decode warning如何解决。
工具/原料

Home Assistant 0.101.3

方法/步骤
1

MQTT相机的topic负载所需要的载荷是PNG等格式图片文件内容字节数组,然而0.102版本有bug,虽然图片能够成功上传,但是Home Assistant会一直报无法解码warning,占用大量日志存储。

2

该办法可以通过简单修改Home Assistant代码实现。首先要确定Home Assistant安装位置,可以进入python,导入包,查看包路径得到安装位置。

3

在Home Assistant的程序包路径下,搜索文件内容can't decode payload,即可定位文件在homeassistant/components/mqtt/__init__.py。

4

在该文件中,查看出现报错的位置的代码,如图所示。

5

为了防止warning载荷太长,可以在如图位置添加截取前20个字节。

6

这样操作之后,再查看日志,可以看到报错消息长度大幅缩短。如果希望完全不出现该warning,可以自己修改代码,判断字节数组是否是图片。以PNG为例,如果第1~3字节为'PNG',则不报warning。

总结

1、MQTT相机的topic负载所需要的载荷是PNG等格式图片文件内容字节数组,然而0.102版本有bug,虽然图片能够成功上传,但是Home Assistant会一直报无法解码warning,占用大量日志存储。 2、该办法可以通过简单修改Home Assistant代码实现。首先要确定Home Assistant安装位置,可以进入python,导入包,查看包路径得到安装位置。 3、在Home Assistant的程序包路径下,搜索文件内容can't decode payload,即可定位文件在homeassistant/components/mqtt/__init__.py。 4、在该文件中,查看出现报错的位置的代码,如图所示。 5、为了防止warning载荷太长,可以在如图位置添加截取前20个字节。 6、这样操作之后,再查看日志,可以看到报错消息长度大幅缩短。如果希望完全不出现该warning,可以自己修改代码,判断字节数组是否是图片。以PNG为例,如果第1~3字节为'PNG',则不报warning。

注意事项

如果遇到问题,可以在下面提出疑问。

推荐信息