Skip to content

On Home Assistant 2026.10 or older? Open it in HACS

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation.

About

🔥 Native Home Assistant control for Firewalla. 100% local data, zero latency, and no cloud middleman.

Description from ccpk1/firewalla-local-ha

Shows in Vulpo

Quick Toggle card, Button card, Chart card, Apple Watch, Control Center.

Supports

  • Works locallyTalks to your devices on your own network. No vendor cloud in between.
  • From the MarketplaceInstalled through the Marketplace, formerly HACS.
  • Actively maintainedIts author released or pushed a change in the last six months.

Provides

  • Switches
  • Sensors
  • Presence

Setting it up

Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.

Connect Firewalla Local

  • Local hostname or IP address
  • Raw QR JSON

Also asked when signing in again.

Reconfigure Firewalla Local

  • Local hostname or IP address

After setup

  • Back to main menu without saving
  • Rules to expose as switches
  • Devices to expose as device trackers
  • Back to main menu without saving
  • Back to main menu without saving
  • Devices to monitor
  • Back to main menu without saving
  • Users to monitor
  • Device-tracker away window (minutes)How long a tracked device stays home after its last activity. Presence only: this does not affect the device counters or connectivity.
  • Enable network status entities
  • Enable SSID status entities
  • AI assistant (MCP) tool accessControls which tools the assistant can use. Levels above Summary only send network detail to your LLM provider, so use the lowest you need and consider who operates it. Requires Core 2026.10 or newer.
  • Back to main menu without saving
  • Update interval (minutes)How often to poll the Firewalla box. Shorter intervals update faster but load the local API more, so keep this shorter than the windows below.
  • Watched-device online window (minutes)How long a device can be idle and still count as connected. Applies to the device counters, the VPN peer counts, and the device list, not only to watched devices.

Texts from the code of ccpk1/firewalla-local-ha.

Entities

  • Binary sensorsAlarm active, System Status, AP Status
  • ButtonsSync runtime
  • PresencePresence
  • SensorsActive alarms, Speed test download, Speed test upload, Speed test latency, Ping latency, Ping packet loss, Usage

Actions

  • Get alarmsReturn the newest active alarms and optionally archived alarms with normalized details and shared report metadata. Each alarm carries its own exception_id; the full silence-exception table is only included when requested.
    • Limit
    • Include archived
    • Refresh
    • Alarm type
    • Include silence records
    • Fetch detail
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get rulesReturn the current live policy rules as a flat, selectable list with rule id, action, enabled and paused state, target, scope, and any originating alarm. Use this to resolve the rule target for pause_rule and resume_rule.
    • Config entry ID (Optional)
    • Config entry name (Optional)
    • Enabled
    • Action
    • Target type
    • Applies to
    • Include purpose
    • Include system-managed
    • Alarm ID
  • Get system overviewReturn a curated system summary: appliance health, the networks with per-network device counts, and counts for devices, VPN peers, groups, users, rules, and alarms, plus per-WAN speed-test and quality metrics. Counts and identities only, never record collections. Use include to add the group and user names and ids that other services accept as selectors.
    • Include
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Sync runtimePoll the Firewalla box now and report when the snapshot was taken. Requests within the coordinator's debounce window are coalesced, so calling this alongside other actions still costs at most one poll.
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Create ruleCreate a persistent block rule, optionally scoped to an alarm's target. Blocking a target from an alarm creates an ordinary policy rule that records the alarm id as a back-reference.
    • Alarm ID
    • Target type
    • Target value
    • Config entry ID (Optional)
    • Config entry name (Optional)
    • Host MAC
    • Host name
    • Group ID
    • Group name
    • User ID
  • Archive alarmsMove one alarm or the whole active set to the archive. Archived alarms remain retrievable.
    • Alarm ID (Optional)
    • Alarm status (Optional)
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Delete alarmsPermanently delete one alarm or a whole set. This cannot be undone.
    • Alarm ID (Optional)
    • Alarm status (Optional)
    • Confirm permanent deletion
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Mute alarmCreate a scoped silence for an alarm type, domain, or IP address.
    • Alarm ID (Optional)
    • Alarm target type
    • Alarm target value (Optional)
    • Duration
    • Config entry ID (Optional)
    • Config entry name (Optional)
    • Host MAC
    • Host name
    • Group ID
    • Group name
  • Unmute alarmRemove a silence by exception ID or an alarm-linked silence by alarm ID. Provide exactly one identifier.
    • Alarm ID (Optional)
    • Exception ID (Optional)
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Delete rulePermanently delete one live policy rule, including a rule created by an alarm block action.
    • Rule ID
    • Confirm deletion
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get hostsReturn the Firewalla host (device) records with naming fields, IP address, device type, kind, group membership, and online state. Filters narrow the result on the box. Non-admin; for the full runtime inventory use get_runtime_inventory.
    • Detail
    • Host name
    • Host MAC
    • Group name
    • Kind
    • Network UUID
    • Online
    • User ID
    • Refresh first
    • Config entry ID (Optional)
  • Get rule and runtime inventoryReturn the current Firewalla rule, group, user, and related runtime inventory as structured data plus a markdown summary.
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get network segment reportReturn one configuration-oriented network segment report in the shared report envelope from the Firewalla local API.
    • Network UUID (Optional)
    • Network name (Optional)
    • Refresh first
    • Config entry ID (Optional)
    • Config entry name (Optional)
    • Include
  • Get flow reportReturn one flow report for a device, group, or user in the shared report envelope from the Firewalla local API.
    • Host MAC
    • Host name
    • Group ID
    • Group name
    • User ID
    • User name
    • Window hours (Optional)
    • Detail (Optional)
    • Record count (Optional)
    • Fetch all records (Optional)
  • Get network segment usageReturn one window-selected usage-oriented network segment report in the shared report envelope from the Firewalla local API. Totals in bytes over a window of at least 60 minutes; for the current per-host rate use get_live_throughput.
    • Network UUID (Optional)
    • Network name (Optional)
    • Window
    • Top N rankings
    • Include sections
    • Refresh first
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get speed test resultsReturn normalized Firewalla internet speed test results from the coordinator refresh path.
    • WAN UUID (Optional)
    • WAN name (Optional)
    • Result limit
    • Refresh first
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get internet quality reportReturn normalized Firewalla internet-quality samples (ping latency and packet loss) from the manager cache.
    • WAN UUID (Optional)
    • WAN name (Optional)
    • Sample limit
    • Refresh first
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Get live throughputReturn live throughput in bytes per second, read from the box now. One host, one network, or every host, depending on the selectors given. A rate, not a total; for data volume over a window use get_network_usage. Network figures are that interface's counters and exclude same-segment traffic between hosts; host figures are complete.
    • Host MAC (Optional)
    • Host name (Optional)
    • Network UUID (Optional)
    • Network name (Optional)
    • Host limit
    • Sample window
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Wake hostSend a Wake-on-LAN command to one Firewalla host.
    • Host MAC (Optional)
    • Host name (Optional)
    • Host ID (Optional)
    • Refresh first
    • Config entry ID (Optional)
    • Config entry name (Optional)
  • Delete hostPermanently delete one or more Firewalla host devices identified by MAC.
    • Host MAC
    • Confirm
    • Refresh
    • Config entry ID (Optional)
    • Config entry name (Optional)

Troubleshooting

  • DiagnosticsDownloads a diagnostics file to attach to a bug report.

Information

Installs
85 sharing analytics
GitHub stars
52
Connection
Works locally
Upkeep
Updated in the last 6 months
Version
2.5.3,
Kind
Marketplace integration
Needs
Needs the Marketplace (HACS on 2026.10 and older)
Domain
firewalla_local

You might also like

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. About these numbers

Looking for an app? The best Home Assistant apps for iPhone, by need.