Sean Vig
9634ec8e31
Allow zone configs to be frozen
...
Set the color at construction so the zone config objects can be frozen
2021-05-23 20:38:57 -05:00
Sean Vig
84a0827aee
Use dataclasses for config handling
...
Use config data classes to eliminate some of the boilerplate associated
with setting up the configuration. In particular, using dataclasses
removes a lot of the boilerplate around assigning properties to the
object and allows these to be easily immutable by freezing them. In the
case of simple, non-nested dataclasses, this also provides more
convenient `asdict` helpers.
To set this up, where previously the objects would be parsed from the
config via the `__init__` method, create a `build` classmethod that does
this and calls the dataclass initializer.
Some of the objects are mutated at runtime, in particular some of the
zones are mutated to set the color (this might be able to be refactored
out) and some of the camera functionality can be enabled/disabled. Some
of the configs with `enabled` properties don't seem to have mqtt hooks
to be able to toggle this, in particular, the clips, snapshots, and
detect can be toggled but rtmp and record configs do not, but all of
these configs are still not frozen in case there is some other
functionality I am missing.
There are a couple other minor fixes here, one that was introduced
by me recently where `max_seconds` was not defined, the other to
properly `get()` the message payload when handling publishing mqtt
messages sent via websocket.
2021-05-23 20:38:57 -05:00
Blake Blackshear
4252857e19
remove tmpfs_cache_size option
2021-02-25 07:01:59 -06:00
Blake Blackshear
39ff49e054
formatting cleanup
2021-02-25 07:01:57 -06:00
Blake Blackshear
ce90ae343c
add global object mask
2021-02-20 08:20:17 -06:00
Blake Blackshear
d51e9446ff
add camera level ffmpeg params
2021-02-20 08:20:17 -06:00
Blake Blackshear
121ea37825
allow defining required zones for snapshots/clips/mqtt
2021-02-20 08:20:17 -06:00
Blake Blackshear
d6faa18adb
increase default max_disappeared to 5x FPS
2021-02-20 08:20:17 -06:00
Blake Blackshear
40d5a9f890
change default log level
2021-01-31 06:18:35 -06:00
Blake Blackshear
70167a34b6
fix zone config
2021-01-26 21:40:33 -06:00
Blake Blackshear
8762da627b
snapshots config typo
2021-01-26 21:40:33 -06:00
Blake Blackshear
3fab321045
update object filters to inherit like motion settings
2021-01-26 21:40:33 -06:00
Blake Blackshear
c1f0750526
ensure each camera has a detect role set
2021-01-26 21:40:33 -06:00
Blake Blackshear
89e02b6956
add detection enable to config
...
fixes #482
2021-01-26 21:40:33 -06:00
Blake Blackshear
97e8258288
add env vars to config
...
fixes #509
2021-01-26 21:40:33 -06:00
Blake Blackshear
b2c7fc8f5b
add mask as object filter
2021-01-26 21:40:33 -06:00
Blake Blackshear
96ac2c29d6
add object masks and move moton mask
2021-01-26 21:40:33 -06:00
Blake Blackshear
14a5118b4d
add missing global shapshots config
2021-01-26 21:40:33 -06:00
Paul Armstrong
c618867941
feat!: web user interface
2021-01-26 21:40:33 -06:00
Blake Blackshear
63e14a98f9
add retention settings for snapshots
2021-01-26 21:40:33 -06:00
Nat Morris
76403bba8e
New stats module, refactor stats generation out of http module.
...
StatsEmitter thread to send stats to MQTT every 60 seconds by default, optional stats_interval config value.
New service stats attribute, containing uptime in seconds and version.
2021-01-26 21:40:33 -06:00
Blake Blackshear
e5399ae07a
enable turning clips on and off via mqtt
2021-01-26 21:40:33 -06:00
Blake Blackshear
80a5a7b129
cleanup save_Clips/clips inconsistency
2021-01-26 21:40:33 -06:00
Blake Blackshear
9dc97d4b6b
add jpg snapshots to disk and clean up config
2021-01-26 21:40:33 -06:00
Blake Blackshear
fc04bc6046
better mask error handling
2021-01-26 21:40:33 -06:00
Blake Blackshear
247e2677f3
enable mounting tmpfs volume on start
2021-01-26 21:40:33 -06:00
Blake Blackshear
32fb76b3d1
add num_threads fixes #322
2021-01-26 21:40:33 -06:00
Blake Blackshear
f20e1f20a6
add post_capture option
2021-01-26 21:40:33 -06:00
Blake Blackshear
7dc6382c90
allow the mask to be a list of masks
2021-01-26 21:40:33 -06:00
Blake Blackshear
3bc7cdaab6
configurable motion and detect settings
2021-01-26 21:40:33 -06:00
Blake Blackshear
6af3cb6134
switch default threshold to .7
2021-01-26 21:40:33 -06:00
Blake Blackshear
dd102ff01d
allow db path to be customized
2021-01-26 21:40:33 -06:00
Blake Blackshear
93b9d586d2
handle empty string args
2021-01-26 21:40:33 -06:00
Blake Blackshear
d0470fffcc
allow defining model shape and switch to mobiledet as default model
2021-01-26 21:40:33 -06:00
Blake Blackshear
5053305e17
add model dimensions to config
2021-01-26 21:40:33 -06:00
Blake Blackshear
3c07767138
handle and warn if roles dont match enabled features
2021-01-26 21:40:33 -06:00
Blake Blackshear
7c44994070
fix default args
2021-01-26 21:40:33 -06:00
Blake Blackshear
4c6e90717a
update some default config values
2021-01-26 21:40:33 -06:00
Blake Blackshear
d60ca9d783
log level configuration
2021-01-26 21:40:33 -06:00
Blake Blackshear
62728ef7fb
default save_clips objects
2021-01-26 21:40:33 -06:00
Blake Blackshear
735cc3962b
make directories constants
2021-01-26 21:40:33 -06:00
Blake Blackshear
65ddd91855
add recording maintenance
2021-01-26 21:40:33 -06:00
Blake Blackshear
6d7d838613
add record settings to config
2021-01-26 21:40:33 -06:00
Blake Blackshear
117569830d
ensure zones dont have the same name as a camera
2021-01-26 21:40:33 -06:00
Blake Blackshear
4e0cf3681e
add multiple streams per camera
2021-01-26 21:40:33 -06:00
Blake Blackshear
1acbeb813e
add support for rebroadcasting as rtmp
2021-01-26 21:40:33 -06:00
Blake Blackshear
b87ec752cf
avoid null error
2021-01-26 21:40:33 -06:00
Blake Blackshear
addfa2a32d
manage events for unlisted cameras
2021-01-26 21:40:33 -06:00
Blake Blackshear
5155875a72
add clip retention to config
2021-01-26 21:40:33 -06:00
Blake Blackshear
50e898a684
new http endpoints
2021-01-26 21:40:33 -06:00