ESPHome不经过HA设备1直接控制设备2

2023-10-11 12:20
文章标签 控制 直接 设备 ha esphome

本文主要是介绍ESPHome不经过HA设备1直接控制设备2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1.公共配置文件
  • 2.设备2:台灯
  • 3.控制器(http.post)
  • 4.获取状态(http.get)
  • 5.提取Json数据

1.公共配置文件

#wifi.yaml
wifi: networks:- ssid: "123"password: "www.123.com"- ssid: "456"password: "www.123.com"# 当连接不上指定wifi,开启热点配网ap:ssid: "设备配网"# 强制门户
captive_portal:# web界面
web_server:port: 80

2.设备2:台灯

主要是控制一个IO口

substitutions: { desc: 台灯, devicename: sensor }esphome:name: $devicenameplatform: ESP8266board: nodemcuv2arduino_version: latest# Enable logging
logger:# Enable Home Assistant API
api:encryption:key: "MhXiJqKKyCXTqjZWqtegaP1tQSUpPtbnXP9iV1i2TzE="ota:password: "8e9c493c1fda598d0789f514507f3538"packages:wifi: !include common/wifi.yamloutput:- pin: 2id: led_pin2platform: gpiolight:- id: ledoutput: led_pin2platform: binaryname: "${devicename}_led" # ${devicename}_led 的实际参数是 sensor_led

3.控制器(http.post)

esphome:name: httpfriendly_name: httpesp8266:board: nodemcuv2# Enable logging
logger:# Enable Home Assistant API
api:encryption:key: "hGNx5NzLL+UnGsUWxs6tvYghEZDgVfQjOcsMQaMgrg4="ota:password: "65290e2cae0c69b31b50bdb80bcd4f4c"packages:wifi: !include common/wifi.yamlhttp_request:useragent: esphome/deviceid: my_requesttimeout: 10sinterval:- interval: 2sthen:- http_request.post: http://sensor.local/light/sensor_led/toggle

interval启动了一个定时器,2s执行一次http_request.post动作

当你的设备2:台灯正常连接上网络,在局域网中,可以访问

http://sensor.local/light/sensor_led/toggle

获取设备2:台灯的状态
在这里插入图片描述
因为我们使用的浏览器是get,只能获取设备的状态,并不能控制设备

想要控制设备,就要使用到post

- http_request.post: http://sensor.local/light/sensor_led/toggle

在这里插入图片描述
和点击web网页上面的按钮效果是一样的

4.获取状态(http.get)

如果是想获取设备的状态,并不是控制设备,可以使用get

esphome:name: httpfriendly_name: httpesp8266:board: nodemcuv2# Enable logging
logger:# Enable Home Assistant API
api:encryption:key: "hGNx5NzLL+UnGsUWxs6tvYghEZDgVfQjOcsMQaMgrg4="ota:password: "65290e2cae0c69b31b50bdb80bcd4f4c"packages:wifi: !include common/wifi.yamlhttp_request:useragent: esphome/deviceid: my_requesttimeout: 10sinterval:- interval: 10sthen:# - http_request.post: http://sensor.local/light/sensor_led/toggle- http_request.get: url: "http://sensor.local/light/sensor_led"on_response:- lambda: |- ESP_LOGD("http_request", "data: %s", id(my_request).get_string());

如果访问成功,就将获取到的数据通过ESP_LOGD打印出来
在这里插入图片描述

5.提取Json数据

已经获取到Json数据,肯定需要将里面的数据提取出来

esphome:name: httpfriendly_name: httpesp8266:board: nodemcuv2# Enable logging
logger:# Enable Home Assistant API
api:encryption:key: "hGNx5NzLL+UnGsUWxs6tvYghEZDgVfQjOcsMQaMgrg4="ota:password: "65290e2cae0c69b31b50bdb80bcd4f4c"packages:wifi: !include common/wifi.yamlhttp_request:useragent: esphome/deviceid: my_requesttimeout: 10stext_sensor:- platform: templatename: "Switch State"id: switch_state_label- platform: templatename: "id name"id: id_name_label- platform: templatename: "color mode"id: color_mode_labelinterval:- interval: 10sthen:# - http_request.post: http://sensor.local/light/sensor_led/toggle- http_request.get: url: "http://sensor.local/light/sensor_led"on_response:- lambda: |- ESP_LOGD("http_request", "data: %s", id(my_request).get_string());json::parse_json(id(my_request).get_string(), [](JsonObject root) {id(switch_state_label).publish_state(root["state"]);id(id_name_label).publish_state(root["id"]);id(color_mode_label).publish_state(root["color_mode"]);});

这篇关于ESPHome不经过HA设备1直接控制设备2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188014

相关文章

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地