一. HomeAssistant 是什么?

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

二. HomeAssistant系统

     hass (HomeAssistant运行的程序实例,俗称进程)。

hass由两部分的逻辑组成,内核(core)和组件(component)。如果将hass比作人体的神经系统,那么内核就是中枢神经系统(大脑),组件就是周围神经系统。

  • hass内核的基础工作机制是简单的,理解了状态、事件、服务三个概念,就理解了内核;其简单性类似于大脑的基础工作机制,仅是神经元的相互作用而已。

  • hass内核并不与外部世界直接互动,而是通过组件连接外部世界;类似于大脑并不直接与感觉器官、运动器官连接,而是通过周围神经系统进行连接。
    比如,light.hue组件负责与飞利浦HUE智能灯的互动(感知与设置其当前状态)。
    比如,camera.mjpeg组件负责获得摄像头的标准MJPEG视频流。
    比如,sensor.yr组件负责与yr.no云服务通讯,获得天气信息。
    比如,http组件负责对外提供的http协议服务。
    比如,frontend组件,在http组件的基础上,负责与浏览器的交互。
    比如,ifttt组件,负责与INTERNET上另一个大脑(IFTTT)的通讯与互动。

  • 组件与组件之间会有相互的交互,但一般会通过hass内核中的状态、事件、服务机制来进行;类似于眼睛与手不会直接相互作用,但都连接到大脑,由大脑协调它们的相互作用。

  • HomeAssistant中有一些组件并不与外部世界连接,而仅是获取内部的信息状态,然后运行逻辑规则;有点类似于周围神经系统中的本体感觉神经,仅仅用于获得自身肌肉与关节的状态。
    比如,automation组件,在hass内核信息基础上,运行自动化规则逻辑。

  • HomeAssistant中有近千种不同的组件——这是其能与丰富的物联世界协同交互的基础——并且数量在快速的增长。

hass 核心配置文件 configuration.yaml

      配置文件决定hass加载哪些组件,以及这些组件该如何运行——与神经系统的构建受基因控制类似。

  • 比如,camera.mjpeg组件的配置信息包含应该连接哪个地址的摄像头抓取视频流。

  • 比如,sensor.yr组件的配置信息包含应该获取哪个地方的什么时间的天气预报。

  • 比如,http组件的配置信息包含对外开放的端口号、访问密码等信息。

  • 比如,automation组件的配置信息包含如何联动的逻辑规则。

  hass 运行环境

      hass基于Python环境运行,作为一个HomeAssistant的使用者,您并不需要掌握python编程语言,只要安装它的环境就可以了。

三.  HomeAssistant连接的硬件设备

HomeAssistant是一个运行智能规则的大脑,它可以与丰富的外部设备联动——获得信息、发送指令。

  • 实时汇率行情——获得当前实时的汇率行情
    类似的,还有股票行情、电子货币行情、交通拥堵情况、天气预报、空气质量预报……

  • Android手机摄像头——获得摄像头的视频流
    类似的,所有支持标准协议的硬件摄像头都可以接入。

  • 人脸识别——基于视频流,识别出其中的人脸是谁
    类似的,可以基于视频流进行车牌识别、文字识别、动作探测、噪音监控……

  • 百度文字转语音服务——通过百度免费的TTS服务,将文字(比如天气预报、股票行情等文字信息)转换成语音(MP3)
    类似的,也可以使用voiceRSS、Google等的服务。

  • KODI媒体播放器——将语音信号通过硬件播放出来
    类似的,可以用VLC、Gstreamer等软件,也可以直接连接外部的各种蓝牙音箱。

  • 亚马逊ECHO——与亚马逊ECHO进行联动
    类似的,可以与各种外部的智能引擎联动,可以与苹果手机(Siri)进行联动,可以与GoogleAssistant联动,可以与IFTTT联动。

  • 小米温湿度传感器——获得环境的温湿度信息
    类似的,小米系列的各种传感器门窗开合、人体感应、小米魔方等都可以接入。

  • Philips智能灯——控制Philips智能灯的开关、颜色、亮度
    类似的,小米智能灯、智能开关、宜家智能灯也可以被控制,还可以通过红外转发控制传统家电。

  • 发送邮件——可以发送邮件通知
    类似的,也可以发送手机短消息。

  • Arduino——DIY的乐园
    类似的,可以自己写一些脚本、做一些串口设备,都可以联动起来。

  • ……

我们把可以连接到HomeAssistant大脑上的外部设备、程序、云服务统称为积木元素——就像搭乐高积木一样,HomeAssistant像胶水一样把不同积木粘合在一起,构建起智慧空间。

这期主要给大家介绍智能家居平台 HomeAssistant ,后面给大家带来实战教程。敬请期待!

关注一下,更多精彩,不容错过!

智能家居系统 Home Assistant 系列 --介绍篇的更多相关文章

  1. 智能家居系统 Home Assistant 系列 --安装系统之Windows

    Home Assistant 是一个成熟完整的基于 Python 的智能家居系统. 首先得安装Python环境.在浏览器中访问Python官网 www.python.org 进入Downloads中的 ...

  2. Home Assistant + 树莓派:强大的智能家居系统 · 安装篇

    Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 转载:Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 目录 1. 初始安装 3. Homebridg ...

  3. Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇

    转载:Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇 目录 HASS 配置框架 主文件设置 Homebridge 设置 鹬蚌相争? 设备追踪设置 更新日志 作者的话 相信 ...

  4. 树莓派安装开源智能家居系统 Domoticz

    前言 最近闲来无事开始折腾自己的智能家居系统,对比了几种比较流行的开源智能家居系统,觉得 Domoticz 更适合,Domoticz的官方中文文档,虽然不是很完善但还是可以参考一下.需要注意的是下文用 ...

  5. 个人智能家居系统 - MQTT服务器搭建(centOS7.3)

    个人智能家居系统 - MQTT服务器搭建(centOS7.3) 0x00 参考 在CentOS7 上安装mosquitto1.4.1服务器,实现MQTT信息推送功能并增加websocket功能 mos ...

  6. buildbot入门系列—介绍篇

    一.介绍 1. buildbot是一个开源的基于python的持续集成系统,它能够以下三种方式触发相应的自动构建和测试运行,从而迅速的发现问题所在,同时指出造成这个错误的开发人员,当然我们还可以通过页 ...

  7. 09树莓派一体化安装(All-In-One Installer)智能家居平台Home Assistant

    2017-08-30 13:29:38 Raspberry Pi All-In-One Installer 全新安装树莓派系统(系统为官方的RASPBIAN STRETCH WITH DESKTOP, ...

  8. Home Assistant系列美化篇——替换天气 UI

    替换天气组件 weather 的默认 UI,生成美观大方的气象卡片. Home Assistant 原生的天气平台不少,国内用户常用的有雅虎天气和 Darksky.其他论坛和社区也有分享自制的和风.彩 ...

  9. 实例源码--Android智能家居系统源码

      下载源码   技术要点:  1.Android应 用开发基础框架 2.SQLITE数据库的 使用 3.网络通信 4.GOOGLE地图模块 5.源码带有非常详 细的中文注释 ...... 详细介绍: ...

随机推荐

  1. 前端静态资源版本更新与缓存之——通过gulp 在原html文件上自动化添加js、css版本号

    原理 修改js和css文件 通过对js,css文件内容进行hash运算,生成一个文件的唯一hash字符串(如果文件修改则hash号会发生变化) 替换html中的js,css文件名,生成一个带版本号的文 ...

  2. 自动化测试基础篇--Selenium unittest生成测试报告(HTMLTestRunner)

    如何生成HTMLTestRunner测试报告.接上篇文章,对于unittest框架,运行后,测试结果不便于查看,同时多个case存在的时候,可能会导致case result记录不正确的情况. 为此,引 ...

  3. 沉淀再出发:关于netty的一些理解和使用

    沉淀再出发:关于netty的一些理解和使用 一.前言 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务 ...

  4. Git Hub 使用手册参考

    参考信息 1.http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0002.http://ww ...

  5. source insight设置问题 [问题点数:20分,结帖人leecapacity]

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104687270e54f7327d818c027fa3cf1fd5791d1c05 ...

  6. 利用describe( )中的count来检查数据是否缺省

    #-*- coding: utf-8 -*- #在python的pandas库中,只需要读入数据,然后使用describe()函数就可以查看数据的基本情况 import pandas as pd in ...

  7. [TOP10]最受欢迎的10个Metasploit模块和插件

    很多人都想知道最受欢迎的10个Metasploit模块和插件是什么(TOP10),事实上这是一个很难回答的问题,因为什么才叫"Top"?我想每个人都有每个人的看法.于是我们通过调查 ...

  8. 7、Python文件操作工具 openpyxl 工具 2

    创建一个工作簿 使用openpyxl没有必要先在系统中新建一个.xlsx,我们需要做的只需要引入Workbook这个类,接着开始调用它. >>> from openpyxl impo ...

  9. MySQL面试宝典

    ==============================================# 参数==============================================auto ...

  10. jq实现从容器中间扩散的方式显示文字

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...