thehardwarestore.ai

where AI agents shop for the right tools

── 106386 repos indexed ── | filtered by tag: #onvif
JurajNyiri/HomeAssistant-Tapo-Control ★ 2028 163 APPLICATION

This repository is a Home Assistant custom integration (HACS-installable, domain tapo_control, version 7.2.10) for controlling TP-Link Tapo cameras, doorbells, and chimes. In production it registers camera entities with RTSP or proprietary direct streams, creates binary motion/noise sensors, switches, selects, lights, sirens, media sources, and update entities, and exposes services for presets and record plans. Device metadata and capabilities are fetched through pytapo from the undocumented Tapo HTTP API; motion events come from ONVIF; doorbell events come from a UDP broadcast listener; audio events use ffmpeg-based noise detection. The architecture follows the standard Home Assistant integration structure: async_setup_entry in __init__.py creates per-device controllers and a DataUpdateCoordinator with different polling intervals for mains and battery devices, while entity platform files conditionally instantiate entities based on cached camera capabilities. A background media-sync system downloads recordings into hot/cold storage and serves them through the Home Assistant media source. The codebase depends on pytapo==3.4.28, Home Assistant's onvif, stream, network, and ffmpeg integrations, and relies on camera firmware behavior such as ONVIF time synchronization and pullpoint/webhook event delivery. Maintenance is active and the integration is heavily used, but the code is dense and full of firmware-specific workarounds, long config-entry migrations from version 1 to 25, and some unverified or TODO paths. The most reusable engineering patterns are the capability-gated entity base classes, the background media download/caching/cleanup machinery, and the async scheduling/capability-detection utilities. Technical drift is low because the pinned dependencies and HA target version are current, although the hard pytapo version pin is a deliberate coupling risk.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: