Ostatnio kupiłem kilka przekaźników Wi-Fi od Xiaomi. Chociaż do tej pory były solidne, naprawdę nie lubię aplikacji Xiaomi. Ale podoba mi się pomysł, że faktycznie działa zarówno w sieci LAN, jak i przez Internet. W sieci LAN bardzo szybko się włączają i wyłączają, biorąc pod uwagę serwery Xiaomi w Chinach.
Więc chcę rzucić własny przekaźnik oparty na ESP8266 (wiem, że mogę przygotować sprzęt, więc to bonus). Mój problem polega na tym, w jaki sposób mogę automatycznie wykryć przekaźniki w mojej sieci ze strony internetowej?
Z „aplikacji” mógłbym używać SSDP, mDNS-SD lub UPNP do wykrywania rzeczy. Ale nie znalazłem informacji na temat tego, czy jest to możliwe w przeglądarce internetowej (zasadniczo Chrome na Androida). Ponieważ zmieniłem moją stronę internetową stacji pogodowej na Progresywną aplikację internetową, byłem uzależniony. Naprawdę podoba mi się pomysł, że są to strony internetowe, a nie aplikacje, które musisz zainstalować. PWA również wypełniają lukę w trybie offline.
Dziwne jest jednak to, że „trudna” część (włączanie i wyłączanie przekaźników spoza sieci LAN) jest łatwa do rozwiązania za pośrednictwem serwera MQTT. Ale wolałbym nie polegać na zewnętrznym serwerze MQTT. Jeśli jestem w sieci LAN, chcę bezpośrednio rozmawiać z przekaźnikami. Jeśli nie, wyślij polecenie za pośrednictwem MQTT.
Mógłbym oczywiście polegać na serwerze, by sprawdzać przekaźniki, ale w takim przypadku potrzebowałbym połączenia z Internetem (jeśli mój serwer MQTT jest w „chmurze”) lub serwera hostowanego w domu. W domu mam serwer i nawet gdybym tego nie zrobił, malinowa pi mogłaby z łatwością wypełnić tę lukę. Ale idealnym rozwiązaniem byłoby nawet nie potrzebować serwera podczas rozmowy z urządzeniami przez sieć LAN (w tym przypadku Wi-Fi). Wolę zachować jak najwięcej P2P i używam MQTT tylko jako rezerwy, gdy jestem na WAN (MQTT rozwiązuje problemy z CG-NAT i przekierowaniem portów).