New FortiOS KD integration for FortiGate firewalls and FortiAP access points!

Hi folks,

I’ve been building FortiOS KD, an unofficial Home Assistant custom integration that locally polls FortiGate firewalls using a read-only REST API account.

Latest release: v0.5.0
GitHub: thekerneldump/fortios-kd

Current features

  • FortiGate, managed FortiAP and connected Wi‑Fi client devices and entities
  • AP radio, channel, utilization, signal, noise, bandwidth, CPU and memory data
  • ARP-table devices with optional Wi‑Fi client matching and conflict diagnostics
  • DHCP lease devices, hostnames, reservation status and Wi‑Fi client matching
  • Support for multiple FortiGate firewalls
  • Privacy masking for MAC addresses, hostnames, SSIDs, serial numbers, VLAN IDs and AP names
  • Optional Home Assistant area and label organization
  • Five automatically generated dashboard strategies:
    • Wi‑Fi Clients
    • Wi‑Fi Graphs
    • ARP Entries
    • ARP Table
    • DHCP Entries
  • Built-in dashboard filters for firewall, AP, SSID, area, label, interface and lease type



The integration has been tested with FortiOS versions spanning 6.0 through 7.2. FortiOS 6.2 can optionally use SNMPv2c for ARP data because that release does not provide the newer REST ARP endpoint.

Installing through HACS

FortiOS KD is awaiting inclusion in the default HACS repository. That review may take a while, but it can be installed now as a custom repository:

  1. Open HACS → Integrations.
  2. Open the three-dot menu and select Custom repositories.
  3. Add https://github.com/thekerneldump/fortios-kd as an Integration.
  4. Install FortiOS KD, restart Home Assistant and add it from Settings → Devices & services.

The project is still under active development, and I’m looking for people interested in testing it—especially across different FortiGate models, FortiAP models and FortiOS releases.

If you try it, please let me know what works, what data is missing and whether you encounter any version-specific API differences. Issues and feedback are welcome on GitHub.

FortiOS KD is an independent community project and is not affiliated with or endorsed by Fortinet or the Home Assistant project.

1 Like

Installed it!!! I do not use FortiAPs so it is very much limited as far as the Firewall stuff. I do see serial number (no need for me to mask it from myself) and version number. I do like how it pulled the ARP information as entities and I labeled them as my switch connection, and 3 Internet connections (yes, that level of nerd where i have 2 1GB connections AND cellular backup)

I love how it uses a RO API key.

I have the FortiGate Policy Automation from HACS for the policies. That seems to work well. Now, my OCD is making me enter missing comments on my policy.

I would like to see additional things in this integration, like CPU, Memory, whether or not it is on Conserve, Sessions, Interface bandwidths, SD-WAN (I use that to choose between my Internets).

Nice to haves would be DNS resolution times, Botnet Activity, virtual IP hit counts (I have those for my two Plex servers across both gig Internets), and maybe traffic shaping.

AWESOME JOB!!! I cannot wait for all you come up with and consider me a Beta Tester.

I actually want to use HA as a network monitoring software and can do Unifi and this seems like a start for FortiNet. I do have one FortiSwitch. I WISH there was better for my main Cisco switch.

I am so glad you enjoyed it. I am going to add policies as well, it was really my initial motivation but I got side tracked into doing the wifi stuff because I just installed some new APs outside and wanted to watch myself roaming as I walked around. CPU, Memory, Policies, sessions all that I am going to add…I’m iterating on it relatively quick because I really want something I can use all the time. One thing I will do is if you label a DHCP reservation (or as soon as i add devices, a device), I want to give you the option to propagate that label down to the ARP entry and the DHCP entry so you can at-a-glance find everything about a specific link. Have you tried adding the custom dashboards? If you go to dashboards in your HA settings, then click Add dashboard, you can see the custom dashboard strategies I added.

You may need to hit ctrl-command-refresh to refresh it. But you can add them to your side bar and I have all sorts of filters in there so you can filter by firewall if you have more than one, by interface (vlan), and so on.

1 Like

I also have a ton of Fortiswitches. Mostly 108E, 124E, I think a 124F, a bunch of 108E-FPO E and 108E-POE, so I’m also going to make an integration for the switches. I don’t use the fortilink on my firewall to connect my switches but I will definitely hang one off a firewall so I can add that functionality to the integration.

2 Likes

FortiOS KD v0.6.0

This release adds VDOM discovery, per-VDOM resource monitoring, and a dedicated VDOM dashboard.

What’s new

  • Discovers configured VDOMs and represents them as devices linked to their FortiGate.
  • Adds management-VDOM identification and VDOM-name diagnostics.
  • Adds per-VDOM sensors for:
    • CPU usage
    • Memory usage
    • Active sessions
    • Session usage percentage
  • Adds the KD VDOM Resources dashboard strategy.
  • Adds Firewall and VDOM dashboard filters.
  • Supports combined resource graphs for comparing VDOMs, or separate graphs for each VDOM.

I personally like to see multiple firewalls (I have like 8 of them) on a single graph so I can see the outlier… but I recognize some folks want to see individual cards for each firewall, so I added a dropdown box that lets you pick the format you want.

1 Like

FortiOS KD v0.7.0

New features

  • Added an editable Preferred name to each FortiGate. Dashboard labels, graph legends, and firewall filters use this name without renaming the Home Assistant device.
  • Added VDOM-scoped DNS server devices discovered from global DNS configuration and enabled per-VDOM overrides.
  • Added DNS server diagnostics for IP address, VDOM, configuration source, configured role, latency, and last-tested time.
  • Added a DNS server summary to each VDOM device.
  • Added configured DNS-server latency graphs to the KD VDOM Resources dashboard.
  • Runtime DNS latency enriches configured DNS servers but does not create devices for unconfigured addresses.
  • Preserved Home Assistant 2025.12-compatible device relationships.

DNS latency legends

The combined all-firewall view uses Firewall name - DNS IP so every series remains unambiguous. Long labels may be visually truncated, but the complete name is available in the graph hover details. Selecting one firewall or using Separate by VDOM provides compact IP-only labels.

1 Like

I have a 108 8-port switch without FortiLink, too, because it is beyond my Cisco WS-C3850-48P switch. So, yeah, looking forward to that.

I did not get notified for the updates.

If you go to HACS, then click the three dots next to my integration and click update information you will get the notification upgrade.

1 Like

FortiOS KD 0.7.2 — Device Inventory and Interface Monitoring

This release adds optional detected-device inventory, detailed interface
monitoring, and two new dashboard strategies for exploring that data.

Detected-device inventory

FortiOS KD can now import the devices identified by your FortiGate and
represent them as independent Home Assistant devices.

New information includes:

  • Hostname and identification source
  • IPv4 and IPv6 addresses
  • MAC and master MAC addresses
  • Interface and last-seen time
  • Operating system and software version
  • Hardware vendor, type, family, and version
  • The source FortiGate used to identify each attribute
  • OUI-derived vendor information
  • A diagnostic warning when FortiGuard’s vendor identification may be incorrect
  • Recently seen and stale status sensors
  • Inventory-change diagnostics without retaining previous sensitive values

Detected-device information can also enrich matching ARP, DHCP, and Wi-Fi
client devices. When no better hostname is available, the inventory hostname
is shown with (Device Info) to make its source clear.

KD Device Table

The new KD Device Table provides a compact inventory view with filters for:

  • FortiGate
  • Hardware vendor
  • Hardware type and family
  • Operating system and software version
  • Interface
  • Devices last seen before or after selectable time thresholds

Exact MAC matches link related Wi-Fi clients without merging the separate
device records.

KD Device Table

Interface monitoring

Optional interface synchronization now creates devices for physical and VLAN
interfaces across every available VDOM.

Interface devices include:

  • Name, alias, IP address, and prefix length
  • Link state, speed, and duplex
  • VLAN ID and parent interface
  • TX and RX data rates
  • TX and RX packet rates
  • TX and RX error rates
  • Rates expressed in both megabits and megabytes per second

Each interface includes an editable Preferred name used by graph legends.
It initially follows the FortiGate interface alias, but a Home Assistant
override remains in place unless that alias changes on the FortiGate.

Interface Preferred name

KD Interface Graphs

The new KD Interface Graphs dashboard includes:

  • Mbps graphs first, followed by MB/s, packet-rate, and error-rate graphs
  • Combined and separated-by-firewall layouts
  • FortiGate, link-state, speed/duplex, and parent-interface filters
  • Independent controls for hiding hardware-switch members and Wi-Fi SSID
    interfaces
  • Time ranges from 30 minutes through one week
  • Preferred interface names in graph legends
  • Wider graph cards for improved readability

KD Interface Graphs

Performance and compatibility

  • Detected-device and interface synchronization are disabled by default,
    allowing each FortiGate to opt in independently.
  • Detected-device inventory is refreshed every five minutes.

Upgrade notes

Enable Sync detected devices or Sync interfaces from the FortiOS KD
integration settings after upgrading.

The first interface-rate sample is unavailable until a second counter reading
is collected. Rates also briefly become unavailable after a counter reset
instead of reporting an incorrect negative value.

This is looking great!

One issue:

I understand the need to have several devices and I have assigned areas to them.

But I have quite a number of entities that are not included in those assigned areas:

But I think I have the configuration right where those entities should not be orphaned.



Those entities (from what I could tell) are the filters the integration is creating for the dashboard strategies. They are technically entities but they are not entities related to your firewall devices, but rather objects that the dashboards use to filter the different items.

1 Like

Have you tried adding the custom dashboards? There are about 8 of them. You’ll see the filters in action in those dashboards.

1 Like

Just stumbled across the integration, was using a FortiOS integration but that stopped working with an upgrade to 7.6.x

Just installed the integration, connecting to a 70F with 7.6.7 and looks good.

I may finally be able to get rid of my SNMP config!! Yay

Did notice some errors, will log an issue via Github for it.
All entities goes “unavailable” every couple of minutes.

Sounds great! I made sure that all features are “opt in”… in case it overwhelms your HA with all the entities. I see you masked your serial number, which my thought process for adding privacy masking to everything was posts like this. I like the idea of not having to sanitize your screenshot before posting it… rather just mask everything and turn it off when you are done. Try out the dashboards… you may have to hit ctrl-command-R to refresh the “dashboards” settings screen, then click add and you’ll see them all at the bottom.

2 Likes