MK
Как некоторые из вас уже заметили, на Home Assistant версии 0.118 поломалась интеграция Yandex Smart Home (напоминаю, её делал не я).
И что вы сделали? Пошли ругаться на Дмитрия (автора). Кто-то даже влепил ему несколько дизлайков.
Дмитрий объяснил, что он тут не при чём, и вы пошли ругаться на авторов Home Assistant. Где вежливо ответили, что и они тут не при чём. И вообще они за всякие кастомы не отвечают.
Я очень не хотел влезать в это дело, но природное любопытство не давало мне покоя, выяснить, что же там произошло.
А произошло там следующее. С новой версией Home Assistant обновилась и главная библиотека, отвечающая за web запросы и ответы - aiohttp.
Я довольно долго пытался понять, что же именно там поменялось.
А поменялись там настройки сжатия текстовых данных. Я не специалист по этой части, но и старое и новое сжатие вполне соответствуют всем спецификациям. Там нет ошибки.
Но не по мнению серверов Яндекса. По неведомым причинам запрос получения токена при авторизации - Яндекс не может прочитать. Я проверял, с ответом всё нормально. Допотопные утилиты перехвата трафика могут его расшифровать. А вот сервера Яндекса - нет.
Так что перестаньте терроризировать Дмитрия и разработчиков Home Assistant. Качайте от меня фикс, отключающий в Home Assistant сжатие 🙈 и живите долго и счастливо!
Можете поругаться на Яндекс, пусть чинят. Потому как фикс ну прям очень костыльный вышел.
https://github.com/AlexxIT/yandex_smart_home_fix
PS. Спасибо @Vasilchuk вот описание про сжатие. Там сложная история войны стандартов. Раньше всё было неправильно, но все уважаемые языки программирования и утилиты научились поддерживать как правильную версию, так и неправильную. А вот Ruby не научился. Думаете, в Яндексе программируют на Руби? 🤔
https://github.com/aio-libs/aiohttp/issues/4506