『瀚思彼岸』» 智能家居技术论坛

标题: esphome学习 - 安装与基本使用 [打印本页]

作者: q2316367743    时间: 2022-12-3 13:31
标题: esphome学习 - 安装与基本使用
本帖最后由 q2316367743 于 2022-12-4 19:30 编辑
esphome学习 - 安装与基本使用
文章源地址:esphome学习 - 安装与基本使用 (esion.xyz)

ESPHome 是一个通过简单而强大的配置文件控制您的 ESP8266/ESP32 并通过家庭自动化系统远程控制它们的系统。
这篇文章主要讲一下怎么安装和基本使用,网上的教程大部分是使用home assistant安装,他们的home assistant版本一般是hassOS,但是我的home assistant是使用Docker安装的,而另外一种是使用Docker安装,我试了试,没搞明白,所以我这里讲的是命令行安装,官网:Getting Started with the ESPHome Command Line — ESPHome
前提安装esphome首先需要安装python环境
安装esphomepython安装成功后,使用下面命令安装esphome
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple esphome
复制
等待安装完成,使用下面命令验证
  1. $ esphome version
  2. Version: 2022.11.4
复制代码

显示版本号,就代表安装成功
基本使用使用esphome -h查看全部命令
  1. $ esphome -h
  2. usage: esphome [-h] [-v] [-q] [-s key value] command ...

  3. positional arguments:
  4.   command               Command to run:
  5.     config              验证配置并将其输出.
  6.     compile             读取配置并编译程序.
  7.     upload              验证配置并上载最新的二进制文件.
  8.     logs                验证配置并显示所有日志.
  9.     run                 验证配置、创建二进制文件、上载并启动日志.
  10.     clean-mqtt          帮助程序清除MQTT主题中保留的消息.
  11.     wizard              一个有用的设置向导,将指导您设置ESPHome.
  12.     mqtt-fingerprint    从MQTT代理获取SSL指纹.
  13.     version             打印ESPHome版本并退出.
  14.     clean               删除所有临时生成文件.
  15.     dashboard           为仪表板创建一个简单的web服务器.
  16.     rename              在YAML中重命名设备,编译二进制文件并上传.

  17. options:
  18.   -h, --help            show this help message and exit
  19.   -v, --verbose         Enable verbose ESPHome logs.
  20.   -q, --quiet           Disable all ESPHome logs.
  21.   -s key value, --substitution key value
  22.                         Add a substitution
复制代码

例子:点亮一个灯
本例子使用开发版未ESP-12F,开发文档:https://explorer.esion.xyz/s/WpTL
我们首先创建一个文件夹,用于存放esphome的配置文件,比如创建一个文件夹esphome,进入到文件夹中,创建一个yaml文件,比如叫test.yaml
创建好文件后,我们使用编辑器打开文件,将下面代码复制进去
  1. # esphome项目节点
  2. esphome:
  3.   name: test

  4. # 开发版
  5. esp8266:
  6.   # 开发版版型
  7.   board: esp01_1m

  8. # wifi节点
  9. wifi:
  10.   ssid: <wifi名称>
  11.   password: <wifi密码>
  12.   ap:
  13.     ssid: <如果wifi连接失败,热点名称>
  14.     password: <如果wifi连接失败,热点密码>

  15. # 如果wifi连接失败,启动热点
  16. captive_portal:

  17. # web服务器,生产环境建议禁用
  18. web_server:
  19.   port: 80

  20. # 是否打印日志
  21. logger:
  22.   level: debug

  23. # home assistant连接开发版的密码
  24. api:
  25.   password: '123456'

  26. # ota升级的密码
  27. ota:
  28.   password: '123456'

  29. # 对外输出
  30. output:
  31.   # ID,全局唯一
  32.   - id: gpio_13
  33.     # 开发版平台
  34.     platform: gpio
  35.     # 输出的gpio口
  36.     pin: 13

  37. # 灯组件
  38. light:
  39.   # 平台,二进制
  40.   - platform: binary
  41.     # 输出,此处指向初始的ID
  42.     output: gpio_13
  43.     # 随便七个名字
  44.     name: "Kitchen Light"
复制代码

wifi名、密码、AP名、AP密码修改为自己的
编写完成后,在文件所在文件夹打开终端,收入运行命令
  1. esphome run ./test.yaml -device=COM5
复制代码
注意:后面的COM5改成自己的COM口,可以在设备管理器 -> 端口(COM和APT)中查看

第一次需要下载一些库,如果没有梯子,可能会很慢,下载后,以后就不需要下载了
编译完成后,会在当前文件夹创建文件夹.esphome
等待上传,上传成功后,会在终端显示
  1. [13:00:09][C][wifi:504]: WiFi:
  2. [13:00:09][C][wifi:362]:   Local MAC: ********
  3. [13:00:09][C][wifi:363]:   SSID: '********'
  4. [13:00:09][C][wifi:364]:   IP Address: 192.168.31.113
  5. [13:00:09][C][wifi:365]:   BSSID: ********
  6. [13:00:09][C][wifi:367]:   Hostname: 'electric-blanket'
  7. [13:00:09][C][wifi:369]:   Signal strength: -61 dB ▂▄▆█
  8. [13:00:09][C][wifi:373]:   Channel: 1
  9. [13:00:09][C][wifi:374]:   Subnet: 255.255.255.0
  10. [13:00:09][C][wifi:375]:   Gateway: 192.168.31.1
  11. [13:00:09][C][wifi:376]:   DNS1: 192.168.31.1
  12. [13:00:09][C][wifi:377]:   DNS2: 0.0.0.0
  13. [13:00:09][C][logger:293]: Logger:
  14. [13:00:09][C][logger:294]:   Level: DEBUG
  15. [13:00:09][C][logger:295]:   Log Baud Rate: 115200
  16. [13:00:09][C][logger:296]:   Hardware UART: UART0
  17. [13:00:09][C][gpio.output:010]: GPIO Binary Output:
  18. [13:00:09][C][gpio.output:011]:   Pin: GPIO13
  19. [13:00:09][C][light:104]: Light 'Kitchen Light'
  20. [13:00:09][C][captive_portal:088]: Captive Portal:
  21. [13:00:09][C][web_server:125]: Web Server:
  22. [13:00:09][C][web_server:126]:   Address: electric-blanket.local:80
  23. [13:00:09][C][mdns:103]: mDNS:
  24. [13:00:09][C][mdns:104]:   Hostname: electric-blanket
  25. [13:00:09][C][ota:093]: Over-The-Air Updates:
  26. [13:00:09][C][ota:094]:   Address: electric-blanket.local:8266
  27. [13:00:09][C][ota:097]:   Using Password.
  28. [13:00:09][C][api:138]: API Server:
  29. [13:00:09][C][api:139]:   Address: electric-blanket.local:6053
  30. [13:00:09][C][api:143]:   Using noise encryption: NO
复制代码

其中第四排哪个IP Address就是开发版地址,使用浏览器打开

                               
登录/注册后可看大图

通过上面的开关,就可以控制灯的亮灭




作者: sorrypqa    时间: 2022-12-5 21:09
学习了,谢谢楼主的分享!
作者: cdl511    时间: 2023-3-18 13:06
感谢楼主分享
作者: speedturtle    时间: 2023-6-19 12:14
学习这个比Tasmota门槛要高
作者: wbteve    时间: 2023-6-25 11:22
大佬好牛逼
作者: riture    时间: 2023-7-27 18:24
学习一下,信息分享
作者: ccz888888    时间: 2024-3-18 22:36
学习了,谢谢楼主的分享!
作者: dongfanghuachen    时间: 2024-8-26 10:00
看不明白
作者: Zerolone    时间: 2024-9-19 14:47
最近想汉化一下esphome的界面, 结果弄了一天没搞定。
作者: toneyi    时间: 2025-5-28 16:28
谢谢楼主




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5