前言
莫名其妙的就开始了homeassistant的文章
上一篇文章主要介绍了esphome的基础配置
并没有具体的实例应用
连接在这:esphome基础配置
首先贴一段esphome
官网的介绍
1
2
3
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
ESPHome 是一个系统,可以通过简单但功能强大的配置文件来控制你的 ESP8266/ESP32,并通过家庭自动化系统对其进行远程控制
关于ESPHome的安装可以自行查阅相关资料
下面就开始进行一些配置的介绍
ESPHome的配置是使用YAML格式
YAML 是要求使用严格的缩进与键值对格式进行配置
独立模块的首行必须顶格
下面依次缩进
配置项必须为 key: value
冒号后面1个空格
温湿度传感器
首先从最简单的开始
esphome的官网也有温湿度传感器的配置
我测试的时候还是用的DHT11模块
使用温湿度传感器主要有三个引脚
正极/接地/信号
正极接esp8266的3.3v输出引脚
接地接esp8266的GND引脚
信号接esp8266的io口
注意:esp8266不是所有引脚都可以使用,要参考具体引脚说明
配置如下:
1
2
3
4
5
6
7
8
9
10
11
# Example configuration entry
sensor: # 表明是传感器模块
- platform: dht # dht平台
pin: D2 # esp8266的引脚编号
temperature: # 温度
name: "Living Room Temperature" # 命名
humidity: # 湿度
name: "Living Room Humidity" # 命名
update_interval: 60s # 更新频率
提示: name 不要使用中文会有问题;哪怕用容易识别的拼音也不要用中文
二进制传感器
大多数传感器都可以归类为二进制传感器
比如:红外人体感应、触摸、刷卡等
只要信号值除了1就是0的都可以用这个模块
配置如下:
1
2
3
4
5
6
7
# Example configuration entry
binary_sensor:
- platform: gpio
pin: D2
name: "Living Room Light"
只要有一个名字和输入引脚的配置就可以简单的完成
输出配置
上面的几个配置基本都是关于输入的
下面介绍一个输出的实例
通过继电器控制灯
1
2
3
4
5
6
7
# Example configuration entry
output:
- platform: gpio
pin: D1
id: relay_light
用D1 引脚接继电器的信号控制线就可以实现通过 继电器控制灯
实际应用
在实际测试过程中
发现如果想更好的利用esp8266 和ha
下面可能是一种比较好的方法
这个方法可以最小的改动电路去进行改造
通过把esp8266+继电器做成小的模块放入86的暗盒里
然后原有的灯线路接到继电器
灯的开关接到esp8266的输入引脚
这样不管是通过开关,还是通过ha操作,ha的状态都能正常的显示;
这个思路来自论坛里的一个大佬的想法
我本来的思路是把继电器当作双控开关与物理的双控开关去进行接入
但是那样的话就没法判断双控开关的结果
具体配置如下:
esp8266的引脚13接原开关的负极
esp8266的引脚4是焊接到到继电器的信号控制
这样配置就可以实现对原有开关的改造
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
esphome:
name: livingroom_light
platform: ESP8266
board: esp01_1m
wifi:
ssid: "wifissid"
password: "wifipwd"
web_server:
port: 80
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "12345679"
ota:
password: "12345679"
binary_sensor:
- platform: gpio
pin:
number: 13
mode: INPUT_PULLUP
inverted: True
name: "livingroom_light_button_0"
on_state:
then:
- light.toggle: livingroom_light
output:
- platform: esp8266_pwm
pin: 4
frequency: 1000 Hz
id: livingroom_light_p
inverted: true
light:
- platform: binary
name: "livingroom light"
output: livingroom_light_p
id: livingroom_light
后记
esphome是一个相当强大的开源工具
还有更多更有趣更强大的玩法
如果有感兴趣或好的想法欢迎一起讨论分享
这里放一个上面提到的论坛
里面有不少接入各种设备的案例和教程
Q:594934249
—我是超小弟·一名不误专业的秃头运维—
github:github:chaoxiaodi
微信公众号:老骥不伏枥只是近黄昏