Baru-baru ini saya membeli beberapa relay wifi dari Xiaomi. Meskipun sejauh ini solid, saya benar-benar tidak menyukai aplikasi Xiaomi. Tapi, saya suka gagasan bahwa itu benar-benar berfungsi baik di LAN dan melalui internet. Ketika di LAN mereka sangat cepat untuk menghidupkan dan mematikan, mengingat server Xiaomi ada di Cina.
Jadi saya ingin memutar relay berbasis ESP8266 saya sendiri (saya tahu saya bisa menyiapkan perangkat keras, jadi itu bonus). Masalah saya adalah, bagaimana saya bisa secara otomatis mendeteksi relay di jaringan saya dari halaman web?
Dari "App" saya bisa menggunakan SSDP, mDNS-SD atau UPNP untuk mendeteksi sesuatu. Tapi saya belum menemukan info apakah ini mungkin dari browser web (Chrome pada Android pada dasarnya). Karena saya mengubah halaman web stasiun cuaca saya menjadi Aplikasi Web Progresif, saya terpikat. Saya benar-benar menyukai gagasan hanya menjadi laman web dan bukan aplikasi yang harus Anda pasang. Dan PWA mengisi celah dengan mode offline juga.
Anehnya, bagian "sulit" (menghidupkan dan mematikan relay dari luar LAN) sepele untuk dipecahkan melalui server MQTT. Tapi saya lebih suka tidak mengandalkan server MQTT eksternal. Jika saya menggunakan LAN, saya ingin berbicara langsung dengan relay. Jika tidak, maka kirim perintah melalui MQTT.
Saya tentu saja bisa mengandalkan server untuk menanyakan relay, tetapi dalam hal ini saya memerlukan koneksi internet (jika server MQTT saya ada di "cloud"), atau server yang dihosting di rumah. Saya memiliki server di rumah, dan bahkan jika tidak, pi raspberry dapat dengan mudah mengisi celahnya. Tetapi idealnya adalah bahkan tidak perlu server ketika berbicara dengan perangkat melalui LAN (Wifi dalam kasus ini). Saya lebih suka untuk tetap P2P sebanyak mungkin, dan hanya menggunakan MQTT sebagai jatuh kembali ketika saya menggunakan WAN (MQTT memecahkan masalah CG-NAT dan port forwarding).