Нещодавно я придбав пару XI-реле від Xiaomi. Хоча вони досі були твердими, мені дуже не подобається додаток Xiaomi. Але мені подобається думка, що вона насправді працює і в локальній мережі, і в Інтернеті. У мережі LAN вони дуже швидко включаються та вимикаються, враховуючи, що сервери Xiaomi знаходяться в Китаї.
Тому я хочу прокатати власне реле на базі ESP8266 (я знаю, що можу зробити готове обладнання, тому це бонус). Моє питання полягає в тому, як я можу автоматично виявити реле в моїй мережі з веб-сторінки?
З програми "App" я міг використовувати SSDP, mDNS-SD або UPNP для виявлення речей. Але я не знайшов інформацію про те, як це можливо, через веб-браузер (Chrome в основному на Android). Оскільки я змінив веб-сторінку своєї метеостанції на прогресивну веб-програму, мене причепили. Мені дуже подобається ідея того, що речі є лише веб-сторінками, а не програмами, які потрібно встановити. І PWA заповнюють прогалину і в режимі офлайн.
Дивно, що "складну" частину (вмикання та вимикання реле з-за меж локальної мережі) тривіально вирішити через MQTT-сервер. Але я вважаю за краще не покладатися на зовнішній MQTT-сервер. Якщо я в мережі, я хочу поговорити безпосередньо з реле. Якщо ні, то надішліть команду через MQTT.
Я, звичайно, міг би покластися на сервер для запиту реле, але в цьому випадку мені знадобиться підключення до Інтернету (якщо мій сервер MQTT знаходиться на «хмарі») або домашній сервер. У мене вдома є сервер, і навіть якби я цього не зробив, малиновий пі легко міг би заповнити прогалину. Але ідеальним було б навіть не потрібен сервер під час розмови з пристроями через локальну мережу (Wifi в цьому випадку). Я вважаю за краще тримати його P2P якомога більше, і використовувати MQTT як відкат, коли я перебуваю на WAN (MQTT вирішує проблеми CG-NAT та переадресації портів).