树莓派上Home Assistant 容器使用命令传感器获取并显示CPU温度、内存使用等信息 | 您所在的位置:网站首页 › cpu温度怎么获取的 › 树莓派上Home Assistant 容器使用命令传感器获取并显示CPU温度、内存使用等信息 |
前言&前提 Home Assistant 中,传感器实体对象 sensor 可以获取对象的信息,比如:自定义的光线传感器、人体传感器等。 这其中,有一个特殊的传感器:Command Line Sensor(命令行传感器),使用它,可以激活Python、Shell等脚本,进而通过脚本获取数据。 比如:本文就通过Shell和Python脚本,获取树莓派的CPU温度、CPU使用率、存储使用情况和内存使用情况: 最后效果1配合第三方前端卡片插件apexcharts-card,可以达到效果: 卡片效果本文参考:https://bbs.hassbian.com/thread-8475-1-1.html 前提 使用的前提很简单,我们需要一台安装了Home Assistant的树莓派,如果你的树莓派并没有安装Home Assistant Core或者Supervised,可以参考教程: 如果树莓派安装的是System版本,理论上也可以使用本教程。 你也可以在博客上观看本篇文章,获得更好的排版体验: https://www.mintimate.cn/2022/04/20/raspberryInfoForHas/ Shell获取信息首先,我们要知道,如何使用Shell获取树莓派的信息呢?很简单,简单的cat、free和df、top命令即可完成。 CPU温度 如果我们需要获取CPU的温度,可以在临时分区缓存文件内获取: 树莓派CPU温度这里的温度,需要除以1000才是真实的摄氏度温度;所以,我这里的CPU温度就是45.764摄氏度。 CPU使用率 CPU使用有点麻烦,最终的命令是: CPU使用率我们一一拆解,首先是top命令,这个是获取系统信息的: top命令加上-n1代表取消交互模式,且只获取一次输出刷新。配合awk实现字段截取。 内存使用 内存的话,就更简单了,直接使用free命令,配合“三剑客”中的awk即可: free命令配合awk磁盘使用 磁盘使用就很简单了,信息大家都清楚。只需要: 获取磁盘使用信息Python封装之后,我们把上述的Shell命令,使用Python脚本去调用。只需要使用Python的os包,配合os.popen方法即可运行Shell命令。比如: 获取CPU使用率(Python)扩展一下,把前一章节的所有信息全部获取并封装为JSON对象: 获取运行一下: 运行结果之后,我们就是Home Assistant上调用了。图中使用的是Vim进行Python脚本编写,Vim详解,参考: 需要注意:CPU使用的获取,Home Assistant内使用的是Docker环境;所以top命令获取的CPU和真实环境获取CPU信息不一样。 Command Senior参考官方文档:https://www.home-assistant.io/integrations/sensor.command_line/ 我们需要创建一个Command Line传感器,为了避免为的Home Assistant核心配置文件过长,我这里使用YAML外部引用的方式,引用一个单独的配置文件进行追加: 引用外部配置之后,创建Command Line传感器配置: 传感器配置其中:platform-command为我们刚刚写的Python脚本 ,注意自己的文件地址。 保存后,重启树莓派上的Home Assistant,就可以看到效果: 控制台出现传感器到此,其实就可以去添加展示卡片了。但是,我看其他人还会把多个传感器组合成一个group,这样确实更方便查找实体传感器对象数据,所以,我们也来做一下。 Group的确,Group就和SQL的group by类似。使用Group分组后,可以把多个没有联系的对象,组合成一个关联性的 ,比如: Group分组很简单,我们根据官方文档:https://www.home-assistant.io/integrations/group来编辑一个group对象。 和刚刚一样,为了避免我的配置文件过长: 引用之后,创建groups.yaml文件,并添加以下内容: 添加效果保存并重启Home Assistant即可。 信息卡片我们总是希望更直观地看到数据,所以我们会添加到主页的仪表盘,比如这样: 在主页的仪表盘这个时候,我们如何和我一样,添加树莓派的卡片呢? 其实很简单,首先是最基础的卡片,也就是图中的内存数据,只需要添加自定义卡片,添加内容: 添加基本信息图标的属于高级第三方卡片了,如果你安装了HACS,可以直接安装这个插件: 第三方前端插件并添加自定义卡片: 好好欣赏你的树莓派数据吧(*☻-☻*)~~ 最终效果END其实,top命令自身就挺消耗树莓派资源的。如果不是经常需要检测树莓派,可以试试不监控CPU使用。 有时候问题,欢迎评论区留言嗷。也欢迎在B站关注我们: Mintimate: https://space.bilibili.com/355567627 |
CopyRight 2018-2019 实验室设备网 版权所有 |