不看这几篇好文,就别说自己了解物联网

1. home assistant简介

1.1 概述

home assistant是一个基于python的家庭智能化平台,可运行于本地服务器,或者树莓派上。利用该平台,可以统一控制家庭中所有的智能设备。

home assistant集成了小米、博联等公司的通信协议,可以直接发现并控制这些公司的智能设备,也可以通过mqtt协议连接其它设备。同时可以通过插件扩展与苹果的Apple HomeKit互动,使用Siri语音控制其它智能设备。

同时他也集成了一些第三方智能语音平台,方便使用语音控制家中的智能设备。home assistant同时还集成了一些如天气、汇率、在线音乐等云端服务。

他的控制页面可以通过网页显示,也可以通过手机APP(支持安卓及iOS)展示。

1.2 GitHub数据统计

目前,github上搜索iot,star数排名第二的项目是home-assistant/core,目前star数42.2k,fork数13.9k,贡献者2429个,发布release版本752个,最新版本2021.4.6(2021/5/4日数据)。

1.3 示例

下图是https://demo.home-assistant.io/在电脑浏览器展示的其中一个示例:

上图展示了下列内容:

  • 展示了灯的开关状态,并可以通过页面按钮控制灯的开关。
  • 展示了门铃目前的状态及统计数据。
  • 展示了当前温度,并可控制空调的温度及开关。
  • 显示了电视当前的视频的内容,视频输出接口,音量,观看时长等数据。
  • 房间的全景图,显示每个房间温度、是否有人、灯是否亮
  • 客厅音响正在播放的音乐,并可以切换音乐。
  • 上下班
  • 安全警戒,入侵告警

手机APP显示的页面如下图:

2. home assistant系统组成

2.1 home assistant内核

负责启动应用,管理状态,处理事件,接入服务,组件间功能交互等通用的功能。

2.2 home assistant组件

组件负责对外交互,包括与智能设备交互,与云服务交互、与浏览器交互等,目前home assistant支持多达上百种设备交互协议、云服务等,详见https://github.com/home-assistant/core/tree/dev/homeassistant/components。

下面是一些接入的常用及主要功能组件:

  • accuweather

ACCU天气服务

  • Amazon Alexa

亚马逊Alexa智能语音服务,用于语音控制智能设备。

  • ecobee

加拿大智能温控公司Ecobee的产品发现及接入。

  • ESPHome

乐鑫的智能家居系统,支持ESP8266/ESP32及常用传感器,支持接入home assistant、HomeKit等。

  • Google Assistant

谷歌智能助理,用于移动设备及智能家居设备。

  • Google Cast

谷歌投屏服务,类似于苹果的AirPlay。

  • IKEA TRADFRI

宜家智能照明系统。

  • MQTT

MQTT是物联网通用的通信协议,通过该协议,可以连接所有自定义设备。

  • Philips Hue

飞利浦个人智能照明系统。

  • Plex Media Server

Plex多媒体服务器,可以在手机、平板、电视、电脑上通过该服务播放NAS上的多媒体文件。

  • SmartThings

SmartThings智能家居公司,目前已被三星收购。

  • Sonos

家庭智能音箱系统。

  • Z-Wave

智能家居无线组网标准。

  • Zigbee

短距离低功耗无线通信技术。

  • KNX

住宅及楼宇控制标准。

  • xiaomi/xiaomi_aqara/xiaomi_miio/xiaomi_tv

小米路由器、电饭煲、扫地机、电视、网关等设备发现及接入

对于home assistant还没有支持的协议或者厂家设备,可以自己增加组件的方式增加对应的支持。

2.3 配置文件configuration.yaml

在该配置文件种配置接入设备的信息、网络协议、云服务、安全授权及其它定制项,文件为yaml格式,遵循yaml语法,可以包含子yaml配置文件。

详细规则见 https://www.home-assistant.io/docs/configuration/yaml/

下面是一个开关的配置示例:

switch:- platform: mqttunique_id: haas600_switchname: "HaaS600 Switch"state_topic: "/publish/amp-hello/home/bedroom/switch1"command_topic: "/publish/amp-hello/home/bedroom/switch1/set"availability:- topic: "/publish/amp-hello/home/bedroom/switch1/available"payload_on: "ON"payload_off: "OFF"state_on: "ON"state_off: "OFF"optimistic: falseqos: 0retain: true

2.4 其它配套

  • MQTT

对于大量的非品牌,非标准协议智能设备,home assistant可以通过MQTT协议与之交互。

home assistant自带了MQTT服务器功能,也可以使用自己安装的MQTT服务器,或者使用第三方MQTT服务器,比如阿里云的MQTT服务。

  • HomeBridge

HomeBridge用于支持与苹果的HomeKit对接,以支持使用siri语音控制智能设备。

备注:最新的home assistant已经默认支持HomeKit,不再需要该组件。HomeBridge本身可以单独使用,以对接HomeKit。

  • NodeRed

NodeRed是IBM推出的开源物联网项目,可以通过WEB流式编程来快速连接物联网设备与云端服务。

可以使用NodeRed对home assistant管理的设备的业务逻辑进行更加复杂的配置,以实现更加高级、更加个性化的控制,包括多设备间联动,与云端服务互动等。

3. home assistant安装及运行简介

3.1 home assistant安装

基于python3.5以上版本pip安装homeassistant,命令如下:

pip install homeassistantpip install sqlalchemy

安装homeassistant过程中,可能会出现卸载ruame. yaml失败的提示,可以在python的site_packages目录,手工删除ruame. yaml

  1. 启动homeassistant,命令如下:
hass --open-ui

这一步时间比较长(5到10分钟左右),需要耐心等待。中途windows系统上会弹出防火墙策略,需要选择允许访问网络。执行完后,会自动打开浏览器,出现如下页面:

在上一步出现的网页上,输入自定义的姓名,用户名,密码等,创建账户。然后依次点击下一步,完成配置。

配置完成后的界面如下:

3.2 MQTT安装与配置

局域网中,可以使用内置的MQTT服务,或者自己安装MQTT服务器,以实现更加高级的MQTT功能。如果要连接公网上的设备,则需要使用公网的MQTT服务,比如阿里云IOT的MQTT服务。

使用内置MQTT,直接参考home assistant帮助使用。

自己安装MQTT服务器,推荐安装EclipseMosquitto,下载地址 https://mosquitto.org/download/

使用阿里云的MQTT服务,可以参考阿里云帮助文档 https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11174283.6.614.4e611668aOJWtg

3.3 HomeBridge安装与配置

HomeBridge的项目地址 https://github.com/homebridge/homebridge ,安装参考章节Installation章节介绍。

要配置home assistant使用,还需要安装一个homebridge-homeassistant插件,地址在https://github.com/home-assistant/homebridge-homeassistant。

说明:最新的home assistant已经内置支持HomeKit,不需要安装HomeBridge。

4. 总结

本文主要带读者了解了下github上热门的物联网项目 - home assistant。并动手动手安装后查看了他的效果。

有兴趣的读者可以在自己的设备上将此项目跑起来试试。

更多精品好文

如何从零设计一种物联网组网协议

如何用几行Python代码在物联网设备上实现语音AI自动识别?

物联网需要什么样的UI交互方式?

如何分析物联网设备问题,看懂这篇文章就够了

透过ALSA这层迷雾剖析AliOS Things音频框架设计

漫谈农业物联网与互联网技术的结合

传感器,物联网时代的智能硬件数字化入口

如何快速搭建一个像“天猫精灵”的智能语音助手?

物联网之IP Camera解决方案简介

从语音交互历史浅看它是否会是物联网行业的一个爆点?

带你走进多媒体世界:视频文件是怎么播放出来的

物联网云端一体AI方案的探索

物联网设备连接的下一个引爆点:4G Cat.1

物联网教育现状和前景

一文看懂蓝牙在物联网中的应用场景

下一个智能硬件爆品是什么?

华为、阿里、小米都在用的全屋智能技术

为什么物联网领域使用Rust的项目越来越多?

物联网中也能使用区块链技术?面向IoT的区块链基础架构IoTeX

开源硬件的前世今生

物联网碎片化的一些思考

边缘计算在物联网行业的应用

物联网太难 ? 不妨试试用Python来开发

5G会给物联网行业带来哪些变化?

必须要了解的物联网安全知识

ARMv9能给ARM带来新一轮腾飞吗?(安全篇)

ARMv9能给ARM带来新一轮腾飞吗?(人工智能篇)

国产物联网操作系统的出路在哪里?

RISC-V架构能否引领物联网时代?

物联网到底为什么这么火?

谁才是物联网连接技术中的王者?

物联网平台大量出现能否将行业带入爆发式发展

脚本语言适合物联网开发吗

从“嵌入式”到“物联网”的四大转变

物联网发展新趋势

带你了解热门IoT开源项目:home assistant相关推荐

  1. 2020年1月Github上最热门的开源项目

    来自:开源最前线(ID:OpenSourceTop)  1月份GitHub上最热门的开源项目排行已经出炉啦,一起来看看上榜详情: 1 the-book-of-secret-knowledge http ...

  2. 2020年2月Github上最热门的开源项目

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自:开源最前线(ID:OpenSourceTop)  2月份GitHub上最热门 ...

  3. vue github开源项目_11月份Github上最热门的开源项目

    开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 11 月份 GitHub 上最热门的开源项目排行已经出炉啦,在本月的名单中,有15亿参数量的通用语言模型.还有NLP工具包 ...

  4. python mssql github_GitHub上最热门的开源项目都在这里了

    最近整理了一些在GitHub上比较热门的开源项目 关于GitHub,快速了解请戳这里 其中涵盖了:学习教程,面试总结,实用工具,框架,机器学习等 东西比较杂,要学的东西也比较多,先存着,然后一点一点学 ...

  5. 3月份GitHub上最热门的开源项目

    本篇文章为大家盘点了3月份GitHub最热门的开源项目,一起来看看你都知道哪些,或者有哪些你已经在使用的了. 1Interview-Notebook https://github.com/CyC201 ...

  6. 近期GitHub上最热门的开源项目(附链接)

    2 月份 GitHub 上最热门的开源项目又出炉了,又有哪些新的项目挤进热门榜单了呢,一起来看看. 1.nocode https://github.com/kelseyhightower/nocode ...

  7. 2020年10月份Github上热门的开源项目

    10月份GitHub上最热门的Java开源项目排行已经出炉啦,一起来看看上榜详情吧: 1. base-admin https://github.com/huanzi-qch/base-admin St ...

  8. [转]2020年2月份Github上最热门的开源项目,速来围观

    随着疫情被逐渐控制,好消息一天天传来,相信用不了多久我们就能恢复正常生活了. 宅在家这么久,对于专业技能你落下了多少? 2月份GitHub上最热门的开源项目排行已经出炉啦,和我一起来看看上榜详情: 1 ...

  9. 盘点5月份GitHub上最热门的开源项目

    又到了为大家盘点5月份GitHub最热门的开源项目的时候了,一起来看看你都知道哪些,或者有哪些你已经在使用的了. 1.terminal https://github.com/microsoft/ter ...

最新文章

  1. PHP CURL 图灵机器人
  2. Linux系统上怎么安装服务器管理软件Cockpit?
  3. MySQL max_allowed_packet设置及问题
  4. go语言学习--内核态和用户态(协程)
  5. 数据仓库模型设计与工具
  6. virtual box linux 安装增强功能,在linux系统中安装virtualbox增强功能(增强包)的详细步骤...
  7. 侯世达:让机器学习思考的人
  8. C#(OpenGL MathNet)处理Gauss光斑图像
  9. 商丘学院计算机考研,商丘学院院校简介_商丘学院研究生院 - 中国考研网
  10. 软件开发平台之争:NET VS Java,谁是更好的选择?
  11. Springboot+POI通用Excel表格导出表头样式设置方法
  12. python1到100奇数相加_Python:从inpu将奇数相加
  13. Unity VR开发教程 OpenXR+XR Interaction Toolkit (六)手与物品交互(触摸、抓取)
  14. 关于pip下载很慢很慢
  15. tagName和nodeName的区别
  16. yolov5在线检测目标检测网页实时识别python目标检测flask
  17. 引见GPG饬令加密文件的措施
  18. 计算机科学导论与前沿,计算机科学导论(英中双语版)
  19. 加米谷奇葩”学员说:要转行,不如早点转
  20. PS的快速入门与使用教程

热门文章

  1. vue 省市区三级联动 antd 级联组件 Cascader
  2. Ping++和BeeCloud的比较
  3. 看完沐神的装机视频,原来还能这么玩?
  4. request.get乱码解决
  5. 简述JS中 appy 和 call 的详细用法
  6. H5流式播放(FMP4转封装与mediaSource)
  7. Matlab画柱状图和折线图的暗黑技巧
  8. 数学:矩估计和最大似然估计
  9. 2022-2028全球皮肤科冷冻外科装置市场现状及未来发展趋势
  10. 微信小程序提示弹窗大全