import logging from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr from .const import DOMAIN _LOGGER = logging.getLogger(__name__) async def async_setup(hass: HomeAssistant, config: dict): return True async def async_setup_entry(hass: HomeAssistant, entry): """Set up entry, create specific contact device, central hub and forward to platforms.""" hass.data.setdefault(DOMAIN, {}) hass.data[DOMAIN][entry.entry_id] = entry.data device_registry = dr.async_get(hass) # 1. Eigenes Gerät SPEZIFISCH für diesen Account/Kontakt anlegen device_registry.async_get_or_create( config_entry_id=entry.entry_id, identifiers={(DOMAIN, entry.entry_id)}, # Einzigartig pro Eintrag name=f"WhatsApp {entry.title}", manufacturer="Bahmcloud", model="Kontakt-Endpunkt", sw_version="0.2.2", ) # 2. Zentralen System-Hub NUR EINMALIG anlegen (wird an den ersten geladenen Account gekoppelt) if not hass.data[DOMAIN].get("hub_device_created"): device_registry.async_get_or_create( config_entry_id=entry.entry_id, identifiers={(DOMAIN, "global_bridge_hub")}, name="WhatsApp Bridge Hub", manufacturer="Bahmcloud", model="Bridge Server", sw_version="0.2.2", ) hass.data[DOMAIN]["hub_device_created"] = True # Forward the setup to the sensor platform to create entities await hass.config_entries.async_forward_entry_setups(entry, ["sensor"]) # Registriere den Service (nur beim ersten Mal) if not hass.services.has_service(DOMAIN, "send_message"): from .services import async_setup_services await async_setup_services(hass) return True async def async_unload_entry(hass: HomeAssistant, entry): """Unload a config entry.""" unload_ok = await hass.config_entries.async_unload_platforms(entry, ["sensor"]) if unload_ok: hass.data[DOMAIN].pop(entry.entry_id) return unload_ok