homesec 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homesec/__init__.py +1 -1
- {homesec-0.1.0.dist-info → homesec-0.1.1.dist-info}/METADATA +28 -1
- {homesec-0.1.0.dist-info → homesec-0.1.1.dist-info}/RECORD +6 -6
- {homesec-0.1.0.dist-info → homesec-0.1.1.dist-info}/WHEEL +0 -0
- {homesec-0.1.0.dist-info → homesec-0.1.1.dist-info}/entry_points.txt +0 -0
- {homesec-0.1.0.dist-info → homesec-0.1.1.dist-info}/licenses/LICENSE +0 -0
homesec/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: homesec
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Pluggable async home security camera pipeline with detection, VLM analysis, and alerts.
|
|
5
5
|
Project-URL: Homepage, https://github.com/lan17/homesec
|
|
6
6
|
Project-URL: Source, https://github.com/lan17/homesec
|
|
@@ -261,6 +261,7 @@ best-effort, and non-critical stages can fail without losing the alert.
|
|
|
261
261
|
- Policy-driven alerts with per-camera overrides
|
|
262
262
|
- Fan-out notifiers (MQTT for Home Assistant, SendGrid email)
|
|
263
263
|
- Postgres-backed state + events with graceful degradation
|
|
264
|
+
- Built around small, stable interfaces so new plugins drop in cleanly
|
|
264
265
|
- Health endpoint plus optional Postgres telemetry logging
|
|
265
266
|
|
|
266
267
|
## Pipeline at a glance
|
|
@@ -377,6 +378,27 @@ storage:
|
|
|
377
378
|
- For a quick local run, pair `local_folder` with `local` storage and drop a clip
|
|
378
379
|
into `recordings/`.
|
|
379
380
|
|
|
381
|
+
## Extensible by design
|
|
382
|
+
|
|
383
|
+
HomeSec is intentionally modular. Each major capability is an interface
|
|
384
|
+
(`ClipSource`, `StorageBackend`, `ObjectFilter`, `VLMAnalyzer`, `AlertPolicy`,
|
|
385
|
+
`Notifier`) defined in `src/homesec/interfaces.py`, and plugins are discovered at
|
|
386
|
+
runtime via entry points. This keeps the core pipeline small while making it
|
|
387
|
+
easy to add new backends without editing core code.
|
|
388
|
+
|
|
389
|
+
What this means in practice:
|
|
390
|
+
- Swap storage or notifications by changing config, not code.
|
|
391
|
+
- Add a new plugin type as a separate package and register it.
|
|
392
|
+
- Keep config validation strict by pairing each plugin with a Pydantic model.
|
|
393
|
+
|
|
394
|
+
Extension points (all pluggable):
|
|
395
|
+
- Sources: RTSP motion detection, FTP uploads, local folders
|
|
396
|
+
- Storage backends: Dropbox, local disk, or your own
|
|
397
|
+
- Filters: object detection (YOLO or custom models)
|
|
398
|
+
- VLM analyzers: OpenAI-compatible APIs or local models
|
|
399
|
+
- Alert policies: per-camera rules and thresholds
|
|
400
|
+
- Notifiers: MQTT, email, or anything else you can send from Python
|
|
401
|
+
|
|
380
402
|
## CLI
|
|
381
403
|
|
|
382
404
|
- Run the pipeline:
|
|
@@ -399,6 +421,11 @@ storage:
|
|
|
399
421
|
HomeSec discovers plugins via entry points in the `homesec.plugins` group. A plugin
|
|
400
422
|
module just needs to import and register itself.
|
|
401
423
|
|
|
424
|
+
Each plugin provides:
|
|
425
|
+
- A unique name (used in config)
|
|
426
|
+
- A Pydantic config model for validation
|
|
427
|
+
- A factory that builds the concrete implementation
|
|
428
|
+
|
|
402
429
|
```python
|
|
403
430
|
# my_package/filters/custom.py
|
|
404
431
|
from pydantic import BaseModel
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
homesec/__init__.py,sha256=
|
|
1
|
+
homesec/__init__.py,sha256=tO_V5DJgS44qHCIySDUFIK5-Rbgjh3MpUBHa2HhZiB4,452
|
|
2
2
|
homesec/app.py,sha256=I1N5V22_ERREFXt4lcmKtUkwby6agKcO8gewHHN04iQ,14327
|
|
3
3
|
homesec/cli.py,sha256=4cOlJvdpz5iPuLtydSWNpWGvH978axk77AE3EvW7CYc,5637
|
|
4
4
|
homesec/errors.py,sha256=RfdPTP8uMfdO3GQPtgakOIKSSelM2CIhGO7tkgNEPps,2123
|
|
@@ -55,8 +55,8 @@ homesec/telemetry/db_log_handler.py,sha256=7qjKB9q6YWuy8ySoNWcPA4ENmDcvq8yYV2ooE
|
|
|
55
55
|
homesec/telemetry/postgres_settings.py,sha256=EVD2_oi_KReFJvQmXxW026aurl_YD-KexT7rkbGQPHc,1198
|
|
56
56
|
homesec/telemetry/db/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
57
57
|
homesec/telemetry/db/log_table.py,sha256=wcZLwRht7FMa0z2gf37f_RxdVTNIdDiK4i_N3c_ibwg,473
|
|
58
|
-
homesec-0.1.
|
|
59
|
-
homesec-0.1.
|
|
60
|
-
homesec-0.1.
|
|
61
|
-
homesec-0.1.
|
|
62
|
-
homesec-0.1.
|
|
58
|
+
homesec-0.1.1.dist-info/METADATA,sha256=rP26T3y8E6t8d4dm1tqWq1BZrleLMM12YtpF7nUaAUM,21590
|
|
59
|
+
homesec-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
60
|
+
homesec-0.1.1.dist-info/entry_points.txt,sha256=8ocCj_fP1qxIuL-DVDAUiaUbEdTMX_kg_BzVrJsbQYg,45
|
|
61
|
+
homesec-0.1.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
62
|
+
homesec-0.1.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|