homeassistant与传感器的应用,自动化创建

  • WARNING:
  • Home Assistant简介
  • 为什么用
  • 开始进行配置
    • 登录HA网关
    • 传感器接入
      • sonoff传感器接入
        • 安装zigbee2mqtt插件
        • zigbee2mqtt插件接入sonoff传感器
        • mqtt数据发送
      • 绿米传感器接入
        • 绿米传感器接入绿米网关
        • HA网关接入homekit
        • 绿米网关和传感器接入homekit
    • 博联遥控器配置
      • 博联遥控器了接入HA网关
      • 红外或射频学习
    • 自动化配置
      • node-red插件安装与配置
      • nodered配置
        • nodered节点介绍
        • nodered使用方法
  • 参考

WARNING:

我就没想着截图,下面的说明里基本就没几张图片,但是我会尽量做到用文字描述清楚。请知悉。

Home Assistant简介

Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

Home Assistant 运行在 Python 3.5.3 及以上 环境下,一般来说,符合 Python 运行条件的系统皆可安装 Home Assistant(下称HA网关)。

为什么用

我这里的需求是传感器和控制器,既能完成我需要的自动化控制,又能将这些数据按照我想要的方式传输到我的mqtt服务器中去做记录。(别问为什么不直接用nodered,没硬件,而且不会接入 )

这里因为是测试需要,就没有用闲置的硬件去搭建HA网关,直接购买了人家的成品。我需要使用sonoff传感器,绿米传感器和HA网关共同组建成一套自动化的控制,遥控器本来买的涂鸦的,结果接入发现了点问题,后来又申请购买了博联的RM4PRO遥控器。

开始进行配置

登录HA网关

因为我使用的是购买的硬件(不提供购买的信息,可以自行淘宝搜索,挺多的),所以直接省去了所有的环境搭建过程,只需要把HA网关通过网线接入路由器即可。通上网线后它会自动向路由器中申请它的域名与IP的对应,一般情况下只需要访问homeassistant.local:8123就可以登录其管理后台。(如果没法登录的话,就去路由器中查看一下设备的IP,然后IP:端口号登录吧)

进入后应该能看到提示创建账户的界面,基本全部保持默认选项即可。全部完成后我们会进入到主界面,就算完成了。

传感器接入

要想在HA中接收传感器的数据,首要前提就是将传感器接入到HA中(默认配置下你可以认为就像上图中概览界面能够看到传感器,就为成功)。下面以我接入的两套为基准。

sonoff传感器接入

最开始我是想用sonoff网关进行集成接入的。因为最开始的时候饶了点弯子就没使用这个方案,当时使用的是zigbee2mqtt插件进行接入(真的不是因为懒,我觉得还挺好用的 )。那么接下来说一下zigbee2mqtt插件的设置。(下称z2m)

HA又没有zigbee协议的接收器,所以我们需要先为HA网关购买一个usb zigbee网关,将其连接至HA网关上。

安装zigbee2mqtt插件

  1. 打开HA网关主界面,左边列表中找到 配置 ,依次点击 加载项加载项商店 ,点击右上角的三个点,点击 仓库(Repo)
  2. 弹出对话框,将zigbee2mqtt的插件地址写入,添加。https://github.com/zigbee2mqtt/hassio-zigbee2mqtt(如果出现错误,就接着试.jpg)
  3. 添加成功后,将会在加载项商店中出现zigbee2mqtt的插件信息,点击 zigbee2mqtt 插件,安装。
  4. 安装成功后,自动进入到zigbee2mqtt的相关界面中,将自启动,守护,在侧边栏显示三个选项打开。
  5. 接下来需要对mqtt进行配置(下面以本地mqtt为例),回到homeassistant主界面,依次点击 配置加载项,找到Mosquitto broker,进去点击配置,在Logins选项卡中配置mqtt的账号密码,例如
- username: mqttpassword: mqtt
  1. 保存后,回到信息选项卡中,也是将自启动,守护,在侧边栏显示三个选项打开。然后点击启动。至此本地mqtt已经配置完毕了。
  2. 接下来我们将mqtt添加到集成中,回到HA网关主界面,依次点击 配置设备与服务添加设备,出现的弹窗搜索“mqtt”。点击mqtt,输入服务器127.0.0.1,用户名密码都是刚才设置的mqtt,点击提交。
  3. 然后就可以正式开始配置zigbee2mqtt了。老样子,依次点击 配置加载项zigbee2mqtt, 配置选项卡
    mqtt 栏填写

    base_topic: zigbee2mqtt
    server: mqtt://x.x.x.x:1883
    user: mqtt
    password: mqtt
    

    serial栏填写

    port: /dev/ttyUSB0
    

    填写之后点击保存。然后回到信息界面,点击启动。

  4. 然后等一会吧。之后点击HA网关主界面中侧边栏的zigbee2mqtt,如果成功进入到界面中就完成了配置。右上方的国旗图标可以修改语言。

zigbee2mqtt插件接入sonoff传感器

再将z2m插件配置完毕后,就可以接入sonoff传感器了。

  1. 打开zigbee2mqtt选项卡,点击右上方的“允许添加新设备(所有)”
  2. 根据sonoff的各个传感器的说明书,去启动它的zigbee协议匹配(一般为长按reset后松开)。过一会应该就能看到z2m的界面中出现了传感器了。我们也可以点击这个设备右边的编辑按钮,更改它的名称方便我们辨认。
  3. 如果顺利的话,我们是可以在HA网关的概览中直接看到这个传感器相关的数据了。(这里有个坑,如果你使用的是别人公网上公开的mqtt服务器的话,很可能无法在概览中看到传感器,就等于没把传感器接入进来。猜测是因为公共服务期的topic太多了,检测出现了问题。)
  4. 如果你一定要使用公开的mqtt服务器,而且还没法自动识别,就只能手动的一个一个导入了。方法如下:
HA网关主界面侧边栏 File editor,找到`/config/configuration.yaml`文件,在其中写入规则,我下面以sonoff传感器的温湿度为例:
mqtt:sensor:- name: "温度"state_topic: "zigbee2mqtt/无线温度计1"unit_of_measurement: "°C"value_template: "{{ value_json.temperature }}"- name: "湿度"state_topic: "zigbee2mqtt/无线温度计1"unit_of_measurement: "%"value_template: "{{ value_json.humidity }}"

mqtt数据发送

传感器接入进来了,mqtt确实也接收到了sonoff传感器的json数据。但是我之后在添加绿米传感器的时候发现了问题,它看起来不太兼容z2m,测试下来发现经常数据缺失或者压根就没反应,并且已经确认传感器本身一直在正常工作。所以不是所有东西都适配z2m插件的。

绿米传感器接入

那好了,绿米传感器既然通过z2m接入会出现问题,那就只能选别的方式了。于是就只能试试绿米网关的集成了。这里用到了homekit的协议。

绿米传感器接入绿米网关

首先,得准备一台苹果手机或平板,之后我们需要用到它。(仅配置的时候使用,实际上运作不需要它)


我是用的是绿米的M2网关,按照绿米网关的说明把绿米传感器全部接入到网关中,并测试其可用性。

HA网关接入homekit

依次点击 配置设备与服务添加集成,出现的弹窗搜索“homekit”,选择homekit选项。之后大部分默认确定提交即可(建议在传感器选择里,把sensor和bianary_sensor选中一下)。添加成功集成后,在HA网关侧边栏的通知里我们应该能看到生成了一个二维码和代码,使用苹果设备,打开苹果家庭,添加配件,将HA网关一步一步添加到苹果家庭中。这个时候HA网关就有了homekit相关的信息配置了。

绿米网关和传感器接入homekit

如果网关和传感器你之前已经添加到homekit中了,请在苹果家庭中将其删除。另外就是如果你的传感器或者网关是基于wifi的homekit设备,并且还没有添加过homekit,那也需要先添加一次再删除。

  1. 依次点击 配置设备与服务添加集成,出现的弹窗搜索“homekit”,选择“homekit控制器”选项。
  2. 弹窗选择对应的homekit设备,填写homekit pin,一般在要添加设备的标签上。

至此,如果一切顺利,你应该可以在HA网关的概览中看到绿米的传感器数据了。到这里,我拥有的所有传感器已经全部接入到了HA网关中。

博联遥控器配置

传感器数据有了,为了实现自动化控制,我们还需要一个控制端。我这里是为了控制电视的红外信号,以及窗户的射频信号而选用了博联的RM4PRO控制器。

博联遥控器了接入HA网关

这步很简单,还是添加集成那一套,搜索broadlink,正常添加即可。添加之后就能在概览中看到了。

红外或射频学习

我还没有学习怎么把博联app中的指令学习到HA中,下面仅说一下怎么手动配置。

我们直接使用HA网关提供的工具进行学习。

  1. 点击HA网关侧边栏的 开发者选项, 进入服务选项卡。
  2. 服务: 搜索 “遥控:Learn Command”,并选中。(下面说的所有选项,如果使用,请在前面打对勾)
  3. 目标:+选择实体,里面选择上面我们添加的博联遥控器。
  4. Device:学习的设备名称,自定义。
  5. Command:学习的指令的名称,自定义。
  6. Command Type:遥控类型,ir为红外,rf为射频。
  7. Alternative:按钮存在两种状态需为true,如开关类按钮。
  8. Timeout:命令学习时间,用于防止接收错误射频而学习错误的指令,一般设置为5s。
  9. 上面的选项选择完毕之后,点击右下角调用服务,我们在通知里可以看到HA网关对于学习的提示,拿着遥控器按照流程学习就行了。
    10.学习之后我们可以去HA网关的文件中确认一下。 HA网关侧边栏Terminal,打开linux命令行,进入/config/.storage文件夹下,可以看到一个名称为“broadlink_remote_xxxxxxx_codes”的文件,里面存放的就是我们学习的指令码。

到这里就学完指令了。如果不放心可以使用服务:遥控:Send Command进行测试,方法差不多和学习一样,自己玩一下就会了。

自动化配置

至此,我们已经有了传感器和遥控器,并且他们都已经全部接入到了HA网关中。接下来有两种自动化实现的方式:

  1. HA提供的自动化功能
  2. node-red

还记得之前说的吗?所有的传感器我不仅需要自动化控制,还都需要接入到mqtt服务器中。但是绿米本身的传感器数据在绿米网关中正常,在z2m插件中有问题,所以才把绿米网关接入到了HA网关中。但是这么一来绿米传感器的数据就没法发送到mqtt中了。所以我最后还是去学习了node-red的使用方式,结果发现…这玩意是真特娘的好用啊

接下来转入nodered环节

node-red插件安装与配置

好巧啊,我买的这个HA网关已经帮我安好了,那我不客气了直接用。

nodered配置

我先说下,我还是这几天对着各种教程啃的,就只会点基本用法,各位大佬轻喷啊

nodered节点介绍

events:state  →用作传感器数据触发。因为接入HA后传感器的entity中只有字符串形式的单个值,可以以它作为触发器使用。current state  →用于中途判断某传感器的当前状态。状态为HA中获取的该实体的最后一次数据。switch  →用于流程的选择,可根据不同的输入执行不同的流程。没有output properties属性,不会对传入的值进行更改。function  →执行函数语句,本质为JavaScript语法。可在里面对msg数据进行修改并传输至下一个节点。delay  →用于延时触发。mqtt out  →用于发布mqtt消息至mqtt服务器mqtt in  →用于接收mqtt服务器的消息,一般作为触发器使用。call service  →用于触发HA中的服务,比如我们之前设置的遥控器就可以在这里进行设置自动化触发。debug  →一般用于调试,不用自己写function来看数据。inject  →用于作为触发节点,可设置循环型触发。time range →用于时间段筛选,以时间段分割出一天。时间段内为in,时间段外为offLS filter →用于替换time range节点的,通过node-red-contrib-light-scheduler安装。可以一周为单位进行计划控制。

nodered使用方法

其实看到就差不多明白了,首先创建节点,然后根据自己需要的流程,将节点之间使用线连接起来。将数据当做电流,可以认为这些线就是根导线。结点需要一个触发器作为开始,而没有规定具体结束方式。

到这里整个nodered怎么使用你已经学会了,快来试试吧!(不是)

比如我们需要一个检测人员活动开关灯的操作,只需要以人体感应器作为起始节点,中途判断人员的状态来选择当前是开灯还是关灯即可。之后的事情只是优化这套流程,比如设置延时防止一次误检测没人就关灯,或是将传感器数据发送至mqtt服务器用于数据统计等等。

参考

https://www.home-assistant.io/docs/mqtt/discovery/
https://www.home-assistant.io/docs/configuration/
https://www.zigbee2mqtt.io/supported-devices/#s=aqara
[基础教程] 【经验分享】HA官方推荐的博联遥控器学习射频和红外方法
https://www.home-assistant.io/integrations/mqtt_statestream/
[教程系列] 新手配置node-red遇到的几个难题,及完成第一个时间触发的…
Home Assistant中接入博联WiFi智能遥控
https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html

homeassistant与传感器的应用,自动化创建相关推荐

  1. 保持显式用户参与的有效自动化创建

    摘  要: 在日益复杂的环境中,如汽车驾驶,用户失去对自动化的参与会产生越来越多意想不到的后果.本文提出了一个用于在现有系统中进行协同自动化设计的三步流程,以在维持用户参与的限制下最大化系统性能.第一 ...

  2. SharePoint自动化系列——通过Coded UI录制脚本自动化创建SharePoint Designer Reusable Workflow...

    Coded UI非常好,我开始还在想,怎么样能让一个通过SharePoint Designer创建的Workflow publish三百五十次?想不到一个好的方法,也不知道SharePoint Des ...

  3. python开发自动化创建一个任务下发到手机_如何利用Fabric自动化你的任务

    首先让我们首先看一个例子.我们知道在*NIX下面,uname命令是查看系统的发行版. 可以写这样一个Fabric脚本: from fabric.api import run def host_type ...

  4. shell脚本自动化创建虚拟机的基本配置--tomcat--mysql--jdk--maven---妈妈再也不用担心我不会配置虚拟机了!

    文章目录 自动化shell脚本 一:虚拟机初始化 二:jdk自动化安装 三:maven自动化安装 四:tomcat自动化安装 五:mysql自动化安装 自动化shell脚本 ps:此处安装的jdk,m ...

  5. IaC示例:Terraform Ansible自动化创建K3S集群

    上一篇文章介绍了一个轻量级的 Kubernetes 发行版本 - k3s . 这篇文章,我们将通过使用以下几个 IaC(Infrastructure as Code)工具,在本地环境(例如你的 Lin ...

  6. python开发自动化创建一个任务下发到手机_python自动化开发问题集

    {"data":{"id":"8000-000000437045-0","name":"SEO专题页栏目分发组 ...

  7. python开发自动化创建一个任务下发到手机_django2 +requests+ddt+unittest+HTMLestRunner接口自动化测试平台...

    Interface_TestPlatform 项目简介: Interface_TestPlatform是基于Python3.6+Django2.0+requests+ddt+unitest+HTMLT ...

  8. gdc服务器sr1000自动化创建,专业供应GDC SR-1000媒体服务器

    产品名称:专业供应GDC SR-1000媒体服务器 产品链接:http://www.trustexporter.com/qitayuleshiting/o5566103.htm 手机版链接:https ...

  9. gdc服务器sr1000自动化创建,GDC单机自动化操作

    <GDC单机自动化操作>由会员分享,可在线阅读,更多相关<GDC单机自动化操作(12页珍藏版)>请在人人文库网上搜索. 1.点击主界面中的设置(点击维修员登陆密码:257910 ...

最新文章

  1. mysql平均锁_MySQL锁情况分析
  2. 好货不能错过!一款在GitHub上22k+star的人力资源管理系统
  3. jspider java运行_Web Spider 网络蜘蛛爬虫
  4. 自己动手开发编译器(我们的朋友 -- 装配脑袋走了)
  5. 复习HTML CSS(2)
  6. 【BZOJ4254】Aerial Tramway 树形DP
  7. ruby on rails连接mysql_ruby on rails 连接mysql数据库
  8. TCP/IP——链路层简记
  9. css 元素上下居中
  10. 打印机服务器找不到网络路径,分享0x80070035找不到网络路径的解决方法
  11. 基于VC 6.0实现简单的微信打飞机
  12. WeaveSocket框架-Unity太空大战游戏-服务端-1
  13. WordPress按钮人机验证(1)
  14. MongoDB免安装版安装
  15. 游戏架构 云游戏(3)-游戏运维
  16. redis保护模式的报错
  17. ARM Cortex-M3
  18. <C语言>扫...土豆雷游戏?!
  19. 抓取网页生成 PDF
  20. Windows7无法自动安装FT232RL驱动解决方法

热门文章

  1. 安卓面试题 Android interview questions
  2. vue-vue2脚手架14-插槽(slot)
  3. android 开源 progressbar,Android 两种自定义ProgressBar
  4. java-net-php-python-jspm金院党建系统计算机毕业设计程序
  5. 7K和25K相差的技术真的有这么大吗?
  6. 大数据分析对企业有什么好处
  7. 全国计算机等级考试南京点一年考几次,方舟自考:关于南京市2018年下半年全国计算机等级考试、报名通知...
  8. Komodo:从匿名币到发链币?
  9. 2018.03.02 leaning journal
  10. mysql数据库自增_mysql数据库自增id用法大全