[Для личного использования] Решена проблема, связанная с невозможностью создания объекта HomeAssistant через ESP32 (MQTT не отвечает на запрос создания объекта ESP32).

1. Описание проблемы

1. Используйте MQTTX, чтобы проверить, может ли клиент создавать сущности.

При отправке запроса на регистрацию объекта через MQTTX объект может быть успешно зарегистрирован на сервере MQTT.

Вставьте сюда описание изображения

2. Объект невозможно создать с помощью ESP32.

При отправке запроса на регистрацию через функцию публикации() в ESP32 об ошибке не будет сообщено, но сервер MQTT не даст ответа.

Вставьте сюда описание изображения

2. Причина проблемы

1. Строка JSON, запрошенная зарегистрированным лицом, слишком длинная и усекается при отправке на сервер MQTT.

Эта проблема беспокоит меня уже два дня, и я не могу в ней разобраться, потому что ошибки вообще нет.
Наконец, я включил мониторинг журнала MQTT и проверил файл журнала построчно и обнаружил, что запрос формата JSON, полученный MQTT в журнале, был обрезан и превратился в неполный запрос.
Причина неизвестна, поскольку длина строки JSON одинакова в клиенте MQTTX и ESP32. Возможно, что поток не заблокирован, но это менее вероятно, поскольку проблема все еще существует, когда я отправляю запрос публикации() только один раз.

Вставьте сюда описание изображения

3. Решение

1. Уменьшите длину строки JSON, отправляемой для регистрации запроса объекта.

Я удалил некоторые ненужные параметры, такие как «значок», и сменил производителя с китайских иероглифов на английский (китайские иероглифы были слишком длинными после перекодирования),
поэтому проблема была успешно решена.

Guess you like

Origin blog.csdn.net/qq_43768851/article/details/132449946