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

Часть 1



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

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

Первым шагом было внедрение http-клиента для авторизации.

Затем пришло время написать TCP-клиент. И в какой-то момент у меня в голове мелькнула мысль, а что если в первых версиях приложения связь с сервером/устройствами была не по TCP, а по REST. Мое любопытство снова пробудилось, и я начал искать и изучать старые версии приложения.

И, о чудо, успех! Я нашел именно то, что искал)

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

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

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

Таким образом, нет необходимости писать 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 из Home Assistant. Часть 2

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

.

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

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

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

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

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



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

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

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

Ссылка к репозиторий И телеграмма Теги: #Умный дом #обратное проектирование #electrolux #домашний помощник #умный

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.