Auto-Actions

Auto-Actions is a service that triggered additional actions based on submitted events. This can include setting lowering milestones in real-time via events, turning on/off the ASNAP service or really anything that can be initiated using python. The sealog-server repository includes a boilerplate auto-actions script that is useful to users of the sealog-client-vehicle project. In it’s default behavior this script will enable/disable the ASNAP server when it detects a “Descending”/”On Surface” events. It will also update the lowering start/stop times and lowering milestones based on the corresponding events.

sealog_auto_actions.py

The ASNAP service is contained within the sealog_auto_actions.py script. Before use, the python service prerequisites must be met and the sealog_auto_actions.py script must be copied from the distributed version.

cd /opt/sealog-server
cp ./misc/sealog_auto_actions.py.dist ./misc/sealog_auto_actions.py

Usage

usage: sealog_auto_actions.py.dist [-h] [-v]

Auto-Actions Service

options:
  -h, --help       show this help message and exit
  -v, --verbosity  Increase output verbosity

Customizations

The distributed version of the file comes configured for use with an underwater vehicle but can easily be modified for vessel-focused installations. It assumes the related event templates match what is used when the server is run in “demo-vehicle” and “demo-vessel” modes.

To use this file on a new production install it is recommended to import the event templates from the demo folder of the sealog-server repository. The file to import for vehicle-focused installations is FKt230303_S0492_eventTemplates.json. The files to import for vessel-focued installations is FKt230303_eventTemplates.json.

Refer to the UI Quick Start guide for information on how to import event templates from file.

In the vehicle-focused configuration the auto-actions service will listen for events with an event_value of VEHICLE. Depending on the value of a milestone event_option key, the service will set the value of the asnapStatus customVar, and/or update the timestamp of a lowering milestone and/or update the start_ts/stop_ts timestamp of the lowering record. The mapping of the event option to action is handled by the ASNAP_LOOKUP, MILESTONE_LOOKUP and START_STOP_LOOKUP variables respectively.

To reconfigure for use with a vessel, comment out the INCLUDE_SET, ASNAP_LOOKUP, START_STOP_LOOKUP and MILESTONE_LOOKUP variables under the For vehicle-focused sealog instances section and uncomment the INCLUDE_SET and ASNAP_LOOKUP variables under the For vessel-focused sealog instances section. The vessel-focus configuration does NOT have a corresponding START_STOP_LOOKUP or MILESTONE_LOOKUP because cruise records are not configured to track milestones.

This script can be easily expanded to listen for additional events and perform additional actions as needed.

Setup the Auto-Actions service to start at boot:

Edit the supervisor configuration file:

sudo pico /etc/supervisor/conf.d/sealog-server.conf

Append the following to the supervisor configuration file (assumes the desired user is sealog):

[program:sealog-auto-actions]
directory=/opt/sealog-server/misc
command=/opt/sealog-server/venv/bin/python sealog_auto_actions.py
redirect_stderr=true
stdout_logfile=/var/log/sealog-auto-actions_STDOUT.log
user=sealog
autostart=true
autorestart=true
stopsignal=QUIT

Updated: