Прямая интеграция в Home Assistant и HomeKit без облаков.

Еще до того, как всех нас посадили по домам, я решил заказать термостат от Tuya — BHT-002 Moes / BHT-6000. Наверное, это самый упоминаемый термостат для теплого пола на Aliexpress.

Увидел несколько положительных отзывов о том, что все прекрасно интегрируется в Home Assistant и вообще это Tuya — все дела. Оказалось всё не так радужно…

Сразу обращу внимание, что у производителя есть несколько версий — нас интересует та, что контролирует теплый пол и имеет Wi-Fi на борту — BHT-002-GBLW.

Подключение

На самом деле сам по себе термостат замечательно устанавливается на место старого и интуитивно подключается к электричеству и датчику температуры пола (китайцы кстати пишут, что в комплекте нет — но у меня был).

После чего мы следуем стандартной инструкции подключения термостата — с помощью приложения TuyaSmart находим (с трудом — потому что выбор устройств внутри приложения достаточно немаленький) термостат и подключаем термостат к Wi-fi (для этого необходимо держать кнопку уменьшения температуры (правая крайняя) в выключенном состоянии в течение 8-10 секунд, пока термостат не заморгает).

Термостат появляется в приложении и вы уже можете его контролировать по Wi-fi — ничего нового.

Сразу отмечу, что у термостата из коробки есть странная особенность — температура, которую вы задаете, будет пытаться поддерживать температуру воздуха, а не пола. Что странно. В моем случае термостат находится в другой комнате (как бы на входе в санузел). Да и вообще зачем мне контролировать температуру воздуха нагревом пола? Благо этот вопрос в итоге был решен по ходу дела.

Дальше начинается интересное.

Интеграция в умный дом

А вот этот процесс оказался не так дружелюбен, как мог бы показаться — спойлер: у этой истории очень даже счастливый конец.

Путь первый — удручающий.

Если вы захотите интегрировать его в Home Assistant стандартными средствами, то для этого вы сможете воспользоваться встроенной интеграцией Tuya:

tuya:
  username: 111@gmail.com
  password: 222
  country_code: RU

После чего термостат сразу же появится среди ваших устройств, но вы получите несколько НО:

  • я так и не научился нормально управлять включением/выключением — т.е. кнопка включения внутри HA просто управляет включением/выключением подсветки, а не работы термостата — БРАВО.
  • отображаемая температура задваивается (вместо 25 градусов вы будете видеть 50 + по итогу если вы хотите поменять температуру с 25 на 26, то вам нужно будет спускаться с 50 градусов до 26)
  • вы опять же будете управлять температурой воздуха О_о
  • управление происходит через облако — мне лично тут как-то все равно, но на вкус и цвет
  • причем по всем эти вопросам уже давно люди общаются на форумах, а воз и ныне там.

Путь второй — безуспешный.

С первым случаем разобрались. Также на просторах интернета можно натолкнуться на способ локального управления с помощью кастомного компонента localtuya (подробнее почитать тут), который построен на базе tuyaAPI.

В данном случае меня ждал двойной провал. Суть данного решения в том, что мы должны перехватить credentials для управления термостатом локально и используя библиотеку localtuya управлять им без обращения к облаку.

Первый провал меня ждал тогда, когда я все-таки смог пройти не по очень простой инструкции получения токена и id, и даже получил эти credentials, но сам компонент не захотел запускаться в Home Assistant с указанными параметрами.

Второй провал меня ждал, когда через пару дней я решил снова получить токен и пройти путь заново, где в итоге меня ждала многократная ошибка невозможности спарить устройство по таймауту. Опять же в инструкции указаны все возможные варианты, как этого избежать, но увы.

В итоге по данному пути у меня не получилось запустить данный термостат в Home Assistant. Если вам лень читать дальше, то можете остановиться здесь и попробовать — все ссылки на инструкции выше даны.

Третий путь — извращенный, но успешный.

Я долго пытался избежать того, чтобы пойти по данному пути — потому что здесь предполагалось паять и ковыряться с перепрошивкой. Но в один прекрасный вечер я решил все-таки прочитать инструкцию до конца и обнаружил вариант перепрошивки по воздуху — о чудо!

В двух словах:

  • данный путь заключается в полной перепрошивки устройства
  • всё происходит по воздуху без отключения термостата от сети
  • вам понадобится лишь смартфон, ноутбук и Raspberry 3 (или выше)
  • еще понадобится немного храбрости — все-таки это перепрошивка

По итогу вы получаете термостат:

  • с полной интеграцией в Home Assistant
  • без зависимости от облаков
  • термостат будет работать по привычному MQTT
  • вы будете управлять температурой пола, а не воздуха — о боги!
  • вам будет доступно управление расписанием прямо из веб-интерфейса
  • и вообще всё будет красиво автоматически пробрасываться в HomeKit (стандартным компонентом homekit: )

Опишу кратко основные шаги и нюансы:

  • в первую очередь обращаемся к данной инструкции и спускаемся в самый низ — нам нужен способ №2 — Tuya-convert
  • идем сюда и начинаем
  • сначала скачиваем tuya-convert и устанавливаем его (на всякий случай советую устанавливать под sudo)
# git clone https://github.com/ct-Open-Source/tuya-convert
# cd tuya-convert
# sudo ./install_prereq.sh
  • скачиваем прошивку: здесь момент — первоначальная прошивка разработчика klausahrenberg предусматривает интеграцию термостата в Mozilla IoT, а не в Home Assistant — я узнал об этом уже после прошивки, поэтому сначала я установил прошивку Клауса, а потом «накатил» на нее прямо с помощью веб-интерфейса прошивку для Home Assistant. У меня не было никаких проблем с этим, но здесь вы можете попробовать сразу устанавливать прошивку под HA.
  • в общем вам необходимо скачать файл прошивки (у Клауса он лежит прямо в корне репозитория WThermostat_1.08.bin , а у второго автора тут) и положить его внутрь папки Tuya-convert в папку files (там уже будут лежать пару стоковых прошивок) — tuya-convert/files — для этого как обычно воспользуйтесь чем-нибудь типа Filezilla или так:
# cd files
# wget ссылка_на_прошивку(возьмите выше)
  • теперь вытираем наши потные ручки и запускаем процесс прошивки (на самом деле автор утверждает, что в процессе можно легко откатиться на сток — поэтому не переживайте)
# ./start_flash.sh
  • после этого проходимся по процессу установки прошивки везде нажимая Y, пока не доходим до этого момента:
IMPORTANT
1. Connect any other device (a smartphone or something) to the WIFI vtrust-flash
This step is IMPORTANT otherwise the smartconfig may not work!
2. Put your IoT device in autoconfig/smartconfig/pairing mode (LED will blink fast). This is usually done by pressing and holding the primary button of the device
Make sure nothing else is plugged into your IoT device while attempting to flash.
3. Press ENTER to continue
  • Здесь нам понадобится наш смартфон; здесь владельцы iPhone должны немного пострадать, потому что мы знаем как iPhone не любит подключаться к Wi-Fi, в которой нет выхода в интернет — из-за чего тыкаясь туда-сюда, подключаясь, переподключаясь, я только с попытки 3-ьей смог добиться того, что данный процесс прошел успешно
  • Вот так выглядит провал:
======================================================
Starting smart config pairing procedure
Waiting for the device to install the intermediate firmware
Put device in EZ config mode (blinking fast)
Sending SSID vtrust-flash
Sending wifiPassword
Sending token 00000000
Sending secret 0101
................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
..................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
.................
SmartConfig complete.
Resending SmartConfig Packets
............
Device did not appear with the intermediate firmware
Check the *.log files in the scripts folder
Do you want to try flashing another device? [y/N]
  • Вот так выглядит успех:
======================================================
Starting smart config pairing procedure
Waiting for the device to install the intermediate firmware
Put device in EZ config mode (blinking fast)
Sending SSID vtrust-flash
Sending wifiPassword
Sending token 00000000
Sending secret 0101
................
SmartConfig complete.
Resending SmartConfig Packets
................../start_flash.sh: line 129: 18885 Terminated ./smartconfig/main.py
.............................................................................
IoT-device is online with ip 10.42.42.42
Fetching firmware backup
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1024k 100 1024k 0 0 29814 0 0:00:35 0:00:35 --:--:-- 28848
curl: Saved to filename 'firmware-d4664a.bin'
======================================================
Getting Info from IoT-device
VTRUST-FLASH 1.5
(c) VTRUST GMBH https://www.vtrust.de/35c3/
READ FLASH: http://10.42.42.42/backup
ChipID: 111111
MAC: 11:11:11:11:11:11
BootVersion: 7
BootMode: normal
FlashMode: 1M QIO @ 40MHz
FlashChipId: 1540c8
FlashChipRealSize: 2048K
Active Userspace: user2 0x81000
======================================================
Ready to flash third party firmware!

For your convenience, the following firmware images are already included in this repository:
Tasmota v8.1.0.2 (wifiman)
ESPurna 1.13.5 (base)

You can also provide your own image by placing it in the /files directory
Please ensure the firmware fits the device and includes the bootloader
MAXIMUM SIZE IS 512KB

Available options:
0) return to stock
1) flash espurna.bin
2) flash tasmota.bin
3) flash WThermostat_1.08.bin
q) quit; do nothing
Please select 0-3:
  • После чего выбираем нашу прошивку (в данном случае под пунктом 3)… 8 секунд ожидания и всё готово.
  • Дальше у вас появится wi-fi сеть с названием термостата и вам необходимо будет проследовать простой инструкции финальной конфигурации.

Дальше поговорим про Home Assistant:

  • если вы установили базовую прошивку, то теперь через веб-интерфейс вы можете перейти во вкладку Update Firmware и просто накатить поверх прошивку для Home Assistant — в общем всё прошло гладко, но по итогу установки прошивки экран не перезагрузился, через минуты 3 я просто открыл страницу заново, а там была уже новая прошивка
  • далее вам необходимо подключить ваш термостат к MQTT серверу во вкладке «Configure Network» — в моем случае нужно было просто заполнить IP на котором поднят Mosquitto (IP малинки)
  • а в Home Assistant добавить auto-discovery
mqtt:
  discovery: true

Если вы отправляете свое добро из Home Assistant в Homekit с помощью стандартного компонента, то при перезагрузке у вас появится новое устройство с термостатом, в котором вы сможете полноценно контролировать температуру и даже переключаться между режимами.

Если вам понравилось, то просто купите его по нашей ссылочке — плюс вам в карму за это 🙂

Author

Наш главный гайд-мастер. Инструкции и обзоры его конёк. Иногда перебарщивает с личным мнением.

4 комментария

  1. Здравствуйте! Не знаю что и делать… очень хочу прошить терморегулятор по воздуху. Застрял на шаге с подключением… идут бесконечные :
    SmartConfig complete……………………………..
    Resending SmartConfig Packets………………
    потом Device did not appear with the intermediate firmware, но

    я точно знаю что и терморегулятор и телефон подключаются к этой сети… телефонов перепробовал 3 разных… и айфоны и андроид… у терморегулятора ip при подключении 10.42.42.28… И он коннектится как только появляется wifi(vtrust-flash), о чем свидетельствует, то что экран перестает моргать, а начинает светиться. На телефоне при подключении переходит в браузер, где «you are connected to vtrust-flash». Уже не знаю, столько сделано попыток … Логов нигде нет… захожу по http://ftp...

  2. Подскажите, какая максимальная температура у данного контроллера? И можно ли ее поменять в прошивке? Ищу какой-нибудь терморегулятор для бойлера с управлением по MQTT

Write A Comment