概括
我想构建(理想情况下基于 ESPHome)一个带有蜂鸣器的设备,我可以通过网络远程触发。
语境
我有几个围绕我的家庭自动化系统构建的系统:
- 家庭助理保持状态并触发设备上的操作
- AppDaemon 在那里我编码我的自动化
- 两种“硬件触发器”:
- 433 MHz 墙壁开关,信号由 433 Mhz 接收到 Wi-Fi 桥接器(然后到 MQTT)
- Zigbee 交换机通过 Zigbee2MQTT 进行管理
- 各种传感器
- 围绕我自己编写的仪表板的各种服务
我列出所有这些是为了表明到目前为止我有两种主要的操作:
- 从传感器/谷歌日历/气象服务/各种其他API获取数据→并显示它们的值
- 从墙壁开关发送消息,最终导致支持 Wi-Fi 的设备(例如 Sonoff Basic)执行某些操作
我缺少什么
我现在想构建一个物联网设备,它可以接受来自我的 Wi-Fi 网络的数据并触发连接到它的模块。您可以将其视为某种可怜的闹钟 - 警报的所有逻辑都被卸载到服务中,而设备只收到发出蜂鸣声的命令。
构建这样一个物联网的正确方法是什么?
我有 NodeMCU 模块或 WeMo D1s。我可以用 ESPHome 刷新它们,带来 WiFi 通信和连接到 GPIO 的能力。
我不明白 Wi-Fi 堆栈是如何与 GPIO 交互的,确切地说。我需要编写特定的模块在编译过程中添加吗?(我已经有 20 年没有用 C 编写代码了,上一次是为了我的博士 - 但这是我可以进入的)。或者是否已经有一个模块可以完成桥接?
一般来说,当我想向支持 Wi-Fi 的 ESPHome 设备发送消息以访问其 GPIO 时,应该采用什么方法。
请注意,我知道如何反其道而行之:我已将现有的 ESPHome 模块添加到 Weemo D1,并且它们在 Home Assistant 或内置 Web 服务器中正确公开。但在这种情况下,此类模块已经存在(针对特定硬件)并且只是将数据发送出去。