Son zamanlarda Xiaomi'den birkaç wifi rölesi aldım. Şimdiye kadar sağlam olsalar da, Xiaomi'nin uygulamasını gerçekten sevmiyorum. Ancak, aslında hem LAN'da hem de internette çalıştığı fikrini seviyorum. LAN'da, Xiaomi'nin sunucularının Çin'de olduğu düşünüldüğünde açılıp kapanmaları çok hızlıdır.
Bu yüzden kendi ESP8266 tabanlı rölemi rulo yapmak istiyorum (Donanımı hazırlayabileceğimi biliyorum, bu yüzden bu bir bonus). Benim sorunum, bir web sayfasından ağımdaki röleleri otomatik olarak nasıl tespit edebilirim?
Bir "Uygulama" dan şeyleri tespit etmek için SSDP, mDNS-SD veya UPNP kullanabilirsiniz. Ancak bunun web tarayıcıdan mümkün olup olmadığı hakkında bilgi bulamadım (temel olarak Android'de Chrome). Hava durumu istasyonu web sayfamı Aşamalı Web Uygulaması olarak değiştirdiğim için bağlandım. Yüklemeniz gereken uygulamalar değil, yalnızca web sayfaları olma fikrini gerçekten seviyorum. PWA'lar da boşluğu çevrimdışı modla doldurur.
Yine de, "zor" bölümün (röleleri LAN dışından açıp kapatmak) bir MQTT sunucusu aracılığıyla çözülmesi önemsizdir. Ancak harici MQTT sunucusuna güvenmemeyi tercih ederim. Eğer LAN'daysam, rölelerle doğrudan konuşmak istiyorum. Değilse, komutu MQTT aracılığıyla gönderin.
Tabii ki, röleleri sorgulamak için sunucuya güvenebilirdim, ancak bu durumda (MQTT sunucum "bulut" üzerindeyse) bir internet bağlantısına veya bir ev sahibi sunucuya ihtiyacım olacaktı. Evde bir sunucum var ve olmasam bile, bir ahududu pi kolayca boşluğu doldurabilir. Ancak ideal, LAN üzerinden cihazlarla konuşurken bir sunucuya bile ihtiyaç duymayacaktır (bu durumda Wifi). Ben mümkün olduğunca P2P tutmak için tercih ve sadece WAN olduğum zaman için bir düşüş olarak MQTT kullanın (MQTT CG-NAT ve bağlantı noktası yönlendirme sorunları çözer).