From cd32d4b1e5bce148d841910778865ece2262f89f Mon Sep 17 00:00:00 2001 From: Nick Horvath Date: Tue, 9 Oct 2018 06:50:05 -0400 Subject: [PATCH] Create documentation for Thermoworks Smoke sensor. (#6063) * Create documentation for Thermoworks Smoke sensor. Documentation to correspond with https://github.com/home-assistant/home-assistant/pull/16139 * fix configuration and raw tags * add thermoworks logo * version number * Update logo for thermoworks. * changes from code reviews * requested changes * Update with requested changes --- .../sensor.thermoworks_smoke.markdown | 133 ++++++++++++++++++ .../images/supported_brands/thermoworks.png | Bin 0 -> 21589 bytes 2 files changed, 133 insertions(+) create mode 100644 source/_components/sensor.thermoworks_smoke.markdown create mode 100644 source/images/supported_brands/thermoworks.png diff --git a/source/_components/sensor.thermoworks_smoke.markdown b/source/_components/sensor.thermoworks_smoke.markdown new file mode 100644 index 00000000000..11098e72a8c --- /dev/null +++ b/source/_components/sensor.thermoworks_smoke.markdown @@ -0,0 +1,133 @@ +--- +layout: page +title: "ThermoWorks Smoke Sensor" +description: "Pulls temperature data for a ThermoWorks Smoke Thermometer connected with Smoke Gateway." +date: 2018-08-22 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: thermoworks.png +ha_category: Sensor +ha_release: 0.81.0 +ha_iot_class: "Cloud Polling" +--- + +The `thermoworks_smoke` sensor platform pulls data for your [ThermoWorks Smoke Thermometer](https://www.thermoworks.com/Smoke). +This requires a [Smoke WiFi Gateway](https://www.thermoworks.com/Smoke-Gateway) with an internet connection. + +You will need to have previously registered your smoke to your account via the mobile app and provide +the email and password you used to in the configuration for this sensor in order to connect and pull your data. + +## {% linkable_title Configuration %} + +To add the sensors to your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass +``` + +{% configuration %} +email: + description: The email address with the device registered in the thermoworks smoke mobile app. + required: true + type: string +password: + description: The password registered in the thermoworks smoke mobile app. + required: true + type: string +monitored_conditions: + description: The sensors to add. Default is `probe1` and `probe2`. The full list is `probe1`, `probe2`, `probe1_min`, `probe1_max`, `probe2_min`, `probe2_max`. + required: false + type: list +exclude: + description: Device serial numbers to ignore. + required: false + type: list +{% endconfiguration %} + +## {% linkable_title Examples %} + +This section includes some examples of how to use this sensor. + +### {% linkable_title Only Probe 1 %} + +This will show only Probe 1 with min and max data. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + monitored_conditions: + - probe1 + - probe1_min + - probe1_max +``` +{% endraw %} + +### {% linkable_title Ignore a Device %} + +This will exclude a device from creating sensors. You would replace `"00:00:00:00:00:00"` with your device's serial number. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + exclude: + - "00:00:00:00:00:00" +``` +{% endraw %} + +### {% linkable_title Notify when Probe 1 goes above a certain temperature %} + +This will use an automation to trigger a notification when Probe 1 goes above a temperature stored in an input_number variable. +By default, your smoke is named "My Smoke" in the app. If you have changed it you will need to change the sensor name from `my_smoke_probe_1` to `your_name_probe_1`. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: thermoworks_smoke + email: "your email here" + password: !secret thermoworks_pass + +input_number: + smoke_probe_1_threshold: + name: Smoke Probe 1 Threshold + min: -40 + max: 500 + step: 0.5 + unit_of_measurement: '°F' + icon: mdi:thermometer + +automation: + - alias: Alert when My Smoke Probe 1 is above threshold + trigger: + platform: template + value_template: >- + {% if (states("sensor.my_smoke_probe_1") | float) > (states("input_number.smoke_probe_1_threshold") | float) %} + True + {% else %} + False + {% endif %} + action: + - service: notify.all + data: + message: > + {{- state_attr('sensor.my_smoke_probe_1','friendly_name') }} is above + {{- ' '+states("input_number.smoke_probe_1_threshold") -}} + {{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }} at + {{- ' '+states("sensor.my_smoke_probe_1") -}} + {{- state_attr('sensor.my_smoke_probe_1','unit_of_measurement') }} +``` +{% endraw %} diff --git a/source/images/supported_brands/thermoworks.png b/source/images/supported_brands/thermoworks.png new file mode 100644 index 0000000000000000000000000000000000000000..fad4d2666f656743d4133d339ccd3ec916034278 GIT binary patch literal 21589 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