From 60b694bf0f00b98261ca32552cc7eed284e7dcf8 Mon Sep 17 00:00:00 2001 From: mvn23 Date: Sat, 8 Sep 2018 00:04:09 +0200 Subject: [PATCH] Documentation for OpenTherm Gateway climate platform (#6118) * Add documentation for component climate.opentherm_gw * Update to adhere to standards * Changed wording from "component" to "device" as it is not a component * Minor changes * Add quotes * Fix location of space --- .../_components/climate.opentherm_gw.markdown | 61 ++++++++++++++++++ source/images/supported_brands/opentherm.png | Bin 0 -> 20615 bytes 2 files changed, 61 insertions(+) create mode 100644 source/_components/climate.opentherm_gw.markdown create mode 100644 source/images/supported_brands/opentherm.png diff --git a/source/_components/climate.opentherm_gw.markdown b/source/_components/climate.opentherm_gw.markdown new file mode 100644 index 00000000000..bbed48193d3 --- /dev/null +++ b/source/_components/climate.opentherm_gw.markdown @@ -0,0 +1,61 @@ +--- +layout: page +title: "OpenTherm Gateway" +description: "Control your OpenTherm Gateway from Home Assistant." +date: 2018-08-29 16:23 +sidebar: true +comments: false +sharing: true +footer: true +logo: opentherm.png +ha_category: Climate +ha_release: 0.78 +ha_iot_class: "Local Push" +--- + + +The `opentherm_gw` climate platform is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant. + +# {% linkable_title Configuration %} + +```yaml +# Example configuration.yaml entry +climate: + - platform: opentherm_gw + device: /dev/ttyUSB0 +``` + +{% configuration %} +device: + description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)." + required: true + type: string +name: + description: The name for the device within Home Assistant. + required: false + type: string + default: OpenTherm Gateway +precision: + description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`." + required: false + type: float + default: "`0.5` for Celsius and `1.0` for Fahrenheit." +floor_temperature: + description: Some thermostats round all temperatures down to the lower value according to their precision. Default behaviour for Home Assistant is to round temperatures to the nearest value. Set this to `True` to override Home Assistant and round to the lower value according to the configured `precision`. + required: false + type: boolean +{% endconfiguration %} + +# {% linkable_title Example %} + +A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below. + +```yaml +# Full example configuration.yaml entry +climate: + - platform: opentherm_gw + device: socket://otgw.example.org:2345 + name: Thermostat + precision: 0.5 + floor_temperature: True +``` diff --git a/source/images/supported_brands/opentherm.png b/source/images/supported_brands/opentherm.png new file mode 100644 index 0000000000000000000000000000000000000000..459f60e67369392ffee6022c3fad0b619b8ed5a4 GIT binary patch literal 20615 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 literal 0 HcmV?d00001