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. Re: Duplicate SQL entries for every event (tosiara)


----------------------------------------------------------------------

Message: 1
Date: Fri, 27 Aug 2021 11:29:18 +0300
From: tosiara <tosi...@gmail.com>
To: David Powell <da...@depowell.com>
Cc: Motion discussion list <motion-user@lists.sourceforge.net>
Subject: Re: [Motion-user] Duplicate SQL entries for every event
Message-ID:
        <CACHTdwQWfBnXxciA_CZdQuxaVO27ASUvgxvaM3Tza3i=47h...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi,

I wanted to check your issue, but I don't see any database related
parameters in your provided configs

On Fri, Aug 13, 2021 at 6:23 PM David Powell <da...@depowell.com> wrote:

> 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> 
> <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> 
> <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> 
> <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> 
> <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> 
> <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 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
>
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://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 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://motion-project.github.io/
>
> Unsubscribe: https://lists.sourceforge.net/lists/options/motion-user
>
> _______________________________________________
> Motion-user mailing 
> listMotion-user@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/motion-userhttps://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 18
********************************************

Reply via email to