Safora Fence Event Types

These are the three event types the Safora integration needs. Set up the integration itself first; this article covers only the event types it writes to.

Supported event types

EarthRanger event type Display title Priority What raises it
safora_fence_tamper Tamper Detected Red The controller detects interference with the fence line.
safora_low_fence_voltage Low Fence Voltage Amber Fence voltage drops below the controller's threshold.
safora_low_battery Low Battery Amber The controller's battery charge runs low.

All three live in an event category called Safora Fence (safora_fence).

Fields

Field Label Type On which event types What it holds
fence Fence Text All three The fence controller that reported, e.g. HIP-SAF-FENCE-01.
voltage Voltage Text Low Fence Voltage Fence voltage at the time of the alarm.
charge Charge (%) Text Low Battery Battery charge as a percentage, e.g. 6.
note Note Text All three The message Safora sends with the event — used on resolution events, e.g. Fence voltage restored – auto-resolved.

Why voltage and charge are text, not numbers. Safora does not always send a reading. Resolution events arrive with 0 or N/A in place of a measurement, and a number field silently rejects N/A, leaving the value off the form. Text accepts whatever arrives, so nothing is lost.

How to create these event types

1. Install the command-line tool and sign in

You need a terminal with Python 3.11 or newer and pipx installed, and an EarthRanger account on the target site.

pipx install earthranger-cli                         # install the tool; this gives you the 'er' command

er profile add sitename --server sitename --username you   # save the site as a profile ('sitename' is the site's subdomain, e.g. 'borana' for borana.pamdas.org)
export ER_PROFILE=sitename                                 # tell 'er' to use that profile in this terminal
er auth login                                              # asks for your EarthRanger password and signs you in

Important: the account you log in with must have permissions on the Event Category that will host these event types.

2. Save this spec as safora-fence.yaml

The spec below creates the Safora Fence category as well as the three event types. To put them in a category the site already uses instead, change the category block at the top.

category:
  value: safora_fence
  display: Safora Fence
event_types:
- value: safora_fence_tamper
  display: Tamper Detected
  icon_id: threats_rep
  default_priority: red
  auto_resolve: true
  resolve_time: 186
  ordernum: 3
  layout:
    label: ''
    columns: 1
  fields:
  - key: fence
    label: Fence
    type: string
  - key: note
    label: Note
    type: string
- value: safora_low_fence_voltage
  display: Low Fence Voltage
  icon_id: fence_voltage_rep
  default_priority: amber
  auto_resolve: true
  resolve_time: 168
  ordernum: 7
  layout:
    label: ''
    columns: 1
  fields:
  - key: fence
    label: Fence
    type: string
  - key: voltage
    label: Voltage
    type: string
  - key: note
    label: Note
    type: string
- value: safora_low_battery
  display: Low Battery
  icon_id: low_battery_rep
  default_priority: amber
  auto_resolve: true
  resolve_time: 186
  ordernum: 50
  layout:
    label: ''
    columns: 1
  fields:
  - key: fence
    label: Fence
    type: string
  - key: charge
    label: Charge (%)
    type: string
  - key: note
    label: Note
    type: string

resolve_time is in hours, and ordernum sets where each type appears in the reporting menu — both can be changed to suit the site.

3. Preview, then apply

er events apply safora-fence.yaml --dry-run   # shows what will be created or changed
er events apply safora-fence.yaml             # actually does it

Applying is safe to repeat: it creates what is missing and patches only what differs. Nothing is ever deleted.

4. Verify

er events list event-types --category safora_fence
er events show event-type safora_low_battery

CLI tool and full spec documentation: https://github.com/PADAS/earthranger-cli