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
