From 167c1caccd73f3c091b61671b59ec70a48e82698 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 9 Aug 2017 16:24:40 +0200 Subject: [PATCH] Add Shodan sensor docs --- source/_components/sensor.shodan.markdown | 36 ++++++++++++++++++++++ source/images/supported_brands/shodan.png | Bin 0 -> 11955 bytes 2 files changed, 36 insertions(+) create mode 100644 source/_components/sensor.shodan.markdown create mode 100644 source/images/supported_brands/shodan.png diff --git a/source/_components/sensor.shodan.markdown b/source/_components/sensor.shodan.markdown new file mode 100644 index 000000000000..c7b7bb7ba9af --- /dev/null +++ b/source/_components/sensor.shodan.markdown @@ -0,0 +1,36 @@ +--- +layout: page +title: "Shodan Sensor" +description: "Instructions how to integrate Shodan sensors into Home Assistant." +date: 2017-08-09 10:30 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_iot_class: "Cloud Polling" +logo: shodan.png +ha_release: 0.51 +--- + + +The `shodan` sensor platform is displaying the total of result of a [Shodan](https://pi-hole.net/) query. + +Use "Show API Key" in the upper right corner when you are logged in or got to your "My Account" page to retrieve your API key. + +To enable this sensor, add the following lines to your `configuration.yaml` file for a GET request: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: shodan + api_key: SHODAN_API_KEY + query: 'home-assistant' +``` + +Configuration variables: + +- **api_key** (*Required*): The API key for Shodan.io. +- **query** (*Required*): The search string. +- **name** (*Optional*): Name of the Shodan sensor. + diff --git a/source/images/supported_brands/shodan.png b/source/images/supported_brands/shodan.png new file mode 100644 index 0000000000000000000000000000000000000000..2df58bcd660357bfbb9d849752e8a1855dcb297a GIT binary patch literal 11955 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 kVS|kUQQt^RPTUVt;|#5CFSH