我遇到了类似的错误,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