それが一般的な質問ですが、ここではシナリオを提供します。
私はMosquittoサーバーを実行して、espリレーモジュール(IteadのSonoff)とHome Assistantの間にmqtt通信を提供しています。ほとんどの場合、問題なく動作します。各モジュールには独自のトピックがあり、HASSにはモジュールと同じ数の「軽い」構成があるため、個々のトグルボタンでWebフロントエンドから制御できます。
ただし、ライトが実際にオンになっていて、HASSのトグルがオフとして表示される(およびその逆の状況も)一貫性のない状態の状況を経験しました。ログを調査したところ、MosquittoがHASSに特定のメッセージを発行していないことがわかりました(すべてのモジュール状態トピックにサブスクライブする必要があります)。具体的には、4つのモジュールとそれに対応する状態トピック(state/sonoff_xx/POWER
)を指定すると、HASSはモジュール2と4のトピックにのみサブスクライブされ、1と3にはサブスクライブされないようです。モジュール4の予想される動作は次のとおりです。他の作業モジュールですが、HASSへの公開は他の2つにはありません。
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))
これはHASSとリレーモジュールに関する問題ではありませんが、特定のクライアントがサブスクライブしていると想定されているMQTTサーバーのステータスを調べる方法についてですが、ログを見るとわかりません。
log_type all
中mosquitto.conf
)、実際に私が持っている間、コンソールから接続することにより、購読エントリチェックしたjournalctl -f
ランニングを。しかし、HASSサブスクリプションに関するエントリは見つかりませんでした。これは数日前に発生した可能性があり、journaldが永続的として構成されていないため、現在のブートのみが手元にあったためです。それが私がモスキートの状態を調べたいと思った理由です。