Kami mengontrol konvektor dan termostat Electrolux dari Home Assistant. Bagian 2

Bagian 1





Transfer pengetahuan yang diperoleh ke HA

Saatnya menerapkan pelajaran yang dipelajari dengan Python dan mengintegrasikannya ke dalam Asisten Rumah.





Karena saya tidak memiliki pengalaman dalam menulis komponen untuk HA, saya harus menghabiskan waktu mempelajari cara menulis komponen saya sendiri untuk integrasi.





Langkah pertama adalah menerapkan klien http untuk otorisasi. Kemudian mulai menulis klien tcp. Dan di beberapa titik, sebuah pemikiran terlintas di benak saya: bagaimana jika di versi pertama aplikasi komunikasi dengan server / perangkat tidak melalui TCP, tetapi melalui REST.





Rasa ingin tahu muncul lagi dalam diri saya, dan saya mulai mencari dan mempelajari aplikasi versi lama. Dan, lihatlah, sukses! Saya menemukan apa yang saya cari)





Setelah mempelajari aplikasi, saya menemukan pegangan lain apa yang ada untuk permintaan, selain otorisasi. Inilah yang saya butuhkan: meminta status perangkat dan mengirimkan perubahan.





Jadi, tidak perlu menulis klien tcp dan Anda bisa fokus bekerja dengan permintaan http.





Langkah pertama adalah mencari tahu apa arti data yang dikembalikan oleh server.





{'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': ''}
      
      



periksa model dalam aplikasi dan cari tahu apa yang harus dilalui untuk mengubah parameter.





Dengan demikian, setelah beberapa waktu, versi MVP pertama dari komponen tersebut muncul, yang hanya berfungsi untuk membaca status konvektor saat ini.





, , , Electrolux/Balu . , " ".





3 ))) .





HA





HA, , HA





, .





Selain cara komunikasi yang dijelaskan dengan perangkat melalui substitusi aplikasi, dimungkinkan untuk pergi dengan berkomunikasi dengan perangkat secara langsung, dan idealnya dengan membuat tongkat untuk bekerja melalui integrasi zigbee dan MQTT. Dan untuk ini, orang yang memiliki pengalaman dan pengetahuan sangat dibutuhkan.





Tautan ke repositori dan telegram








All Articles