Release Notes
V4.3.2
New Feature
- raspiCamSrv Version Updates supports periodical search for updates on GitHub with indication of new versions and version update as well as server restart from the UI.
V4.3.1
Bugfix
- Fixed the issue with bad Live Stream quality for Raspberry Pi models
<5.
When starting the live stream, raspiCamSrv usually configurs the camera with all 3 streams (lowres, main, raw), so that the live stream (lowres) can remain active while photos (main), raw photos (raw) or videos (main) are taken.
For Raspberry Pi Zero and other models<5, it turned out that the stream quality is bad when the raw stream is included in the configuration.
Now, for models<5, the raw stream is excluded from the configuration for the live stream, resulting in better quality.
For these models, when a raw photo is taken, the live stream will be temporarily stopped and reactivated without raw stream configuration after the raw photo has been stored.
V4.3.0
Changes
- Documentation has been moved to Material for MkDocs.
The entire documentation will be versioned with the software and Online Help links will point to documentation with the version of the software, rather than to the latest version.
V4.2.0
New Features
- For Motion Detection, Regions of Interest as well as Regions of NO Interest can be specified.
These are respected during Motion Detection for CSI as well as USB cameras and for all Motion Detection Algorithms - In case of multiple cameras, the camera-related Ttigger settings (Trigger/Motion and Trigger/Camera) are now camera-specific.
When the active camera is switched, these settings are replaced by those which had been defined and saved for camera switch for the new camera, before.
This is especially important when regions of interest are used for motion detection. These settings will not be lost when cameras are switched. - Backup and Restorage of configuration and other stored data.
Bugfixes
- For USB cameras an error occurred when Focus was set to 0.0 with Autofocus Mode "Manual". This is now fixed.
- For Motion Capturing with USB cameras, the frame rate for video recording was increased from 14.5 to 30. With this frame rate, the video length is in better accord with the configured duration.
V4.1.0
New Features
- Zoom and Pan are now also available for USB Cameras.
- Focus handling and Image Controls are now available for USB Cameras.
NOTE These features have currently been tested with different Logitech cameras. Please notify if other cameras show unexpected behavior.
Changes
- For USB cameras, it is no longer possible to choose Sensor Mode "Custom" for the different Configuration scenarios. Practical experience with web cams has shown that these do not support other image sizes as those defined in the discrete formats (sensor modes). The camera would always use the smallest standard format which entirely contains the specified area. Therefore, it does not make sense allowing the specification of a custom format, if the camera will not use it.
- For USB cameras, the aspect ratio for Stream Size of different Configuration use cases is not synchronized. For these cameras, the checkbox Sync Aspect Ratio is unchecked and disabled.
V4.0.3
Extension
- In the Info dialog, the section Raspberry Pi was extended with information on the software stack, which can be helpful analyzing errors which could occur with specific versions or installation details.
V4.0.2
Bugfixes
- Fixed error which occurred when changing the Active Camera in Settings to a USB camera
V4.0.1
Bugfixes
- Fixed error "Error
<class 'ValueError'>: Class Camera has no element when_motion_detected"
Cause of the error was a wrong configuration for Triggers with Source 'Camera', which had included an event 'when_motion_detected'. This event is only available for Source 'MotionDetector'.
The wrong configuration is now corrected.
If you have configured a Trigger for event 'when_motion_detected' with Source 'Camera', you need to delete it and replace it with a trigger with Source 'MotionDetector'
This covers part of raspi-cam-srv Discussion #77.
V4.0.0
New Features
- Seamless integration of USB cameras with CSI cameras (see Info and Multi Cam)
USB cameras are accessed through OpenCV which must have been installed (see Installation Step 11.).
The use of USB cameras can be activated or deactivated in the Settings.
USB cameras are handled in exactly the same way as CSI cameras and they can be used in all operational functions, except Focus Stacks and Exposure Series.
NOTE: Currently Controls (Focus, Zooming, Ecposure and Image control) cannot be used with USB cameras. However, images can be flipped and resolution can be adjusted with Configuration. - Hot-Plug of USB cameras is supported. See button Reload Cameras in Settings / Configuration.
- No-Camera Mode is supported.
Before, when no cameras were installed, raspiCamSrv could not be started.
Now, it is possible to use raspiCamSrv also without cameras, for example in order to control GPIO Devices through the Action Buttons or through the Event Handling Infrastructure or in order to use the Versatile Buttons Console to issue freely configurable OS commands and see their output. - Switching Cameras in the Multi Cam dialog now requires confirmation when Camera Confoguration and/or Controls were changed and not yet saved for camera switch. This shall avoid unintended loss of configuration work when switching the cameras.
- Installation Procedure has been updated for use with Debian-Trixie, the successor of Bullseye.
Tests have so far only be made with a Raspberry Pi Zero 2 system with connected CSI and USB camera.
Please report any issues, you may run into, in other configurations.
Bugfixes
- Made Photo Display robust against deletion of photos.
Before, when a photo was deleted, the entire display buffer was cleared.
Now, only the deleted photos are removed from the display buffer.
Also, when the server is started with stored configuration, it is checked whether to stored buffer information is still consistent with the existing photos or videos.
V3.7.1
Bugfixes
- Fixed Notification for Motion Capturing.
In special cases of parameters for Trigger Control, Camera Actions or Video/Photos to be included in the message (see Notification Settings), notification mails were not sent or images were not included in the mails.
This fix resolves raspiCamSrv Issue #76 (Notification email)
V3.7.0
New Features
- Camera Calibration uses an image series of a calibration pattern for calibration of a stereo camera pair.
- Stereo Vision uses a stereo camera setup for creation of 3D videos or depth maps.
- The Multi-Cam dialog has a new function to Synchronize Configurations.
Bugfixes
- Fixed behavior when starting server with stored configuration after the camera or one of the cameras has been replaced by a different model.
In the previous version, the settings for the second camera have been taken from the stored configuration.
Now, if a camera has been changed, the corresponding configuration is reset to default.
This will also be indicated with the yellow indicator for unsaved configuration changes - Layout of Multi-Cam dialog has been corrected. In the previous version the two columns had a different width.
- Fixed wrong status of Start server with stored Configuration after a Reset Server
- Fixed image distortion when the stream size of a Configuration has been changed to an aspect ratio which is not that of the default ScalerCrop.
In this case, scalerCrop is now activated in the controls, so that it will also be included in the streaming configuration and will also be synchronized with the second camera, if this is the same model as the active one. - Fixed inappropriate status indicators and Multi-Cam menu for systems having just one camera.
Note
- For Raspberry Pi Zero running the latest builds of Bookworm, there seems to be an issue with MJPEG streaming. It has been observed that, after some time of streaming (a few minutes), the entire system gets stalled and does no longer react without rebooting. The reasons are not yet understood and need to be analyzed.
This problem does not occur on Bullseye systems! The issue is no longer observed in Bookworm systems when updated after about mid September 2025!
V3.6.2
Bugfixes
V3.6.1
Bugfixes
- Fixed "NameError: name 'photoViewConfig' is not defined"
V3.6.0
New Features
- Now supporting alternate or simultaneous photo taking and video recording with both cameras for systems which allow connecting two (non-USB) cameras (currently Raspberry Pi 5).
- API extended with new web services supporting photo taking and video recording with both cameras.
- The new Multi-Cam dialog gives access to photo taking and video recording functions for both cameras, if available.
Bugfixes
- Fixes "KeyError: 'GPIO'" which could occur when the event handling system was stopped without having fired a GPIO trigger during its life time.
- Fixed an issue where Test Motion Detection did not work if it was started within a period where Trigger Operation was not active.
V3.5.6
Bugfixes
- Fixed an issue, where a request did not return when trying to take a photo in cases, where the configuration for Live View and Photo both use the same stream but with different stream size.
- Fixed missing Live view after an error has occurred during photo taking or video recording.
In some cases, the Live view needs to be deactivated while taking a photo or recording a video because of incompatible configuration.
The deactivation flag is now cleared so that the Live view will show up after an error has occurred.
NOTE: that you need to push the Live menu button for refreshing the screen. - Fixed wrong Status Indicator for Trigger thread after starting server with stored configuration
- Improved exception handling for camera access:
Exception occurring during camera configuration are now not only logged but also shown within the UI.
Low level error messages, indicating the error source as reported by Picamera2, are no longer overwritten by higher level more general messages.
New Features
- The Settings/Configuration screen now shows all unsaved configuration changes which have been made during a session. This can help to decide whether or not the current configuration needs to be saved.
Thus, whenever the Configuration Status Indicator is switched on, a new entry for unsaved configuration changes is made. - StepperMotor has got new functionality.
wipe will rotate back and forth between given angles for a certain nomber of cycles or until stop is called.
Changes
- Adapted Installation procedure step 11 for version of matplotlib.
As discussed in picamera2 issue #1211, Picamera2 relies on the numpy version coming with Debian installation, which is numpy 1.x.
On the other hand, matplotlib version 3.8 and later seem to require numpy 2.x, which is binary incompatible to version 1.x. - For StepperMotor, the minimum speed (which is achieved by setting speed=0) has been reduced by a factor of 10.
The angular velocity is now: For speed=0: 164.20 seconds for 360°
For speed=1: 4.42 seconds for 360° - Extended capabilities of
GET api probeAPI WebService endpoint:
NowCamera.streamOutputandCamera.stream2Outputare accessible which represent the streaming output of the primary and secondary camera.
V3.5.5
Bugfixes
-
Thread-safe handling of last live stream access. The last access of a client to a camera stream controls automatic shutdown of the streaming server after 10 sec of inactivity (see Streaming).
Since streaming clients and servers are executed in different threads, it could happen in rare cases that a client has tried to access a stream in a phase where the server has started but not yet completed to shut down because of inactivity.
Since the camera is closed when streaming is shut down, different camera errors could occur, depending on camera shutdown status.
This could occur in particular when taking photos or taking Photo Snapshots through the Web URL.
Now, access to the time of last stream access has been made thread-safe by holding locks while a process is evaluating or changing this value and, in cases where inactivity is detected by the server, the lock is only released after the server has completely shut down.
(Fixes raspi-cam-srv issue #61) -
After an OS upgrade, Kernel Version and Debian Version in the Info/Installed Cameras screen did not show the correct values if the server was configured to start with the stored configuration. Instead, the values from the stored configuration were shown.
This has been fixed.
The entry in the server configuration storage file will have the old value until the configuration has been stored.
Changes
- Information on the Debian Version in the Info/Installed Cameras screen now includes information on the system architecture (32-/64-bit) of the installed OS.
New Features
- A new API WebService endpoint is provided:
GET api probeallows probing oject properties of live objects of an active raspiCamSrv server.
NOTE: This service is mainly intended for error analysis within a live system and requires detailed knowledge of the raspiCamSrv object model.
You can specify a set of object attributes for which attribute values shall be queried.
As objects, you select from the base singleton objects {Camera(), CameraCfg(), MotionDetector(), PhotoSeriesCfg() or TriggerHandler()} and then specify valid properties with dot-notation.
The result is returned in JSON format. Error messages are shown if an attribute is not JSON serializable.
V3.5.4
Bugfixes
- Corrected deprecated log level for Picamera2 logging from
Picamera2.ERRORtologging.ERROR
(See raspi-cam-srv Issue #62)
V3.5.3
Changes
In dialog Web Cam, the button Memorize Configuration and Controls for Camera Change was renamed to Save Active Camera Settings for Camera Switch in order to more clearly express its functionality.
See raspi-cam-srv Issue #60
V3.5.2
Bugfixes
-
Fixed a bug which caused motion detection to be stalled after booting the Raspberry Pi.
The error was caused by a race condition between start of the raspiCamSrv server and syncronization of system time with a time server.
When time synchronization resets the system time while the live view is already active, this will signal inactivity for more than 10 sec and, therefore, immediately stop the live stream and subsequently close the camera.
Since motion detection relies on an active live stream, this could cause blocking of the motion detection thread which then cannot be stopped except by restarting the server.
Now, the system checks the system time synchronization status at startup and, if necessary, waits until time is syncronized with the time server.
This resolves raspiCamSrv Issue #28: raspi-cam-srv seems to be frozen sometimes
NOTE: This fix does not currently work when running raspiCamSrv as Docker Container -
Fixed missing Config screen for Docker installations
New Feature
- The Info screen now shows the time when raspiCamSrv has recognized time synchronization, which can be considered as the server start time.
V3.5.1
Bugfixes
- Fixed video recording during motion tracking for Raspberry Pi models 1, 2, 3:
For models Pi 4 and lower, video recording during motion tracking should use the Live View Configuration because this is usually set to lower resolution and should, therefore, not cause memory issues with these devices.
Only for Pi 5, the Video Configuration should be used.
Unfortunately, in versions up to V3.5.0, this was only applied to Pi 4 and Pi Zero, whereas for Pi 1, Pi 2 and Pi 3 the Video configuration was used.
This is now corrected and for all models <= Pi 4 the Live View configuration is used.
V3.5.0
New Features
- StepperMotor has got new functionality. In addition to the new methods
swing()androtate_to(angle), thecurrent_angleof rotation is tracked and can be set and queried.swing()allows stepwise rotations within given boundaries whereasrotate_to(angle)rotates to a specified angle.
This functionality relies on Calibration and device status tracking.
NOTE: If you have already a StepperMotor configured, it will not inherit the new functions. You will need to recreate it. - Device Configuration for StepperMotor allows Calibration to set a specific orientation as zero reference.
- For devices requiring Calibration (currently only StepperMotor), the status is continuously tracked and memorized so that it can be restored after a restart or a renewed device access.
NOTE: This may not work if the raspiCamSrv server is stopped while the StepperMotor is active. - A new Camera [Trigger] is available:
when_series_photo_takenallows assigning Actions when a photo has been taken within a Photo Series.
The trigger does not fire in case of an Exposure Series or a Focus Stack
Changes
- Camera Actions do no longer trigger events. This means: if, for example, a Trigger has been specified when a Photo is taken, this trigger will no longer fire if the photo is taken as an action of another trigger.
Bugfixes
- API endpoint
api/start_triggered_capturenow also starts event handling and not only motion detection - API endpoint
api/stop_triggered_capturenow also stops event handling and not only motion detection - Fixed error
Camera.frames - Exception: argument of type 'NoneType' is not iterablewhich could occur if button Load Stored Configuration has been pressed. - Fixed Load Stored Configuration: Now, all background processes are stopped before the stored configuration is loaded, and they are restarted afterwards, if they had been active before.
- Fixed Reset Server: Now, all background processes are stopped before the configuration is set to default, and they are restarted afterwards, if they had been active before. Some missing configurations which may have led to errors have also been fixed.
- Made
table-layout:fixedfor Versatile Buttons and Action Buttons so that all columns have equal width and empty rows are shown. - Multiple SMTP mails for the same Trigger are avoided.
- Fixed event notification. Due to a timing issue, sent mails could be incomplete and attachments may have been missing.
V3.4.0
New Features
- Under Actions, it is now possible to configure camera actions:
take_photo
start_video
stop_video
record_video with a configurable duration. - Actions now support SMTP action for sending a mail in case of an event.
- Trigger allow configuring MotionDetector trigger for CAM-1: when_motion_detected.
This trigger fires when a motion is detected by the cameras motion detection algorithms. - Device Types for GPIO devices include now additional GPIO base classes which allows integrating more general devices:
- DigitalInputDevice
- DigitalOutputDevice
- OutputDevice - An indicator has been added which indicates unsaved configuration changes.
- The event log can now be downloaded from the Calendar view
Changes
- For Triggers with Source "Camera" the device names were changed:
"Active Camera" -> "CAM-1"
"Second Camera" -> "CAM-2"
If triggers have been created with the old Device names, they will be renamed automatically when data are loaded from the stored configuration. - For Versatile Buttons and Action Buttons the maximum number of rows and columns was changed from 9 to 99.
- Added favicon for browser tab
Bugfixes
- Fixed error
ERROR in camCfg: Error loading from /home/pi/server/raspi-cam-srv/raspiCamSrv/static/config/serverConfig.json: 'NoneType' object is not subscriptable
reported in raspi-cam-srv Issue #55 - Bugfixes and improvements for Class StepperMotor:
For full-step mode, the waiting time is now doubled while speed range is unchanged. (1ms does not work)
New methods step(steps) and rotate(angle) have been added, which allow positive and negative arguments.
Rotations are now with higher precision. They are now in integers of motor steps rather than geared steps.
For full-step mode, now two coils are activated in each step, instead of only one, which increases torque. - Several tables which can become large, can now be scrolled with fixed headers.
V3.3.0
New Features
- Configuration of access to GPIO-connected devices through the gpiozero library.
- Extension of
gpiozero.OutputDevicefor support of Stepper Motors - Configuration of Triggers for events from GPIO-connected input devices, such as sensors and buttons.
- Implementation of callback hooks for photo-related events ('when_photo_taken', 'when_recording_starts', 'when_recording_stops', 'when_streaming_starts', 'when_streaming_stops') for integration with the new event handling infrastructure.
- Configuring of Actions for GPIO-connected output devices.
- Configuration of Action Buttons and Console / Action Buttons for the direct manual execution of Actions with GPIO-connected output devices such as LEDs, motors and servos. This includes also the control of Stepper Motors.
- An option On Dial Marks has been added to Photo Series which assures that photos will be taken exactly (within tolerances) at every full hour, half hour, quarter, minute, ..., depending on the chosen interval.
V3.2.0
New Features
-
The Settings for Versatile Buttons now allows setting the commandline in Versatile Buttons to be interactive, which allows entering commands directly.
-
Access to Online Help added to the different application screens.
The Online Help button opens the document page on GitHub related to the active dialog.
V3.1.0
New Features
- Functionality has bee added for configuration of Versatile Buttons for execution of commands on the level of the Raspberry Pi's Linux OS.
This covers part of the request in Discussion #47.
V3.0.0
Package version upgrade
- Released for Flask 3.1.0
raspiCamSrv can use the current Flask version 3.x
Upgrading Flask in an existing installation is not mandatory.
In order to upgrade from Flask 3.0.0 to the latest version 3.x, proceed as follows:cd prg/raspi-cam-srv/source .venv/bin/activatepip install --upgrade "Flask>=3,<4"
V2.13.0
New Feature
- RaspiCamSrv can now also be deployed in Docker.
See Running raspiCamSrv as Docker Container
V2.12.0
New Features
- The Info Screen has been extended by a section Streaming Clients which shows a list of clients which are currently using any of the camera streams.
Bugfixes
-
Fixed TypeError which could occur if a paused Photo Series, for which no photos had been taken, was continued.
-
Fixed an error where for a Photo Series with Interval > 60 sec. an additional photo could have been taken about 1.5 sec. before the expected time when the regular photo is taken. If the waiting time between successive photos is > 60 sec. and if no other process requires the camera, the camera is closed to minimize resource consumption. The waiting time is then shortened by 1.5 sec., to account for the time required for camera wakeup. If, however, the live stream is activated within 60 sec. before the time for the next photo, the camera is already active and this additional time is not required.
-
Fixed an error for Photo Series with Interval >> 60 sec. for the case when the series was started while the live stream was still active. In this case, the photo series did not stop the camera during the waiting period because it was required by the live stream. If the photo series continued taking the next photo, it did not recognize that the camera was closed in the meantime. An attempt to take a photo caused the thread to stop without error notification.
As a result, the series seemed to be active while it was actually dead. -
Fixed an error for Photo Series with Interval > 60 sec. where controls (e.g. zoom/ScalerCrop) were not applied to the photos of the series, except probably for the first one.
The reason was that the camera is closed if the waiting time for the next photo is > 60 sec. and after restart the camara wasn't given time to pick up the controls settings. Now, an additional waiting time of 1 sec. has been added which resolves the issue.
V2.11.4
Bugfix
- Fixed initialization of the raspiCamSrv API which did not work when a secrets file did not yet exist.
V2.11.3
Bugfix
-
Fixed "TypeError: can only concatenate str", which might occur in special cases for a Sun-controlled timelapse series.
-
Fixed wrong display of Sunset in Timelapse series.
-
Fixed "KeyError: 'UnitCellSize'" for cases where camera_properties do not include information on the physical size of the sensor’s pixels
Doc
V2.11.2
Bugfix
- Fixed an issue where photos and videos could not be taken if the Transform settings for the different configuration were different.
Now, when modifying the Transform (flip <> or flip v) are changed in one configuration this change is also applied to all other configurations.
This covers raspiCamSrv Issue #33 Errors after changing Transform settings
V2.11.1
Bugfix
- Fixed an import error which occurred after having upgraded to V2.11 when package
flask-jwt-extendedhas not yet been installed.
V2.11.0
New Features
-
V2.11.0 introduces the new raspiCamSrv API for interoperability of raspiCamSrv with other software packages.
This resolves the feature request raspi-cam-srv issue #34 API? -
Required installation actions:
In order to allow API support, it is necessary to install an additional package.
This can be done before or after the Update Procedure:cd ~/prg/raspi-cam-srvsource .venv/bin/activatepip install flask-jwt-extended
Changes
- The Settings screen has been restructured to incorporate the additional settings required for the API
V2.10.5
Bugfixes
-
Allowed port range in Trigger - Notification extended to [1 ... 65535]
Partly resolves raspi-cam-srv issue #42 SMTP port issue -
Fixed Trigger Notification for SMTP servers which do not require authentication.
It can now be specified whether or not the server requires authentication.
Within the connection test it is checked whether the SMTP server requires SSL and authentication.
If the requirements are not consistent with the settings on the Notification screen, an error message is shown.
Resolves raspi-cam-srv issue #42 SMTP port issue
V2.10.4
Bugfix
- Fixed function Load Stored Configuration on the Settings screen.
After execution of this function, values shown on the Settings screen were only updated to the values loaded from the stored configuration after the page has been refreshed.
Resolves raspi-cam-srv issue #39 load_config route assumes LiveStream2 exists (causes crash if non-existent)
V2.10.3
Bugfixes
-
Fixed function Load Stored Configuration on the Settings screen.
This function failed in cases when only a single camera is connected to a Raspberry Pi.
Resolves raspi-cam-srv issue #39 load_config route assumes LiveStream2 exists (causes crash if non-existent) -
Fixed Switch Cameras on the Web Cam screen.
If working with two cameras, this function caused an error when Triggered Capture of Videos and Photos, a Photo Series or Video Recording is currently active.
The user is now asked to stop either of these processes before switching cameras.
V2.10.2
New Features
- Added kernel version and Debian version to Info screen.
V2.10.1
Bugfix
- Fixed an issue with platform-specific search of tuning files.
V2.10.0
New Features
- Support of Camera Tuning by selection of alternate tuning files.
Resolves raspi-cam-srv issue #26 NoIR camera settings
Note: There is still an issue when streaming two cameras. (See Picamera2 Issue #1103 Tuning file support not thread-safe?)
Bugfixes
- Fixed error
The browser (or proxy) sent a request that this server could not understand.which ocurred when pressing Submit in the Control tab of the Trigger menu.
Resolves raspi-cam-srv issue #27 Trigger Control Submit make server error
V2.9.2
Bugdixes
- Disallow changing parameters of a Photo Series after it had already been started.
V2.9.1
New Feature
- Photo Series can be downloaded (see Downloading a Series)
V2.9.0
New Features
- The Photo Viewer has been enabled to download photos and to delete photos from the Raspberry Pi.
V2.8.4
Bugfixes
- When a Sun-controlled Photo Series was started, it could happen that the series end was recalculated without considering the configured time periods.
Typically, this happened when the configured start time was earlier than the time when the series was actually started.
Because this end time was in many cases earlier than the start of the next time slot, the series may have immediately stopped when the next period started.
This is now fixed. - In some cases when a series was finished because the configured end time has been reached, the background process did not stop and continued to produce photos with zero interval until the configured number of shots has been reached.
- When a Photo Series was paused and continued afterwards, the Current shots was incremented without taking a photo with this number. Therefore current shots did not represent the real number of photos and the series would be stopped before reaching the configured Number of shots
Now, Current shots is only incremented if a photo has been taken. - When the waiting time for the next shot in a Photo Series is larger than 60 sec, RaspiCamSrv stops the camera and restarts it when the time is reached.
However, the restart requires 1.5 sec waiting time to allow the camera to collect statistics for auto-exposure algos.
Therefore, the phototaking is delayed by at least 1.5 sec with respect to the expected times.
This is now compensated.
The observed delay is now considerable smaller and ranges from ~0.2 sec for the first photo to ~0.04 sec for the next ones.
Changes
- When a new Photo Series is created, the start time is delayed by 1 minute with respect to the current time to give time for further configurations.
V2.8.3
Bugfix
- Fixed layout issues in screen Settings for cases where Show Histograms and/or Ext Motion Detection are not supportet.
V2.8.2
Bugfix
- The Bugfix introduced in V2.8.0 caused an error on systems like Pi Zero where modules cv2, matplotlib or numpy cannot be installed.
This error is now fixed.
If in your system the Settings screen shows that Ext. Motion Detection supported is checked and in screen Trigger/Motion the Motion Detection Algorithm list only shows "Mean Square Diff", you can try the following:
Edit fileprg/raspi-cam-srv/raspiCamSrv/static/config/triggerConfig.json
Remove the part highlighted in the following screenshot, if it exists:
V2.8.1
Changes
- Removed alternate type hints in module sun.
These were introduced in Python 3.10.
However in Raspberry Pi Zero systems Python 3.9 is installed.
V2.8.0
New Features
- For Photo Series, the page Timelapse Series now allows specification of up to two daily periods depending on sunrise and sunset.
Refers to Discussion #21. - On the Settings screen, new parameters for geographical latitude, longitude and elevation as well as a time zone selector have been added.
Non-zero settings for these parameters are required for using Sun-controlled Photo Series
Bugfixes
- For Motion Detection, the list of supported algorithms had shown only "Mean Square Diff", even if Ext. Motion Detection supported was activated in the Settings screen.
Now all available algorithms can be selected and used if the modules cv2, matplotlib and numpy are installed on the system (see RaspiCamSrv Installation, 11)
V2.7.1
Bugfixes
- Images from a photo snapshot URL (see Web Cam) could not be saved using 'save as' from the context menu.
The reason was that these images still contained the framing and mime type from MJPEG streaming.
This is now fixed.
This solves raspi-cam-srv Issue #22
V2.7.0
New Features
- For streaming access, it can now be configured in the Settings screen whether authentication is required or not.
The default is that authentication is not required, as before.
This modification has been made for Feature Request #20
Changes
- The default log level for libcamera was set to ERROR instead of WARNING in order to suppress V4L2 pixel format warnings.
V2.6.3
Bugfixes
- Fixed
Error starting camera: main stream should be a dictionarywhich accurred at server start, if an active Photoseries with Photo Type "raw+jpg" was configured to be Continued on Server Start. - When a Photoseries is automatically continued on server start/restart, previous versions did not allow seeing the live stream while the Photoseries was active. Now, if the photo series configuration is compatible with live stream configuration, you will see the live stream also after automatic continuation of the series.
V2.6.2
Bugfixes
- Fixed
Exception: 'NoneType' object has no attribute 'get'which occurred when taking a video which requres exclusive camera access.
The reason was that, while stopping the live stream, it was not recognized that video recording was intended. As a result, the camera was closed and access to the camera during video recording lead to this error.
Refers to: raspi-cam-srv Issue #18. - Fixed
AttributeError: 'NoneType' object has no attribute 'requestStop'which could occur after applying Reset Server in the Settings screen.
Changes
- For Raspberry Pi models lower than model 5 (Zero, 1, 2, 3, 4),
the Configuration for Photo is initialized with the lowest Sensor Mode
and the Buffer Count for Video is set to 2, identical with Live View.
This makes all configurations compatible and allows for the Live Stream parallel to Video Recording, when using the default configuration.
Refers to: raspi-cam-srv Issue #18.
V2.6.1
Bugfixes
- With deactivated Sync Aspect Ratio, the aspect ratio of different configurations was nevertheless synced. This is now fixed.
- When activating Sync Aspect Ratio, after it was previously deactivated, all aspect ratios were set to the one of Live View and not to the currently selected configuration.
- When activating Sync Aspect Ratio, after it was previously deactivated, ScalerCrop was not automatically updated.
V2.6.0
New Features
- Zoom and Pan has been completely reworked.
It now takes regard of the ScalerCrop specifics of Raspberry Pi cameras.
This allows full control of image areas also for cases with extreme aspect ratios.
Note: For cases where the height of the Stream Size is considerably larger than its width, the live stream in the Live screen may exceed the page height. This cannot currently be avoided without loosing the capability of graphical focus and zoom. - The Config screen now has an option to synchronize aspect reatios of Stream Sizes across all configurations.
If this is activated and a non-standard aspect ratio is configured, for example, for the Live View, the Stream Sizes for the other configurations will be adjusted to the same aspect ratio.
Then the Live Stream will no longer be distorted because the camera system will select a ScalerCrop with the same aspect ratio. - The Info screen in section Camera x now shows the Sensor Mode in which the camera is currently operating if the camera is currently started.
Changes
- Camera Configuration for Raw Photo now allows Custom Stream Size.
However, if a Stream Size is specified which does not correspond to the output_size of one of the cameras Sensor Modes, the camera will automatically select a suitable Sensor Mode and produce a .dng file with the corresponding size.
The reason for this change was that the new option to automatically syncronize aspect ratios across configurations can lead to a custom Stream Size also for the Raw Photo configuration. - The parameter Stream Size aligned with Sensor Modes in the Configuration now dafaults to False.
The reason for this change is that, when specifying identical Stream Sizes for lores and main streams, the camera could produce an errorError starting camera: lores stream dimensions may not exceed main streambecause the automatic alignment might produce effective Stream Sizes which violate tis restriction.
Bugfixes
- Zooming did not preserv image center
V2.5.4
Bugfixes
- Avoid
Error starting camera: lores stream dimensions may not exceed main stream
Now, when specifying any Camera Configuration, it is checked whether the specified Stream Size for the different use cases obey the restriction that stream size for 'lores' must be less than stream size for 'main' stream.
If the restriction is violated, an error message is shown and the previous values are restored. - In Camera Configuration for Photo, Stream could be changed to 'lores' in the dialog, but this change has not been stored. Now fixed
- Fixed: --- Logging error --- ... camera_pi.py", line 793, in clearConfig
V2.5.3
Bugfixes
- The previous fix was not robust enough and really worked only with debugging activated..
Now, the camera is given a second more time after different steps of switching.
V2.5.2
Bugfixes
- Switching the camera caused
RuntimeError: Unable to stop preview.(see raspi-cam-srv Issue #14).
This is now fixed. Switching the camera can be done from the Settings screen as well as from the WebCam screen.
V2.5.1
New Features
- During Motion Capture, framerates are also reported for the Mean Square Diff algorithm.
See Testing Motion Capturing
V2.5.0
New Features
- Extended Motion Capturing Algorithms are available, including Frame Differencing, Optical Flow and Background Subtraction
- The Extended Motion Capturing Algorithms can be run in a testing mode, showing live views of intermediate image processing results which can help for a better understanding of the algorithms and adjustment of their variable parameters.
Changes
- For Motion Detection, Trigger Parameters (see Database for Events) have been changed from format "string" to Python Dictionary, allowing multiple parameters for the Extended Motion Capturing Algorithms.
Existing database entries with string format are still supported.
V2.4.3
Bugfixes
- When data for an ACTIVE Photo Series were changed, the status of the series was set back to "READY" but the thread was still active.
Now, for an ACTIVE or PAUSED series, the Photo Type and Start can no longer be changed.
The status will be promoted only for a NEW series.
For a series in status FINISHED, data can no longer be modified. - The ERROR
Could not import SensorConfiguration from picamera2.configuration, which occured on Bullseye systems was changed to INFO
V2.4.2
Bugfixes
- If livestream terminates, camera is closed if a Photo Series is active (no Exposure Series or Focus Stack) and if the time to the next shot is larger than 60 sec.
In the previous version, the camera would not have been closed if a Photo Series was active at the time when the livestream terminated.
If, for example, the interval for the Photo Series would have been 1 hour and if the livestream would have been activated shortly after a shot was taken, the camera would have been open and started for about one hour and only be closed after the next shot of the series.
V2.4.1
New Features
- Process information for the Flask server process and its threads has been added to the Info screen
- Camera status information has been added to the Info screen
Improvements
- Cameras are now stopped and closed in times when they are not active.
As a consequence, the number of active threads and CPU utilization is reduced in phases when cameras are not streaming and no other background processes (video recording, photo series, motion capturing) are active.
For more details, see Camera Status and Number of Threads
Bugfixes
- Code Generation did not generate import statements.
- Error status for Triggered Capture of Videos and Photos which had been stored with Store Configuration are now cleared if server is started with stored configuration
V2.4.0
New Features
- Photo Series can be set to be automatically continued on server start if they had been interrupted by a server stop or system shotdown or reboot.
Bugfixes
- The active Photo Series had always been set to the alphabetically last series in case of a server start/restart, even if another series had been active at the time when the server was stopped.
Now, if a series with status "ACTIVE" is found when the server is started, this series will be set as active series.
V2.3.6
Bugfixes
- Fixed error
[Errno 12] Cannot allocate memoryfor Raspberry Pi 3.
(See raspi-cam-srv Issue #9)
Lower values for buffer_count are now also used for Pi 3, Pi 2 and Pi 1. in the same way as for Pi 4 and Pi Zero.
V2.3.5
Bugfixes
- Fixed issue with endpoints photo_feed and photo_feed2:
These endpoints use the live streams for the available cameras. However, if the live stream was not active at the time when a client requested this endpoint, no photo was shown. Only when live streams were activated through the raspiCamSrv Web UI, photos were shown.
Now, when these endpoints are requested, the system automatically starts a live stream if it is currently not active and delivers a photo.
V2.3.4
New Features
- e-Mail notification on motion capturing events (see Notification)
V2.3.3
Bugfixes
- Starting server with stored Configuration (Settings) did not correctly set a previously configured Zoom (ScalerCrop). Instead, ScalerCrop was set to the active camera's pixel array size (see raspiCamSrv Issue #7). This was done only during initial system start and not after manually applying Load Stored Configuration in Settings.
Now, the stored ScalerCrop is no longer overwritten, if a zoom (<>100%) has been explicitely applied ("include_scalerCrop": true in controls.json).
V2.3.2
Improvements
- Error handling has been improved. Server errors, also from background threads, are routed to the web client.
This does not apply to errors occurring in encoders which are running in own threads. Exceptions thrown in these threads are currently not handled by raspiCamSrv.
Error reasons are mostly invalid combinations of Configuration parameters, especially with Stream Format
Bugfixes
- After applying Swith Cameras in page Web Cam, Title and metadata for the second camera were identical to those of the first camera.
- Reset Server may have caused errors in streaming or other functions
- In Config, raw stream can no longer be configured for Live View, Photo, and Video
V2.3.1
Bugfixes
- Avoid flooding with console error message "Motion detection thread did not stop within 5 sec".
Now assuming that thread does no longer exist. - Fixed error
TypeError: can only concatenate str (not "NoneType") to strwhich could occur inmotionDetector.pyif video recording failed after motion detection.
In this case, there has been an error message in events logfile - Encoder Bitrate is no longer specified when recording a video (before it was set to 10000000)
- Changed loglevel from
debugtoerrorwhen an exception occurred during video recording - Added error log when encoder could not be started after motion capture.
Previously, the error was only shown in the events logfile - For Raspberry Pi 4, the default sensor mode is set to 0 (lowest resolution) in order to avoid encoder errors.
- For Raspberry Pi 4, motion capture videos are recorded from the lowres stream with Live View configuration
- For Raspberry Pi 4, default buffer count was reduced to 2 for live view and 4 for video
V2.3.0
New Features
- Streaming of second camera added (see Webcam page). A single raspiCamSrv server can now simultaneously stream both cameras connected to a Raspberry Pi 5.
- The camera configuration and controls for the active camera can be preserved also for a situation when this camera acts as "other" camera.
- Streaming configurations for both cameras are stored together with the entire configuration (see Settings) and can be loaded on server restart.
V2.2.3
Bugfixes
- For Raspberry Pi Zero, use the lowres stream (Live View Configuration) for recording videos during motion capture.
During motion capture, the Live View camera configuration is used because the live stream is required for detecting motion. However, the Buffer Count of 2, used for this configuration for Pi Zero (see V2.1.2), is too small for video recording with the resolution of the Video configuration. - Fixed an error which could occur when viewing events when placeholder photos for videos were not yet read from the database.
V2.2.2
New Feature
- Added an option to automatically start motion capture with the Flask server.
Thus, if server start is done in a service, motion capturing will automatically be active if the device is booted.
(See Triggered Capture of Videos and Photos)
V2.2.1
Bugfixes
- Prevent changing settings while the trigger-capture process is active
- Prevent changing camera configuration while the trigger-capture process is active
- Prevent starting an Exposure Series or a Focus Stack Series while the trigger-capture process is active
- Fixed "ValueError: could not convert string to float: ''" which may have ocurred for Exposure Series or Focus Stack Series with a camera having no focus support
V2.2.0
Installation Hints
This version has a new database schema with tables used for captured events.
After an update with git pull, you need to initialize the database with
flask --app raspiCamSrv init-db
before starting the server.
This will also recreate the user database and requires new registration.
Services should be stopped during upgrade
New Feature
- Introduced basic motion capturing (see Triggered Capture of Videos and Photo)
V2.1.2
Bugfix
- For Raspberry Pi Zero, the "Buffer Count in the Configuration for Live View and Video has been reduced to 2 and 4, respectively because of memory issues.
Also, the default Sensor Mode for Video* has been set to the lowest (0) mode, rather than to the highest.
V2.1.1
Known issues
- On Pi Zero, there seems to be issues with parallel live stream on lores and video recording or phototaking on main.
GotCamera frontend has timed out!exception.
Probably, this feature needs to be deactivated on these platforms. Need to study in more details.
New Features
- The Camera Information screen now shows also information on the Raspberry Pi version and board version.
Bugfix
- For Raspberry Py systems Pi 4 and earlier, the Stream Format for Live view is initialized with "YUV420".
According to the Picamera2 Manual ch. 4.2, p. 16, this format must be used for these systems for the lowres stream which is now the default for Live View.
The list of values for the lowres stream in the Config dialog is not restricted to YUV format, however, if an other format is selected, an error message is shown and the parameter remains at "YUV420". - On Bullseye systems (Pi Zero), the package picamera2.configuration does not currently include the class SensorConfiguration. Also the CameraConfiguration class does not contain the element sensor.
This caused an "Import Error" when starting the server.
This error is now captured and, if it occurs, the sensor element in the configuration is ignored.
V2.1.0
New Features
- Added endpoint for photo snapshots (raspi-cam-srv Issue #5)
(see Web Cam)
V2.0.0
New Features
- Major modification of camera control to allow non-exclusive access to the camera from parallel tasks.
Phototaking, video recording and photoseries do no longer interrupt the live stream if the required camera configurations are compatible.
(See raspiCamSrv Tasks and Background Processes) - Added code generation to the camera module.
The code used for interaction of raspiCamSrv with Picamera2 is logged into a file specific for each server run. This generates executable Python code, suitable to 'replay' the entire camera interaction of a raspiCam Server run.
This can be used for testing and error analysis.
(See Generation of Python Code for Camera)
Changes
- The camera configuration for VIDEO is now initialized with the sensor mode with the largest stream size in order to allow simultaneous use of main stream for Photo and Video.
Refactoring
- General refactoring of "Timelapse series" to "Photo Series".
Timelapse series are now just a special kind of photo series. - The folder
raspi-cam-srv/raspiCamSrv/static/timelapseis no longer used.
Instead, photo series are now stored in folderraspi-cam-srv/raspiCamSrv/static/photoseries
This folder will be automatically created at the first server start.
If you have stored photoseries under thetimelapsefolder, you can move them to thephotoseriesfolder and then delete thetimelapsefolder.
For each series, you need to exchange/timelapse/with/photoseries/in the*_cfg.jsonfiles
