【问题标题】:Cannot MQTT connect Tasmota to AWS IOT无法 MQTT 将 Tasmota 连接到 AWS IOT
【发布时间】:2021-01-24 12:19:18
【问题描述】:

在 user_config_override.h 中:#define USE_MQTT_AWS_IOT_LIGHT

  • 编译它 + 闪存 OTA 最小 + 闪存新编译固件

总是得到这个错误:

03:53:25 MQT: Connect failed to dq5l0h2crqi8-ats.iot.eu-west-1.amazonaws.com:443, rc -4. Retry in 100 sec

我尝试使用 1883 和端口 8883 而不是 443。我从 AWS CloudFormation(使用 TasmotaAuth 模板)仔细检查了我的登录名/密码,但运气不好。

有人成功连接到 AWS 吗?

【问题讨论】:

  • 如果您使用 MQTT 连接 AWS IoT,可能应该使用端口 8883。所有内容都包含在我们的入门实验室mqttlab.iotsim.io/aws
  • 不需要使用8883端口,较新的版本连接到443端口可以正常工作。

标签: amazon-web-services mqtt aws-iot tasmota


【解决方案1】:

我认为只定义这个就足够登录/密码验证了:

#define USE_MQTT_AWS_IOT_LIGHT

虽然我需要这个整体:

#ifndef USE_MQTT_TLS
#define USE_MQTT_TLS
#define USE_MQTT_TLS_CA_CERT // Optional but highly recommended
#endif
#ifndef USE_MQTT_AWS_IOT_LIGHT
#define USE_MQTT_AWS_IOT_LIGHT
#endif
#ifdef USE_DISCOVERY
#undef USE_DISCOVERY
#endif

(在 user_config_ovverride.h 中)

【讨论】:

    【解决方案2】:

    我遇到了类似的错误,Tasmota 永远无法连接到 AWS。 每个人都在参考这个页面:https://github.com/arendst/Sonoff-Tasmota/wiki/AWS-IoT 但是没有这样的页面。 URL 已移至新位置: https://tasmota.github.io/docs/AWS-IoT/

    最后我发现 CloudFormation yaml 不完整。 AWS 控制台生成的 TasmotaAuth/Outputs/BackLogCommand 是:

    BackLog MqttHost xxxxx-ats.iot.us-east-2.amazonaws.com; MqttPort 443; MqttUser tasmota?x-amz-customauthorizer-name=TasmotaAuth; MqttPassword xxxxxxx
    

    它应该包括以下附加选项:

    SetOption3 1; SetOption103 1; 
    

    这些可能存在于早期版本中,但截至 2021 年 8 月,现在已丢失。

    SetOption103 默认为false,所以我的 TLS 被禁用:

    #define MQTT_TLS_ENABLED       false      // [SetOption103] Enable TLS mode (requires TLS version)
    

    当我手动发出命令时

    SetOption103 1
    

    在 Tasmota Web 控制台上,消息开始流向 AWS。

    CloudFormation 脚本需要更改,或者文档应更正如下:

    将以下内容添加到 user_config_override.h:

    #ifndef USE_MQTT_TLS
    #define USE_MQTT_TLS
    #define USE_MQTT_TLS_CA_CERT // Optional but highly recommended
    #endif
    #ifndef USE_MQTT_AWS_IOT_LIGHT
    #define USE_MQTT_AWS_IOT_LIGHT
    #endif
    #ifdef  USE_DISCOVERY
    #undef  USE_DISCOVERY
    #endif
    #undef  MQTT_TLS_ENABLED
    #define MQTT_TLS_ENABLED    true 
    

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 1970-01-01
      • 2018-01-25
      • 2021-01-09
      • 2022-07-29
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多