智能家居(一):开篇以及HomeAssistant安装

1 开篇

使用homeassistant+homebridge+homekit的方案,从零打造智能家居平台。具体实现图如下所示。

system.png

图1  系统结构草图

  • HomeKit

    苹果于2015年5月发布的智能家居平台,内置到部分IOS设备中。

  • HomeBridge

    前苹果员工开发一个开源程序,用于让HomeKit支持一些原生不支持HomeKit的设备(如米家家居)。

  • HomeAssistant

    第三方的智能家居平台

2 HomeAssistant是什么?

HomeAssistant是构建智慧空间的神器。是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation)、群组化(Group)、UI 客制化(Theme) 等等高度定制化设置。同样实现设备的 Siri 控制。基于HomeAssistant,可以方便地连接各种外部设备(智能设备、摄像头、邮件、短消息、云服务等,成熟的可连接组件有近千种),手动或按照自己的需求自动化地联动这些外部设备,构建随心所欲的智慧空间。HomeAssistant是开源的,它不属于任何商业公司,用户可以无偿使用。

3 HomeAssistant结构和组件

HomeAssistant运行起来的进程名为hass。hass由两部分组成,内核(core)和组件(component)。如果将hass比作人体的神经系统,那么内核就是中枢神经系统(大脑),组件就是周围神经系统。hass内核的基础工作机制是简单的,理解了状态、事件、服务三个概念,就理解了内核;其简单性类似于大脑的基础工作机制,仅是神经元的相互作用而已。hass内核并不与外部世界直接互动,而是通过组件连接外部世界;类似于大脑并不直接与感觉器官、运动器官连接,而是通过周围神经系统进行连接。HomeAssistant中有近千种不同的组件,这是其能与丰富的物联世界协同交互的基础,并且数量在快速的增长。

ha-core-arch.png

图2  hass core架构图

  • light.hue组件负责与飞利浦HUE智能灯的互动(感知与设置其当前状态)。
  • camera.mjpeg组件负责获得摄像头的标准MJPEG视频流。
  • sensor.yr组件负责与yr.no云服务通讯,获得天气信息。
  • http组件负责对外提供的http协议服务。
  • frontend组件,在http组件的基础上,负责与浏览器的交互。
  • ifttt组件,负责与INTERNET上另一个大脑(IFTTT)的通讯与互动。

component-arch.png

图3  hass component架构图

4 HomeAssistant安装

4.1 python环境安装

  • python3

    sudo apt-get install python3.5
    
  • python开发资源

    sudo apt-get install python3.5-dev
    
  • pip安装

    sudo apt install python3-pip
    

4.2 HomeAssistant

  • 安装

    sudo pip3 install homeassistant 
    
  • 启动

    hass --open-ui
    

启动界面如下,需要创建账户之后才可使用。另外提一下,远程编辑树莓派上的文件,我直接在emacs用 tramp 进行编辑。

create-account.png

图4  hass启动界面

另外hass的配置文件为configratuib.yml,后续会陆续配置。

hass-config.png

图5  hass配置文件