Часть 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-версия компонента, которая работала только для чтения текущего состояния конвектора.
Делимся успехами в Комментарии тому, кто меня вдохновил статья , я создал группу в Telegram, в надежде, что полученные результаты дадут толчок развитию идеи интеграции устройств от Electrolux/Balu и других и привлечению людей, уже имеющих опыт написания собственных расширений для умного дома.
.
К моему разочарованию в группу пришло всего 3 человека))) с просьбой управлять термостатом.
Таким образом появилась возможность добавить еще одно устройство для управления с HA.
В процессе многочисленных прочтений статей и изучения исходного кода компонентов для HA нам удалось доработать компонент до приемлемого состояния, что позволило частично заменить управление из приложения на управление через HA.
Будет здорово, если найдутся единомышленники для дальнейшего развития интеграции.
Помимо описанного способа общения с устройством через замену приложения, можно пойти путем общения с устройством напрямую, а в идеале — создания флешек для работы через zigbee и интеграции через MQTT. И для этого нам очень нужны люди с опытом и знаниями.
Ссылка к репозиторий И телеграмма Теги: #Умный дом #обратное проектирование #electrolux #домашний помощник #умный
-
Что Такое Asp.net?
19 Oct, 24 -
Сжечь После Прочтения
19 Oct, 24 -
Создание Световых Часов
19 Oct, 24 -
В Рунете Начался Видеобум
19 Oct, 24 -
Узелки
19 Oct, 24 -
Маленькая Крошечная Функция
19 Oct, 24