v2.0.0 - Viseron rewrite #430
Replies: 4 comments 4 replies
-
Love the work, was checking out some of the ideas on the reddit subs and some cool ideas coming in :-) |
Beta Was this translation helpful? Give feedback.
-
this may be me being stupid, but how can i access the streams inside of home assistant? i get the sensors etc, but i couldn't get the MJPEG integration to access the cameras. i get the thumbnails etc but i couldn't find the cameras. not a huge issue, just a nice to have lol. |
Beta Was this translation helpful? Give feedback.
-
actually speaking of HA, anyone made any cool automations yet? |
Beta Was this translation helpful? Give feedback.
-
Am I going to have a bad time if I try to run the Jetson Nano version on an AGX Orin? |
Beta Was this translation helpful? Give feedback.
-
This release features a massive rewrite that I have been working on for the past year.
It focuses on decoupling all parts of Viseron, making it more modularized. This allows for easier integration of new functionality.
The config.yaml file will change completely so there is some work that has to be done by each user to port over to the new version.
The general config format is a
component
which implements one or moredomains
.Each camera has a unique
camera identifier
which flows through the entire configuration.The
nvr
component then ties all these different domains together and provides the full functionality.The big benefit of this new format is that you can mix and match components more freely.
For instance, you could use different object detectors for different cameras, you are not tied into just one.
Config example
Config example with publicly available cameras (used in the screenshots)
Frontend
There is now a UI included in Viseron, written in React TypeScript.
It is enabled by default and can be reached on port 8888 inside the container by default.
Currently it features functionality like viewing cameras, recordings and editing the configuration.
It will be expanded upon in the future.
Some screenshots of the UI
Cameras:
Recordings:
Configuration:
Entities:
Jetson Nano support
This release also features better Jetson Nano support through the
gstreamer
component.This means that you can utilize your Nano for hardware accelerated camera decoding and object detection.
CompreFace face recognition
Face recognition using CompreFace is now available
Image classification
A new post processor is available,
image_classification
.This allows you to get more granular results from a detected object.
As an example, you could detect a specific kind of dog breed, or a specific kind of bird.
Multiprocessing
darknet
andedgetpu
object detectos utilize multiprocessing which spreads the load between multiple processes.This allows for better performance, but also makes it easier to analyze and fine tune the load on your system.
Documentation site
The documentation has moved over from being in a README format to a dedicated site.
Hopefully it will help you use Viseron better.
I need your help on how it can be improved, writing good docs is always hard.
I am especially proud of the components page, which is mostly generated from the config schema used.
This means that the documentation and schema will always match, yay!
The documentation is hosted here: https://viseron.netlify.app/
Breaking changes
ALL kinds of inheritance in the config has been removed.
This means that you have to explicitly configure your object detector and motion detector settings for each
camera
.interval
has been removed fromobject_detection
andmotion_detection
A new config option
fps
will be used instead.This change was made since it was quite confusing, both in the code and for the users because
interval
was specified in seconds.logging
has been removed in all shapes and forms and has been replaced with the new componentlogger
Please see the updated documentation
cameras
config section has been removed. Camera config is now specified under a component.Each object detector has been split up into individual components.
See the documentation for each detector.
Each motion detector has been split up into individual components.
See the documentation for each detector.
recorder
can no longer be configured on a global level.It now has to be present under each camera configuration.
timeout
under recorder is now calledidle_timeout
static_mjpeg_streams
are now calledmjpeg_streams
enable
underobject_detection
is no more. To disable object detection you simply dont configure it for a cameraSame goes for
motion_detector
timeout
formotion_detector
is now calledrecorder_keepalive
max_timeout
formotion_detector
is now calledmax_recorder_keepalive
Recordings are now stored in the folder structure
/recordings/<camera name>/<date>/<timestamp>.mp4
Images are no longer streamed to MQTT/Home Assistant, with the exception of thumbnails.
This is because MQTT is not really suited for this and it impacts performance a lot.
If you still want to have the cameras in Home Assistant you can point Home Assistant to an MJPEG stream in Viseron.
filter_args
removed for camera and recorder.For
camera
, usevideo_filters
instead.For
recorder
, you can use bothvideo_filters
andaudio_filters
Short config example to rotate video 180 degrees:
What's Changed
New Contributors
Full Changelog: v1.10.2...v2.0.0
This discussion was created from the release v2.0.0 - Viseron rewrite.
Beta Was this translation helpful? Give feedback.
All reactions