一. 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. --Too small initial heap for new size specified

    虽然Java屏蔽了一下内存细节,但是有时候,了解一下这些常识还是有好处的,特别是一些面试,总是盯着这些玩意不放手. JVM启动以后,会分配两类内存区域,一类用于开发人员使用,比如保存一些变量,对象等, ...

  2. 10 套华丽的 CSS3 按钮推荐

    在过去的Web开发中,通常使用Photoshop来设计按钮的样式.不过随着CSS3技术的发展,你完全可以通过几行代码来定制一个漂亮的按钮,并且还可以呈现渐变.框阴影.文字阴影等效果.此类按钮最大的优势 ...

  3. linux服务器安全配置10大技巧

    1.禁止ping/etc/rc.d/rc.localecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all2.对用户和口令文件进行权限控制chmod 6 ...

  4. C语言顺序表的实现

    今天本来想写段代码练练手,想法挺好结果,栽了个大跟头,在这个错误上徘徊了4个小时才解决,现在分享出来,给大家提个醒,先贴上代码: /********************************** ...

  5. css3实现 鼠标经过li时动态画边框(jq库导航)

    <!doctype html> <html> <head> <meta charset="utf-8" /> <meta na ...

  6. 关于javascript的单线程和异步的一些问题

    关于js单线程和异步方面突然就糊涂了,看别人的文章越看越糊涂,感觉这方面是个坑,跳进去就不好跳出来.再去看,看着看着感觉自己明白了一些东西,也不知道对不对,反正是暂时把自己说服了,这样理解能理解的通, ...

  7. Input and Output-The input is all the sources of action for your app

    Programs take input and produce output. The output is the result of doing something with the input. ...

  8. 【bootstrap】.container与.container_fluid

    .container与.container_fluid是bootstrap中的两种不同类型的外层容器,区别是: .container 类用于固定宽度并支持响应式布局的容器.不用你自己设宽度,通过< ...

  9. 2、RabbitMQ-simplest thing(简单队列)

    1.项目准备: 使用maven的依赖 <dependencies> <dependency> <groupId>com.rabbitmq</groupId&g ...

  10. Gradle初步

    一.介绍 Gradle是一个基于 JVM 的富有突破性构建工具. 它为您提供了: 一个像 ant 一样,通用的灵活的构建工具 一种可切换的,像 maven 一样的基于约定优于配置的构建框架 强大的多工 ...