Ошибка MQTT BR_ERR_BAD_VERSION на Шелли, 13:00 с Tasmota
Я пытаюсь подключить интеллектуальное реле питания Shelly 1 PM к управляемому брокеру MQTT.
Прошивка на устройстве - это кастомная Tasmota 8.3.1 из ветки dev с USE_MQTT_TLS
включен. Порт правильно настроен на 8883 для TLS, и служба брокера работает на mqtt.bosch-iot-hub.com
Когда устройство загружается, я могу видеть следующие сообщения журнала на последовательном порту:
23:03:03 MQT: Connect failed to mqtt.bosch-iot-hub.com:8883, rc 4. Retry in 10 sec
23:03:14 MQT: Attempting connection...
23:03:14 MQT: TLS connection error: 0
Код возврата 4, согласно документации Tasmota (https://tasmota.github.io/docs/TLS/), является кодом для BR_ERR_BAD_VERSION
И эта константа ошибки, похоже, исходит от BearSSL и означает "Версия входящей записи не соответствует ожидаемой версии". (согласно http://sources.freebsd.org/HEAD/src/contrib/bearssl/tools/errors.c)
Используя онлайн-инструмент тестирования TLS и проверяя mqtt.bosch-iot-hub, он поддерживает только TLS 1.2 (1.3, 1.1 и 1.0 отключены, а также SSLv2 и SSLv3). На сайте BearSSL указано, что он поддерживает TLS 1.2.
Я попытался установить уровень журнала Tasmota в my_user_config.h
, но он не регистрирует более подробную или подробную информацию.
#define SERIAL_LOG_LEVEL LOG_LEVEL_DEBUG_MORE // [SerialLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE)
Что должно означать сообщение об ошибке? Это несовместимость TLS стека BearSSL или на стороне службы? Как я могу включить подробное ведение журнала на Tasmota, чтобы увидеть подробную информацию о подтверждении TLS? Что-нибудь еще мне не хватает?
1 ответ
Я понимаю, что через 6 месяцев вопрос, возможно, немного устарел, однако код ошибки - это не TLS, как вы описываете, а скорее код возврата для соединения MQTT, как описано в
https://tasmota.github.io/docs/MQTT/#return-codes-rc
что означает, что ваш код ошибки соответствует 4 MQTT_CONNECT_BAD_CREDENTIALS, имя пользователя/пароль были отклонены