0

在 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 吗?

4

2 回答 2

0

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

#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 中)

于 2021-01-26T00:43:42.723 回答
0

我遇到了类似的错误,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 
于 2021-08-09T09:02:10.573 回答