From 66f2083986d9e88c760d788c4821f320bb071ed2 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Mon, 3 Feb 2020 05:36:57 -0500 Subject: [PATCH] Add documentation for new opnsense integration (#10427) * Add documentation for new opnsense component This commit adds documentation for the opnsense device tracker which is being added in home-assistant/home-assistant#26834. * Update source/_components/opnsense.markdown Co-Authored-By: Klaas Schoute * Fixes from review comments * More updates from code review The previous updates in dc933232ab654d79a27cc0a16f8ca13b16196d46 around the defaults were applied a bit too mechanically and the same problem existed elsewhere in the configuration section. This commit also updates those to fix the same issue there. * :pencil2: Tweaks * Move documentation to new integrations location * Remove LAN default for tracker_interfaces Part of the review changes made to the PR adding this component was to not set a default value for the tracker_interfaces to ["LAN"]. This commit just updates the configuration section of the docs to reflect this change. * Update opnsense.markdown Co-authored-by: Klaas Schoute Co-authored-by: Franck Nijhof --- source/_integrations/opnsense.markdown | 61 ++++++++++++++++++++ source/images/supported_brands/opnsense.png | Bin 0 -> 34280 bytes 2 files changed, 61 insertions(+) create mode 100644 source/_integrations/opnsense.markdown create mode 100644 source/images/supported_brands/opnsense.png diff --git a/source/_integrations/opnsense.markdown b/source/_integrations/opnsense.markdown new file mode 100644 index 00000000000..31f7af2432c --- /dev/null +++ b/source/_integrations/opnsense.markdown @@ -0,0 +1,61 @@ +--- +title: "OPNsense" +description: "Instructions on how to configure OPNsense integration" +logo: opnsense.png +ha_category: + - Hub + - Presence Detection +ha_release: "0.106" +--- + +[OPNsense](https://opnsense.org/) is an open source HardenedBSD based firewall +and routing platform. There is currently support for the following device types +within Home Assistant: + +- [Presence Detection](#presence-detection) + +## Configuration + +To configure OPNsense integration with Home Assistant add the following section +to your configuration.yaml: + +```yaml +opnsense: + url: http://router/api + api_secret: API_SECRET + api_key: API_KEY +``` + +Where the `api_key` and `api_secret` values are acquired from your OPNsense +router using the web interface. For more information on this procedure, refer +to the OPNsense [documentation](https://docs.opnsense.org/development/how-tos/api.html#creating-keys). + +{% configuration %} +url: + description: The URL for the OPNsense api endpoint of your router. + type: string + required: true +api_key: + description: The API key used to authenticate with your OPNsense API endpoint. + type: string + required: true +api_secret: + description: The API secret used to authenticate with your OPNsense API endpoint. + type: string + required: true +verify_ssl: + description: Set to true to enable the validation of the OPNsense API's SSL. + type: boolean + required: false + default: false +tracker_interfaces: + description: List of the OPNsense router's interfaces to use for tracking devices. + type: list + required: false + default: [] +{% endconfiguration %} + + +## Presence detection + +This platform allows you to detect presence by looking at devices connected to an OPNsense router. diff --git a/source/images/supported_brands/opnsense.png b/source/images/supported_brands/opnsense.png new file mode 100644 index 0000000000000000000000000000000000000000..9f66dabea1f13014d6f5d3fedd7bc2a6126801a9 GIT binary patch literal 34280 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 Aj{pDw literal 0 HcmV?d00001