树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

一、前言

在我看来智能家居最好的形式是让人感觉不到它的存在,当一个系统趋于稳态之后,一般是不需要太多的变动的。在打造个人智能家居系统的期间,涉及专业性的内容其实并不多,反而更困难的是甄别一些伪需求,如此方能事半功倍。

Hass.io 虽然存在诸多限制,但优秀的插件模式,使得用户无需去关注背后的机制,能够轻松上手 Home Assistant。本篇将总结一些优秀的 Hass.io 插件,讲解一些相应的配置。关于插件的安装,可以浏览我之前的相关文章。

二、基础篇

Dnsmasq

插件源:内置

功能:DNS 服务

Dnsmasq 可以提供简易的 DNS 服务,使的家庭内部服务也拥有独立的域名。当然,你需要在路由器或者你的联网设备上将 DNS 服务器地址设为你的树莓派 IP 地址。结合 Nginx Proxy 使用,能够实现 Hass.io、Dashboard、Pi-hole 等服务的域名访问。


配置信息:
{
 "defaults": ["114.114.114.114", "8.8.8.8"],
 "forwards": [                 //(可选)转发到特定服务器的域列表
   {"domain": "mystuff.local", "server": "192.168.1.40"}
 ],
 "hosts": [                    //(可选)需要解析的主机信息
   {"host": "home.mydomain.io", "ip": "192.168.1.10"}
 ],
 "interface": "eth1"
}

HASS Configurator

插件源:内置

功能:Home Assistant 可视化配置

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

▲HASS Configurator

通过网页直接对 Home Assistant 进行配置,编辑 YAML 文件,并且提供了语法高亮功能。


配置信息:
{
 "username": "admin",         //(可选)
 "password": "secret",        //(必填)Hass.io 密码
 "certfile": "fullchain.pem", //(可选)
 "keyfile": "privkey.pem",    //(可选)
 "ssl": false,                //(可选)为编辑器启用或禁用SSL
 "allowed_networks": ["192.168.0.0/16"], //(可选)通过将允许的IP地址/网络添加到列表来限制对配置器的访问
 "banned_ips": ["8.8.8.8"],              //(可选)静态禁止的IP地址列表
 "banlimit": 0,                          //(可选)
 "ignore_pattern": ["__pycache__"],      //(可选)要在用户界面中忽略的文件和文件夹
 "dirsfirst": false,                     //(可选)
}

HASS Configurator 整合到 Home Assistant Web 页面中,在 configuration.yaml 中加入如下配置:


配置信息:
panel_iframe:
 configurator:
   title: Configurator
   icon: mdi:wrench
   url: http://你的Hass.io地址:3218

Nginx Proxy

插件源:https://github.com/bestlibre/hassio-addons

功能:反向代理

提供简易的 Nginx 反向代理功能,只需要简单的配置,就可以让所有服务拥有独立的域名,如下方配置,所有的服务都在树莓派上部署,通过不同的端口进行方面。使用 Nginx Proxy 后,可以给不同端口的服务不用的访问域名。相较其他 Nginx 代理,这款插件配置更为简单。


配置信息:
{
 "vhosts": [
   {
     "vhost": "pihole.home.me",
     "port": "8053",
     "default_server": true
   },
   {
     "vhost": "hassio.home.me",
     "port": "8123",
     "default_server": false
   },
   {
     "vhost": "dashboard.home.me",
     "port": "5050",
     "default_server": false
   },
   {
     "vhost": "portainerio.home.me",
     "port": "9000",
     "default_server": false
   }
 ]
}

Terminal

插件源:https://github.com/hassio-addons/repository

功能:Web 终端

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐



▲Web 终端

通过 Terminal 插件,实现使用 Web 终端登陆 Hass.io。包含模块:curl, Wget, RSync, GIT, Nmap, Mosquitto client, MariaDB/MySQL client, Awake (“wake on lan”), Nano, Vim, tmux 等。


配置信息:
{
 "log_level": "info",
 "username": "hassio",        //设置用户名与密码
 "password": "changeme",
 "ssl": true,
 "certfile": "fullchain.pem", //(可选)用于SSL的证书文件。
 "keyfile": "privkey.pem",    //(可选)用于SSL的私钥文件。
 "packages": [                //(可选)额外安装的包
   "python",
   "python-dev",
   "py-pip",
   "build-base"
 ],
 "init_commands": [           //(可选)初始化命令
   "pip install virtualenv",
   "pip install yamllint"
 ]
}

Terminal 整合到 Home Assistant Web 页面中,在 configuration.yaml 中加入如下配置:


配置信息:
panel_iframe:
 terminal:
   title: Terminal
   icon: mdi:console
   url: http://你的Hass.io地址:7681

三、高级篇

AppDaemon

插件源:https://github.com/hassio-addons/repository

功能:Dashboard

准确来说 AppDaemon 插件不仅仅能提供 Dashboard 功能,这里我们仅以 Dashboard 为主。

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐


▲Dashboard 实现效果


Dashboard 是有望成为官方界面的应用,在 Hass.io 中,通过插件可以轻松安装。而 AppDaemon 的配置可以在 /config/appdaemon 目录中找到。


配置信息:
{
 "log_level": "info",
 "commtype": "websockets"
}

有关配置 AppDaemon 的配置内容请参阅相关文档:http://appdaemon.readthedocs.io/en/latest/

HA Bridge

插件源:https://github.com/notoriousbdg/hassio-addons

功能:模拟 Philips Hue

通过 HA Bridge 插件,将 Home Assistant 中的设备模拟成 Philips Hue,使设备能够接入 Amazon Echo 或者京东叮咚智能音响。由于模拟的是灯具设备,所以仅能够实现开关功能。

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐▲HA Bridge 原理图


配置信息(可选):
{
"serverip": "192.168.0.10",  //Hass.io IP 地址
"serverport": 80,            //可以修改为合适的端口,注意在 HA Bridge 中修改相应内容
"version": "latest"
}

HA Bridge 整合到 Home Assistant Web 页面中,在 configuration.yaml 中加入如下配置:


配置信息:
habridge:
 nodered_flows:
   title: 'HA Bridge'
   icon: mdi:lightbulb-on-outline
   url: http://你的Hass.io地址:80

Homebridge

插件源:https://github.com/hassio-addons/repository

功能:HomeKit 接入

Homebridge 的作用无需赘言。

IDE

插件源:https://github.com/hassio-addons/repository

功能:基于 Cloud9 IDE 的开发环境

Cloud9 IDE是一个在线集成开发环境。它支持数百种编程语言,包括C,C ++,PHP,Ruby,Perl,Python,带有Node.js的JavaScript和Go。这个插件是Cloud9 IDE的一个打包版本,可以与 Home Assistant 一起使用。它旨在允许你使用一个有用的,漂亮的和全面的编辑器,能够从 Web 界面直接配置和编辑 Home Assistant。

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐



▲IDE 界面


配置信息:
{
 "log_level": "info",
 "username": "hassio",
 "password": "changeme",
 "ssl": true,
 "certfile": "fullchain.pem",
 "keyfile": "privkey.pem",
 "packages": [
   "php7-cli"
 ],
 "init_commands": []
}

IDE 整合到 Home Assistant Web 页面中,在 configuration.yaml 中加入如下配置:


配置信息:
panel_iframe:
 ide:
   title: IDE
   icon: mdi:code-braces
   url: https://你的Hass.io地址:8321

Node-RED

插件源:https://github.com/notoriousbdg/hassio-addons

功能:物联网编程工具

Node-Red是IBM公司开发的一个可视化的编程工具。可以用来联接各种物联网设备,比如 Arduino、RaspberryPi。

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

▲Node-RED


配置信息(可选):
{
 "ssl": true,
 "certfile": "fullchain.pem",
 "keyfile": "privkey.pem",
 "users": [
   {
     "username": "admin",
     "password": "password",
     "permissions": "*"
   }
 ]
}

Node-RED 整合到 Home Assistant Web 页面中,在 configuration.yaml 中加入如下配置:


配置信息:
panel_iframe:
 nodered_flows:
   title: 'Node-RED Flows'
   icon: mdi:nodejs
   url: http://你的Hass.io地址:1880

Pi-hole

插件源:https://github.com/hassio-addons/repository

功能:广告过滤

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

▲Pi-hole

Pi-hole 是一个基于 DNS 的广告过滤系统,它的原理是通过域名的信息配置,屏蔽掉相应的广告。由于 Pi-hole 内置 Dnsmasq,所以会与之前的基础插件有冲突。


配置信息:
{
 "log_level": "info",
 "password": "changeme",
 "update_lists_on_start": true,
 "web_port": 80,
 "dns_port": 53,
 "ssl": false,
 "certfile": "fullchain.pem",
 "keyfile": "privkey.pem",
 "interface": "eth0",
 "ipv6": true,
 "ipv4_address": "",
 "ipv6_address": "",
 "virtual_host": "homeassistant.example.com",
 "hosts": [                  //Dnsmasq 域名配置
   {
     "name": "printer.local",
     "ip": "192.168.1.5"
   },
   {
     "name": "router.local",
     "ip": "192.168.1.1"
   },
   {
     "name": "router.local",
     "ip": "FE80:0000:0000:0000:0202:B3FF:FE1E:8329"
   }
 ]
}

这里给出自用的两个去广告的 host 源,在 Pi-hole 中添加即可。

https://gist.githubusercontent.com/alswl/9e048c9b76bd9e8f62c60a3c5f440b75/raw/bf14238eb941c162f53731e94e96eca2d2cb618b/hosts

https://raw.githubusercontent.com/vokins/yhosts/master/hosts

树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(8):Hass.io 插件推荐

▲Pi-hole

四、总结

经过一段时间的发展,Hass.io 插件日益完善,抛开网络问题,插件使得 Home Assistant 能够非常轻松简单的上手,本文汇总了一些常用或者有趣的插件,希望能够给大家一定帮助,有关插件具体的内容可以直接通过连接浏览原文档。

由于技术文档都具有一定的时效性,所以之前的一些文章可能已不完全适用于最新的应用版本,我会做一些勘误与答疑。

另外推荐大家参阅 ©cxlwill 维护的 Home Assistant 中文文档 https://home-assistant.cc/


发表评论