2016-08-11 31 views
2

노드 레드에서 mqtt 메시지의 게시 시간을 얻는 방법을 알려주시겠습니까?노드에서 수신 된 mqtt 메시지의 시간을 얻는 방법 - 적색입니까?

내 브로커에 mqtt를 통해 노드 빨간색으로 공급되는 보관 메시지가 있습니다. 이 메시지는 homegear를 통해 내 중개인에게 연결되어있는 홈 메틱 벽 버튼에서 온 것입니다.

지금 문제는 센서가 분명히 좋아 보이는 모든 메시지를 homegear에 보관한다는 것입니다. 그러나 버튼의 "진정한"메시지 (눌렀다면)도 주제가 그대로 유지됩니다. 노드 red의 배치 또는 재시작시 유지 된 메시지를 수신하고 메시지가 방금 도착한 경우 작동합니다.

버튼을 누른 후 homegear에서 "false"를 입력하면 항목의 메시지가 이전 것이 아닌지 확인해야합니다. 어떤 기회?

node-red의 mqtt 도움말에는 mqtt의 속성이 4 개뿐임을 알 수 있습니다 : msg.topic, msg.payload, msg.qos, msg.retain.

도움 주셔서 감사합니다.

건배, 패트릭

답변

1

불행하게도, 당신이 받고있는 필드 (QoS를, 유지, 주제와 페이로드) 전체 메시지의 데이터 만 (이다를 메시지가 실제로 발행 할 때 얻을 수있는 방법이 없습니다 MQTT는 가능한 한 가볍도록 특별히 설계되었으므로 헤더에 절대 최소 데이터가 있습니다.

시간을 얻는 유일한 방법은 게시자가 메시지 페이로드에 시간을 포함시키는 것입니다.

+0

나는 그것에 대해 생각했지만 적어도 시간을 할 수 있기를 바랬다. 하지만 그것은 완전히 unterstandable ... 고마워요! – pmayer

+0

일시적/누름 버튼은 보존 된 메시지를 게시하지 않는 것이 좋지만 그렇지 않은 경우 상태를 올바르게 게시해야합니다 (닫을 때 true, 열 때 false). – hardillb

+0

당신이 옳습니다. 나는 그 행동을 바꾸기 위해 홈 기어의 개발자와 접촉하고있다. 불행히도 전체 또는 일부만 유지할 수 있습니다. 나는 그와 함께 해결책을 찾을 수 있다고 생각합니다. – pmayer