Esa es la pregunta general, pero proporcionaré el escenario aquí.
Estoy ejecutando el servidor Mosquitto para proporcionar comunicación mqtt entre los módulos de retransmisión esp ( Sonoff de Itead ) y Home Assistant . La mayoría de las veces, funciona bien. Cada módulo tiene su propio tema, y hay tantas configuraciones "ligeras" en HASS como módulos, por lo que pueden controlarse desde la interfaz web mediante botones de alternancia individuales.
Sin embargo, he experimentado situaciones de estado inconsistente en las que la luz está realmente encendida y la palanca en HASS se muestra apagada (y la situación opuesta también). Al inspeccionar los registros, descubrí que Mosquitto no publica ciertos mensajes en HASS (que deberían suscribirse a todos los temas de estado de los módulos). Más específicamente, dados 4 módulos y sus temas de estado correspondientes ( state/sonoff_xx/POWER
), HASS parece estar suscrito solo a los módulos 2 y 4 temas, pero no 1 y 3. El siguiente es el comportamiento esperado para el módulo 4, lo mismo puede verificarse para el otro módulo de trabajo, pero falta publicar en HASS para los otros dos.
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))
Esta no es una pregunta con respecto a HASS y los módulos de retransmisión, pero se trata de cómo profundizar en el estado del servidor MQTT que se supone que tiene ciertos clientes suscritos, pero al mirar los registros, no lo ha hecho.
log_type all
enmosquitto.conf
), en realidad he comprobado la entrada de suscripción conectándome desde una consola mientrasjournalctl -f
ejecuto. Sin embargo, no pude encontrar entradas sobre suscripciones de HASS porque eso podría haber sucedido hace días y journald no está configurado como persistente, por lo que tenía a mano solo el arranque actual. Esa es la razón por la que esperaba inspeccionar el estado de Mosquitto.