Commit Graph

362 Commits (af666c119ba67ac713925a505428d94b77b8f2da)
 

Author SHA1 Message Date
Jeff Culverhouse ebe8d04332 feat: add automatic cleanup of old media recordings
Add configurable retention period for saved clips (default: 7 days).
Recordings older than the retention period are automatically deleted
once per day. Dangling symlinks are also cleaned up when their target
files are removed.

Configure via `media.retention_days` in config.yaml or
`MEDIA_RETENTION_DAYS` environment variable. Set to 0 to disable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
Jeff Culverhouse c8bd5a193b refactor: upgrade packages 2 months ago
Jeff Culverhouse dbc412f18a chore: package upgrades 2 months ago
github-actions[bot] a585379c69 chore: update VERSION to v2.3.3 2 months ago
semantic-release-bot 7f7cbad574 chore(release): 2.3.3 [skip ci]
## [2.3.3](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.3.2...v2.3.3) (2025-11-24)

### Bug Fixes

* always try to log device_name in preference to device_id ([41ec32a](41ec32af47))
* formatting ([cd4e1aa](cd4e1aa628))
* make sure all device_names logged are in quotes ([b0100f0](b0100f0931))
2 months ago
Jeff Culverhouse cd4e1aa628 fix: formatting 2 months ago
Jeff Culverhouse b0100f0931 fix: make sure all device_names logged are in quotes 2 months ago
Jeff Culverhouse 41ec32af47 fix: always try to log device_name in preference to device_id 2 months ago
Jeff Culverhouse 510a24af55 chore: update README.md 3 months ago
github-actions[bot] c85383dead chore: update VERSION to v2.3.2 3 months ago
semantic-release-bot 78faf3f76a chore(release): 2.3.2 [skip ci]
## [2.3.2](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.3.1...v2.3.2) (2025-11-18)

### Bug Fixes

* README.md doc on webrtc ([2531e42](2531e42f25))
3 months ago
Jeff Culverhouse 2531e42f25 fix: README.md doc on webrtc 3 months ago
Jeff Culverhouse 459a7f023a feat!: move recording_url and motion_region to attributes
these are no longer sensors themselves but attributes of the
motion sensor and they update when a change to motion happens

also, store_recording_in_media now returns the file name
instead of the full path
3 months ago
Jeff Culverhouse c16680bd04 chore: add clear.sh tool for clearing retained messages in MQTT broker 3 months ago
Jeff Culverhouse 3d412f20f7 refactor: simplify device discovery and state publication 3 months ago
github-actions[bot] 516e2b5638 chore: update VERSION to v2.3.1 3 months ago
semantic-release-bot 4127b1c5c0 chore(release): 2.3.1 [skip ci]
## [2.3.1](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.3.0...v2.3.1) (2025-11-18)

### Bug Fixes

* handle permission errors when saving recordings ([bf54589](bf54589328))
3 months ago
Jeff Culverhouse 336065e340 chore: formatting problem 3 months ago
Jeff Culverhouse bf54589328 fix: handle permission errors when saving recordings 3 months ago
github-actions[bot] 2060e87750 chore: update VERSION to v2.3.0 3 months ago
semantic-release-bot 277c79038f chore(release): 2.3.0 [skip ci]
# [2.3.0](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.2.2...v2.3.0) (2025-11-17)

### Bug Fixes

* minor linting issues ([e709760](e709760971))

### Features

* better error handling and logging ([2d48726](2d48726917))
3 months ago
Jeff Culverhouse e709760971 fix: minor linting issues 3 months ago
Jeff Culverhouse 2d48726917 feat: better error handling and logging
* better snapshot and recording handling
* better event handling
* better device discovery
* better device state handling
* better device command handling
* better device command response handling
* better device command error handling
* better device command timeout handling
* better device command retry handling
3 months ago
Jeff Culverhouse b3fe517158 refactor: Dockerfile updates 3 months ago
Jeff Culverhouse bb6acf4074 chore: sync to lowercase logged messages 3 months ago
Jeff Culverhouse 693eb1c542 refactor: use new BaseMqttMixin from mqtt_helper 3 months ago
Jeff Culverhouse 8a9602af3b refactor: pass default quos and retain 3 months ago
Jeff Culverhouse 9b064b2ec8 chore: upgrade packages 3 months ago
Jeff Culverhouse 366ef61544 refactor: simplify device setup; just use cmps instead of modes 3 months ago
Jeff Culverhouse 07b81abecf feature: add 'version' to logged messages; upgrade packages 3 months ago
github-actions[bot] ae7c8d3245 chore: update VERSION to v2.2.2 3 months ago
semantic-release-bot 724e30d41e chore(release): 2.2.2 [skip ci]
## [2.2.2](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.2.1...v2.2.2) (2025-11-10)

### Bug Fixes

* save recording path as a string not Pathlib path; upgrade packages ([1231871](1231871ba7))
3 months ago
Jeff Culverhouse 1231871ba7 fix: save recording path as a string not Pathlib path; upgrade packages 3 months ago
Jeff Culverhouse de3022b920 chore: fix type, upgrade packages 3 months ago
Jeff Culverhouse fac83349da
Add build and quality status section to README
Updated the README to include build and quality status badges.
3 months ago
Jeff Culverhouse 396e8b131e chore: more python support; build tests 3 months ago
Jeff Culverhouse 1315c70805 chore: log changes to intervals 3 months ago
github-actions[bot] 26c83ff55f chore: update VERSION to v2.2.1 3 months ago
semantic-release-bot 2dec9d2849 chore(release): 2.2.1 [skip ci]
## [2.2.1](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.2.0...v2.2.1) (2025-11-09)

### Bug Fixes

* fix interval setting ([165d0c7](165d0c723f))
3 months ago
Jeff Culverhouse 165d0c723f fix: fix interval setting 3 months ago
Jeff Culverhouse 259d2d2475 chore: upgrade deps 3 months ago
Jeff Culverhouse 8e1cdb313d chore: minor fixes 3 months ago
github-actions[bot] 3ff272ebe8 chore: update VERSION to v2.2.0 3 months ago
semantic-release-bot 1efc3c0255 chore(release): 2.2.0 [skip ci]
# [2.2.0](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.1.0...v2.2.0) (2025-11-08)

### Features

* **discovery:** unify service and camera discovery to new HA device schema ([8c7bfd2](8c7bfd2b9e))
3 months ago
Jeff Culverhouse 8c7bfd2b9e feat(discovery): unify service and camera discovery to new HA device schema
* Reworked publish.py and amcrest.py to emit single-payload MQTT device discovery blocks using "platform": "mqtt" and nested "cmps" for entities

* Simplified service entity publication (publish_service_discovery) into unified "device" payload

* Replaced component_type with platform throughout topics and interface definitions

* Refactored build_camera() to generate full per-camera device definition including all sensors, switches, and media links

* Updated publish_device_state() to support targeted subject/sub publishing

* Increased snapshot timeout and backoff (20s, 8s) for better camera stability

* Updated type handling in amcrest_api for network config parsing (cast from tuple or str)

* Bumped coverage dependency → 7.11.2 and refreshed json-logging-graystorm SHA
3 months ago
Jeff Culverhouse 94a4297665 refactor: fully async device setup and improved SDK value handling
- Converted device initialization and state building to async coroutines
- Parallelized Amcrest camera connections using asyncio.gather
- Added clean_value() helper for tuple/list/string SDK outputs
- Added fallback for missing DefaultInterface in network config
- Improved error handling, timeouts, and type annotations
- Verified code quality (ruff, black, mypy all passing)
3 months ago
github-actions[bot] 8780d542eb chore: update VERSION to v2.1.0 3 months ago
semantic-release-bot 3d2ce375e8 chore(release): 2.1.0 [skip ci]
# [2.1.0](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.0.12...v2.1.0) (2025-11-07)

### Features

* added save recordings and reboot button ([9b4338b](9b4338b13b))
3 months ago
Jeff Culverhouse 9b4338b13b feat: added save recordings and reboot button 3 months ago
Jeff Culverhouse a6aee2159d feature: add reboot button, fix other switches 3 months ago