Управляем конвектором и термостатом Electrolux из Home Assistant. Часть 2

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Часть 1

Перенос полученных знаний в HA

Пришло время применить полученный опыт на Python и интегрировать его в Home Assistant.

Так как опыта написания компонентов для HA не было, пришлось потратить время на изучение того, как писать свои компоненты для интеграции.

Первым делом был реализован http-клиент для авторизации. Дальше дело шло за написанием tcp клиента. И в какой-то момент у меня промелькнула мысль, а что, если в первых версиях приложения общение с сервером/устройствами было не по TCP, а через REST.

Во мне снова проснулось любопытство, и я занялся поиском и изучением старых версий приложения. И, о чудо, успех! Я нашел именно то, что искал )

После изучения приложения я узнал какие еще есть ручки для запросов, кроме авторизации. Это было то, что мне требовалось: запрос состояния устройств и отправка изменения.

Таким образом отпала необходимость писать tcp-клиент и можно сосредоточить усилия на работе с http запросами.

Первым делом нужно было выяснить, что означают данные, которые возвращает сервер

{'result': {'device': [{'state': '0', 'child_lock': '0', 'sensor_fault': '0', 'window_open': '0', 'mute': '0', 'window_opened': '0', 'calendar_on': '0', 'brightness': '1', 'led_off_auto': '0', 'temp_comfort': '10', 'delta_eco': '4', 'temp_antifrost': '7', 'mode': '1', 'mode_temp_1': '0', 'mode_temp_2': '0', 'mode_temp_3': '0', 'hours': '12', 'minutes': '0', 'timer': '0', 'current_temp': '9', 'heat_mode': '1', 'power': '1', 'code': '0', 'lcd_on': '1', 'time_seconds': '29', 'time_minutes': '53', 'time_hour': '21', 'time_day': '1', 'time_month': '4', 'time_year': '21', 'time_weekday': '4', 'preset_monday': '0', 'preset_tuesday': '0', 'preset_wednesday': '0', 'preset_thursday': '0', 'preset_friday': '0', 'preset_saturday': '0', 'preset_sunday': '0', 'preset_day_1': '0', 'preset_day_2': '0', 'preset_day_3': '0', 'preset_day_4': '0', 'preset_day_5': '0', 'preset_day_6': '0', 'preset_day_7': '0', 'preset_day_8': '2', 'preset_day_9': '2', 'preset_day_10': '2', 'preset_day_11': '2', 'preset_day_12': '2', 'preset_day_13': '2', 'preset_day_14': '2', 'preset_day_15': '2', 'preset_day_16': '2', 'preset_day_17': '2', 'preset_day_18': '2', 'preset_day_19': '2', 'preset_day_20': '2', 'preset_day_21': '2', 'preset_day_22': '2', 'preset_day_23': '2', 'preset_day_24': '0', 'tempid': '188577', 'uid': '188577', 'mac': 'set', 'room': '...', 'sort': '0', 'type': 'convector24', 'curr_slot': '0', 'active_slot': '0', 'slop': '0', 'curr_scene': '0', 'curr_scene_id': '0', 'wait_slot': '0', 'curr_slot_dropped': '0', 'curr_scene_dropped': '0', 'online': '1', 'lock': '0'}], 'invalid': [], 'waiting': [], 'invalid_device': [], 'waiting_device': []}, 'error_code': '0', 'error_message': ''}

изучить модели в приложении и выяснить что передавать, чтобы изменить параметр.

Таким образом спустя какое-то время появилась первая MVP версия компонента, которая работала только на чтение текущего состояния конвектора

Поделившись успехами в комментарии к вдохновившей меня статье, я создал группу в телеграм, в надежде, что полученные результаты дадут толчок к развитию идеи интеграции устройств от Electrolux/Balu и др. и привлечению людей, которые уже имеют опыт в написании своих расширений для "умных домов".

К моему разочарованию в группу зашло всего 3 человека ))) с запросом на управление термостатом.

Таким образом появилась возможность добавить еще одно устройство для управления из HA

В процессе многочисленных чтений статей и изучения исходников компонентов для HA, удалось доработать компонент до приемлемого состояния, позволяющего частично заменить управление из приложения управлением через HA

Будет здорово, если найдутся единомышленники для дальнейшего развития интеграции.

Помимо описанного пути общения с устройством через подмену приложения, возможно пойти путем общения с устройством напрямую, а в идеале и созданием стиков для работы через zigbee и интеграции по MQTT. И для этого очень нужны люди с опытом и знаниями

Ссылка на репозиторий и telegram

Источник: https://habr.com/ru/post/552500/


Интересные статьи

Интересные статьи

Продолжаем «изобретать» домашний медиацентр с помощью Kubuntu и KODI.Сегодняшняя публикация будет совсем короткая, но надеюсь многим полезная. Особенно тем, кто не имеет ...
Перевод: Александр Росущан, Валентина Оборина, Полина Яровая Так как же высшая техника выживания сочетается с одобрением сексуальных удовольствий? Я думаю, что ключ к разрешению э...
Всем привет! На прошлой неделе мы опубликовали первую часть данной статьи, чем вызвали нешуточный холивар. Одной из главных претензий было отсутствие в статье упоминания password_hash, как мы...
В комментариях к предыдущей публикации hhba поделился статьёй, которая сама по себе достойна отдельной публикации, настолько там красивые решения приводятся. В дополнение к её обзору я постараюсь...
Привет, %username%. Как я и обещал ранее, я немного пропал в связи со своей командировкой. Нет, она ещё не закончилась, но навеяла некоторые мысли, которыми я решил поделиться с тобой. ...