Skip to content

Latest commit

 

History

History
523 lines (324 loc) · 30.7 KB

ReleaseNotes.md

File metadata and controls

523 lines (324 loc) · 30.7 KB

Release Notes

Up

Update Procedure

Before updating, make sure that

For update, proceed as follows:

  1. Within a SSH session go to the raspiCamSrv root directory
    cd ~/prg/raspi-cam-srv
  2. If you have made local changes (e.g. logging), you may need to reset the workspace with
    git reset --hard
  3. Use git pull to update to the latest version
    git pull
    As a result, you will see a summary of changes with respect to the previously installed version.
  4. Restart the service, depending on how the service was installed
    sudo systemctl restart raspiCamSrv.service
    or
    systemctl --user restart raspiCamSrv.service
  5. Check that the service started correctly
    sudo journalctl -e
    or
    journalctl --user -e
  6. If you used start with stored configuration before updating, you may now try to activate this again.
    In cases where configuration parameters were not modified with the update, this will usually work.
    If not, you will need to prepare and store your preferred configuration again.

In case that the server did not start correctly or if you see an unexpected behavior in the UI, you may have forgotten to deactivate start with stored configuration
In this case, you can do the following:

  • cd ~/prg/raspi-cam-srv/raspiCamSrv/static/config
  • Check whether a file _loadConfigOnStart.txt exists in this folder.
  • If it exists, remove it:
    rm _loadConfigOnStart.txt
  • Then repeat step 4, above

V2.11.4

Bugfix

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-extended has 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-srv
    source .venv/bin/activate
    pip 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

V2.10.3

Bugfixes

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

Bugfixes

V2.9.2

Bugdixes

  • Disallow changing parameters of a Photo Series after it had already been started.

V2.9.1

New Feature

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 file prg/raspi-cam-srv/raspiCamSrv/static/config/triggerConfig.json
    Remove the part highlighted in the following screenshot, if it exists:
    Fix282

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

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, step 10)

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 dictionary which 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 error Error starting camera: lores stream dimensions may not exceed main stream because 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

V2.5.0

New Features

Changes

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

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 memory for 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 str which could occur in motionDetector.py if 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 debug to error when 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

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.
    Got Camera 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

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/timelapse is no longer used.
    Instead, photo series are now stored in folder raspi-cam-srv/raspiCamSrv/static/photoseries
    This folder will be automatically created at the first server start.
    If you have stored photoseries under the timelapse folder, you can move them to the photoseries folder and then delete the timelapse folder.
    For each series, you need to exchange /timelapse/ with /photoseries/ in the *_cfg.json files