Home Assistant -ESP Home接入homekit篇

ESP Home自定义传感器接入homekit

  • 开发属于自己的HomeKit设备
    • ESP Home简介
    • ESP Home安装
    • 新建一个ESP Home智能家居设备
    • Home kit添加ESP Home智能家居设备
    • 修改在Home kit中显示的传感器类型

开发属于自己的HomeKit设备

春节假期的那段时间,自己使用树莓派将小米的智能家具设备和Homekit进行了打通,主要是通过Home Assistant的集成进行实现,奈何资金有限一直没有添更新成员,而且自己想做的一些骚操作市面上能进行实现的产品。这篇文章主要是记录下上上个周末没有去加班抽空出的时间来实现ESP home自定义智能家居设备的过程(偷懒证据)。

ESP Home简介

官网自己看了,主要是通过ESP8266或ESP32实现接入Home Assistant的设备。https://www.esphome.io/

ESP Home安装

  1. 首页->Getting Started->using the command line通过命令行安装ESP Home配置环境。安装ESP Home前需要Python,笔者这里开发环境是Win10。保姆级官方安装教程:https://www.esphome.io/guides/installing_esphome.html
  2. Home Assistant内添加ESP Home集成:进入Home Assistant ->配置->设备与服务->添加集成->ESP Home.

新建一个ESP Home智能家居设备

  1. 新建一个文件夹,用于生成工程。在工程文件夹下打开windows powershell输入

esphome wizard livingroom.yaml

随后按命令行提示进行操作,输入名称或wifi密码、开发板类型等(我这里使用的是nodemcuv2,只是作为一个例子,理论上ESP8266内核和FLASH等资源一样就可以,后续开发会使用单独的模块集成到PCB上)。配置完成后,工程目录会生成livingroom.yaml文件和.esphome文件夹。在这里插入图片描述

  1. livingroom.yaml为我们要修改的文件,后续的开发基本都是围绕这个文件进行的。livingroom.yaml下可以添加我们所需的传感器或者开关节点。一个简单的延时开关节点:
switch:
 - platform: gpio
   id: relay1
   name: "SW1"
   pin: D3
   on_turn_on:
   - delay: 1000ms
   - switch.turn_off: relay1

具体每一行的含义参考Components GPIO swich部分

  1. 我们可以通过yaml的一些语法实现类似自动化的功能,当然也能通过Home Assistant的场景自动化,这里主要是想介绍下这个功能。yaml的判断语法:
  - platform: gpio
   id: relay2
   name: "SW2"
   pin: D2
   on_turn_on:
   - if:
       condition:
         lambda: 'return id(relay1).state;'
       then:
         - switch.turn_on: relay3
         - delay: 1000ms
         - switch.turn_off: relay3
         - switch.turn_off: relay2
       else:
         - switch.turn_off: relay3
         - delay: 500ms
         - switch.turn_off: relay2

更多语法和说明详见:https://www.esphome.io/guides/automations.html

  1. 注意,这里的 api 和 ota 的password一定要填否则会生成报错,api 的password后续Home Assistant 添加设备时会用到
    Home Assistant -ESP Home接入homekit篇_第1张图片

  2. yaml文件配置好之后,将ESP8266通过串口线连接电脑,命令行输入

esphome run livingroom.yaml

ESP Home插件会自动进行源码生成和编译,随后选择ESP8266连接的串口号进行固件下载。

Home kit添加ESP Home智能家居设备

  1. 在集成里面添加ESPHOME,输入我们上面自己定义的开关的IP地址(可以通过路由器查看)、端口默认6053,输入yaml文件中设置的api密码。
  2. 这时便可以看到一个设备(一个ESP8266)和多个实体(取决于添加的传感器、开关个数)。
  3. 配置HASS Bridge(home kit)选项把我们的开关和传感器添加进去
  4. 一些简单的传感器如:开关、二进制传感器等已经能被终端(iPhone、iPad)识别到,但一些比较特殊的传感器就需要在Home Assistant-开者工具中设置->现有实体中编辑实体的状态属性 device_class 要修改为homekit支持的设备类型。也可以在状态 更改设备状态进行调试 Home Assistant -ESP Home接入homekit篇_第2张图片

修改在Home kit中显示的传感器类型

假如我们在Home kit中添加了一个传感器(以二进制传感器为例、目前也只发现二进制传感器有用),HomeKit中默认显示为人体传感器,但有强迫症的同学想修改为其他传感器类型如:门窗传感器等。在ESP HOME的.YAML文件里面把 device_class 修改为 door 或者其他类型,从新下载固件添加设备HomeKit就能显示所显示的类型。

     *这里埋个坑:理论上使用上面的第4点修改Home Assistant-开者工具中设置->现有实体中编辑实体的状态属性 **device_class** 也是能实现的,但实际测试过程中不是每次都能生效*。

下图是后面要实现把电脑开关机接入Home Kit的一部分配置文件截图:

  1. 检测电脑开关机状态的传感器配置 .yaml
    Home Assistant -ESP Home接入homekit篇_第3张图片
  2. Home Kit显示样图
    Home Assistant -ESP Home接入homekit篇_第4张图片

你可能感兴趣的:(Home,kit,Home,assistance,物联网)