From 72d2cf7c5bd07f6da0836f0304e0c4c6f5083e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Bachmann?= Date: Tue, 13 Jan 2026 15:38:22 +0100 Subject: [PATCH] add V 0.6.0-alpha --- CHANGELOG.md | 87 ++++++ __init__.py | 155 +++++++++++ api.py | 64 +++++ button.py | 200 +++++++++++++ config_flow.py | 108 ++++++++ const.py | 27 ++ coordinator.py | 197 +++++++++++++ icon.png | Bin 0 -> 112429 bytes logo.png | Bin 0 -> 157906 bytes manifest.json | 11 + sensor.py | 647 +++++++++++++++++++++++++++++++++++++++++++ switch.py | 184 ++++++++++++ translations/en.json | 32 +++ 13 files changed, 1712 insertions(+) create mode 100644 CHANGELOG.md create mode 100644 __init__.py create mode 100644 api.py create mode 100644 button.py create mode 100644 config_flow.py create mode 100644 const.py create mode 100644 coordinator.py create mode 100644 icon.png create mode 100644 logo.png create mode 100644 manifest.json create mode 100644 sensor.py create mode 100644 switch.py create mode 100644 translations/en.json diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c97cde6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,87 @@ +# Changelog + +## 0.6.0-alpha +- Extended Node monitoring with additional sensors: + - RAM Total (MB) and RAM Free (MB) + - Swap Used/Total/Free (MB) + - Node Storage (RootFS) Used/Total/Free in GB (3 decimals) +- Kept existing Node sensors: CPU (%), Load (1m), RAM Used (MB), Uptime (d/h/m) +- No changes to VM/CT entities, cleanup logic, or controls +- Add README.md and LICENSE + +## 0.5.2-alpha +- Options are now applied live without restart or integration reload + - Changing polling interval updates all coordinators immediately + - Changing IP preference mode/prefix updates all existing guest coordinators immediately +- Triggered refresh after saving options so sensors update quickly +- Renamed integration to "Easy Proxmox (by René Bachmann)" + +## 0.5.1-alpha +- Fixed Options Flow crash that caused: + “Config flow could not be loaded: 500 Internal Server Error” +- Fixed incompatibility with Home Assistant’s `OptionsFlow`: + - Removed illegal assignment to the read-only `config_entry` property + - Now fetching the ConfigEntry safely via `self.context["entry_id"]` +- Restored Options (gear icon) in the integration UI +- Options dialog can now be opened and saved without backend errors +- Improved compatibility with newer Home Assistant core versions +- Stabilized Config Flow import and initialization + + +## 0.5.0-alpha +- Added Options Flow: + - Configurable polling interval + - Configurable IP preference mode (prefer 192.168.*, private IPs, any, or custom prefix) +- Added Proxmox Node devices: + - One device per Proxmox node + - Sensors for: + - CPU usage (%) + - RAM used (MB) and total RAM (attribute) + - Uptime (days, hours, minutes) + - Load average (1 minute) +- VM/CT devices are now linked to their node device (via_device) +- Existing dynamic VM handling, rename detection and hard cleanup retained + +## 0.4.1 +- Fixed entity and device cleanup when a VM/CT is deleted: + - Entities are fully removed from Entity Registry + - Devices are fully removed from Device Registry + - No more “unavailable ghost entities” +- Guaranteed hard cleanup for removed guests + +## 0.4.0 +- Dynamic VM/CT discovery: + - New guests appear automatically without reload + - Removed guests are automatically cleaned up +- Live rename handling: + - Device names and entity names update when VM name changes +- Improved coordinator lifecycle handling + +## 0.3.0 +- One Home Assistant device per VM/CT +- Power Switch: + - ON → Start + - OFF → Shutdown (soft) +- Buttons: + - Reboot + - Stop (hard) +- Sensors per VM/CT: + - CPU usage (%) + - RAM usage (MB) + - Uptime (days, hours, minutes) + - Network In/Out (MB) + - Preferred IP address + list of all IPs +- VMID added to device and entity names +- Network and memory values converted to MB +- IP selection prioritizes LAN IPs (e.g. 192.168.*) + +## 0.2.0 +- Start, Stop and Reboot buttons added +- Domain renamed and integration structure stabilized +- Improved error handling and platform loading + +## 0.1.0 +- Initial Proxmox VE integration +- API token authentication +- Basic connectivity test via Config Flow +- First experimental entities diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..31095f8 --- /dev/null +++ b/__init__.py @@ -0,0 +1,155 @@ +import logging +from datetime import timedelta + +import aiohttp +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant + +from .api import ProxmoxClient +from .const import ( + DOMAIN, + PLATFORMS, + CONF_SCAN_INTERVAL, + CONF_IP_MODE, + CONF_IP_PREFIX, + DEFAULT_SCAN_INTERVAL, + DEFAULT_IP_MODE, + DEFAULT_IP_PREFIX, +) +from .coordinator import ProxmoxResourcesCoordinator, ProxmoxNodesCoordinator + +_LOGGER = logging.getLogger(__name__) + + +def _opt(entry: ConfigEntry, key: str, default): + return entry.options.get(key, default) + + +async def _apply_options_now(hass: HomeAssistant, entry: ConfigEntry) -> None: + """Apply updated options to all coordinators without reload/restart.""" + data = hass.data[DOMAIN][entry.entry_id] + + new_scan_interval = int(_opt(entry, CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)) + new_ip_mode = str(_opt(entry, CONF_IP_MODE, DEFAULT_IP_MODE)) + new_ip_prefix = str(_opt(entry, CONF_IP_PREFIX, DEFAULT_IP_PREFIX)) + + # store new values for future coordinator creations + data["scan_interval"] = new_scan_interval + data["ip_mode"] = new_ip_mode + data["ip_prefix"] = new_ip_prefix + + td = timedelta(seconds=new_scan_interval) + + # cluster coordinators + resources = data.get("resources") + if resources: + resources.update_interval = td + + nodes = data.get("nodes") + if nodes: + nodes.update_interval = td + + # node coordinators + for node_coord in (data.get("node_coordinators") or {}).values(): + node_coord.update_interval = td + + # guest coordinators (also update ip preference config) + for guest_coord in (data.get("guest_coordinators") or {}).values(): + guest_coord.update_interval = td + guest_coord.ip_mode = new_ip_mode + guest_coord.ip_prefix = new_ip_prefix + + # trigger refresh so UI updates quickly + tasks = [] + if resources: + tasks.append(resources.async_request_refresh()) + if nodes: + tasks.append(nodes.async_request_refresh()) + + for node_coord in (data.get("node_coordinators") or {}).values(): + tasks.append(node_coord.async_request_refresh()) + + for guest_coord in (data.get("guest_coordinators") or {}).values(): + tasks.append(guest_coord.async_request_refresh()) + + if tasks: + # don't fail all if one refresh fails + for t in tasks: + hass.async_create_task(t) + + _LOGGER.debug( + "Applied options live for %s: scan_interval=%s ip_mode=%s ip_prefix=%s", + entry.entry_id, + new_scan_interval, + new_ip_mode, + new_ip_prefix, + ) + + +async def _update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None: + """Called by HA when options are changed.""" + await _apply_options_now(hass, entry) + + +async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + session = aiohttp.ClientSession() + + client = ProxmoxClient( + host=entry.data["host"], + port=entry.data["port"], + token_name=entry.data["token_name"], + token_value=entry.data["token_value"], + verify_ssl=entry.data["verify_ssl"], + session=session, + ) + + scan_interval = int(_opt(entry, CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL)) + ip_mode = str(_opt(entry, CONF_IP_MODE, DEFAULT_IP_MODE)) + ip_prefix = str(_opt(entry, CONF_IP_PREFIX, DEFAULT_IP_PREFIX)) + + resources = ProxmoxResourcesCoordinator(hass, client, scan_interval=scan_interval) + nodes = ProxmoxNodesCoordinator(hass, client, scan_interval=scan_interval) + + await resources.async_config_entry_first_refresh() + await nodes.async_config_entry_first_refresh() + + hass.data.setdefault(DOMAIN, {}) + hass.data[DOMAIN][entry.entry_id] = { + "session": session, + "client": client, + "resources": resources, + "nodes": nodes, + "scan_interval": scan_interval, + "ip_mode": ip_mode, + "ip_prefix": ip_prefix, + "guest_coordinators": {}, # (node, vmtype, vmid) -> ProxmoxGuestCoordinator + "node_coordinators": {}, # node -> ProxmoxNodeCoordinator + "platform_cache": {}, # per-platform caches + unsub handles + } + + # Apply option updates live (gear icon -> save) + entry.async_on_unload(entry.add_update_listener(_update_listener)) + + await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) + _LOGGER.debug("Set up proxmox_pve entry %s", entry.entry_id) + return True + + +async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) + + if unload_ok: + data = hass.data.get(DOMAIN, {}).pop(entry.entry_id, None) + if data: + pc = data.get("platform_cache") or {} + for key in ("sensor_unsub", "switch_unsub", "button_unsub"): + for unsub in pc.get(key, []): + try: + unsub() + except Exception: + pass + + if data.get("session"): + await data["session"].close() + + return unload_ok diff --git a/api.py b/api.py new file mode 100644 index 0000000..948db3e --- /dev/null +++ b/api.py @@ -0,0 +1,64 @@ +import asyncio +from dataclasses import dataclass +from typing import Any + +import aiohttp + + +class ProxmoxApiError(Exception): + """Raised for Proxmox API errors.""" + + +@dataclass +class ProxmoxClient: + host: str + port: int + token_name: str # "USER@REALM!TOKENID" + token_value: str + verify_ssl: bool + session: aiohttp.ClientSession + + @property + def base_url(self) -> str: + return f"https://{self.host}:{self.port}/api2/json" + + def _headers(self) -> dict[str, str]: + return {"Authorization": f"PVEAPIToken={self.token_name}={self.token_value}"} + + async def _request(self, method: str, path: str, **kwargs) -> Any: + url = f"{self.base_url}{path}" + kwargs.setdefault("headers", {}) + kwargs["headers"].update(self._headers()) + + ssl = None if self.verify_ssl else False + + try: + async with self.session.request(method, url, ssl=ssl, **kwargs) as resp: + text = await resp.text() + if resp.status >= 400: + raise ProxmoxApiError(f"HTTP {resp.status} calling {path}: {text}") + payload = await resp.json() + return payload.get("data") + except (aiohttp.ClientError, asyncio.TimeoutError) as e: + raise ProxmoxApiError(str(e)) from e + + async def test_connection(self) -> None: + await self._request("GET", "/version") + + async def list_cluster_resources(self) -> list[dict[str, Any]]: + return await self._request("GET", "/cluster/resources", params={"type": "vm"}) + + async def list_nodes(self) -> list[dict[str, Any]]: + return await self._request("GET", "/nodes") + + async def get_node_status(self, node: str) -> dict[str, Any]: + return await self._request("GET", f"/nodes/{node}/status") + + async def guest_action(self, node: str, vmid: int, vmtype: str, action: str) -> Any: + return await self._request("POST", f"/nodes/{node}/{vmtype}/{vmid}/status/{action}") + + async def get_guest_status_current(self, node: str, vmid: int, vmtype: str) -> dict[str, Any]: + return await self._request("GET", f"/nodes/{node}/{vmtype}/{vmid}/status/current") + + async def get_qemu_agent_network_ifaces(self, node: str, vmid: int) -> dict[str, Any]: + return await self._request("GET", f"/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces") diff --git a/button.py b/button.py new file mode 100644 index 0000000..e39ae9c --- /dev/null +++ b/button.py @@ -0,0 +1,200 @@ +import asyncio +import logging + +from homeassistant.components.button import ButtonEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .const import DOMAIN +from .coordinator import ProxmoxGuestCoordinator + +_LOGGER = logging.getLogger(__name__) + + +def _guest_display_name(resource: dict) -> str: + name = resource.get("name") or f"{resource.get('type')} {resource.get('vmid')}" + return f"{name} (VMID {resource.get('vmid')})" + + +def _guest_id(resource: dict) -> str: + return f"{resource.get('node')}:{resource.get('type')}:{resource.get('vmid')}" + + +def _guest_key(resource: dict) -> tuple[str, str, int]: + return (resource["node"], resource["type"], int(resource["vmid"])) + + +def _model_for(resource: dict) -> str: + return "Virtual Machine" if resource.get("type") == "qemu" else "Container" + + +async def _get_guest_coordinator(hass: HomeAssistant, entry: ConfigEntry, resource: dict) -> ProxmoxGuestCoordinator: + data = hass.data[DOMAIN][entry.entry_id] + key = _guest_key(resource) + + if key in data["guest_coordinators"]: + return data["guest_coordinators"][key] + + coord = ProxmoxGuestCoordinator( + hass=hass, + client=data["client"], + node=key[0], + vmtype=key[1], + vmid=key[2], + scan_interval=int(data["scan_interval"]), + ip_mode=str(data["ip_mode"]), + ip_prefix=str(data["ip_prefix"]), + ) + data["guest_coordinators"][key] = coord + hass.async_create_task(coord.async_config_entry_first_refresh()) + return coord + + +def _update_device_name(hass: HomeAssistant, guest_id: str, new_name: str, model: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, guest_id)}) + if device and (device.name != new_name or device.model != model): + dev_reg.async_update_device(device.id, name=new_name, model=model) + + +async def _purge_guest_entity_registry(hass: HomeAssistant, entry: ConfigEntry, guest_id: str) -> None: + ent_reg = er.async_get(hass) + prefix = f"{entry.entry_id}_{guest_id}_" + + to_remove: list[str] = [] + for entity_id, ent in ent_reg.entities.items(): + if ent.config_entry_id != entry.entry_id: + continue + if ent.unique_id and ent.unique_id.startswith(prefix): + to_remove.append(entity_id) + + for entity_id in to_remove: + ent_reg.async_remove(entity_id) + + await asyncio.sleep(0) + + +async def _remove_device(hass: HomeAssistant, guest_id: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, guest_id)}) + if device: + dev_reg.async_remove_device(device.id) + + +class _BaseGuestButton(CoordinatorEntity, ButtonEntity): + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator) + self._entry = entry + self._resource = dict(resource) + + def update_resource(self, resource: dict) -> None: + self._resource = dict(resource) + + @property + def device_info(self): + return { + "identifiers": {(DOMAIN, _guest_id(self._resource))}, + "name": _guest_display_name(self._resource), + "manufacturer": "Proxmox VE", + "model": _model_for(self._resource), + } + + @property + def extra_state_attributes(self): + return {"vmid": self._resource.get("vmid"), "node": self._resource.get("node"), "type": self._resource.get("type")} + + +class ProxmoxGuestRebootButton(_BaseGuestButton): + _attr_icon = "mdi:restart" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_reboot" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Reboot" + + async def async_press(self) -> None: + client = self.hass.data[DOMAIN][self._entry.entry_id]["client"] + await client.guest_action(self._resource["node"], int(self._resource["vmid"]), self._resource["type"], "reboot") + await self.coordinator.async_request_refresh() + + +class ProxmoxGuestHardStopButton(_BaseGuestButton): + _attr_icon = "mdi:stop-circle" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_stop_hard" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Stop (hard)" + + async def async_press(self) -> None: + client = self.hass.data[DOMAIN][self._entry.entry_id]["client"] + await client.guest_action(self._resource["node"], int(self._resource["vmid"]), self._resource["type"], "stop") + await self.coordinator.async_request_refresh() + + +async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: + data = hass.data[DOMAIN][entry.entry_id] + resources_coord = data["resources"] + + platform_cache = data.setdefault("platform_cache", {}) + cache: dict[tuple[str, str, int], list[ButtonEntity]] = platform_cache.setdefault("button", {}) + + async def _sync() -> None: + resources = resources_coord.data or [] + current: dict[tuple[str, str, int], dict] = {} + + for r in resources: + if r.get("type") not in ("qemu", "lxc"): + continue + if r.get("node") is None or r.get("vmid") is None: + continue + current[_guest_key(r)] = r + + # update + for key, r in current.items(): + if key not in cache: + continue + gid = _guest_id(r) + _update_device_name(hass, gid, _guest_display_name(r), _model_for(r)) + for ent in cache[key]: + ent.update_resource(r) + ent.async_write_ha_state() + + # add + new_entities: list[ButtonEntity] = [] + for key, r in current.items(): + if key in cache: + continue + guest_coord = await _get_guest_coordinator(hass, entry, r) + ents = [ProxmoxGuestRebootButton(guest_coord, entry, r), ProxmoxGuestHardStopButton(guest_coord, entry, r)] + cache[key] = ents + new_entities.extend(ents) + + if new_entities: + async_add_entities(new_entities, update_before_add=False) + + # remove (hard cleanup) + removed = [k for k in list(cache.keys()) if k not in current] + for k in removed: + gid = f"{k[0]}:{k[1]}:{k[2]}" + + for ent in cache[k]: + await ent.async_remove() + del cache[k] + + data["guest_coordinators"].pop(k, None) + await _purge_guest_entity_registry(hass, entry, gid) + await _remove_device(hass, gid) + + await _sync() + unsub = resources_coord.async_add_listener(lambda: hass.async_create_task(_sync())) + platform_cache.setdefault("button_unsub", []).append(unsub) diff --git a/config_flow.py b/config_flow.py new file mode 100644 index 0000000..b2ca693 --- /dev/null +++ b/config_flow.py @@ -0,0 +1,108 @@ +import aiohttp +import voluptuous as vol + +from homeassistant import config_entries +from homeassistant.data_entry_flow import FlowResult + +from .api import ProxmoxClient, ProxmoxApiError +from .const import ( + DOMAIN, + CONF_HOST, + CONF_PORT, + CONF_VERIFY_SSL, + CONF_TOKEN_NAME, + CONF_TOKEN_VALUE, + DEFAULT_PORT, + DEFAULT_VERIFY_SSL, + # options + CONF_SCAN_INTERVAL, + CONF_IP_MODE, + CONF_IP_PREFIX, + DEFAULT_SCAN_INTERVAL, + DEFAULT_IP_MODE, + DEFAULT_IP_PREFIX, + IP_MODE_PREFER_192168, + IP_MODE_PREFER_PRIVATE, + IP_MODE_ANY, + IP_MODE_CUSTOM_PREFIX, +) + + +STEP_USER_SCHEMA = vol.Schema( + { + vol.Required(CONF_HOST): str, + vol.Optional(CONF_PORT, default=DEFAULT_PORT): vol.Coerce(int), + vol.Optional(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): bool, + vol.Required(CONF_TOKEN_NAME): str, + vol.Required(CONF_TOKEN_VALUE): str, + } +) + + +async def _validate_input(data: dict) -> None: + async with aiohttp.ClientSession() as session: + client = ProxmoxClient( + host=data[CONF_HOST], + port=int(data[CONF_PORT]), + token_name=data[CONF_TOKEN_NAME], + token_value=data[CONF_TOKEN_VALUE], + verify_ssl=bool(data[CONF_VERIFY_SSL]), + session=session, + ) + await client.test_connection() + + +def _options_schema(current: dict) -> vol.Schema: + ip_modes = [IP_MODE_PREFER_192168, IP_MODE_PREFER_PRIVATE, IP_MODE_ANY, IP_MODE_CUSTOM_PREFIX] + return vol.Schema( + { + vol.Required(CONF_SCAN_INTERVAL, default=int(current.get(CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL))): vol.All( + vol.Coerce(int), vol.Range(min=5, max=3600) + ), + vol.Required(CONF_IP_MODE, default=current.get(CONF_IP_MODE, DEFAULT_IP_MODE)): vol.In(ip_modes), + vol.Required(CONF_IP_PREFIX, default=current.get(CONF_IP_PREFIX, DEFAULT_IP_PREFIX)): str, + } + ) + + +class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): + VERSION = 1 + + async def async_step_user(self, user_input=None) -> FlowResult: + errors = {} + + if user_input is not None: + unique = f"{user_input[CONF_HOST]}:{user_input[CONF_PORT]}:{user_input[CONF_TOKEN_NAME]}" + await self.async_set_unique_id(unique) + self._abort_if_unique_id_configured() + + try: + await _validate_input(user_input) + except ProxmoxApiError: + errors["base"] = "cannot_connect" + except Exception: + errors["base"] = "unknown" + else: + title = f"Proxmox {user_input[CONF_HOST]}" + return self.async_create_entry(title=title, data=user_input) + + return self.async_show_form(step_id="user", data_schema=STEP_USER_SCHEMA, errors=errors) + + @staticmethod + def async_get_options_flow(config_entry: config_entries.ConfigEntry): + # IMPORTANT: Do not store config_entry on OptionsFlowHandler as attribute named config_entry. + return OptionsFlowHandler() + + +class OptionsFlowHandler(config_entries.OptionsFlow): + async def async_step_init(self, user_input=None) -> FlowResult: + # Fetch the config entry safely (works across HA versions) + entry_id = self.context.get("entry_id") + config_entry = self.hass.config_entries.async_get_entry(entry_id) if entry_id else None + + current = dict(config_entry.options) if config_entry else {} + + if user_input is not None: + return self.async_create_entry(title="", data=user_input) + + return self.async_show_form(step_id="init", data_schema=_options_schema(current)) diff --git a/const.py b/const.py new file mode 100644 index 0000000..e95cde7 --- /dev/null +++ b/const.py @@ -0,0 +1,27 @@ +DOMAIN = "proxmox_pve" + +CONF_HOST = "host" +CONF_PORT = "port" +CONF_VERIFY_SSL = "verify_ssl" +CONF_TOKEN_NAME = "token_name" +CONF_TOKEN_VALUE = "token_value" + +# Options +CONF_SCAN_INTERVAL = "scan_interval" +CONF_IP_MODE = "ip_mode" +CONF_IP_PREFIX = "ip_prefix" + +DEFAULT_PORT = 8006 +DEFAULT_VERIFY_SSL = True + +DEFAULT_SCAN_INTERVAL = 20 + +IP_MODE_PREFER_192168 = "prefer_192168" +IP_MODE_PREFER_PRIVATE = "prefer_private" +IP_MODE_ANY = "any" +IP_MODE_CUSTOM_PREFIX = "custom_prefix" + +DEFAULT_IP_MODE = IP_MODE_PREFER_192168 +DEFAULT_IP_PREFIX = "192.168." + +PLATFORMS = ["sensor", "switch", "button"] diff --git a/coordinator.py b/coordinator.py new file mode 100644 index 0000000..db38294 --- /dev/null +++ b/coordinator.py @@ -0,0 +1,197 @@ +import logging +from datetime import timedelta +from typing import Any + +from homeassistant.core import HomeAssistant +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed + +from .api import ProxmoxApiError, ProxmoxClient +from .const import ( + DEFAULT_SCAN_INTERVAL, + IP_MODE_ANY, + IP_MODE_CUSTOM_PREFIX, + IP_MODE_PREFER_192168, + IP_MODE_PREFER_PRIVATE, +) + +_LOGGER = logging.getLogger(__name__) + + +def _is_private_ipv4(addr: str) -> bool: + if addr.startswith("10."): + return True + if addr.startswith("192.168."): + return True + if addr.startswith("172."): + try: + second = int(addr.split(".")[1]) + return 16 <= second <= 31 + except Exception: + return False + return False + + +def _pick_preferred_ip(ips: list[str], mode: str, prefix: str | None) -> str | None: + if not ips: + return None + + # normalize + prefix = (prefix or "").strip() + + if mode == IP_MODE_CUSTOM_PREFIX and prefix: + for ip in ips: + if ip.startswith(prefix): + return ip + + if mode == IP_MODE_PREFER_192168: + for ip in ips: + if ip.startswith("192.168."): + return ip + for ip in ips: + if _is_private_ipv4(ip): + return ip + for ip in ips: + if "." in ip: + return ip + return ips[0] + + if mode == IP_MODE_PREFER_PRIVATE: + for ip in ips: + if _is_private_ipv4(ip): + return ip + for ip in ips: + if "." in ip: + return ip + return ips[0] + + # IP_MODE_ANY (or fallback) + for ip in ips: + if "." in ip: + return ip + return ips[0] + + +class ProxmoxResourcesCoordinator(DataUpdateCoordinator[list[dict[str, Any]]]): + """Coordinator for /cluster/resources?type=vm""" + + def __init__(self, hass: HomeAssistant, client: ProxmoxClient, scan_interval: int = DEFAULT_SCAN_INTERVAL) -> None: + self.client = client + super().__init__( + hass=hass, + logger=_LOGGER, + name="proxmox_pve_resources", + update_method=self._async_update_data, + update_interval=timedelta(seconds=scan_interval), + ) + + async def _async_update_data(self) -> list[dict[str, Any]]: + try: + return await self.client.list_cluster_resources() + except ProxmoxApiError as err: + raise UpdateFailed(str(err)) from err + + +class ProxmoxNodesCoordinator(DataUpdateCoordinator[list[dict[str, Any]]]): + """Coordinator for /nodes""" + + def __init__(self, hass: HomeAssistant, client: ProxmoxClient, scan_interval: int = DEFAULT_SCAN_INTERVAL) -> None: + self.client = client + super().__init__( + hass=hass, + logger=_LOGGER, + name="proxmox_pve_nodes", + update_method=self._async_update_data, + update_interval=timedelta(seconds=scan_interval), + ) + + async def _async_update_data(self) -> list[dict[str, Any]]: + try: + return await self.client.list_nodes() + except ProxmoxApiError as err: + raise UpdateFailed(str(err)) from err + + +class ProxmoxNodeCoordinator(DataUpdateCoordinator[dict[str, Any]]): + """Coordinator per node: /nodes/{node}/status""" + + def __init__( + self, + hass: HomeAssistant, + client: ProxmoxClient, + node: str, + scan_interval: int = DEFAULT_SCAN_INTERVAL, + ) -> None: + self.client = client + self.node = node + super().__init__( + hass=hass, + logger=_LOGGER, + name=f"proxmox_pve_node_{node}", + update_method=self._async_update_data, + update_interval=timedelta(seconds=scan_interval), + ) + + async def _async_update_data(self) -> dict[str, Any]: + try: + return await self.client.get_node_status(self.node) + except ProxmoxApiError as err: + raise UpdateFailed(str(err)) from err + + +class ProxmoxGuestCoordinator(DataUpdateCoordinator[dict[str, Any]]): + """Coordinator per guest: /status/current (+ best-effort IPs).""" + + def __init__( + self, + hass: HomeAssistant, + client: ProxmoxClient, + node: str, + vmid: int, + vmtype: str, + scan_interval: int = DEFAULT_SCAN_INTERVAL, + ip_mode: str = IP_MODE_PREFER_192168, + ip_prefix: str | None = None, + ) -> None: + self.client = client + self.node = node + self.vmid = vmid + self.vmtype = vmtype + self.ip_mode = ip_mode + self.ip_prefix = ip_prefix + + super().__init__( + hass=hass, + logger=_LOGGER, + name=f"proxmox_pve_guest_{node}_{vmtype}_{vmid}", + update_method=self._async_update_data, + update_interval=timedelta(seconds=scan_interval), + ) + + async def _async_update_data(self) -> dict[str, Any]: + try: + status = await self.client.get_guest_status_current(self.node, self.vmid, self.vmtype) + except ProxmoxApiError as err: + raise UpdateFailed(str(err)) from err + + ip_list: list[str] = [] + + if self.vmtype == "qemu": + try: + agent = await self.client.get_qemu_agent_network_ifaces(self.node, self.vmid) + for iface in agent.get("result", []): + for ip in iface.get("ip-addresses", []): + addr = ip.get("ip-address") + if not addr: + continue + if addr.startswith("127.") or addr.startswith("fe80:") or addr == "::1": + continue + ip_list.append(addr) + except ProxmoxApiError: + pass + except Exception: + pass + + ip_list = sorted(set(ip_list)) + status["_ip_addresses"] = ip_list + status["_preferred_ip"] = _pick_preferred_ip(ip_list, self.ip_mode, self.ip_prefix) + return status diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..de0a95d8ceb346e71ddb5afdf4317091cbdd16ac GIT binary patch literal 112429 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 D?sk@U literal 0 HcmV?d00001 diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..98deb830f1cc3a27a1059a4a8a7c178be131f68a GIT binary patch literal 157906 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%0AUmTy7@PN*}lm#tjv^{N&kZq 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 D`Cdm$ literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..2bea100 --- /dev/null +++ b/manifest.json @@ -0,0 +1,11 @@ +{ + "domain": "proxmox_pve", + "name": "Easy Proxmox (by René Bachmann)", + "version": "0.6.0-alpha", + "documentation": "https://example.invalid", + "requirements": ["aiohttp>=3.9.0"], + "codeowners": ["@BAHMCLOUD", "@ReneBachmann"], + "config_flow": true, + "iot_class": "local_polling", + "integration_type": "service" +} diff --git a/sensor.py b/sensor.py new file mode 100644 index 0000000..a268b67 --- /dev/null +++ b/sensor.py @@ -0,0 +1,647 @@ +import asyncio +import logging +from typing import Any + +from homeassistant.components.sensor import SensorEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.const import PERCENTAGE, UnitOfInformation +from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .const import DOMAIN +from .coordinator import ProxmoxGuestCoordinator, ProxmoxNodeCoordinator + +_LOGGER = logging.getLogger(__name__) + + +def _bytes_to_mb(value: int | float) -> float: + return round(float(value) / (1024.0 * 1024.0), 2) + + +def _bytes_to_gb_3(value: int | float) -> float: + return round(float(value) / (1024.0 * 1024.0 * 1024.0), 3) + + +def _format_uptime(seconds: int) -> str: + if seconds < 0: + seconds = 0 + days = seconds // 86400 + rem = seconds % 86400 + hours = rem // 3600 + minutes = (rem % 3600) // 60 + return f"{days}d {hours}h {minutes:02d}m" + + +# ----------------------- +# Node helpers +# ----------------------- +def _node_id(node: str) -> str: + return f"node:{node}" + + +def _node_name(node: str) -> str: + return f"Proxmox Node {node}" + + +async def _get_node_coordinator(hass: HomeAssistant, entry: ConfigEntry, node: str) -> ProxmoxNodeCoordinator: + data = hass.data[DOMAIN][entry.entry_id] + if node in data["node_coordinators"]: + return data["node_coordinators"][node] + + coord = ProxmoxNodeCoordinator( + hass=hass, + client=data["client"], + node=node, + scan_interval=int(data["scan_interval"]), + ) + data["node_coordinators"][node] = coord + hass.async_create_task(coord.async_config_entry_first_refresh()) + return coord + + +# ----------------------- +# Guest helpers +# ----------------------- +def _guest_display_name(resource: dict) -> str: + name = resource.get("name") or f"{resource.get('type')} {resource.get('vmid')}" + return f"{name} (VMID {resource.get('vmid')})" + + +def _guest_id(resource: dict) -> str: + return f"{resource.get('node')}:{resource.get('type')}:{resource.get('vmid')}" + + +def _guest_key(resource: dict) -> tuple[str, str, int]: + return (resource["node"], resource["type"], int(resource["vmid"])) + + +def _model_for(resource: dict) -> str: + return "Virtual Machine" if resource.get("type") == "qemu" else "Container" + + +async def _get_guest_coordinator(hass: HomeAssistant, entry: ConfigEntry, resource: dict) -> ProxmoxGuestCoordinator: + data = hass.data[DOMAIN][entry.entry_id] + key = _guest_key(resource) + + if key in data["guest_coordinators"]: + return data["guest_coordinators"][key] + + coord = ProxmoxGuestCoordinator( + hass=hass, + client=data["client"], + node=key[0], + vmtype=key[1], + vmid=key[2], + scan_interval=int(data["scan_interval"]), + ip_mode=str(data["ip_mode"]), + ip_prefix=str(data["ip_prefix"]), + ) + data["guest_coordinators"][key] = coord + hass.async_create_task(coord.async_config_entry_first_refresh()) + return coord + + +def _update_device_name(hass: HomeAssistant, guest_id: str, new_name: str, model: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, guest_id)}) + if device and (device.name != new_name or device.model != model): + dev_reg.async_update_device(device.id, name=new_name, model=model) + + +async def _purge_guest_entity_registry(hass: HomeAssistant, entry: ConfigEntry, guest_id: str) -> None: + ent_reg = er.async_get(hass) + prefix = f"{entry.entry_id}_{guest_id}_" + + to_remove: list[str] = [] + for entity_id, ent in ent_reg.entities.items(): + if ent.config_entry_id != entry.entry_id: + continue + if ent.unique_id and ent.unique_id.startswith(prefix): + to_remove.append(entity_id) + + for entity_id in to_remove: + ent_reg.async_remove(entity_id) + + await asyncio.sleep(0) + + +async def _remove_device(hass: HomeAssistant, device_ident: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, device_ident)}) + if device: + dev_reg.async_remove_device(device.id) + + +# ----------------------- +# Node Entities +# ----------------------- +class ProxmoxNodeBase(CoordinatorEntity): + def __init__(self, coordinator: ProxmoxNodeCoordinator, entry: ConfigEntry, node: str) -> None: + super().__init__(coordinator) + self._entry = entry + self._node = node + + @property + def device_info(self): + return { + "identifiers": {(DOMAIN, _node_id(self._node))}, + "name": _node_name(self._node), + "manufacturer": "Proxmox VE", + "model": "Node", + } + + @property + def extra_state_attributes(self) -> dict[str, Any]: + return {"node": self._node} + + +class ProxmoxNodeCpuSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:cpu-64-bit" + _attr_native_unit_of_measurement = PERCENTAGE + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_cpu" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} CPU" + + @property + def native_value(self) -> float | None: + cpu = (self.coordinator.data or {}).get("cpu") + return None if cpu is None else round(float(cpu) * 100.0, 2) + + +class ProxmoxNodeUptimeSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:timer-outline" + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_uptime" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Uptime" + + @property + def native_value(self) -> str | None: + up = (self.coordinator.data or {}).get("uptime") + return None if up is None else _format_uptime(int(up)) + + +class ProxmoxNodeLoad1Sensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:gauge" + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_load1" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Load (1m)" + + @property + def native_value(self) -> float | None: + la = (self.coordinator.data or {}).get("loadavg") + if not la: + return None + try: + if isinstance(la, list) and la: + return float(la[0]) + if isinstance(la, str): + return float(la.split()[0]) + except Exception: + return None + return None + + +# ---- RAM (MB) +class ProxmoxNodeRamUsedSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:memory" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_ram_used_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} RAM Used" + + @property + def native_value(self) -> float | None: + mem = (self.coordinator.data or {}).get("memory", {}).get("used") + return None if mem is None else _bytes_to_mb(int(mem)) + + +class ProxmoxNodeRamTotalSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:memory" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_ram_total_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} RAM Total" + + @property + def native_value(self) -> float | None: + total = (self.coordinator.data or {}).get("memory", {}).get("total") + return None if total is None else _bytes_to_mb(int(total)) + + +class ProxmoxNodeRamFreeSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:memory" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_ram_free_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} RAM Free" + + @property + def native_value(self) -> float | None: + free = (self.coordinator.data or {}).get("memory", {}).get("free") + return None if free is None else _bytes_to_mb(int(free)) + + +# ---- Swap (MB) +class ProxmoxNodeSwapUsedSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:swap-horizontal" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_swap_used_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Swap Used" + + @property + def native_value(self) -> float | None: + used = (self.coordinator.data or {}).get("swap", {}).get("used") + return None if used is None else _bytes_to_mb(int(used)) + + +class ProxmoxNodeSwapTotalSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:swap-horizontal" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_swap_total_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Swap Total" + + @property + def native_value(self) -> float | None: + total = (self.coordinator.data or {}).get("swap", {}).get("total") + return None if total is None else _bytes_to_mb(int(total)) + + +class ProxmoxNodeSwapFreeSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:swap-horizontal" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_swap_free_mb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Swap Free" + + @property + def native_value(self) -> float | None: + free = (self.coordinator.data or {}).get("swap", {}).get("free") + return None if free is None else _bytes_to_mb(int(free)) + + +# ---- RootFS / Node Storage (GB, 3 decimals) +class ProxmoxNodeStorageUsedSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:harddisk" + _attr_native_unit_of_measurement = "GB" + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_storage_used_gb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Storage Used" + + @property + def native_value(self) -> float | None: + used = (self.coordinator.data or {}).get("rootfs", {}).get("used") + return None if used is None else _bytes_to_gb_3(int(used)) + + +class ProxmoxNodeStorageTotalSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:harddisk" + _attr_native_unit_of_measurement = "GB" + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_storage_total_gb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Storage Total" + + @property + def native_value(self) -> float | None: + total = (self.coordinator.data or {}).get("rootfs", {}).get("total") + return None if total is None else _bytes_to_gb_3(int(total)) + + +class ProxmoxNodeStorageFreeSensor(ProxmoxNodeBase, SensorEntity): + _attr_icon = "mdi:harddisk" + _attr_native_unit_of_measurement = "GB" + + def __init__(self, coordinator, entry, node: str) -> None: + super().__init__(coordinator, entry, node) + self._attr_unique_id = f"{entry.entry_id}_{_node_id(node)}_storage_free_gb" + + @property + def name(self) -> str: + return f"{_node_name(self._node)} Storage Free" + + @property + def native_value(self) -> float | None: + free = (self.coordinator.data or {}).get("rootfs", {}).get("free") + return None if free is None else _bytes_to_gb_3(int(free)) + + +# ----------------------- +# Guest Entities +# ----------------------- +class ProxmoxBaseGuestEntity(CoordinatorEntity): + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator) + self._entry = entry + self._resource = dict(resource) + + def update_resource(self, resource: dict) -> None: + self._resource = dict(resource) + + @property + def device_info(self): + node = self._resource.get("node") + via = (DOMAIN, _node_id(node)) if node else None + + info = { + "identifiers": {(DOMAIN, _guest_id(self._resource))}, + "name": _guest_display_name(self._resource), + "manufacturer": "Proxmox VE", + "model": _model_for(self._resource), + } + if via: + info["via_device"] = via + return info + + @property + def extra_state_attributes(self) -> dict[str, Any]: + return {"vmid": self._resource.get("vmid"), "node": self._resource.get("node"), "type": self._resource.get("type")} + + +class ProxmoxGuestStatusSensor(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:power" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_status" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Status" + + @property + def native_value(self) -> str | None: + return (self.coordinator.data or {}).get("status") + + +class ProxmoxGuestCpuSensor(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:cpu-64-bit" + _attr_native_unit_of_measurement = PERCENTAGE + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_cpu" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} CPU" + + @property + def native_value(self) -> float | None: + cpu = (self.coordinator.data or {}).get("cpu") + return None if cpu is None else round(float(cpu) * 100.0, 2) + + +class ProxmoxGuestRamUsedMB(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:memory" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_ram_used_mb" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} RAM Used" + + @property + def native_value(self) -> float | None: + mem = (self.coordinator.data or {}).get("mem") + return None if mem is None else _bytes_to_mb(int(mem)) + + +class ProxmoxGuestUptimePretty(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:timer-outline" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_uptime_pretty" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Uptime" + + @property + def native_value(self) -> str | None: + uptime = (self.coordinator.data or {}).get("uptime") + return None if uptime is None else _format_uptime(int(uptime)) + + +class ProxmoxGuestNetInMB(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:download-network" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_netin_mb" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Network In" + + @property + def native_value(self) -> float | None: + v = (self.coordinator.data or {}).get("netin") + return None if v is None else _bytes_to_mb(int(v)) + + +class ProxmoxGuestNetOutMB(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:upload-network" + _attr_native_unit_of_measurement = UnitOfInformation.MEGABYTES + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_netout_mb" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Network Out" + + @property + def native_value(self) -> float | None: + v = (self.coordinator.data or {}).get("netout") + return None if v is None else _bytes_to_mb(int(v)) + + +class ProxmoxGuestPreferredIP(ProxmoxBaseGuestEntity, SensorEntity): + _attr_icon = "mdi:ip-network" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator, entry, resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_ip_preferred" + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} IP" + + @property + def native_value(self) -> str | None: + return (self.coordinator.data or {}).get("_preferred_ip") + + @property + def extra_state_attributes(self) -> dict[str, Any]: + attrs = super().extra_state_attributes + attrs["ip_addresses"] = (self.coordinator.data or {}).get("_ip_addresses", []) + return attrs + + +async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: + data = hass.data[DOMAIN][entry.entry_id] + resources_coord = data["resources"] + nodes_coord = data["nodes"] + + platform_cache = data.setdefault("platform_cache", {}) + guest_cache: dict[tuple[str, str, int], list[SensorEntity]] = platform_cache.setdefault("sensor_guest", {}) + node_cache: dict[str, list[SensorEntity]] = platform_cache.setdefault("sensor_node", {}) + + async def _sync_nodes() -> None: + nodes = nodes_coord.data or [] + current_nodes = {n.get("node") for n in nodes if n.get("node")} + + new_entities: list[SensorEntity] = [] + for node in sorted(current_nodes): + if node in node_cache: + continue + + node_c = await _get_node_coordinator(hass, entry, node) + ents = [ + ProxmoxNodeCpuSensor(node_c, entry, node), + ProxmoxNodeLoad1Sensor(node_c, entry, node), + ProxmoxNodeRamUsedSensor(node_c, entry, node), + ProxmoxNodeRamTotalSensor(node_c, entry, node), + ProxmoxNodeRamFreeSensor(node_c, entry, node), + ProxmoxNodeSwapUsedSensor(node_c, entry, node), + ProxmoxNodeSwapTotalSensor(node_c, entry, node), + ProxmoxNodeSwapFreeSensor(node_c, entry, node), + ProxmoxNodeStorageUsedSensor(node_c, entry, node), + ProxmoxNodeStorageTotalSensor(node_c, entry, node), + ProxmoxNodeStorageFreeSensor(node_c, entry, node), + ProxmoxNodeUptimeSensor(node_c, entry, node), + ] + node_cache[node] = ents + new_entities.extend(ents) + + if new_entities: + async_add_entities(new_entities, update_before_add=False) + + removed = [n for n in list(node_cache.keys()) if n not in current_nodes] + for n in removed: + for ent in node_cache[n]: + await ent.async_remove() + del node_cache[n] + await _remove_device(hass, _node_id(n)) + + async def _sync_guests() -> None: + resources = resources_coord.data or [] + current: dict[tuple[str, str, int], dict] = {} + + for r in resources: + if r.get("type") not in ("qemu", "lxc"): + continue + if r.get("node") is None or r.get("vmid") is None: + continue + current[_guest_key(r)] = r + + for key, r in current.items(): + if key not in guest_cache: + continue + gid = _guest_id(r) + _update_device_name(hass, gid, _guest_display_name(r), _model_for(r)) + for ent in guest_cache[key]: + ent.update_resource(r) + ent.async_write_ha_state() + + new_entities: list[SensorEntity] = [] + for key, r in current.items(): + if key in guest_cache: + continue + guest_coord = await _get_guest_coordinator(hass, entry, r) + ents = [ + ProxmoxGuestStatusSensor(guest_coord, entry, r), + ProxmoxGuestCpuSensor(guest_coord, entry, r), + ProxmoxGuestRamUsedMB(guest_coord, entry, r), + ProxmoxGuestUptimePretty(guest_coord, entry, r), + ProxmoxGuestNetInMB(guest_coord, entry, r), + ProxmoxGuestNetOutMB(guest_coord, entry, r), + ProxmoxGuestPreferredIP(guest_coord, entry, r), + ] + guest_cache[key] = ents + new_entities.extend(ents) + + if new_entities: + async_add_entities(new_entities, update_before_add=False) + + removed = [k for k in list(guest_cache.keys()) if k not in current] + for k in removed: + gid = f"{k[0]}:{k[1]}:{k[2]}" + for ent in guest_cache[k]: + await ent.async_remove() + del guest_cache[k] + + data["guest_coordinators"].pop(k, None) + await _purge_guest_entity_registry(hass, entry, gid) + await _remove_device(hass, gid) + + await _sync_nodes() + await _sync_guests() + + unsub_nodes = nodes_coord.async_add_listener(lambda: hass.async_create_task(_sync_nodes())) + unsub_guests = resources_coord.async_add_listener(lambda: hass.async_create_task(_sync_guests())) + platform_cache.setdefault("sensor_unsub", []).extend([unsub_nodes, unsub_guests]) diff --git a/switch.py b/switch.py new file mode 100644 index 0000000..0af53da --- /dev/null +++ b/switch.py @@ -0,0 +1,184 @@ +import asyncio +import logging + +from homeassistant.components.switch import SwitchEntity +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr, entity_registry as er +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .const import DOMAIN +from .coordinator import ProxmoxGuestCoordinator + +_LOGGER = logging.getLogger(__name__) + + +def _guest_display_name(resource: dict) -> str: + name = resource.get("name") or f"{resource.get('type')} {resource.get('vmid')}" + return f"{name} (VMID {resource.get('vmid')})" + + +def _guest_id(resource: dict) -> str: + return f"{resource.get('node')}:{resource.get('type')}:{resource.get('vmid')}" + + +def _guest_key(resource: dict) -> tuple[str, str, int]: + return (resource["node"], resource["type"], int(resource["vmid"])) + + +def _model_for(resource: dict) -> str: + return "Virtual Machine" if resource.get("type") == "qemu" else "Container" + + +async def _get_guest_coordinator(hass: HomeAssistant, entry: ConfigEntry, resource: dict) -> ProxmoxGuestCoordinator: + data = hass.data[DOMAIN][entry.entry_id] + key = _guest_key(resource) + + if key in data["guest_coordinators"]: + return data["guest_coordinators"][key] + + coord = ProxmoxGuestCoordinator( + hass=hass, + client=data["client"], + node=key[0], + vmtype=key[1], + vmid=key[2], + scan_interval=int(data["scan_interval"]), + ip_mode=str(data["ip_mode"]), + ip_prefix=str(data["ip_prefix"]), + ) + data["guest_coordinators"][key] = coord + hass.async_create_task(coord.async_config_entry_first_refresh()) + return coord + + +def _update_device_name(hass: HomeAssistant, guest_id: str, new_name: str, model: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, guest_id)}) + if device and (device.name != new_name or device.model != model): + dev_reg.async_update_device(device.id, name=new_name, model=model) + + +async def _purge_guest_entity_registry(hass: HomeAssistant, entry: ConfigEntry, guest_id: str) -> None: + ent_reg = er.async_get(hass) + prefix = f"{entry.entry_id}_{guest_id}_" + + to_remove: list[str] = [] + for entity_id, ent in ent_reg.entities.items(): + if ent.config_entry_id != entry.entry_id: + continue + if ent.unique_id and ent.unique_id.startswith(prefix): + to_remove.append(entity_id) + + for entity_id in to_remove: + ent_reg.async_remove(entity_id) + + await asyncio.sleep(0) + + +async def _remove_device(hass: HomeAssistant, guest_id: str) -> None: + dev_reg = dr.async_get(hass) + device = dev_reg.async_get_device(identifiers={(DOMAIN, guest_id)}) + if device: + dev_reg.async_remove_device(device.id) + + +class ProxmoxGuestPowerSwitch(CoordinatorEntity, SwitchEntity): + _attr_icon = "mdi:power" + + def __init__(self, coordinator, entry: ConfigEntry, resource: dict) -> None: + super().__init__(coordinator) + self._entry = entry + self._resource = dict(resource) + self._attr_unique_id = f"{entry.entry_id}_{_guest_id(resource)}_power" + + def update_resource(self, resource: dict) -> None: + self._resource = dict(resource) + + @property + def name(self) -> str: + return f"{_guest_display_name(self._resource)} Power" + + @property + def device_info(self): + return { + "identifiers": {(DOMAIN, _guest_id(self._resource))}, + "name": _guest_display_name(self._resource), + "manufacturer": "Proxmox VE", + "model": _model_for(self._resource), + } + + @property + def extra_state_attributes(self): + return {"vmid": self._resource.get("vmid"), "node": self._resource.get("node"), "type": self._resource.get("type")} + + @property + def is_on(self) -> bool: + return (self.coordinator.data or {}).get("status") == "running" + + async def async_turn_on(self, **kwargs) -> None: + client = self.hass.data[DOMAIN][self._entry.entry_id]["client"] + await client.guest_action(self._resource["node"], int(self._resource["vmid"]), self._resource["type"], "start") + await self.coordinator.async_request_refresh() + + async def async_turn_off(self, **kwargs) -> None: + client = self.hass.data[DOMAIN][self._entry.entry_id]["client"] + await client.guest_action(self._resource["node"], int(self._resource["vmid"]), self._resource["type"], "shutdown") + await self.coordinator.async_request_refresh() + + +async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback) -> None: + data = hass.data[DOMAIN][entry.entry_id] + resources_coord = data["resources"] + + platform_cache = data.setdefault("platform_cache", {}) + cache: dict[tuple[str, str, int], SwitchEntity] = platform_cache.setdefault("switch", {}) + + async def _sync() -> None: + resources = resources_coord.data or [] + current: dict[tuple[str, str, int], dict] = {} + + for r in resources: + if r.get("type") not in ("qemu", "lxc"): + continue + if r.get("node") is None or r.get("vmid") is None: + continue + current[_guest_key(r)] = r + + # update + for key, r in current.items(): + if key not in cache: + continue + gid = _guest_id(r) + _update_device_name(hass, gid, _guest_display_name(r), _model_for(r)) + ent = cache[key] + ent.update_resource(r) + ent.async_write_ha_state() + + # add + new_entities: list[SwitchEntity] = [] + for key, r in current.items(): + if key in cache: + continue + guest_coord = await _get_guest_coordinator(hass, entry, r) + ent = ProxmoxGuestPowerSwitch(guest_coord, entry, r) + cache[key] = ent + new_entities.append(ent) + + if new_entities: + async_add_entities(new_entities, update_before_add=False) + + # remove (hard cleanup) + removed = [k for k in list(cache.keys()) if k not in current] + for k in removed: + gid = f"{k[0]}:{k[1]}:{k[2]}" + await cache[k].async_remove() + del cache[k] + data["guest_coordinators"].pop(k, None) + await _purge_guest_entity_registry(hass, entry, gid) + await _remove_device(hass, gid) + + await _sync() + unsub = resources_coord.async_add_listener(lambda: hass.async_create_task(_sync())) + platform_cache.setdefault("switch_unsub", []).append(unsub) diff --git a/translations/en.json b/translations/en.json new file mode 100644 index 0000000..912dd0b --- /dev/null +++ b/translations/en.json @@ -0,0 +1,32 @@ +{ + "config": { + "error": { + "cannot_connect": "Failed to connect to Proxmox API.", + "unknown": "Unknown error." + }, + "step": { + "user": { + "title": "Connect to Proxmox VE", + "data": { + "host": "Host", + "port": "Port", + "verify_ssl": "Verify SSL certificate", + "token_name": "Token name (USER@REALM!TOKENID)", + "token_value": "Token secret" + } + } + } + }, + "options": { + "step": { + "init": { + "title": "Proxmox VE Options", + "data": { + "scan_interval": "Polling interval (seconds)", + "ip_mode": "Preferred IP mode", + "ip_prefix": "Custom IP prefix (only for custom mode)" + } + } + } + } +}