Automatic snapshots
You can configure PiKVM to automatically take screenshots of the server screen and save them into the memory, so that you retrieve it with the HTTP API.
Enabling snapshots¶
Automatic snapshots are disabled by default, you need to enable and configure this feature. Switch to the read-write mode (rw
), then open /etc/kvmd/override.yaml
and add the following lines:
kvmd:
snapshot:
idle_interval: 3600
live_interval: 60
wakeup_key: ShiftLeft
wakeup_move: 1000
Here is what these parameters do:
idle_interval=3600
means that every hour the PiKVM must turn on the streamer, take a screenshot, and save it, if there are no users on the PiKVM.live_interval=60
means that KVM must take a screenshot every minute as long as there are users working on the PiKVM.wakeup_key=ShiftLeft
means that if there are no users on KVM, before taking a screenshot, KVM must wake up the server so that it turns on the "screen" from power-saving mode. To do this, it clicks and releases the left shift, simulating the user's actions.wakeup_move=1000
is another simulator of user actions. It moves the mouse to the position 0x0, and then to 1000x1000 (units, not pixels, but it doesn't matter, just write a large number), and then returns it back.
Although the last two options work, PiKVM may not know if you are using the server to bypass it with a monitor and keyboard, and PiKVM input may be mix with your own. So if the PiKVM is not the only way to work with the server, we recommend not using the wakeup options. INstead, disable the power saving mode for HDMI.
Retrieving snapshots¶
As soon as you have snapshots, you can retrieve them from the PiKVM using Streamer API as follows:
$ curl -k \
-u admin:admin \
'https://<pikvm-ip>/api/streamer/snapshot?load=1' \
--output=file.jpg
You can also ask PiKVM to give you a small preview of the screenshot:
$ curl -k \
-u admin:admin \
'https://<pikvm-ip>/api/streamer/snapshot?load=1&preview=1' \
--output=preview.jpg
Additional parameters can be used to configure the preview: preview_max_width=100
, preview_max_height=100
, preview_quality=75
.