2017-05-12 9 views
0

現在、いくつかのMQTT IOTデバイス(mqttハードウェア:raspberry pi 2、mqttブローカー:Mosquitto、ほとんどがESP8266)を実行しています。ファームウェアとして、私はesp8266-homieファームウェアのカスタムブレンドを実行しています。これは数ヶ月間うまくいきましたが、今は$トピックの使用に関する問題に直面しています。

単純な例では、私のデバイスはオンライン状態をトピック:home/device/$ onlineに公開し、willメッセージは、デバイスが切断されたときにfalseになることを確認します。このコマンドを実行すると

は、私は(とりわけ)そのトピックを見ることができます:

mosquitto_sub -h <brokerIP> -u <username> -P <password> -t home/device/# -v 

出力:

home/device/$online true 

そうな話題があるとデータが含まれていない、素晴らしいです!

mosquitto_sub -h <brokerIP> -u <username> -P <password> -t home/device/$online -v 

出力: 何も

しかし悲しいことに、これは2日以来、何も返していないので、ロジックは、このいずれかを実行すると、真の値を返すべきことを指示します。私が変わったと思うことだけが私のラズベリーパイの更新かもしれません。

答えて

1

$は、シェルに環境変数(おそらくbash)を示すcharであるため、コマンドを実行する前に環境変数に格納された値で$onlineを展開しようとします。 $onlineとして

が何に設定されていない可能性が高いです、これは実際に実行されているものを意味している次のように

mosquitto_sub -h <brokerIP> -u <username> -P <password> -t home/device/ -v 

あなたは、トピックの文字列を引用してこの問題を解決することができます

mosquitto_sub -h <brokerIP> -u <username> -P <password> -t 'home/device/$online' -v 
+0

トピックを引用私の問題を修正!ありがとうございました – MrBramme

関連する問題