Send Motion-user mailing list submissions to motion-user@lists.sourceforge.net
To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/motion-user or, via email, send a message with subject or body 'help' to motion-user-requ...@lists.sourceforge.net You can reach the person managing the list at motion-user-ow...@lists.sourceforge.net When replying, please edit your Subject line so it is more specific than "Re: Contents of Motion-user digest..." Today's Topics: 1. Motion detection + 24/7 recording (Bartosz Kiziukiewicz) 2. Re: Duplicate SQL entries for every event (David Powell) ---------------------------------------------------------------------- Message: 1 Date: Fri, 13 Aug 2021 15:23:27 +0200 From: Bartosz Kiziukiewicz <kiz...@gmail.com> To: Motion discussion list <motion-user@lists.sourceforge.net> Subject: [Motion-user] Motion detection + 24/7 recording Message-ID: <05c38db1-ec3f-5ed1-91dd-159d02f81...@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed I'm using motion with motionEye to record a few outdoor cameras 24/7. As the PC running it is on is rather old, I'm using netcam_highres along with movie_passthrough options. I want to add motion detection to it to trigger sending e-mails but at the same time I want to have continuous recording. I've been looking through the documentation but I can't see such a possibility. Is there any smart way to do it? ------------------------------ Message: 2 Date: Fri, 13 Aug 2021 11:23:46 -0400 From: David Powell <da...@depowell.com> To: Motion discussion list <motion-user@lists.sourceforge.net>, tosiara <tosi...@gmail.com> Subject: Re: [Motion-user] Duplicate SQL entries for every event Message-ID: <af30f996-46c2-9699-4c6d-e2b9ae10e...@depowell.com> Content-Type: text/plain; charset="utf-8"; Format="flowed" I was going to open a bug report, but haven't quite gotten around to it yet.? Sorry. Here's the output from /describe events;/ *Field** * *Type* *Null* *Key* *Default* *Extra* server_number int NO PRI <null> camera_number int NO PRI <null> event_number int NO PRI <null> event_date varchar(45) NO PRI video_length int YES <null> filename varchar(200) YES <null> This is my main motion.conf. I can supply the individual camera config files but they're pretty simple.? I'll put one of them below the main config. # /usr/local/etc/motion/motion.conf # # This config file was generated by motion 4.1.1+git20181002-062a328 # at 2021-06-08T17:01:40 ############################################################ # System control configuration parameters ############################################################ # Start in daemon (background) mode and release terminal. daemon on # Start in Setup-Mode, daemon disabled. setup_mode off # File to store the process ID. ; pid_file value # File to write logs messages into.? If not defined stderr and syslog is used. log_file /var/log/motion/motion.log # Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL). log_level 4 # Filter to log messages by type (COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL). log_type ALL # Do not sound beeps when detecting motion quiet on # Native language support. native_language on # User defined name for the camera. ; camera_name value # Numeric identifier for the camera. camera_id 0 # Target directory for pictures, snapshots and movies ; target_dir value # Video device (e.g. /dev/video0) to be used for capturing. videodevice /dev/video0 # Parameters to control video device.? See motion_guide.html ; vid_control_params value # Preferred color palette to be used for the video device v4l2_palette 17 # The input number to be used on the video device. input -1 # The video norm to use for video capture and TV tuner cards. norm 0 # The frequency to set the tuner to (kHz) for TV tuner cards frequency 0 # The Motion method to use to change the brightness/exposure on video device. auto_brightness 0 # Device name (e.g. /dev/tuner0) to be used for capturing when using tuner as source ; tunerdevice value # Number of frames to capture in each roundrobin step roundrobin_frames 1 # Number of frames to skip before each roundrobin step roundrobin_skip 1 # Try to filter out noise generated by roundrobin roundrobin_switchfilter off # The full URL of the network camera stream. ; netcam_url value # Optional high resolution URL for rtsp/rtmp cameras only. ; netcam_highres value # Username and password for network camera. Syntax username:password ; netcam_userpass value # The method for keep-alive of network socket for mjpeg streams. netcam_keepalive on # The URL to use for a netcam proxy server. ; netcam_proxy value # Use less strict jpeg checks for network cameras. netcam_tolerant_check on # Use TCP transport for RTSP/RTMP connections to camera. netcam_use_tcp on # Name of mmal camera (e.g. vc.ril.camera for pi camera). ; mmalcam_name value # Camera control parameters (see raspivid/raspistill tool documentation) ; mmalcam_control_params value ############################################################ # Image Processing configuration parameters ############################################################ # Image width in pixels. width 640 # Image height in pixels. height 480 # Maximum number of frames to be captured per second. framerate 15 # Minimum time in seconds between capturing picture frames from the camera. minimum_frame_time 0 # Number of degrees to rotate image. rotate 0 # Flip image over a given axis flip_axis none # Draw a locate box around the moving object. locate_motion_mode preview # Set the look and style of the locate box. locate_motion_style redbox # Text to be overlayed in the lower left corner of images text_left CAMERA1 # Text to be overlayed in the lower right corner of images. text_right %Y-%m-%d\n%T-%q # Overlay number of changed pixels in upper right corner of images. text_changes off # Scale factor for text overlayed on images. text_scale 1 # The special event conversion specifier %C text_event %Y%m%d%H%M%S ############################################################ # Motion detection configuration parameters ############################################################ # Always save pictures and movies even if there was no motion. emulate_motion off # Threshold for number of changed pixels that triggers motion. threshold 2500 # Enable tuning of the threshold down if possible. threshold_tune off # Noise threshold for the motion detection. noise_level 32 # Automatically tune the noise threshold noise_tune on # Despeckle the image using (E/e)rode or (D/d)ilate or (l)abel. despeckle_filter EedDl # Area number used to trigger the on_area_detected script. ; area_detect value # Full path and file name for motion detection mask PGM file. ; mask_file value # Full path and file name for privacy mask PGM file. ; mask_privacy value # The value defining how slow or fast the smart motion mask created and used. smart_mask_speed 0 # Percentage of image that triggers a lightswitch detected. lightswitch_percent 75 # When lightswitch is detected, ignore this many frames lightswitch_frames 3 # Number of images that must contain motion to trigger an event. minimum_motion_frames 1 # Gap in seconds of no motion detected that triggers the end of an event. event_gap 60 # The number of pre-captured (buffered) pictures from before motion. pre_capture 6 # Number of frames to capture after motion is no longer detected. post_capture 3 ############################################################ # Script execution configuration parameters ############################################################ # Command to be executed when an event starts. ; on_event_start value # Command to be executed when an event ends. ; on_event_end value # Command to be executed when a picture is saved. ; on_picture_save value # Command to be executed when motion in a predefined area is detected ; on_area_detected value # Command to be executed when motion is detected ; on_motion_detected value # Command to be executed when a movie file is created. ; on_movie_start value # Command to be executed when a movie file is closed. on_movie_end java -cp /usr/local/bin/CamSummary.jar david/camera/SpecUpdater %f # Command to be executed when a camera can't be opened or if it is lost ; on_camera_lost value # Command to be executed when a camera that was lost has been found. ; on_camera_found value ############################################################ # Picture output configuration parameters ############################################################ # Output pictures when motion is detected picture_output best # Output pictures with only the pixels moving object (ghost images) picture_output_motion off # Format for the output pictures. picture_type jpeg # The quality (in percent) to be used in the picture compression picture_quality 75 # Text to include in a JPEG EXIF comment ; picture_exif value # File name(without extension) for pictures relative to target directory picture_filename %Y-%m-%d/%t-%v-%C ############################################################ # Snapshot output configuration parameters ############################################################ # Make automated snapshot every N seconds snapshot_interval 0 # File name(without extension) for snapshots relative to target directory snapshot_filename %v-%Y%m%d%H%M%S-snapshot ############################################################ # Movie output configuration parameters ############################################################ # Create movies of motion events. movie_output on # Create movies of moving pixels of motion events. movie_output_motion off # Maximum length of movie in seconds. movie_max_time 120 # The fixed bitrate to be used by the movie encoder. Ignore quality setting movie_bps 400000 # The encoding quality of the movie. (0=use bitrate. 1=worst quality, 100=best) movie_quality 45 # Container/Codec to used for the movie. See motion_guide.html movie_codec mp4 # Duplicate frames to achieve "framerate" fps. movie_duplicate_frames off # Pass through from the camera to the movie without decode/encoding. movie_passthrough off # File name(without extension) for movies relative to target directory movie_filename %Y-%m-%d/%t-%v-%C # Use pipe and external encoder for creating movies. movie_extpipe_use off # Full path and options for external encoder of movies from raw images ; movie_extpipe value ############################################################ # Timelapse output configuration parameters ############################################################ # Interval in seconds between timelapse captures. timelapse_interval 0 # Timelapse file rollover mode. See motion_guide.html for options and uses. timelapse_mode daily # Frame rate for timelapse playback timelapse_fps 30 # Container/Codec for timelapse movie. timelapse_codec mpg # File name(without extension) for timelapse movies relative to target directory timelapse_filename %Y%m%d-timelapse ############################################################ # Loopback pipe configuration parameters ############################################################ # v4l2 loopback device to receive normal images ; video_pipe value # v4l2 loopback device to receive motion images ; video_pipe_motion value ############################################################ # Webcontrol configuration parameters ############################################################ # Port number used for the webcontrol. webcontrol_port 1800 # Enable IPv6 addresses. webcontrol_ipv6 off # Restrict webcontrol connections to the localhost. webcontrol_localhost off # Type of configuration options to allow via the webcontrol. webcontrol_parms 2 # Method that webcontrol should use for interface with user. webcontrol_interface 0 # The authentication method for the webcontrol webcontrol_auth_method 0 # Authentication string for the webcontrol. Syntax username:password ; webcontrol_authentication value # Use ssl / tls for the webcontrol webcontrol_tls off # Full path and file name of the certificate file for tls ; webcontrol_cert value # Full path and file name of the key file for tls ; webcontrol_key value # The cross-origin resource sharing (CORS) header for webcontrol ; webcontrol_cors_header value ############################################################ # Live stream configuration parameters ############################################################ # The port number for the live stream. stream_port 8081 # The port number for the live substream substream_port 0 # Restrict stream connections to the localhost. stream_localhost off # Authentication method for live stream. stream_auth_method 0 # The authentication string for the stream. Syntax username:password ; stream_authentication value # Use ssl / tls for stream. stream_tls off # The cross-origin resource sharing (CORS) header for the stream ; stream_cors_header value # Percentage to scale the stream image on the webcontrol. stream_preview_scale 25 # Have the stream image start on a new line of the webcontrol stream_preview_newline off # Method for showing stream on webcontrol. stream_preview_method 0 # Quality of the jpeg images produced for stream. stream_quality 50 # Provide the stream images in black and white stream_grey off # Output frames at 1 fps when no motion is detected. stream_motion off # Maximum framerate of images provided for stream stream_maxrate 1 # Limit the number of images per connection stream_limit 0 ############################################################ # Database and SQL Configuration parameters ############################################################ # The type of database being used if any. database_type mysql # Database name to use. For sqlite3, the full path and name. database_dbname cameras # The host on which the database is located database_host localhost # Port used by the database. database_port 3306 # User account name for database. database_user <redacted> # User password for database. database_password <redacted> # Database wait for unlock time database_busy_timeout 5 # Log to the database when creating motion triggered image file sql_log_picture off # Log to the database when creating a snapshot image file sql_log_snapshot off # Log to the database when creating motion triggered movie file sql_log_movie on # Log to the database when creating timelapse movie file sql_log_timelapse off # SQL query at event start.? See motion_guide.html ; sql_query_start value # SQL query at event stop.? See motion_guide.html sql_query_stop INSERT INTO events (server_number,camera_number,event_number,event_date,video_length,filename) VALUES (1,%t,%v,{ts '%C'},null,'%f'); # SQL query string that is sent to the database.? See motion_guide.html ; sql_query ############################################################ # Tracking configuration parameters ############################################################ # Method used by tracking camera. See motion_guide.html track_type 0 # Enable auto tracking track_auto off # Serial port of motor ; track_port value # Motor number for x-axis track_motorx 0 # Set motorx reverse track_motorx_reverse off # Motor number for y-axis track_motory 0 # Set motory reverse track_motory_reverse off # Maximum value on x-axis track_maxx 0 # Minimum value on x-axis track_minx 0 # Maximum value on y-axis track_maxy 0 # Minimum value on y-axis track_miny 0 # Center value on x-axis track_homex 128 # Center value on y-axis track_homey 128 # ID of an iomojo camera if used track_iomojo_id 0 # Angle in degrees the camera moves per step on the X-axis with auto-track track_step_angle_x 10 # Angle in degrees the camera moves per step on the Y-axis with auto-track. track_step_angle_y 10 # Delay to wait for after tracking movement as number of picture frames. track_move_wait 10 # Speed to set the motor to (stepper motor option) track_speed 255 # Number of steps to make (stepper motor option) track_stepsize 40 # Command to execute to move a camera in generic tracking mode ; track_generic_move value ############################################################## # Camera config files - One for each camera. ############################################################## camera /usr/local/etc/motion/cameraPatio.conf camera /usr/local/etc/motion/cameraShop.conf camera /usr/local/etc/motion/cameraPumpHouse.conf camera /usr/local/etc/motion/cameraBackYard.conf camera /usr/local/etc/motion/cameraPumpYard.conf camera /usr/local/etc/motion/cameraShed.conf camera /usr/local/etc/motion/cameraGate.conf ############################################################## # Directory to read '.conf' files for cameras. ############################################################## ; camera_dir /etc/motion/conf.d This is the /cameraPatio.conf/ file. The other files are very similar. # /usr/local/etc/motion/cameraPatio.conf # # This config file was generated by motion 4.1.1+git20181002-062a328 # at 2021-06-08T17:01:40 # User defined name for the camera. camera_name patio # Target directory for pictures, snapshots and movies target_dir /var/www/html/cams/patio # The full URL of the network camera stream. netcam_url http://10.10.6.181:8181/videostream.cgi?user=<redacted>&pwd= # The method for keep-alive of network socket for mjpeg streams. netcam_keepalive off # Text to be overlayed in the lower left corner of images text_left Patio # Threshold for number of changed pixels that triggers motion. threshold 1000 # Enable tuning of the threshold down if possible. threshold_tune on # Full path and file name for motion detection mask PGM file. mask_file /usr/local/etc/motion/patioMask.pgm ############################################################ # Webcontrol configuration parameters ############################################################ # Port number used for the webcontrol. webcontrol_port 0 ############################################################ # Live stream configuration parameters ############################################################ # The port number for the live stream. stream_port 1801 Let me know if you need any other info. David On 8/13/21 6:31 AM, tosiara wrote: > Could you send me your exact motion config and mysql command output: > "describe events;" > I will try to check > > On Thu, Jul 29, 2021 at 8:45 PM Shawn Ashe <dracutfo...@gmail.com> wrote: >> I would find a way to log it, at least it's a symptom you can give to the >> motion team, and maybe something will become obvious to you >> >> On Thu, Jul 29, 2021, 1:05 PM David Powell <da...@depowell.com> wrote: >>> It's the %v replaceable parameter in the insert statement. Motion >>> generates it internally. >>> dp >>> >>> On July 29, 2021 11:26:25 AM Shawn Ashe <dracutfo...@gmail.com> wrote: >>>> is the event_number a counter,or based on time/etc? >>>> >>>> Could be the events are going off to fast and you are getting duplicate >>>> event numbers. >>>> >>>> On Thu, Jul 29, 2021 at 12:15 PM David Powell <da...@depowell.com> wrote: >>>>> Oh, I understand your question better now. The event number is generated >>>>> by Motion automatically. >>>>> >>>>> David >>>>> >>>>> On July 29, 2021 11:11:01 AM David Powell <da...@depowell.com> wrote: >>>>>> >>>>>> My understanding is that event_number is there for this very purpose - >>>>>> to make each event unique. I can't imagine another reason to have it. >>>>>> >>>>>> David >>>>>> >>>>>> On July 29, 2021 10:46:33 AM motionl...@frontdesign.com wrote: >>>>>>> Hi. >>>>>>> >>>>>>> >>>>>>> Also; "The primary key for the events table is >>>>>>> server_number,event_number,event_date, and camera_number." >>>>>>> >>>>>>> So, can the server_number, event_number, event_date and camera_number >>>>>>> be the same twice? >>>>>>> >>>>>>> I'm guessing server_number for sure, camera_number too. Event date? >>>>>>> Yeah possible if it's two events in tight enough sequence and sloppy >>>>>>> enough datetime datatype. >>>>>>> >>>>>>> event_number? ... doesn't sound likely but... what do i know - how does >>>>>>> that get generated? >>>>>>> >>>>>>> >>>>>>> Why not use an auto_intrement for primary key and have a composite >>>>>>> index on those other columns instead? >>>>>>> >>>>>>> >>>>>>> //Lars >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 2021-07-29 16:59, John L. Poole wrote: >>>>>>> >>>>>>> The error message you shared, e.g. trigger of a primary key constraint, >>>>>>> suggests an error in program design. If you have a table with unique >>>>>>> constraints, e.g. every entry must be unique, you don't try to insert >>>>>>> the same record twice. >>>>>>> >>>>>>> I recommend you file a bug so everything is documented well and then >>>>>>> the developers can determine why they are attempting to insert >>>>>>> something already present, or at least testing for presence before >>>>>>> attempting to insert a record that may already exist. >>>>>>> >>>>>>> On 7/29/2021 7:27 AM, David Powell wrote: >>>>>>> >>>>>>> This is the whole SQL section of motion.conf: >>>>>>> >>>>>>> ############################################################ >>>>>>> # Database and SQL Configuration parameters >>>>>>> ############################################################ >>>>>>> >>>>>>> # The type of database being used if any. >>>>>>> database_type mysql >>>>>>> >>>>>>> # Database name to use. For sqlite3, the full path and name. >>>>>>> database_dbname cameras >>>>>>> >>>>>>> # The host on which the database is located >>>>>>> database_host localhost >>>>>>> >>>>>>> # Port used by the database. >>>>>>> database_port 3306 >>>>>>> >>>>>>> # User account name for database. >>>>>>> database_user <redacted> >>>>>>> >>>>>>> # User password for database. >>>>>>> database_password <redacted> >>>>>>> >>>>>>> # Database wait for unlock time >>>>>>> database_busy_timeout 5 >>>>>>> >>>>>>> # Log to the database when creating motion triggered image file >>>>>>> sql_log_picture off >>>>>>> >>>>>>> # Log to the database when creating a snapshot image file >>>>>>> sql_log_snapshot off >>>>>>> >>>>>>> # Log to the database when creating motion triggered movie file >>>>>>> sql_log_movie on >>>>>>> >>>>>>> # Log to the database when creating timelapse movie file >>>>>>> sql_log_timelapse off >>>>>>> >>>>>>> # SQL query at event start. See motion_guide.html >>>>>>> ; sql_query_start value >>>>>>> >>>>>>> # SQL query at event stop. See motion_guide.html >>>>>>> sql_query_stop INSERT INTO events >>>>>>> (server_number,camera_number,event_number,event_date,video_length,filename) >>>>>>> VALUES (1,%t,%v,{ts '%C'},null,'%f'); >>>>>>> >>>>>>> # SQL query string that is sent to the database. See motion_guide.html >>>>>>> ; sql_query >>>>>>> >>>>>>> I had the query in sql_query but I moved it to sql_query_stop. That >>>>>>> didn't help. >>>>>>> >>>>>>> David >>>>>>> >>>>>>> >>>>>>> On 7/29/21 8:17 AM, Damian via Motion-user wrote: >>>>>>> >>>>>>> The SQL statement in motion.conf is >>>>>>> INSERT INTO events >>>>>>> (server_number,camera_number,event_number,event_date,video_length,filename) >>>>>>> VALUES (1,%t,%v,{ts '%C'},null,'%f'); >>>>>>> >>>>>>> The records /are/ there in the database, and I run a custom program to >>>>>>> extract them for displaying the snapshots and movies in a web page >>>>>>> >>>>>>> >>>>>>> Which sql_log_* statements are enabled? >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Motion-user mailing list >>>>>>> Motion-user@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>>>>> https://motion-project.github.io/ >>>>>>> >>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Motion-user mailing list >>>>>>> Motion-user@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>>>>> https://motion-project.github.io/ >>>>>>> >>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> John Laurence Poole >>>>>>> 1566 Court ST NE >>>>>>> Salem OR 97301-4241 >>>>>>> 707-812-1323 office >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Motion-user mailing list >>>>>>> Motion-user@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>>>>> https://motion-project.github.io/ >>>>>>> >>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Motion-user mailing list >>>>>>> Motion-user@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>>>>> https://motion-project.github.io/ >>>>>>> >>>>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>>>>> >>>>> _______________________________________________ >>>>> Motion-user mailing list >>>>> Motion-user@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>>> https://motion-project.github.io/ >>>>> >>>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>>> _______________________________________________ >>>> Motion-user mailing list >>>> Motion-user@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/motion-user >>>> https://motion-project.github.io/ >>>> >>>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >>> >>> _______________________________________________ >>> Motion-user mailing list >>> Motion-user@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/motion-user >>> https://motion-project.github.io/ >>> >>> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user >> _______________________________________________ >> Motion-user mailing list >> Motion-user@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/motion-user >> https://motion-project.github.io/ >> >> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user > > _______________________________________________ > Motion-user mailing list > Motion-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/motion-user > https://motion-project.github.io/ > > Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------ Subject: Digest Footer _______________________________________________ Motion-user mailing list Motion-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/motion-user ------------------------------ End of Motion-user Digest, Vol 182, Issue 6 *******************************************