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