-
Notifications
You must be signed in to change notification settings - Fork 4
Community Submissions
SNMP Switch Manager utilizes a dynamic, community-driven database system. Rather than relying on a single developer to maintain static MIB tables for thousands of switch models, the integration features a built-in contribution loop that allows you to submit custom OIDs, interface classification tokens, and vendor filters directly back to the repository from the Home Assistant Options UI.
Once merged, your submissions are automatically distributed via our dynamic database updater to all Home Assistant instances globally within 6 hoursβwithout requiring a code release or a Home Assistant restart!
To keep the global database clean, reliable, and functional, we enforce strict submission rules. Submitting invalid or highly customized local rules can break integrations for other users sharing the same switch brand.
You must understand the difference between a local preference (which should stay on your machine) and a global rule (which benefits the community):
-
β Do NOT Submit (Keep Local):
- Renaming a port because of what is plugged in (e.g., matching interface
Gi1/0/5and renaming it toJamie's Gaming PC). - Setting a custom icon for a single port based on your home-lab hardware (e.g., mapping port
Gi1/0/1tomdi:printer). - Excluding a physical port simply because you don't have a cable plugged into it today.
- Renaming a port because of what is plugged in (e.g., matching interface
-
β
DO Submit (Share with Community):
- The correct CPU, Memory, or Temperature OID for a Cisco, Dell, or Mikrotik switch.
- A rule that normalizes standard interface abbreviations (e.g., mapping
Loopbacktolo0orPort-ChanneltoPo) to fit the Lovelace card. - A vendor-wide exclusion filter (e.g., excluding internal
encinterfaces on pfSense firewalls).
Before the integration allows you to submit a Pull Request to GitHub, the options flow forces you to explicitly check three Attestation Checkboxes:
- Verification: "I attest that I have tested and verified that these OIDs/rules work as expected."
- Genericity: "I attest that these filters/tokens are beneficial for everyone, are generic, and do not contain personal preferences."
- Sharing: "Share this with the community."
If any of these attestations are unchecked, the contribution flow will block submission.
Exposes health diagnostics (CPU, Memory, PSU, Fans, Temperature, Power, or PoE budgets) for unsupported switches.
-
Dotted Numeric OID: A pure numeric identifier starting with
1.3.6.1...(do not include alpha characters). - Vendor: The exact vendor/brand string (matching the switch brand name).
-
Retrieve Method:
-
GET(Single OID value, e.g. CPU load on a single core). -
WALK(Querying a table of OIDs, e.g. individual RPMs of multiple chassis fans).
-
-
Scale: A float factor (e.g.
0.1or1.0) used to convert raw integer OIDs to actual values (e.g. converting a raw temperature integer like385to38.5Β°C). -
Unit & Description: Descriptive tags (e.g.
%,Β°C,RPM).
- Manufacturer MIB Documentation: Look up the switch model's technical manuals or standard MIB database files on the manufacturer's support site.
-
MIB Search Engines: Search using tools like MIB Depot or OIDView for terms like
sysObjectID,cpu,temperature, orpoe. -
Local CLI Walk Command: Run a full SNMP walk against your device from a terminal on the same network and filter for numerical tables:
# Extract the full OID map and grep for 'temp', 'cpu', 'rpm', or 'budget' snmpwalk -v 2c -c public <Switch_IP> 1.3.6.1.4.1 | grep -i "temp"
Used to automatically hide virtual, loopback, or non-physical utility interfaces during port discovery.
- Rule Type: Include or Exclude.
- Match Type: Starts With, Contains, or Ends With (case-insensitive).
-
Match Value: The standard string token (e.g.
Null,Vlan,enc,pfsense_loopback).
Query your switch's interface list (ifDescr table) using a CLI tool to inspect the raw names of virtual ports:
snmpwalk -v 2c -c public <Switch_IP> 1.3.6.1.2.1.2.2.1.2If you see virtual utility adapters such as Vlan100, Null0, or VirtualEthernet1 appearing as empty port entities in Home Assistant, capture the common prefix (e.g. Null or VirtualEthernet) and submit it as a community exclude rule to clean up setups for all users of that vendor.
Determines whether a port is classified as a physical front-panel port (e.g. physical) or a logical layer (e.g. virtual).
- Token List: Physical List or Virtual List.
-
Token String: The exact shorthand string (e.g.,
vl,lo,lag,bond,irb,bdi).
Analyze the standard interface names exposed by your switch's operating system:
- Juniper routers name loopbacks
lo0and VLAN aggregatesirb. - Cisco switches often name virtual loopbacks
vlor bridge interfacesbdi. - If a newly discovered switch brand shows standard virtual interfaces as physical ports, identify the prefix token used by the OS and submit it to the Virtual Token List so the integration's heuristic engine learns to classify it correctly.
To submit a PR, the integration uses the secure GitHub Device Flow protocol.
- Sandboxed Authorization: The integration never requests your GitHub password or personal access tokens.
-
Minimal Permissions: The requested authentication scope is strictly limited to
public_repo(which only allows the integration to create a temporary fork of the public database and submit a Pull Request to our master repo). - No Local Credentials Stored: The authorization token is used in memory to commit the JSON changes and is cleared immediately after the Pull Request is created.
-
π§ GitHub Repository
https://github.com/OtisPresley/snmp-switch-manager -
π Report an Issue
https://github.com/OtisPresley/snmp-switch-manager/issues -
π¦ Releases & Changelog
https://github.com/OtisPresley/snmp-switch-manager/releases -
π User Documentation (Wiki)
https://github.com/OtisPresley/snmp-switch-manager/wiki
SNMP Switch Manager is a Home Assistant integration for monitoring managed network switches using SNMP.
- π Home
- π¦ Installation
- βοΈ Integration Configuration
- π‘οΈ Diagnostics & Sensors
- π§ Supported Switches
- π§ Lovelace Card
- β Troubleshooting
- π FAQ