Fixed this issue:
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 138.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 141.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 144.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 154.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 156.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 195.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 222.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 247.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 275.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 302.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 329.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 356.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 383.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 399.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 414.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 448.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 671.
"my" variable $cmd masks earlier declaration in same scope at FI9821W_Y2k.pm line 690.
zmtrigger.pl should not open serial port #1 by default. There could be situations where other hardware etc. would be attached to the port that is not used by zoneminder.
Better if this can be commented out by default and if a user needs serial access, he can enable it by removing the comment.
This line also gives an permissions error when running on Ubuntu which prevents zmtrigger to start. That error can probably be fixed by adding the zm user permission to the serial port. But the main issue is that if the program does not need access to the port, it should not open it.
Todays computer hardware and internet speeds allow for a much more responsive user interface to be ran. I suggest to optimize these values in the "High bandwidth" profile for today's technology. These values were established at least 8 years ago... There's no risk for the user because on a fresh install and new logins, new browsers "Low bandwidth" is always the default. Optimizing these values produce no noticeable load increase on modern hardware, and a snapy, pleasant user interface if desired.
Also increased event image digits because I often run into situations where very long events run out of file naming digits (max 999 files is too short, that's only 40 seconds).
mysql generates a warning, instead of an error, when trying to convert to InnoDB and that engine is not available. By temporarily elevating warnings to errors, we can catch these rather than silently failing.