Zoneminder 1.37 no image – capturing but not analyzing

Zoneminder version 1.37.28. The installation had been running for years without problem but somehwere in the 1.37 version problems started to occur. Some cameras did not give visible streams in Zoneminder from time to time. Checking the cameras video directly, they where ok, so the problem was in Zoneminder. Some cameras was “capturing” but analyzing 0 fps.

In the log there was lines like:

Restarting capture daemon for 6 CAMERA NAME, no image since startup. Startup time was 1671521356 – now 1671521366 > 5

And mostly interesting:

You have set the max video packets in the queue to 100. The queue is full. Either Analysis is not keeping up or your camera’s keyframe interval 50 is larger than this setting.

The reason for this is that the buffer setting for Maximum Image Buffer size (frames) is too low compared to the key frame interval setting in the camera. The higher key frame interval (which means lower bandwidth) means Image Buffer Size must be higher, consuming more RAM. So what you save in bandwidth, you will pay in RAM. Key frame interval is how often the camera sends a full image and between them just the difference. More seldom (higher key frame interval) means lower bandwidth but you need a bigger buffer in the server.

I set my cameras to deliver 5 fps with a key frame interval of 5 as they are on a remote location (not where the server is) and all video is streamed over the Internet to the server.

I changed the options for each camera, Console -> click on source -> Buffers and change Image Buffer Size (frames) (in my case set it to 3) and Maximum Image Buffer Size (frames) (in my case I could actually decrease it from 100 to just 55 because I reduced the fps and decreased the key frame interval in the camera).

Observe how memory is used after this. You need to balance the buffer sizes the cameras fps and key frame interval

Still it did not completely solve the problem. Only after changing Options -> System -> WATCH_MAX_DELAY from 5 to 45 and restart Zoneminder, the system started to show images for all feeds. It seems like 5 seconds for the capture to start was to little so it keept restarting the capture processes.

/tmp

As a part of the investigation I had also changed /tmp into tmpfs according to some post I found online, so I did that also but it did not solve the problem. However, it improved performance so I let it be. Add the following line to /etc/fstab and reboot:

tmpfs /tmp tmpfs rw,nosuid,nodev

Disable unused cameras

Another important thing when it comes to Zoneminder performance is to disable unused cameras. You can leave the camera in the Zoneminder configuration for later use but if it is going to be offline for a longer period, it is a good idea to disable it because a camera that is offline will put unecessary load on the Zoneminder server.

Go to Console -> click on source -> Source and set Capturing to None

Remember to put it back when the camera is online again 😉

Nagios check_vnc without authentication

If you need to monitor a VNC service without logging in, the following check_command can be used.

Edit your nagios configuration file and add:

# VNC
define command{
command_name check_vnc
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -w 5 -c 8 -
e "RFB"
}

Then on the service you want to monitor use:

define service{
use generic-service ; Name of service template to use host_name
host_name MYHOSTNAME
service_description VNC
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups MYCONTACTGROUPS
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_vnc!5910
}

If you need another port than the standard one, just replace “5900”

WP Booking Calendar – style width and height of calendar

In WP Booking Calendar, the calendar when displayed in a widget has a fixed size of 284px using inline css which makes it impossible to override in an external or internal css style.

However it is possible to override this by additional options in the shortcode. This is from the comments in the source code:

[booking type=56 form_type='standard' nummonths=4 options='{calendar months_num_in_row=2 width=568px cell_height=30px}']

In the options the width of the table can be given, also in % like 100% for example if you want the calendar to fill the surroinding container.

WordPress error 500 – Uncaught Error: Call to undefined function trailingslashit() in wp-includes/class-wp-textdomain-registry.php:103

When updating the plugins in a WordPress site prior to updating it from WordPress 6.0 to 6.1.1 the site halted with error 500. Investigating the logs I found “Uncaught Error: Call to undefined function trailingslashit() in wp-includes/class-wp-textdomain-registry.php:103

Solution

HP EliteDesk 800 G1 running on 12 volts DC

Running HP EliteDesk 800 G1 USDT on 13.8 volts DC

I got a HP EliteDesk 800 G1 USDT Ultra Slim Desktop computer for my ham schack. This is a small computer running on an external power supply just lika a laptop. It turned out to be the major source of RFI in my ham schack.

HP EliteDesk 800 G1 USDT

I suspected the power supply was the culrpit as those are switched ones and thought it might be possible to run the computer directly on my 13.8 VDC power supply that I use for my radios. The only voltages used in a computer is 12 and 5 volts, so there is probably a voltage regulator on the power input that regulates the voltage down from the 19 volts DC that the power supply outputs. Will it also run on 13.8 VDC?

Read more: Running HP EliteDesk 800 G1 USDT on 13.8 volts DC

The power cable to the HP EliteDesk 800 G1 USDT has a 3 pole connector, just the same as on laptops. One is negative, one is positive and the pin in the middle is a “power good” signal from the power supply. I read about people running 3rd party power supplies by connecting the power good over a resistor to the positive side, see this page.

Will it run if I just connect the power good to positive without a resistor? When I measured the voltages from the original power supply positive was +19 VDC and power good read about +12 VDC so it might be sufficient. Discussing it with a tech savvy friend, he suggested it might work and be worth a try.

I didn’t want to cut the cable on the original power supply but luckily I have a friend who hoardes old technical stuff and he happened to have an old broken HP laptop power supply, with the correct cable (who saves broken power supplies?, well it turned out to be useful in this case)

It works!

It turned out it works fine, no resistor needed. This might vary from model to model, but the HP EliteDesk 800 G1 USDT it works by directly connecting power good to the positive. This (image below) is the cable I now use to run my computer directly on 13.8 VDC. Black lead is negative, white is positive and blue is power good.

On 20 meters (14 MHz) my noise floor dropped from S5 to S0-A1!

HP EliteDesk 800 G1 running on 12 volts DC
Power cable to run a HP EliteDesk 800 G1 directly on 13.8 volts DC
IC-706 noise level on 20 m when running computer directly on 12 VDC
IC-706 noise level on 20 m (14 MHz) when running computer directly on 13.8 VDC

Ispconfig3 certbot is not renewing certificates (Ubuntu 20)

When creating a new site, a valid certificate was issued but when expiring they where never renewed. Investigating /etc/letsencrypt directories was missing the usual subfolders, like live for example.

It turned out the server had both acme.sh and certbot installed. The solution was to remove certbot. Investigate if the directory /root/.acme.sh exists and it’s contents.

apt remove certbot
ispconfig_update.sh --force

Then in Ispconfig go to Tools -> Sync, select Web sites and the server you just removed.

Outlook IMAP sync error 0x800CCC0E after installing KB5018410 (11/10/22)

Last wednesday, the 11th of October 2022, Microsoft released the KB5018410 update. After installing the update, Outlook that is connected to IMAP mailboxes started reporting error 0x800CCC0E.

The workaround is to uninstall the KB5018410 update:

  1. Go to the Control panel and search for update history.
  2. If KB5018410 is present as an installed update, click on Uninstall updates on top of the screen
  3. Find KB5018410 in the updates list, mark it and click on Uninstall above the list
  4. The uninstall will take several minutes and requires the computer to reboot

After uninstalling KB5018410 Outlook IMAP sync will start working again.

Joomla banners registers click on wrong banner

Joomla banners register clicks on wrong banner

I had a client site using banners, configured to register clicks on each banner. The client discovered that sometimes clicks was not registered on the correct banner. Initially it looked like banners with the same target link (URL) was registered on the banner with the lowest ID. This turned out to be misleading.

The cause was a SEF plugin called JoomSEF. This plugin handled the URL:s also for banners routing the clicks to the wrong banner.

The solution was to exclude Joomla banner component from being handled by JoomSEF:

  • Go to Components -> JoomSEF -> Manage Extensions
  • For Banners, click to the right so it displays Default Joomla router under Active Handler

Anytone D578UV CPS Tools -> Firmware update doesn’t work

I had problems with the CPS software version 1.16 when trying to update the firmware. The window when selecting Tools -> Firmware just didn’t open. It turns out the software seems really buggy.

Solution: When CPS is running, open a File Explorer and go to “C:\Program Files (x86)\Anytone\D578UV_1.16\” and double click on UpdateQX_Firmware_Update.exe.

The window will now open and you can continue with the firmware update.

Thanks to Ronny/SM7IKJ who gave me to the solution.

Anytone D878UV/D587UV last call TG empty

Anytone D878UV/D578UV last call talkgroup empty

After doing some updates of my Anytone D878UV and D578UV DMR radios I had an annoying problem where the talkgroup field was empty in the last call list as well as in the last call “ticker” scrolling by on top of the screen, just showing an empty “TG:”.

It turned out the problem was caused by the digital contact list that I had generated on radioid.net. I had generated the list with the “TG” checked which generates a contact list including all Brandmeister talk groups. Seems very practical but the problem is that the name field for the talk groups are empty and it seems that Anytone has priority to display the talkgroup info from digital contact list, if it exists, above the info from the talk groups list.

Solution was to generate the digital contact list from radioid.net without checking the TG.

Radioid.net digital contact list generator without the TG checked