Не удается MQTT подключить Tasmota к AWS IOT

В 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?

2 ответа

Я думал, что определения только этого было достаточно для авторизации логина / пароля:

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

У меня была аналогичная ошибка, и Тасмота не смог подключиться к AWS. Все имели в виду эту страницу: https://github.com/arendst/Sonoff-Tasmota/wiki/AWS-IoT Но такой страницы нет. URL-адрес перемещен в новое место:https://tasmota.github.io/docs/AWS-IoT/

Наконец я обнаружил, что yaml CloudFormation был неполным. Консоль 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 года.

SetOption103 по умолчанию false, поэтому мой TLS был отключен:

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

Когда я вручную ввел команду

      SetOption103 1

на веб-консоли Tasmota сообщения начали поступать в 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 
Другие вопросы по тегам