From 67f9b2503a04d95c997adf69c4425608b7f1dc48 Mon Sep 17 00:00:00 2001 From: and7ey Date: Tue, 4 Jun 2024 11:54:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D0=B0=20=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=B8=D1=85=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=B9=D1=81=D1=82=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __init__.py | 9 +++++++++ api.py | 22 ++++++++++++---------- manifest.json | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/__init__.py b/__init__.py index 19278e6..025c781 100644 --- a/__init__.py +++ b/__init__.py @@ -2,14 +2,23 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant +from homeassistant.loader import async_get_integration import asyncio from . import api from .const import DOMAIN import logging + + _LOGGER = logging.getLogger(__name__) + PLATFORMS: list[str] = ["climate"] + + async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + integration = await async_get_integration(hass, DOMAIN) + _LOGGER.debug(f'Integration version: {integration.version}') + haier_object = api.Haier(hass, entry.data["email"], entry.data["password"]) hass.data.setdefault(DOMAIN, {})[entry.entry_id] = haier_object await hass.async_add_executor_job( diff --git a/api.py b/api.py index 8109a57..73cb3fc 100644 --- a/api.py +++ b/api.py @@ -123,16 +123,18 @@ def pull_data(self): if item.get("contractName", "") == "deviceList": state_data = item.get("state", {}) state_json = json.loads(state_data) - # haierevo://device?deviceId=12:34:56:78:90:68&type=AC&serialNum=AAC0M1E0000000000000&uitype=AC_BASE - device_title = state_json.get('items', [{}])[0].get('title', '') # only one device is supported - device_link = state_json.get('items', [{}])[0].get('action', {}).get('link', '') - parsed_link = urlparse(device_link) - query_params = parse_qs(parsed_link.query) - device_mac = query_params.get('deviceId', [''])[0] - device_mac = device_mac.replace('%3A', ':') - device_serial = query_params.get('serialNum', [''])[0] - _LOGGER.debug(f"Received device successfully, device title {device_title}, device mac {device_mac}, device serial {device_serial}") - self.devices.append(HaierAC(device_mac, device_serial, device_title, self)) + devices = state_json.get('items', [{}]) + for d in devices: + # haierevo://device?deviceId=12:34:56:78:90:68&type=AC&serialNum=AAC0M1E0000000000000&uitype=AC_BASE + device_title = d.get('title', '') # only one device is supported + device_link = d.get('action', {}).get('link', '') + parsed_link = urlparse(device_link) + query_params = parse_qs(parsed_link.query) + device_mac = query_params.get('deviceId', [''])[0] + device_mac = device_mac.replace('%3A', ':') + device_serial = query_params.get('serialNum', [''])[0] + _LOGGER.debug(f"Received device successfully, device title {device_title}, device mac {device_mac}, device serial {device_serial}") + self.devices.append(HaierAC(device_mac, device_serial, device_title, self)) break else: diff --git a/manifest.json b/manifest.json index 75ff743..5f7fb77 100644 --- a/manifest.json +++ b/manifest.json @@ -9,6 +9,6 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/and7ey/haier_evo/issues", "requirements": ["requests"], - "version": "0.2.0", + "version": "0.2.1", "zeroconf": [] } \ No newline at end of file