Предисловие
Сразу оговорюсь, что ни в коем случае не рекомендую данное устройство к покупке (ужасно шумное и качество изготовления ниже плинтуса), но, уж если у вас такой зверь есть - эта статья для вас, т.к. поможет вам хоть немного сэкономить ресурс барабанных перепонок и нервов.
Для чего все это нужно
Собственно, заниматься всем этим безобразием меня вынудил сам бризер, т.к. уровень шума, который он создает в "свободном плавании" (управление по уровню CO2 от Magic Air), просто невыносим для нас с супругой. Благодаря реверс-инжинирингу протокола обмена Magic Air с облаком мне удалось следующее:
- Получать показания всех датчиков бризера (скорость, температура входящего\выходящего воздуха, режим и т.д.) и Magic Air (уровень CO2, температура, влажность).
- Управлять бризером как в ручном режиме (скорость), так и в автоматическом (при помощи задачи минимальной\максимальной скоростей).
На основании полученных данных я создал библиотеку на Python, которая спустя некоторое время вылилась в компонент для системы умного дома Home Assistant, которой я пользуюсь.
Что потребуется
Потребуются, в общем, сущие пустяки:
Бризер Tion (у меня 3S)MagicAir Home Assistant
Установка компонента
- Качаем по ссылке выше zip архив с компонентом.
- Содержимое архива (а конкретнее, папки tion_home_assistant-master) кладем себе на сервер с Home Assistant в папку config/custom_components/tion.
- Добавляем в configuration.yaml этот фрагмент.
- Вставляем в secrets.yaml строчки с tion_email: и tion_password:
- Перезапускаем Home Assistant.
Использование
После перезагрузки, у вас должны появиться следующие устройства:
Бризером можем управлять тремя способами:
Через информацию в разделе states (нельзя задавать диапазон скоростей для автоматического режима).
Через карточку Lovelace (вообще нельзя управлять скоростью).
Через службы (можно все).
С первыми двумя способами добавить нечего, а вот про третий опишу подробнее. Доступны к использованию следующие службы:
climate.set_fan_mode
Управляем скоростью бризера через значение параметра fan_mode:
- off, 0 - выключение;
- 1..6 - включить в ручном режиме на заданной скорости:
- auto - автоматическое управление по уровню CO2 в диапазоне скоростей;
- 0-6, 2-4, 1-3, 4-6... и т.д - автоматическое управление в заданном диапазоне скоростей.
climate.set_hvac_mode
Управляем обогревателем входящего воздуха бризера (если есть), используя параметр hvac_mode:
- heat - обогреватель включен;
- fan_only - обогреватель выключен.
climate.set_temperature
Задаем целевую температуру для нагревателя через параметр temperature.
Примеры автоматизаций
Собственно, каким образом это все можно использовать? Ниже я опишу сценарии, в которых я использую бризер:
- Если все ушли, а температура на улице ниже 10 - выключаю бризер, чтобы сохранить тепло. Летом включаю проветривание (шестая скорость) на 15 минут, а потом оставляю первую скорость до прихода людей.
- Минимальная скорость в автоматическом режиме зависит от числа людей дома: один человек - первая скорость, два - вторая, гости дома - четвертая.
- Если включен телевизор, работают стиральная машина, посудомойка или робот-пылесос , выставляю минимальную скорость на 1-2 больше, чем обычно, т.к. шум бризера перекроется шумом других девайсов.
- Ночью скорость бризера выставляется на диапазон 1-3 в автоматическом режиме, независимо от количества людей (если, конечно, кто-то есть дома).
- Если скорость больше четвертой, либо CO2 выше нормы - включаю вытяжку в ванной, чтобы "помочь" бризеру.
Если что-то не завелось - смотрите логи, а чтобы они написались "качественно", добавьте в configuration.yaml фрагмент.
Спасибо за компонент! Думаю многим будет полезен!
Если на рекомендуете Тион, то какой рекомендуете и почему? А то как раз планирую 2 штуки приобретать.
Xiaomi, судя по обзорам, в два раза дешевле, производительнее и тише. Только, на мой взгляд, нужно брать с подогревом обязательно, хотя, зависит от того, где живете, конечно. Себе в следующую квартиру буду просто нормальную промышленную приточку на балкон ставить и разводить по потолку
Пользуюсь Xiaomi без подогрева и в осеннее время когда еще не дали отопление, остужает квартиру весьма сильно, поэтому как было сказано ранее лучше приобретать конечно вариант с подогревом. В данный момент когда на улице -5; -10 и включенном отоплении разница между комнатами примерно в градус, при постоянно включенном приборе. Сам прибор работает необычайно тихо, прекрасно ориентируется по датчику СО2 и в зависимости от показателей автоматически выбирает скорость подаваемого воздуха
А интегригуется в HA?
То есть Тион в спальню не рассматривать совсем из-за шума?
Как ни парадоксально, но в спальню - можно. Нам с женой во сне хватает первой скорости, а её не слышно вообще. С тионом проблемы возникают больше днем, когда активности всякие и скорость 2+
Спасибо за ответ про спальню!
Еще подскажите, я правильно понимаю, что Тион надо ставить в каждую комнату в квартире?
Или есть варианты съэкономить?
Нет, так сэкономить вам не удастся,он даже одну комнату с двумя людьми тянет с трудом. Также, даже если бы мощности хватало, у вас не получится так организовать поток воздуха, чтобы он прошёл все комнаты и пришёл к вытяжке в ванной просто по законам физики
Возьмите 2 Xiaomi лучше, вместо одного тиона, не нужно себе наживать лишнюю головную боль)
Имеете в виду бризер от Xiaomi? A какую модель рекомендуете?
У меня не Xiaomi, поэтому советовать могу только НЕ брать Tion
Про "не брать Тион" давно понятно. Интересна лучшая альтернатива.
Промышленная приточка (нужно делать ремонт и потолки высокие), либо Xiaomi, больше вариантов особо не наблюдается
Вот и интересует конкретная модель от Xiaomi.
Нашел, похоже, лучший вариант это XIAOMI Mijia MJXFJ-150-A1
В умный дом без шлюза xiaomi можно добавить?
Сам бы хотел знать. Не думаю, что z2m уже его поддерживает.
Если зигби можно сдампить, и отдать ребятам. Напишут враппер
Девайс только-только на али появился, мало кто еще успел купить.
https://4pda.ru/forum/index.php?showtopic=962736&st=0#entry88480063">https://4pda.ru/forum/index.php?showtopic=962736&st=0#entry88480063
Пока нету обзоров и тестов, чтобы сравнить по-взрослому.
Вроде там толщина меньше, где-то видел 185мм, это жирный плюс, а то из штор выпирать будет.
А так надо ждать тестов режимов и шума, если она при 120-150м2 будет выдавать около 30dB, то надо брать, жаль эти пошли после НГ будут....
Сейчас озадачился данным вопросом. Есть ещё вентмашина сателлит 2, но стоит...
А у Xiaomi датчик тоже выносной? Откуда вы знаете, что, к примеру, ночью в спальне(бризер же у вас в гостиной?), где два человека и при закрытой двери, нормальный уровень CO2?
А, ну тогда ничего там не нормально, 100%. Датчик встроенный в бризер совершенно не имеет смысла по той же причине, что и датчик влажности в увлажнителе. Поток воздуха движется строго от приточки к вытяжке, в комнату вашу детскую ему "заходить" незачем, поэтому крайне рекомендую открыть ребенку окно хотя бы на микропроветривание. Уровень CO2 человек не ощущает ровно до того момента, пока задыхаться не начинает, а этот уровень в сотни раз выше "плохого" (когда находиться в помещении вредно), поэтому "внутренним ощущениям" советую не доверять в этом вопросе.
P.S У Тиона датчик выносной, поэтому я знаю о чем говорю - проверено на себе
Воздух все таки движется не совсем по прямой, иначе бы в моей спальне уровень со2 не падал бы
https://blog.ifound.me/smarthome/obzor-brizer-xiaomi-mijia-fan-a1-mjxfj-150-a1/">https://blog.ifound.me/smartho...
Расскажите, не проще ли просто поставить привод на окно и открывать его по автоматизации с какого-нибудь датчика СО2? Я просто не в теме. Живу на севере, морозы на улице зимой бывают до 50-55 градусов, не хочется делать почти прямое отверстие на улицу.
Смысл бризера не просто в подаче свежего воздуха, а его очистка и подогрев,.
Спасибо за компонент, всё завелось с первого раза, это просто праздник какой-то!
Не планируете добавить поддержку HACS?
Не вижу смысла, данная статья третья в выдаче Яндекса. Кому будет нужно - найдёт и установит без проблем
У меня работает интеграция с HA без MagicAir (у меня его и нет). Вот тут брал https://github.com/m-pavel/go-tion">https://github.com/m-pavel/go-tion
да, у меня там рядом стоит raspberry, на которой заодно и датцик CO2
tion спаривается c raspberry - bluetoothctl pair <MAC>
А какой именно датчик СО2 Вы используете?
Спарить rassbery с тион без пробоем получилось? Какая у вас версия платы и ОС на ней?
У меня пока не получилось спарить Raspberry 3b с Raspbian и Tion 3s. Тион с платой успешно соединяются, но в конце процедуры вываливается фейл по таймауту.
А можно вкратце описать как запускается? А то уже замучался пробовать разные варианты, все равно не могу запустить
Валерий, подскажите два вопроса. как вам удалось хотя бы в общем смысле отреверсить обмен с сервером если там скорее всего TLS поверх всего. Насколько я слежу за новостными рассылками от Тиона, они периодически обновляют ПО. Из-за этого не слетит ли ваш компонент в ближайшем будущем?
А в целом огромное вам спасибо, наконец то я решился купить magic air, а то уже столько лет шла болтовня об открытии api.
Там простой Rest Api, который я подслушал браузером и воспроизвёл. Не думаю, что производитель будет менять протокол, ведь у многих пользователей на телефонах стоит старая версия операционки, которая не позволит установить более новую версию приложения, да и MagicAir домохозяйки вряд-ли бросятся обновлять по первому зову. Если они на это пойдут, я лишний раз убежусь, что компания Tion - ***.
P.S купите лучше Xiaomi
Класс! но все же в тему обновления. Вот такой формат письма приходит: Когда планируем обновления
Четверг, 5 сентября в 9 утра по МСК.
Мы очень надеемся, что обновления никак не помешают вашей работе с системой MagicAir, однако, рекомендуем отключить звуковые оповещения, если в это время вы планируете отдыхать. Если вдруг вы заметите, что система работает в нештатном режиме, пожалуйста, сообщите нам на e-mail: service@tion.ru
т.е. исходя из формулировки, складывается мнение, что они делают обновление push, даже без согласия пользователя ну или хз.
Предлагаю решать проблемы по мере их появления.
Все настроил - все супер, спасибо огромное!
Валерий, а вы не поделитесь вашими автоматизациями. Не могу пока придумать, с чего начать :-|. Еще вам наверно уже сообщали, чт оесли выбирать ручной режим и скорость через карточку климат, то включается рециркуляция (у меня tion 3S )
Извиняюсь, но я не могу понять что есть компонент и что есть библиотека :(. я расположил 5 файлов из https://github.com/airens/tion_home_assistant">https://github.com/airens/tion... в целевую:
config/custom_components/tion и добавил конфигурацию в
configuration.yaml.
при этом вызов службы climate.set_fan_mode с параметром
fan_mode: 2. переключает режим забора из "С улицы" на "Из комнаты". Как в изначальной проблеме.
подскажите, пожалуйста нужно ли мне использовать еще что то из https://github.com/airens/tion">https://github.com/airens/tion
или что еще я делаю не так?
В файле manifest.json компонента должна быть версия библиотеки 0.71 и выше. Вы можете также использовать скорость 2-2, что даст тот же результат но режим будет автоматический, а значит 100% не рециркуляция
версия
библиотеки 0.71, все так. Как вариант - ,пока, буду использовать передачу значения 6-6 для проветривания (да так я остаюсь в авто режиме).
А можно такое же счастье, но под DOMOTICZ? :(
Чего-то поломалось, не открывается странички с кодом, что в файл конфига ha вставить надо. Скиньте уто-нить сюда, плиз.
Перейдите по ссылке на GitHub вначале статьи, там все есть
точно, супер, спасибо! Ступил. )
Делаю все, как описано в инструкции, в логи плюет следующее
Logger: homeassistant.components.homeassistant
Source: components/homeassistant/__init__.py:112
Integration: Home Assistant (https://www.home-assistant.io/integrations/homeassistant">documentation, https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+homeassistant%22">issues)
First occurred: 18:34:37 (1 occurrences)
Last logged: 18:34:37
Component error: tion - Integration 'tion' not found.
Хотя, как описано полохил папку tion в config/custom_components
Logger: homeassistant.setup
Error during setup of component tionSource: custom_components/tion/__init__.py:41
First occurred: 22:28:27 (1 occurrences)
Last logged: 22:28:27
Добрый день. Установил компоненты. При перезапуске HA у меня аналогичная ошибка в логе:
ERROR (MainThread) [homeassistant.setup] Error during setup of component tion
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.8/site-packages/homeassistant/setup.py", line 174, in _async_setup_component
result = await hass.async_add_executor_job(
File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/homeassistant/.homeassistant/custom_components/tion/__init__.py", line 41, in setup
api = TionApi(config[DOMAIN][CONF_USERNAME], config[DOMAIN][CONF_PASSWORD], min_update_interval_sec=(config[DOMAIN][CONF_SCAN_INTERVAL]).seconds)
File "/srv/homeassistant/lib/python3.8/site-packages/tion/tion.py", line 418, in __init__
self._get_authorization()
File "/srv/homeassistant/lib/python3.8/site-packages/tion/tion.py", line 456, in _get_authorization
with open(TionApi.auth_fname, "w") as file:
PermissionError: [Errno 13] Permission denied: 'tion_auth'
Как я понял - не поддерживается какими-то из зависимостей. Я ставил HA, как плагин из репы freenas - с ним установились последние библиотеки.
Проблема решилась небольшой правкой библиотеки tion - заменой в файле
.../lib/python3.8/site-packages/tion/tion.py
строки
class TionApi:
auth_fname = "tion_auth"
на
class TionApi: auth_fname = "/tmp/tion_auth"
Огонь! Все заработало! Увидет и модуть magicair и модуль co2!
А у вас climate.tion появился? Я вижу только сенсоры.
У меня объекты climate.<имя бризера> появились. Пока больше ничего не пробовал, возникла проблема, что у меня две базовые стации, а библитека рассчитана на то, что базовая станция только одна. Хотя вроде структура объектов позволяет работать с несколькими базовыми станциями без кардинальных изменений. В общем, сел читать учебник по питону :D.
Странно, почему у меня не появился объект климата. Возможно, что-то из-за того, что в инструментах разработчика о системе в интеграциях я не вижу интеграции climate. Я в HA новый - раньше домотикз стоял. Сейчас мигрирую.
UPD:
Не был установлен компонент climate. Поставил, обновил HA, но не знаю, как переинициализировать плагин управления тионом, что бы HA увидел climate помимо сенсоров magicair...
добавил в библиотеку возможность изменять папку хранения файла аутентификации, в конфиге компонента (тоже обновил) можете добавить строку file_path: "/tmp/tion_auth"
Вроде получилось подключить несколько базовых станций. Ниже правки, на случай, если кому-то еще пригодится.
Файл homeassistant/lib/python3.8/site-packages/tion/tion.py
class TionApi - меняем
self._data: Tion = None
на
self._data: Tion = []
return f"TionApi({self.authorization}, data={'Tion()' if self._data else None})"
на
return f"TionApi({self.authorization}, data=[] ({len(self._data)} items)"
в методе get_data меняем
self._data = None
на
self._data = []
self._data: Tion = Tion(response.json()[0])
на
locations = response.json()
for location in locations:
self._data.append(Tion(location))
в методе _get_zones_data меняем
for zone in self._data.zones:
if any([
not name_part and not guid,
guid and zone.guid == guid,
name_part and name_part.lower() in zone.name.lower()
]):
result.append(zone)
на
for location in self._data:
for zone in location.zones:
if any([
not name_part and not guid,
guid and zone.guid == guid,
name_part and name_part.lower() in zone.name.lower()
]):
result.append(zone)
в методе _get_devices_data меняем
for zone in self._data.zones:
for device in zone.devices:
if any([
not name_part and not guid and not type,
guid and device.guid == guid,
name_part and name_part.lower() in device.name.lower(),
type and type.lower() in device.type.lower()
]):
devices_data.append(device)
zones.append(zone)
на
for location in self._data:
for zone in location.zones:
for device in zone.devices:
if any([
not name_part and not guid and not type,
guid and device.guid == guid,
name_part and name_part.lower() in device.name.lower(),
type and type.lower() in device.type.lower()
]):
devices_data.append(device)
zones.append(zone)
спасибо, добавил в библиотеку, обновил компонент
Спасибо, новый коммит накатил, но чето никак не находит дополнительные датчики Magicair(
Как можно переинициализировать компонент?
Друзья! Если у вас есть вопросы/пожелания/предложения - просьба обращаться ко мне в GitHub через Issues и Pull requests. Далее, вся поддержка от меня будет происходить только там.
Все поставил, теперь все завелось. Скажите, а режим авто - откуда берется целевое значение уровня СО2?
для тупых как я напишите пожалуйста пояснение там где пароль с логином надо писать что скобки не нужны, после двоеточия пробел а за ним логин, точно так же с паролем а то я тут 3 часа мучался не мог понять почему не работает
Спасибо огромное. Сам подключал в слепую по обрывочной информации. Статья очень в тему. Хочу охлаждать и нагревать квартиру за счет забортного воздуха. В период раннего отопления получается в квартире духота, а на улице прохладно.
подскажите, а как менять режим работы (внутри, смешанный, с улицы)?