被安利了许久,之前感觉没啥用,直到最近睡觉爬起来开关电扇难以忍受,买两个小米的开关先试试。

东西还没到,先将HomeAssistant安装在吃灰的树莓派上,了解一下操作。

以下基于Raspberry Zero W,系统为RASPBIAN STRETCH LITE。


安装

Python库

环境要求为Python 3.5.3 及以上。

创建虚拟环境:virtualenv -p python3 venv(需要先安装virtualenv)

进入虚拟环境:. venv/bin/activate

安装HomeAssistant:python3 -m pip install --upgrade homeassistant

启动:hass

首次启动需要等待安装各种库,安装完成后,打开http://你的ip:8123/应该就能看到界面了。

添加服务

sudo vim /etc/systemd/system/home-assistant@pi.service

[Unit]
Description=HomeAssistant
After=network-online.target

[Service]
Type=simple
User=%i
ExecStart=虚拟环境路径/bin/hass -c "/home/pi/.homeassistant"

[Install]
WantedBy=multi-user.target

重新加载:sudo systemctl --system daemon-reload

启用服务:sudo systemctl enable home-assistant@pi

启动服务:sudo service home-assistant@pi start

配置

大部分设置和设备接入都是在~/.homeassistant/configuration.yaml中操作。

配置密码

取消~/.homeassistant/configuration.yamlapi_password: 行的注释,在~/.homeassistant/secrets.yaml中设置密码。

时区

~/.homeassistant/configuration.yamltime_zone设置为Asia/Shanghai

设备接入

天气这种也算是设备,其实默认好像带一个日出日落,看到很多高级用法,后面的文章会讲一讲。

  1. 雅虎天气
    configuration.yaml中添加,其中woeid为城市代码,可以在雅虎天气网站获得,如:https://www.yahoo.com/news/weather/china/nanjing/nanjing-21370812137081
weather:
  - platform: yweather
     woeid: 2137081
  1. 小米路由器
    可以用来判断是否在家之类的。
    配置如下:
device_tracker:
  - platform: xiaomi
    host: 192.168.xx.1
    password: 密码

其他路由器可能需要开启SSH之类的,参照:https://home-assistant.cc/component/router/

  1. 定制地图
    自带的地图是没有细节的,而这个地图更丰富加载也更快。
    https://github.com/cxlwill/ha-inkwavemap

大概就是这样了,目前还啥也干不了。

其它

App使用

下载了App试用,大概和浏览器端差不多,多了通知和定位,通知好像还有点用。
出门也想操作的话就需要下面提到的外网访问了。

配置还是很简单的。

Samba

和windows的文件共享一样,可以使树莓派上的文件在网络上访问修改。
参考这篇

外网访问

这样出门也能够在App端或浏览器端进行控制,也可以用api干很多事(还没用到)。

DDNS:就是根据你的IP变化来更新DNS推荐“dns.he.net”,加入树莓派Cron定时请求一个API就可以更新,不需要路由器,可以参考这篇文章

端口映射:纯路由器的功能,一般第三方固件都有这功能,靠谱点的路由器也有,把公网IP端口映射到局域网某个设备的某个端口,比如访问http://你的ip:2333/ 就是访问 http://192.168.1.x:2333/(注意运营商已经屏蔽了80和443端口)。

Nginx反代(非必须):统一管理,可以配置ssl。解决无法登陆的问题见上一篇文章

成功登陆后提示Login attempt or request with invalid authentication from 127.0.0.1,修改配置vim ~/.homeassistant/configuration.yaml, 在http下添加

  trusted_networks
    - ::1

参考

http://kittenyang.com/homebridge-practice/
https://home-assistant.cc/
http://cxlwill.cn/Home-Assistant/HomeAssistant-Device-Access/