custom_components/whatsapp_bridge_integration/sensor.py aktualisiert

This commit is contained in:
2026-04-14 14:00:36 +00:00
parent 39df1ed0fa
commit 3002acc934

View File

@@ -1,22 +1,44 @@
from homeassistant.components.sensor import SensorEntity
from .const import DOMAIN, CONF_ACCOUNT_NAME
from .const import DOMAIN
async def async_setup_entry(hass, entry, async_add_entities):
"""Add a sensor for each WhatsApp account."""
async_add_entities([WhatsAppAccountEntity(entry)], True)
"""Add sensors for WhatsApp accounts and a global broadcast sensor."""
entities = [WhatsAppAccountEntity(entry)]
# Wir prüfen, ob die Broadcast-Entität schon existiert
# Falls nicht, legen wir sie einmalig an
if not hass.data[DOMAIN].get("broadcast_registered"):
entities.append(WhatsAppBroadcastEntity())
hass.data[DOMAIN]["broadcast_registered"] = True
async_add_entities(entities, True)
class WhatsAppAccountEntity(SensorEntity):
"""Representation of a WhatsApp Account as an entity."""
"""Individual Account (e.g., Rene, Work)."""
def __init__(self, entry):
self._entry = entry
self._attr_name = f"WhatsApp {entry.title}"
self._attr_unique_id = f"{entry.entry_id}_status"
self._attr_icon = "mdi:whatsapp"
# Wir speichern die Nummer in den Attributen, damit der Service sie findet
self._attr_extra_state_attributes = {
"phone_number": entry.data.get("phone_number")
"phone_number": entry.data.get("phone_number"),
"is_broadcast": False
}
@property
def state(self):
return "Ready"
return "Ready"
class WhatsAppBroadcastEntity(SensorEntity):
"""Virtual 'All Accounts' Entity."""
def __init__(self):
self._attr_name = "WhatsApp Broadcast (All)"
self._attr_unique_id = "whatsapp_bridge_broadcast_all"
self._attr_icon = "mdi:whatsapp-arrow-up"
self._attr_extra_state_attributes = {
"is_broadcast": True
}
@property
def state(self):
return "Global"