最近我从小米买了几个wifi继电器。虽然到目前为止它们一直很稳定,但我真的不喜欢小米的应用程序。但是,我确实喜欢它实际上在 LAN 和 Internet 上都可以工作的想法。考虑到小米的服务器在中国,在 LAN 中它们的打开和关闭速度非常快。
所以我想推出我自己的基于 ESP8266 的继电器(我知道我可以准备好硬件,所以这是一个奖励)。我的问题是,如何从网页自动检测网络上的继电器?
从“应用程序”我可以使用 SSDP、mDNS-SD 或 UPNP 来检测事物。但是我还没有找到有关这是否可以从网络浏览器(基本上是 Android 上的 Chrome)中实现的信息。自从我将气象站网页更改为渐进式 Web 应用程序后,我就被迷住了。我真的很喜欢这样的想法,即事物只是网页而不是您必须安装的应用程序。PWA 也填补了离线模式的空白。
奇怪的是,通过 MQTT 服务器解决“困难”部分(从 LAN 外部打开和关闭继电器)是微不足道的。但我不想依赖外部 MQTT 服务器。如果我在 LAN 上,我想直接与中继通话。如果没有,则通过 MQTT 发送命令。
当然,我可以依靠服务器来查询中继,但在这种情况下,我需要互联网连接(如果我的 MQTT 服务器在“云”上),或家庭托管服务器。我家里确实有一台服务器,即使我没有,树莓派也可以轻松填补这一空白。但理想的情况是在通过 LAN(在这种情况下为 Wifi)与设备通话时甚至不需要服务器。我更喜欢尽可能保持P2P,并且只在我在WAN上时使用MQTT作为后备(MQTT解决了CG-NAT和端口转发的问题)。