Jadi itu adalah pertanyaan umum, tetapi saya akan memberikan skenario di sini.
Saya menjalankan server Mosquitto untuk menyediakan comm mqtt antara modul relay esp ( Sonoff dari Itead ) dan Home Assistant . Sebagian besar waktu, itu berfungsi dengan baik. Setiap modul memiliki topiknya sendiri, dan ada banyak konfigurasi "cahaya" di HASS sebagai modul, sehingga mereka dapat dikontrol dari antarmuka web dengan tombol sakelar individual.
Saya telah mengalami, bagaimanapun, situasi negara yang tidak konsisten di mana lampu benar-benar menyala dan beralih di HASS ditampilkan mati (dan situasi yang berlawanan juga). Dengan memeriksa log, saya menemukan bahwa Mosquitto tidak mempublikasikan pesan tertentu ke HASS (yang seharusnya berlangganan semua topik status modul). Lebih khusus, mengingat 4 modul dan topik yang terkait ( state/sonoff_xx/POWER
), HASS tampaknya hanya berlangganan ke modul 2 dan 4 topik, tetapi tidak 1 dan 3. Berikut ini adalah perilaku yang diharapkan untuk modul 4, hal yang sama dapat diverifikasi untuk modul kerja lainnya, tetapi penerbitan ke HASS tidak ada untuk dua lainnya.
Jun 15 19:22:46 nas mosquitto[9486]: Received PUBLISH from sonoff4 (d0, q0, r1, m0, 'stat/sonoff4/POWER', ... (2 bytes))
Jun 15 19:22:46 nas mosquitto[9486]: Sending PUBLISH to home-assistant (d0, q0, r0, m0, 'stat/sonoff4/POWER', ... (2 bytes))
Ini bukan pertanyaan tentang HASS dan modul relai, tetapi ini tentang bagaimana menggali status MQTT Server yang seharusnya memiliki klien tertentu berlangganan tetapi, dengan melihat log, tidak.
log_type all
dalammosquitto.conf
), sebenarnya saya sudah memeriksa entri berlangganan dengan menghubungkan dari konsol sambiljournalctl -f
menjalankan. Saya tidak dapat menemukan entri tentang langganan HASS karena itu mungkin terjadi beberapa hari yang lalu dan journald tidak dikonfigurasikan sebagai persisten, jadi saya hanya punya boot saat ini. Itulah alasan mengapa saya berharap untuk memeriksa status Mosquitto.Anda dapat Mengaktifkan mosquitto log untuk semua dan berlangganan log Anda akan menemukan pesan yang dapat Anda decode untuk setiap tindakan klien seperti menghubungkan, memutuskan sambungan, berlangganan dan menerbitkan kesalahan bahkan.
Anda akan mengatur
di mosquitto.conf maka Anda akan berlangganan
sumber