玩玩智能家居8:搭建基于 Grafana 的环境数据看板

在之前的文章 《玩玩智能家居4:InfluxDB & Grafana》 已经介绍了怎么将 Domoticz 中采集到的数据存储到 Influxdb,以及使用 Grafana 来查看数据,但是这样只有一个两个数据,并不能很方便的对整个家里的环境数据有个快速了解。

Grafana 提供了丰富的面板组件,可以以各种形式来展示数据,例如文本和曲线图,而且也可以很方便地自定义阈值,对于数据的不同数值显示不同的颜色,或者不同的背景颜色,这样便于了解当前数据是否处于能接受的范围内。

借助于 Grafana 这些组件,就可以很方便的搭建一个属于自己的家庭环境数据看板了。

文本数据

曲线图用来看趋势很方便,但是对于当前数值来说,文本方式的面板才更容易阅读,因此对于当前各个房间的温度、CO2 以及 PM2.5 数值,都使用文本面板,并且文本面板也不占空间,一排可以放置多个。

对于有单位的数据来说,可以在 Options - Value 中设置 Postfix,并且将 Font size 设置为 50%,这样显示的时候单位可以小一点,不侵占数据的显示空间。

另外,对于有阈值的数据来说,可以在 Options - Coloring 中来设置不同数值区间来使用不同的颜色来显示,例如对于 CO2 来说,可以认为 CO2 浓度在 800ppm 以下时为健康,显示为绿色,而 800-1200ppm 时为良,显示为黄色,对于 CO2 浓度在 1200ppm 以上时认为不太健康,显示为红色。

在 Thresholds 中只需要填写两个数值就可以了,像上面的例子,只需要填写 800,1200 即可。

对于 PM2.5 来说,根据空气质量指数,这个阈值可以设置为 35,55。

曲线图

对于历史数据来说,没有比曲线图更好地表现形式了,而且对于曲线面板来说,可以添加多个数据源,这样可以将相同类型的数据放在一个图表中,方便对比在家里不同位置同类型数据的数值。

要添加多个数据源,直接在 Metrics 中挨个添加就行了:

对于曲线面板来说,在设置 Metrics 时需要注意其中 GROUP BY 需要添加一个 fill 参数,可以选择 fill(linear) 或者 fill(previous),否则在有些数据更新时间间隔过大时,可能会导致图表出现断线。

当然,曲线面板同样可以添加阈值设置,但是不同于文本面板,曲线面板的阈值设置是在 Display - Thresholds 中。曲线面板的阈值设置相对于文本面板来说更强大,但是对于这里要展示的数据来说,也只需要设置三个区间就可以了,颜色也可以直接使用预置的 ok、warning 以及 critical。

勾上 Fill 就可以让选定的颜色填充整个区间了,这样一整个曲线图表,可以一眼看出来在哪些时间是超出了可接受范围的。

默认面板

在创建完数据面板之后,就可以根据自己的需求,好好排列一下啦,但是为了进入 Grafana 时能默认打开自己设计过的面板,还是需要额外设置一下的。

先打开之前设计的面板,在顶部导航栏将它添加到收藏。

再从左上角菜单进入当前组织的 Preferences 后,设置一下 Home Dashboard,将它设置为刚刚设计好的面板然后保存即可。

数据大屏

有了数据面板之后,怎么看起来方便也是一个问题,这个时候如果有一个闲置的 iPad 之类的设备就很方便了,可以直接在 iPad 上访问 Grafana 的服务,并且将它一直显示即可。

虽然使用 Safari 也可以很方便的展示这个数据看板,但是 Safari 一来不能全屏显示,二来超时会自动休眠,因此最好的办法是自己写一个 App 来去展示 Grafana 的网页,并且自带全屏以及禁用 iOS 休眠功能。

因此我写了一个小程序专门用来展示 Grafana,这个程序只做了两件事,全屏加载指定的网页,禁用 iOS 休眠定时器。

代码开源在:https://github.com/ohdarling/WallPanel

要使用这个代码只需要修改 ViewController.m 中的 https://192.168.1.188:3000/ 为实际运行 Grafana 的地址即可。

怎样更好

哪里去放这个闲置的 iPad 是个好问题,可以找一个有电源的地方,将 iPad 挂在墙上,这样可以随时方便查看地。

另外,iPad 屏幕一直亮着可能也不好,也许可以改一改代码,在有人的时候,将屏幕调亮一点,在晚上,将屏幕调暗一点,避免成为家里新的光污染。

参考资料

  1. Grafana
  2. 玩玩智能家居4:InfluxDB & Grafana
  3. 空气质量指数
  4. 将引导式访问用于 iPhone、iPad 和 iPod touch
  5. WallPanel

---EOF---

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>