Статья

Бризеры Tion в Sprut.hub через MQTT

Предисловие

Бризеры компании Tion безусловно являются одними из самых популярных систем приточной вентиляции, но их интеграционные решения реализованы слабо. Сами устройства не оснащены модулем wi-fi, управление осуществляется по bluetooth. В этой статье попробуем решить вопрос с управлением бризеров в Sprut.Hub через MQTT и модуля ESP32. Есть варианты интеграций через модуль MagicAir от Tion в HomeAssistant c последующей проброской через обратный Homekit в Sprut.Hub и через модули Z-Wave в Sprut.hub. В первом случае потребуется поднимать отдельный сервер HomeAssistant и докупать MagicAir, во втором докупать модуль Z-Wave для Sprut.Hub и бризера.Предлагаемый вариант тоже "костыли", но "костыли" дешевые. К минусам решения можно отнести необходимость постоянно держать подключенную по питанию плату ESP32 в зоне действия Bluetooth бризера.
Для реализации потребуется плата ESP32, кабель USB ->microUSB с возможностью передачи данных, компьютер предпочтительно Mac или *nix. Все делаем на свой страх и риск.

На системе Windows нет возможности запустить ESPHome dashboard и работать прийдется в командной строке.  Процесс работы с ESPhome под Windows описан тут.
Все примеры в этой статье реализованы на Mac, процесс установки на другие системы несущественно отличается и подробно описан на официальном сайте EspHome

Подготовка к настройке

1. Включаем и настраиваем брокер MQTT в Sprut.hub. Подробно останавливаться на этом не буду, все описано в wiki  (не забываем в настройках поменять порт на 44444) При необходимости утанавливаем имя пользователя и пароль.

Теперь установим ESPHome 

2. Устанавливаем Python c официального сайта

3. После установки открываем приложение Терминал и устанавливаем Esphome командой

auto
Копировать
pip3 install esphome

3.1. Если попросит обновить

auto
Копировать
pip3 install esphome --upgrade

4. Устанавливаем Xcode, он потребуется для компиляции прошивки. Xcode также возможно установить с офицального сайта Apple или магазина приложений, но если уж открыли терминал, то можно и командой

auto
Копировать
xcode-select --install 

5. Далее устанавливаем Esp Dashboard для удобной работы через web интерфейс

auto
Копировать
pip3 install tornado esptool

6. Запускаем это великолепие

auto
Копировать
esphome dashboard config/

Теперь по адресу в вашем браузере localhost:6052 будет доступен интерфейс управления модулями ESP. Подключаем ESP32 по USB к компьютеру и создаем новый проект.

После перезагрузки компьютера запускать Dashboard прийдется повторно

Прошивка ESP32

Выбираем "New device" задаем название нашего устройства и имя и пароль вашей wi-fi сети. После чего, устанавливаем прошивку на наше устройство.

После прошивки ваше устройство должно появиться в Dashboard со статусом online. 

Открываем конфигурацию прошивки вашего устройства нажав кнопку EDIT, удаляем все содержимое.
Далее идем на страницу проекта esphome-tion и в разделе прошивка выбираем модель вашего бризера, копируем содержимое из примера конфигурации целиком и вставляем вместо удаленной конфигурации. В самом начале кода, в разделе substitutions, меняем MAC адрес на адрес вашего бризера. Его можно узнать в приложении Tion Remote.
Параметр node_name правим если у вас более 1 бризера. На каждый бризер у вас должно быть уникальное имя начинающееся на tion. Например: tion-bedroom, tion_livingroom, tion1980 и т.д. На каждый бризер отдельная плата ESP32.

auto
Копировать
substitutions:
  # tion mac address.
  tion_mac_address: 00:00:00:00:00:00
  # name of the node.
  node_name: tion-4s

Включаем в прошивке поддержку MQTT, для этого в самом конце прошивки добавляем код, в котором изменяем адрес брокера на адрес вашего Sprut.hub, а имя пользователя и пароль на ваши, которые вы установили когда настраивали MQTT в Sprut.hub. Если пароль не устанавливали, строчки username и password нужно удалить.

auto
Копировать
mqtt:
  broker: 192.168.0.0
  port: 44444
  username: mqtt_username
  password: mqtt_password

Устанавливаем прошивку (выбираем install), переводим бризер в режим сопряжения и включаем ESP32.

Шаблоны Sprut.hub

Для того, чтобы Sprut.hub обнаружил и добавил устройство ESP32 по MQTT необходим шаблон устройства.

Скачиваем шаблон и размещаем его в папке Templates/MQTT/Custome

json
Копировать
{
  "name": "Tion Breazer",
  "manufacturer": "Tion",
  "model": "4S",
  "services": [
    {
      "name": "Бризер",
      "type": "HeaterCooler",
      "characteristics": [
        {
          "type": "Active",
          "link": {
            "type": "String",
            "topicSearch": "(.*/climate/tion.*)/mode/state",
            "topicGet": "(1)/mode/state",
            "topicSet": "(1)/mode/command",
            "map": {
              "INACTIVE": "off",
              "ACTIVE": "fan_only;heat"
            }
          }
        },
        {
          "type": "CurrentTemperature",
          "link": {
            "type": "Double",
            "topicGet": "(1)/current_temperature/state",
            "checkValue": true
          }
        },
        {
          "type": "HeatingThresholdTemperature",
          "link": {
            "type": "Integer",
            "topicGet": "(1)/target_temperature/state",
            "topicSet": "(1)/target_temperature/command"
          },
          "minValue": 1,
          "maxValue": 25,
          "minStep": 1
        },
        {
          "type": "CurrentHeaterCoolerState",
          "link": {
            "type": "String",
            "topicGet": "(1)/mode/state",
            "map": {
              "INACTIVE": "off",
              "HEATING": "heat",
              "COOLING": "fan_only"
            }
          },
          "validValues": "INACTIVE,HEATING,COOLING"
        },
        {
          "type": "TargetHeaterCoolerState",
          "link": {
            "type": "String",
            "topicGet": "(1)/mode/state",
            "topicSet": "(1)/mode/command",
            "map": {
              "HEAT": "heat",
              "COOL": "fan_only"
            }
          },
          "validValues": "HEAT,COOL"
        },
        {
          "type": "RotationSpeed",
          "link": {
            "type": "Integer",
            "topicGet": "(1)/fan_mode/state",
            "topicSet": "(1)/fan_mode/command"
          },
          "minValue": 1,
          "maxValue": 6
        }
      ]
    }    
  ]
}

Более подробно о том как и где размещать шаблоны описано в wiki Sprut.hub

Важно: Шаблон работает с Tion 4s/Tion Lite. Вероятно с минимальными доработками или вообще без них, заработает на Tion 3s

Вместо эпилога

Важно еще раз отметить, что решение сырое и костыльное, но относительно простое и дешевое в реализации. На каждый бризер вам нужен будет свой шаблон и отдельная ESP32. В Алису бризер заходит как кондиционер, отдает туда статус и температуру, но работает только на вкл и выкл. Любые доработки шаблонов приветствуются.

Огромное спасибо Олегу Титову и Алексею Гамову за помощь
2

Шаблон заработал на tion 3s с подключением платы esp8266 по uart
Спасибо заработало. Tios 4s и по bluetooth получилось и через флэшку по UART

Вернуться назад
Вернуться назад