2

node-red で mqtt メッセージの公開時間を取得する方法を誰か教えてもらえますか?

mqtt 経由で node-red に供給される、ブローカーに保持されたメッセージがあります。メッセージは、homegear を介して私のブローカーに接続されている homematic ウォール ボタンからのものです。

ここでの問題は、homegear がすべてのメッセージを保持することです。これは明らかにセンサーなどに適しています。しかし、ボタンの「真の」メッセージ (押された場合) もそのトピックに保持されます。node-red のデプロイまたは再起動時に、保持されたメッセージを受信し、メッセージが到着したときに動作します。

ボタンが押された後、ホームギアがトピックに「偽」を入れるまで、トピックのメッセージが古いものではないかどうかを確認する必要があります。チャンスはありますか?

node-red の mqtt ヘルプを見ると、mqtt には 4 つのプロパティ (msg.topic、msg.payload、msg.qos、msg.retain) しかないことがわかります。

助けてくれてありがとう!

乾杯、パトリック

4

1 に答える 1

1

残念ながら、メッセージが実際に発行された時刻を取得する方法はありません。取得しているフィールド (qos、保持、トピック、およびペイロード) は、メッセージ全体の唯一のデータです (MQTT は可能な限り軽量になるように特別に設計されているため、ヘッダーの絶対最小データ)。

時間を取得する唯一の方法は、パブリッシャーがそれをメッセージ ペイロードに含めることです。

于 2016-08-11T20:13:20.173 に答える