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