Unstats
Overview
A custom component for Home Assistant that actively fetches a user's Unsplash statistics natively. Instead of relying on brittle external cron-jobs, disparate bash scripts, or complex OAuth developer setups, this integration polls statistical data directly within the Home Assistant event loop and provisions rich, persistent entity sensors.
Provided Telemetry Sensors
Upon configuring a username via the standard UI interface, the core dynamically registers three tracking entities that auto-refresh every hour:
sensor.unsplash_views: Total lifetime impressions on uploaded photographs.sensor.unsplash_downloads: Cumulative history of high-resolution asset downloads.sensor.unsplash_likes: The aggregate volume of user favorites.
Architecture & Data Privacy
To eliminate the abrasive requirement of mandating standard Home Assistant users setup complex Unsplash Developer OAuth Applications to generate API keys, this integration acts solely as an edge client pointing to a centralized proxy relay.
- Edge Relay Request: The local Home Assistant instance fires a sanitized webhook containing only the target Unsplash Username up to the configured proxy endpoint.
- Secure Proxy Appendage: The isolated proxy server (`un.hyclotron.com`) receives the request, intelligently embeds the heavily-guarded master Developer Credentials, queries the public Unsplash API over encrypted limits, and returns the strict JSON artifact back to the edge node.
- Guaranteed Obfuscation: The client machine never sees the secrets. The relay server executes fully stateless transitions—it tracks zero IP addresses, stores no personal telemetry, and securely evaporates requests upon fulfillment.
Installation Setup
This integration supports native inclusion via HACS (Home Assistant Community Store).
- Access the HACS integrations panel.
- Select Custom Repositories, add
https://github.com/nicx17/unstatsas an Integration. - Restart the core Home Assistant engine.
- Navigate to Settings > Devices & Services > Add Integration, search for Unstats, and provide your active username. No manual YAML definitions or `.env` state required.