Jeff Culverhouse
b02757938a
fix: use consistent fallback pattern and clarify documentation
...
- Change protocol_version to use 'or' fallback pattern like other config values
- Update config.yaml.sample comment to clarify both quoted and unquoted values work
- Addresses Copilot feedback on PR #3
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4 weeks ago
Jeff Culverhouse
58a09548dd
feat: add support for MQTT v3.1.1 protocol version
...
Add configurable MQTT protocol version support to allow users to choose
between MQTT v5 (default) and v3.1.1 for broker compatibility.
Changes:
- Add protocol_version option to MQTT configuration in config.yaml.sample
- Add MQTT_PROTOCOL environment variable support in helpers.py
- Update README.md with MQTT_PROTOCOL documentation
- Update mqtt-helper-graystorm package to latest version with protocol support
The protocol_version accepts "3.1.1" or "5" (default: "5") and can be
configured via config.yaml or the MQTT_PROTOCOL environment variable.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4 weeks ago
Jeff Culverhouse
76a62a424a
Replace docker version badge with release tag
1 month ago
Jeff Culverhouse
ed294a99e0
Add explicit permissions to Docker Hub workflow
1 month ago
Jeff Culverhouse
3314622c12
Pin GitHub Actions to SHAs
1 month ago
Jeff Culverhouse
e0deb4755f
Revert to python 3.14-slim base
1 month ago
Jeff Culverhouse
08acb7e162
Use python 3.13-slim-bookworm base
1 month ago
github-actions[bot]
1309f8bfad
chore: update VERSION to v2.5.1
1 month ago
semantic-release-bot
aa73f556fd
chore(release): 2.5.1 [skip ci]
...
## [2.5.1](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.5.0...v2.5.1 ) (2025-12-24)
### Bug Fixes
* skip release and docker jobs on pull requests ([e7852b0 ](e7852b0c36 ))
1 month ago
Jeff Culverhouse
e7852b0c36
fix: skip release and docker jobs on pull requests
...
Dependabot PRs were incorrectly triggering the docker build job.
Now release and docker jobs only run on pushes to main, scheduled
runs, and manual triggers.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
Jeff Culverhouse
2de3fd16f6
Merge pull request #2 from weirdtangent/dependabot/npm_and_yarn/js-yaml-4.1.1
...
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
1 month ago
Jeff Culverhouse
fe5de862fa
Merge pull request #1 from weirdtangent/dependabot/npm_and_yarn/multi-289c097fca
...
chore(deps): bump glob and semantic-release
1 month ago
dependabot[bot]
d3088dff18
chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
dependabot[bot]
44eeebf776
chore(deps): bump glob and semantic-release
...
Removes [glob](https://github.com/isaacs/node-glob ). It's no longer used after updating ancestor dependency [semantic-release](https://github.com/semantic-release/semantic-release ). These dependencies need to be updated together.
Removes `glob`
Updates `semantic-release` from 24.2.9 to 25.0.2
- [Release notes](https://github.com/semantic-release/semantic-release/releases )
- [Commits](https://github.com/semantic-release/semantic-release/compare/v24.2.9...v25.0.2 )
---
updated-dependencies:
- dependency-name: glob
dependency-version:
dependency-type: indirect
- dependency-name: semantic-release
dependency-version: 25.0.2
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
Jeff Culverhouse
2bae8fa28c
Add CODEOWNERS
1 month ago
Jeff Culverhouse
50659de3ef
docs: add security badges to README
...
Added badges for SBOM, provenance attestation, cosign signing, and Trivy scanning.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
Jeff Culverhouse
ff852aff3f
chore: update codeql-action to v4
...
Addresses deprecation warning for v3.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
Jeff Culverhouse
3420a976dd
chore: trigger CI to test new security workflow
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
github-actions[bot]
bfc7a57b32
chore: update VERSION to v2.5.0
1 month ago
semantic-release-bot
c3399f208e
chore(release): 2.5.0 [skip ci]
...
# [2.5.0](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.4.0...v2.5.0 ) (2025-12-23)
### Features
* add image signing, vulnerability scanning, and security policy ([291bf7d ](291bf7d765 ))
1 month ago
Jeff Culverhouse
291bf7d765
feat: add image signing, vulnerability scanning, and security policy
...
- Add Cosign image signing using Sigstore keyless signing
- Add Trivy vulnerability scanning with SARIF output to GitHub Security tab
- Add SECURITY.md with vulnerability reporting instructions
- Add required permissions for security-events and id-token
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
github-actions[bot]
0a25ef9016
chore: update VERSION to v2.4.0
1 month ago
semantic-release-bot
0e8b24e3bc
chore(release): 2.4.0 [skip ci]
...
# [2.4.0](https://github.com/weirdtangent/amcrest2mqtt/compare/v2.3.3...v2.4.0 ) (2025-12-23)
### Bug Fixes
* add cleanup methods to protocol interface ([8c195f1 ](8c195f1eb1 ))
### Features
* add automatic cleanup of old media recordings ([ebe8d04 ](ebe8d04332 ))
1 month ago
Jeff Culverhouse
8c195f1eb1
fix: add cleanup methods to protocol interface
...
Fixes mypy errors by adding cleanup_old_recordings and
cleanup_recordings_loop to AmcrestServiceProtocol.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 month ago
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