SMARTTILE · DEVICEAUTOMATE™ · OPNSENSE · BETABETA

OPNsense, read through its own API

BETA — built and unit-tested, switched off until proven on a real OPNsense firewall. One API key on a dedicated user gives SmartTile health, CARP, interfaces, tunnels, the rule base with a change history, config.xml backups, update advisories and the audit log — read-only.

SmartTile integrates with
OPNsense firewalls (Deciso appliances or any physical / virtual install) through the OPNsense REST API (/api/<module>/<controller>/<command>) on the web GUI's HTTPS port, signed in with an API key + secret (HTTP Basic).
How SmartTile automates it
SmartTile's agent reads each connected firewall every 5 minutes and its rules hourly into a change ledger; it backs up config.xml with secrets masked, raises update advisories and audit-log events, and turns each new problem into one Workflow event.
Category
DeviceDeviceAutomate™

A ping check says an OPNsense box is up and nothing else. Its REST API knows whether CARP failed over, a tunnel dropped, an update is waiting or a rule changed. SmartTile only reads it: every call is on a fixed allow-list in its client, so even a broad key never changes, updates or reboots anything. Beta: every switch ships off.

What is built today

Health every 5 minutes

Uptime, memory, disk, temperatures, system notices, the running version and any available update — in the device's OPNsense window.

CARP, interfaces, tunnels

CARP VIP state, demotion and maintenance mode; interfaces with state, addresses and counters; IPsec phase 1 + 2 and OpenVPN sessions.

Rules + change ledger

Hourly: API-made rules and classic GUI rules from config.xml. Each rule added, removed, changed or moved is logged; the first read is the baseline.

config.xml backups

config.xml over the API, with passwords, keys, PSKs and API secrets masked before it is hashed or stored; saved and diffed only on change.

Update advisories

An advisory for an update on the running series, else the next major release the firewall offers. SmartTile never installs; it verifies afterwards.

Sign-ins and changes

AccessAutomate reads the audit log: web GUI sign-ins, failed sign-ins and configuration changes, with user and source IP.

VPNAutomate tunnels

IPsec phase-1 tunnels are listed. A tunnel a person watches is read live: connected = up, not connected = down, unreadable = unknown — never a false down.

One Workflow per problem

“An OPNsense firewall reports a problem” fires once when a problem opens — tunnel or interface down, CARP demoted, memory / disk 90%+, reboot pending, newer release.

What it takes on the firewall

  1. Group. System → Access → Groups → +: e.g. smarttile-api, with only the privileges in the table.
  2. User. System → Access → Users → +: in that group only, long random password, not in admins.
  3. Key. Edit the user → API keys → +: apikey.txt downloads once (key= and secret= lines).
  4. Reach. Allow 157.245.117.9 to the web GUI port (System → Settings → Administration; default 443).
Then Devices → the firewall → OPNsense → Setup: paste apikey.txt, Test (it names any missing privilege), Save. Delete the key and access ends.
PrivilegeUnlocks in SmartTile
Lobby: Dashboard · Status: InterfacesNeeded: identity, health, interfaces.
Diagnostics: Netstat · Interfaces: Virtual IPs: StatusCounters; CARP.
Status: IPsec · Status: OpenVPN · System: StatusTunnels, OpenVPN, notices.
System: FirmwareUpdates (it could install — SmartTile never calls that).
Diagnostics: Configuration History · Firewall: Rules [new] · Diagnostics: Logs: SystemBackups + GUI rules; API rules; audit log.
SmartChoice · SmartTile DeviceAutomate™ — OPNsensePage 1 of 2
SMARTTILE · DEVICEAUTOMATE™ · OPNSENSE — EXACTLY WHAT SMARTTILE ASKS, AND HOW IT IS KEPT SAFE

Exactly what SmartTile calls — its whole read-only allow-list

GET/api/diagnostics/system/system_{information,time,resources,disk,temperature}identity + health (Test uses information)
GET/api/core/system/statussystem notices
GET/api/core/firmware/statusversion, available updates (last check)
POST/api/core/firmware/statusask the firewall to CHECK for updates — separate switch, installs nothing
GET/api/interfaces/overview/interfaces_infointerfaces, addresses, MAC
GET/api/diagnostics/interface/get_interface_statistics · get_vip_statuscounters; CARP
GET/api/ipsec/sessions/search_phase1 · search_phase2IPsec tunnels
GET/api/openvpn/service/search_sessionsOpenVPN sessions
GET/api/core/backup/download/thisconfig.xml (backups, GUI rules)
POST/api/firewall/filter/search_rulesearch (read) of API-made rules
POST/api/diagnostics/log/core/auditaudit log search (AccessAutomate)

Security and control

Read-only, enforced in code

Every request is checked against the allow-list above before a connection opens; anything else is refused. The two read POSTs are searches and an update check.

Encrypted, never shown

Key and secret are sealed with AES-256-GCM, bound to the device row, and sent only in the Authorization header. The platform returns only “key set”; the audit row names what changed, never a value.

Certificate pinned

OPNsense's self-signed certificate is trusted by the SHA-256 fingerprint seen at Test; a different certificate is refused before the key is sent. Or turn on CA verification.

Off until you say so

Platform, feature, company and device switches all default off. A company admin switches on for their own company after a preview of what will be read; every route checks the caller's company.

Built today vs. still to come

AreaToday (beta)Not yet
ProofUnit-tested against OPNsense's documented API and source.Proven on a real firewall; then the platform switch goes on.
Up / downStays with SmartTile's ping check.The API poll never marks a firewall down or opens an outage ticket.
IdentityVersion, hostname, WAN MAC.Model and serial — not in OPNsense's API.
UpdatesAdvisories; ITSM tickets only if the company's FirmwareAutomate ticketing is on.Installing — never; an engineer updates in the window.

Common objections

ObjectionAnswer
“OPNsense has no read-only role.”True — so SmartTile's client enforces it. Grant only the pages in the table; the key is still only used for the listed reads.
“Will it flood our IT Service Management (ITSM) system?”Nothing tickets by itself. Workflow events and firmware ticketing are separate switches, off by default, and a Workflow fires once per problem.
“We renew our certificate with ACME.”Press Test after the renewal and accept the new fingerprint, or switch on CA verification.
One read-only API user on the firewall — and OPNsense joins the pane your NOC already watches.
SmartChoice · smarttile.smartchoiceus.com · (800) 217-3096, 24×7 · verified 2026-10-06Page 2 of 2