【问题标题】:Last known value from Adafruit IO on ArduinoArduino 上 Adafruit IO 的最后一个已知值
【发布时间】:2017-09-09 18:46:56
【问题描述】:

我正在为使用 Adafruit IO MQTT 库的 Adafruit Huzzah 绘制基本草图。这是通过从各种来源和示例复制/粘贴而组合在一起的,并且大部分都有效 - 但有一件事我无法弄清楚。

现在,我正在使用一行代码,每次通过我订阅的提要收到新消息时都会触发处理程序:

group->onMessage("daniel", handleMessage);

这很好,并且可以为更新的值做我需要它做的事情。

然而,我想做的是在 setup() 例程中获取提要上的最后一个已知值,而不必等待新值的出现。

用 MQTT 的说法,我认为这被称为保留消息,我认为 Adafruit IO 默认启用,但我不知道如何在 startup() 过程中获取这些值。

谁能帮帮我?

(如果您有兴趣,这是我目前的代码:https://github.com/LimeBlast/family-box/blob/master/family-box.ino

【问题讨论】:

    标签: arduino mqtt adafruit


    【解决方案1】:

    简短的回答是你不...做任何事情。

    保留消息与普通消息一样被传递(通过 onMessage 回调),它们只是在您订阅主题后立即传递。

    【讨论】:

    • 哦,听起来我需要另一种解决方案来解决我的问题——可能是直接使用 MQTT,而不是 Adafruit IO。谢谢。
    • 纯 MQTT 就是这样工作的,保留的消息总是由 onMessage 回调传递
    【解决方案2】:

    我也有这个问题。这是完整的解释

    get() 函数将要求 Adafruit 服务器仅将提要的最后一个值重新发送到该客户端。当接收到值时,将执行处理程序。

    exampleFeed->get();  
    

    【讨论】:

      【解决方案3】:

      看到我刚刚找到了我所问问题的答案,我认为这是正确的,我将它发布在这里。

      设置提要后,我正在寻找的命令是->get()as shown in this example

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-20
        相关资源
        最近更新 更多