From 5b258b62bc7f5bdb593e2129038917fd8d045a35 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 15 Dec 2025 11:08:23 -0600 Subject: [PATCH] connectd HACS integration v1.1.0 --- README.md | 88 +++++ custom_components/connectd/__init__.py | 117 ++++++ custom_components/connectd/branding/icon.png | Bin 0 -> 42586 bytes .../connectd/branding/icon@2x.png | Bin 0 -> 117272 bytes custom_components/connectd/config_flow.py | 71 ++++ custom_components/connectd/manifest.json | 11 + custom_components/connectd/sensor.py | 363 ++++++++++++++++++ custom_components/connectd/strings.json | 18 + hacs.json | 6 + 9 files changed, 674 insertions(+) create mode 100644 README.md create mode 100644 custom_components/connectd/__init__.py create mode 100644 custom_components/connectd/branding/icon.png create mode 100644 custom_components/connectd/branding/icon@2x.png create mode 100644 custom_components/connectd/config_flow.py create mode 100644 custom_components/connectd/manifest.json create mode 100644 custom_components/connectd/sensor.py create mode 100644 custom_components/connectd/strings.json create mode 100644 hacs.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..fa9940e --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# connectd home assistant integration + +monitor your connectd daemon from home assistant. + +## installation + +### HACS (recommended) + +1. open HACS in home assistant +2. click the three dots menu → custom repositories +3. add `https://github.com/sudoxnym/connectd` with category "integration" +4. search for "connectd" and install +5. restart home assistant +6. go to settings → devices & services → add integration → connectd + +### manual + +1. copy `custom_components/connectd` to your HA `config/custom_components/` directory +2. restart home assistant +3. go to settings → devices & services → add integration → connectd + +## configuration + +enter the host and port of your connectd daemon: +- **host**: IP or hostname where connectd is running (e.g., `192.168.1.8`) +- **port**: API port (default: `8099`) + +## sensors + +the integration creates these sensors: + +### stats +- `sensor.connectd_total_humans` - total discovered humans +- `sensor.connectd_high_score_humans` - humans with high values alignment +- `sensor.connectd_total_matches` - total matches found +- `sensor.connectd_total_intros` - total intro drafts +- `sensor.connectd_sent_intros` - intros successfully sent +- `sensor.connectd_active_builders` - active builder count +- `sensor.connectd_lost_builders` - lost builder count +- `sensor.connectd_recovering_builders` - recovering builder count +- `sensor.connectd_lost_outreach_sent` - lost builder outreach count + +### state +- `sensor.connectd_intros_today` - intros sent today +- `sensor.connectd_lost_intros_today` - lost builder intros today +- `sensor.connectd_status` - daemon status (running/dry_run/stopped) + +### per-platform +- `sensor.connectd_github_humans` +- `sensor.connectd_mastodon_humans` +- `sensor.connectd_reddit_humans` +- `sensor.connectd_lemmy_humans` +- `sensor.connectd_discord_humans` +- `sensor.connectd_lobsters_humans` + +## example dashboard card + +```yaml +type: entities +title: connectd +entities: + - entity: sensor.connectd_status + - entity: sensor.connectd_total_humans + - entity: sensor.connectd_intros_today + - entity: sensor.connectd_lost_intros_today + - entity: sensor.connectd_active_builders + - entity: sensor.connectd_lost_builders +``` + +## automations + +example: notify when an intro is sent: + +```yaml +automation: + - alias: "connectd intro notification" + trigger: + - platform: state + entity_id: sensor.connectd_intros_today + condition: + - condition: template + value_template: "{{ trigger.to_state.state | int > trigger.from_state.state | int }}" + action: + - service: notify.mobile_app + data: + title: "connectd" + message: "sent intro #{{ states('sensor.connectd_intros_today') }} today" +``` diff --git a/custom_components/connectd/__init__.py b/custom_components/connectd/__init__.py new file mode 100644 index 0000000..4f19a2f --- /dev/null +++ b/custom_components/connectd/__init__.py @@ -0,0 +1,117 @@ +"""connectd integration for home assistant.""" +from __future__ import annotations + +import asyncio +import logging +from datetime import timedelta + +import aiohttp + +from homeassistant.config_entries import ConfigEntry +from homeassistant.const import Platform +from homeassistant.core import HomeAssistant +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = "connectd" +PLATFORMS = [Platform.SENSOR] +SCAN_INTERVAL = timedelta(minutes=1) + + +async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + """set up connectd from a config entry.""" + host = entry.data["host"] + port = entry.data["port"] + + coordinator = ConnectdDataUpdateCoordinator(hass, host, port) + await coordinator.async_config_entry_first_refresh() + + hass.data.setdefault(DOMAIN, {}) + hass.data[DOMAIN][entry.entry_id] = coordinator + + await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) + + return True + + +async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + """unload a config entry.""" + unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS) + if unload_ok: + hass.data[DOMAIN].pop(entry.entry_id) + return unload_ok + + +class ConnectdDataUpdateCoordinator(DataUpdateCoordinator): + """class to manage fetching connectd data.""" + + def __init__(self, hass: HomeAssistant, host: str, port: int) -> None: + """initialize.""" + self.host = host + self.port = port + self.base_url = f"http://{host}:{port}" + + super().__init__( + hass, + _LOGGER, + name=DOMAIN, + update_interval=SCAN_INTERVAL, + ) + + async def _async_update_data(self): + """fetch data from connectd api.""" + try: + async with asyncio.timeout(10): + async with aiohttp.ClientSession() as session: + # get stats + async with session.get(f"{self.base_url}/api/stats") as resp: + if resp.status != 200: + raise UpdateFailed(f"error fetching stats: {resp.status}") + stats = await resp.json() + + # get state + async with session.get(f"{self.base_url}/api/state") as resp: + if resp.status != 200: + raise UpdateFailed(f"error fetching state: {resp.status}") + state = await resp.json() + + # get priority matches (optional) + priority_matches = {} + try: + async with session.get(f"{self.base_url}/api/priority_matches") as resp: + if resp.status == 200: + priority_matches = await resp.json() + except Exception: + pass + + # get top humans (optional) + top_humans = {} + try: + async with session.get(f"{self.base_url}/api/top_humans") as resp: + if resp.status == 200: + top_humans = await resp.json() + except Exception: + pass + + # get user info (optional) + user = {} + try: + async with session.get(f"{self.base_url}/api/user") as resp: + if resp.status == 200: + user = await resp.json() + except Exception: + pass + + return { + "stats": stats, + "state": state, + "priority_matches": priority_matches, + "top_humans": top_humans, + "user": user, + } + + except aiohttp.ClientError as err: + raise UpdateFailed(f"error communicating with connectd: {err}") + except Exception as err: + raise UpdateFailed(f"unexpected error: {err}") diff --git a/custom_components/connectd/branding/icon.png b/custom_components/connectd/branding/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cc332d883d28027ad0870d569dbf334402cfddd6 GIT binary patch literal 42586 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%0DLCN0}Y2}5e0YuK2GIW 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 YA1B9uX&PK5|DyrON-9aze9-0p2XiI&-~a#s literal 0 HcmV?d00001 diff --git a/custom_components/connectd/config_flow.py b/custom_components/connectd/config_flow.py new file mode 100644 index 0000000..79526b2 --- /dev/null +++ b/custom_components/connectd/config_flow.py @@ -0,0 +1,71 @@ +"""config flow for connectd integration.""" +from __future__ import annotations + +import logging + +import aiohttp +import voluptuous as vol + +from homeassistant import config_entries +from homeassistant.const import CONF_HOST, CONF_PORT +from homeassistant.data_entry_flow import FlowResult + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = "connectd" +DEFAULT_PORT = 8099 + + +class ConnectdConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): + """handle a config flow for connectd.""" + + VERSION = 1 + + async def async_step_user( + self, user_input: dict | None = None + ) -> FlowResult: + """handle the initial step.""" + errors = {} + + if user_input is not None: + host = user_input[CONF_HOST] + port = user_input.get(CONF_PORT, DEFAULT_PORT) + + # test connection + try: + timeout = aiohttp.ClientTimeout(total=10) + async with aiohttp.ClientSession(timeout=timeout) as session: + url = f"http://{host}:{port}/api/health" + async with session.get(url) as resp: + if resp.status == 200: + # connection works + await self.async_set_unique_id(f"{host}:{port}") + self._abort_if_unique_id_configured() + + return self.async_create_entry( + title=f"connectd ({host})", + data={ + "host": host, + "port": port, + }, + ) + else: + _LOGGER.error("connectd api returned status %s", resp.status) + errors["base"] = "cannot_connect" + except aiohttp.ClientError as err: + _LOGGER.error("connectd connection error: %s", err) + errors["base"] = "cannot_connect" + except Exception as err: + _LOGGER.exception("connectd unexpected error: %s", err) + errors["base"] = "unknown" + + return self.async_show_form( + step_id="user", + data_schema=vol.Schema( + { + vol.Required(CONF_HOST, default="192.168.1.8"): str, + vol.Optional(CONF_PORT, default=DEFAULT_PORT): int, + } + ), + errors=errors, + ) diff --git a/custom_components/connectd/manifest.json b/custom_components/connectd/manifest.json new file mode 100644 index 0000000..86c0b8a --- /dev/null +++ b/custom_components/connectd/manifest.json @@ -0,0 +1,11 @@ +{ + "domain": "connectd", + "name": "connectd", + "codeowners": ["@sudoxnym"], + "config_flow": true, + "documentation": "https://github.com/sudoxnym/connectd", + "iot_class": "local_polling", + "issue_tracker": "https://github.com/sudoxnym/connectd/issues", + "requirements": [], + "version": "1.1.0" +} diff --git a/custom_components/connectd/sensor.py b/custom_components/connectd/sensor.py new file mode 100644 index 0000000..a8c7c1e --- /dev/null +++ b/custom_components/connectd/sensor.py @@ -0,0 +1,363 @@ +"""sensor platform for connectd.""" +from __future__ import annotations + +from homeassistant.components.sensor import ( + SensorEntity, + SensorStateClass, +) +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.helpers.device_registry import DeviceInfo +from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from . import DOMAIN, ConnectdDataUpdateCoordinator + + +def get_device_info(entry_id: str, host: str) -> DeviceInfo: + """return device info for connectd daemon.""" + return DeviceInfo( + identifiers={(DOMAIN, entry_id)}, + name="connectd daemon", + manufacturer="sudoxnym", + model="connectd", + sw_version="1.1.0", + configuration_url=f"http://{host}:8099", + ) + +SENSORS = [ + # stats sensors + ("total_humans", "total humans", "mdi:account-group", "stats"), + ("high_score_humans", "high score humans", "mdi:account-star", "stats"), + ("total_matches", "total matches", "mdi:handshake", "stats"), + ("total_intros", "total intros", "mdi:email-outline", "stats"), + ("sent_intros", "sent intros", "mdi:email-check", "stats"), + ("active_builders", "active builders", "mdi:hammer-wrench", "stats"), + ("lost_builders", "lost builders", "mdi:account-question", "stats"), + ("recovering_builders", "recovering builders", "mdi:account-heart", "stats"), + ("lost_outreach_sent", "lost outreach sent", "mdi:heart-pulse", "stats"), + + # state sensors + ("intros_today", "intros today", "mdi:email-fast", "state"), + ("lost_intros_today", "lost intros today", "mdi:heart-outline", "state"), +] + + +async def async_setup_entry( + hass: HomeAssistant, + entry: ConfigEntry, + async_add_entities: AddEntitiesCallback, +) -> None: + """set up connectd sensors.""" + coordinator = hass.data[DOMAIN][entry.entry_id] + host = entry.data.get("host", "localhost") + device_info = get_device_info(entry.entry_id, host) + + entities = [] + for sensor_key, name, icon, data_source in SENSORS: + entities.append( + ConnectdSensor(coordinator, sensor_key, name, icon, data_source, device_info) + ) + + # add status sensor + entities.append(ConnectdStatusSensor(coordinator, device_info)) + + # add priority matches sensor + entities.append(ConnectdPriorityMatchesSensor(coordinator, device_info)) + + # add top humans sensor + entities.append(ConnectdTopHumansSensor(coordinator, device_info)) + + # add countdown sensors + entities.append(ConnectdCountdownSensor(coordinator, device_info, "scout", "mdi:radar")) + entities.append(ConnectdCountdownSensor(coordinator, device_info, "match", "mdi:handshake")) + entities.append(ConnectdCountdownSensor(coordinator, device_info, "intro", "mdi:email-fast")) + + # add personal score sensor + entities.append(ConnectdUserScoreSensor(coordinator, device_info)) + + # add platform sensors (by_platform dict) + entities.append(ConnectdPlatformSensor(coordinator, "github", device_info)) + entities.append(ConnectdPlatformSensor(coordinator, "mastodon", device_info)) + entities.append(ConnectdPlatformSensor(coordinator, "reddit", device_info)) + entities.append(ConnectdPlatformSensor(coordinator, "lemmy", device_info)) + entities.append(ConnectdPlatformSensor(coordinator, "discord", device_info)) + entities.append(ConnectdPlatformSensor(coordinator, "lobsters", device_info)) + + async_add_entities(entities) + + +class ConnectdSensor(CoordinatorEntity, SensorEntity): + """connectd sensor entity.""" + + def __init__( + self, + coordinator: ConnectdDataUpdateCoordinator, + sensor_key: str, + name: str, + icon: str, + data_source: str, + device_info: DeviceInfo, + ) -> None: + """initialize.""" + super().__init__(coordinator) + self._sensor_key = sensor_key + self._attr_name = f"connectd {name}" + self._attr_unique_id = f"connectd_{sensor_key}" + self._attr_icon = icon + self._data_source = data_source + self._attr_state_class = SensorStateClass.MEASUREMENT + self._attr_device_info = device_info + + @property + def native_value(self): + """return the state.""" + if self.coordinator.data: + data = self.coordinator.data.get(self._data_source, {}) + return data.get(self._sensor_key, 0) + return None + + +class ConnectdStatusSensor(CoordinatorEntity, SensorEntity): + """connectd daemon status sensor.""" + + def __init__(self, coordinator: ConnectdDataUpdateCoordinator, device_info: DeviceInfo) -> None: + """initialize.""" + super().__init__(coordinator) + self._attr_name = "connectd status" + self._attr_unique_id = "connectd_status" + self._attr_icon = "mdi:connection" + self._attr_device_info = device_info + + @property + def native_value(self): + """return the state.""" + if self.coordinator.data: + state = self.coordinator.data.get("state", {}) + if state.get("running"): + return "running" if not state.get("dry_run") else "dry_run" + return "stopped" + return "unavailable" + + @property + def extra_state_attributes(self): + """return extra attributes.""" + if self.coordinator.data: + state = self.coordinator.data.get("state", {}) + return { + "last_scout": state.get("last_scout"), + "last_match": state.get("last_match"), + "last_intro": state.get("last_intro"), + "last_lost": state.get("last_lost"), + "started_at": state.get("started_at"), + } + return {} + + +class ConnectdPlatformSensor(CoordinatorEntity, SensorEntity): + """connectd per-platform sensor.""" + + def __init__( + self, + coordinator: ConnectdDataUpdateCoordinator, + platform: str, + device_info: DeviceInfo, + ) -> None: + """initialize.""" + super().__init__(coordinator) + self._platform = platform + self._attr_name = f"connectd {platform} humans" + self._attr_unique_id = f"connectd_platform_{platform}" + self._attr_icon = self._get_platform_icon(platform) + self._attr_state_class = SensorStateClass.MEASUREMENT + self._attr_device_info = device_info + + def _get_platform_icon(self, platform: str) -> str: + """get icon for platform.""" + icons = { + "github": "mdi:github", + "mastodon": "mdi:mastodon", + "reddit": "mdi:reddit", + "lemmy": "mdi:alpha-l-circle", + "discord": "mdi:discord", + "lobsters": "mdi:web", + "bluesky": "mdi:cloud", + "matrix": "mdi:matrix", + } + return icons.get(platform, "mdi:web") + + @property + def native_value(self): + """return the state.""" + if self.coordinator.data: + stats = self.coordinator.data.get("stats", {}) + by_platform = stats.get("by_platform", {}) + return by_platform.get(self._platform, 0) + return 0 + + +class ConnectdPriorityMatchesSensor(CoordinatorEntity, SensorEntity): + """connectd priority matches sensor.""" + + def __init__(self, coordinator: ConnectdDataUpdateCoordinator, device_info: DeviceInfo) -> None: + """initialize.""" + super().__init__(coordinator) + self._attr_name = "connectd priority matches" + self._attr_unique_id = "connectd_priority_matches" + self._attr_icon = "mdi:account-star" + self._attr_state_class = SensorStateClass.MEASUREMENT + self._attr_device_info = device_info + + @property + def native_value(self): + """return count of new priority matches.""" + if self.coordinator.data: + pm = self.coordinator.data.get("priority_matches", {}) + return pm.get("new_count", 0) + return 0 + + @property + def extra_state_attributes(self): + """return top matches as attributes.""" + if self.coordinator.data: + pm = self.coordinator.data.get("priority_matches", {}) + top = pm.get("top_matches", []) + attrs = { + "total_matches": pm.get("count", 0), + "new_matches": pm.get("new_count", 0), + } + for i, m in enumerate(top[:3]): + attrs[f"match_{i+1}_username"] = m.get("username") + attrs[f"match_{i+1}_platform"] = m.get("platform") + attrs[f"match_{i+1}_score"] = m.get("overlap_score") + attrs[f"match_{i+1}_reasons"] = ", ".join(m.get("reasons", [])) + return attrs + return {} + + +class ConnectdTopHumansSensor(CoordinatorEntity, SensorEntity): + """connectd top humans sensor.""" + + def __init__(self, coordinator: ConnectdDataUpdateCoordinator, device_info: DeviceInfo) -> None: + """initialize.""" + super().__init__(coordinator) + self._attr_name = "connectd top human" + self._attr_unique_id = "connectd_top_human" + self._attr_icon = "mdi:account-check" + self._attr_device_info = device_info + + @property + def native_value(self): + """return top human username.""" + if self.coordinator.data: + th = self.coordinator.data.get("top_humans", {}) + top = th.get("top_humans", []) + if top: + return top[0].get("username", "none") + return "none" + + @property + def extra_state_attributes(self): + """return top humans as attributes.""" + if self.coordinator.data: + th = self.coordinator.data.get("top_humans", {}) + top = th.get("top_humans", []) + attrs = {"total_high_score": th.get("count", 0)} + for i, h in enumerate(top[:5]): + attrs[f"human_{i+1}_username"] = h.get("username") + attrs[f"human_{i+1}_platform"] = h.get("platform") + attrs[f"human_{i+1}_score"] = h.get("score") + attrs[f"human_{i+1}_signals"] = ", ".join(h.get("signals", [])[:3]) + attrs[f"human_{i+1}_contact"] = h.get("contact_method") + return attrs + return {} + + +class ConnectdCountdownSensor(CoordinatorEntity, SensorEntity): + """connectd countdown timer sensor.""" + + def __init__( + self, + coordinator: ConnectdDataUpdateCoordinator, + device_info: DeviceInfo, + cycle_type: str, + icon: str, + ) -> None: + """initialize.""" + super().__init__(coordinator) + self._cycle_type = cycle_type + self._attr_name = f"connectd next {cycle_type}" + self._attr_unique_id = f"connectd_countdown_{cycle_type}" + self._attr_icon = icon + self._attr_device_info = device_info + self._attr_native_unit_of_measurement = "min" + + @property + def native_value(self): + """return minutes until next cycle.""" + if self.coordinator.data: + state = self.coordinator.data.get("state", {}) + secs = state.get(f"countdown_{self._cycle_type}", 0) + return int(secs / 60) + return 0 + + @property + def extra_state_attributes(self): + """return detailed countdown info.""" + if self.coordinator.data: + state = self.coordinator.data.get("state", {}) + secs = state.get(f"countdown_{self._cycle_type}", 0) + return { + "seconds": secs, + "hours": round(secs / 3600, 1), + f"last_{self._cycle_type}": state.get(f"last_{self._cycle_type}"), + } + return {} + + +class ConnectdUserScoreSensor(CoordinatorEntity, SensorEntity): + """connectd personal score sensor.""" + + def __init__(self, coordinator: ConnectdDataUpdateCoordinator, device_info: DeviceInfo) -> None: + """initialize.""" + super().__init__(coordinator) + self._attr_name = "connectd my score" + self._attr_unique_id = "connectd_user_score" + self._attr_icon = "mdi:star-circle" + self._attr_state_class = SensorStateClass.MEASUREMENT + self._attr_device_info = device_info + + @property + def native_value(self): + """return user's personal score.""" + if self.coordinator.data: + user = self.coordinator.data.get("user", {}) + return user.get("score", 0) + return 0 + + @property + def extra_state_attributes(self): + """return user profile details.""" + if self.coordinator.data: + user = self.coordinator.data.get("user", {}) + signals = user.get("signals", []) + interests = user.get("interests", []) + return { + "configured": user.get("configured", False), + "name": user.get("name"), + "github": user.get("github"), + "mastodon": user.get("mastodon"), + "reddit": user.get("reddit"), + "lobsters": user.get("lobsters"), + "matrix": user.get("matrix"), + "lemmy": user.get("lemmy"), + "discord": user.get("discord"), + "bluesky": user.get("bluesky"), + "location": user.get("location"), + "bio": user.get("bio"), + "match_count": user.get("match_count", 0), + "new_matches": user.get("new_match_count", 0), + "signals": ", ".join(signals[:5]) if signals else "", + "interests": ", ".join(interests[:5]) if interests else "", + } + return {} diff --git a/custom_components/connectd/strings.json b/custom_components/connectd/strings.json new file mode 100644 index 0000000..fdc092f --- /dev/null +++ b/custom_components/connectd/strings.json @@ -0,0 +1,18 @@ +{ + "config": { + "step": { + "user": { + "title": "connectd daemon", + "description": "connect to your connectd daemon for monitoring.", + "data": { + "host": "host", + "port": "port" + } + } + }, + "error": { + "cannot_connect": "failed to connect to connectd api", + "unknown": "unexpected error" + } + } +} diff --git a/hacs.json b/hacs.json new file mode 100644 index 0000000..b898f8a --- /dev/null +++ b/hacs.json @@ -0,0 +1,6 @@ +{ + "name": "connectd", + "render_readme": true, + "domains": ["sensor"], + "homeassistant": "2023.1.0" +}