From a6662ae7ddec72621f6a7a610180dde44cac4d77 Mon Sep 17 00:00:00 2001 From: Petro31 <35082313+Petro31@users.noreply.github.com> Date: Sun, 4 Apr 2021 13:18:09 -0400 Subject: [PATCH] Add compensation integration (#15192) Co-authored-by: Klaas Schoute Co-authored-by: Franck Nijhof --- source/_integrations/compensation.markdown | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 source/_integrations/compensation.markdown diff --git a/source/_integrations/compensation.markdown b/source/_integrations/compensation.markdown new file mode 100644 index 00000000000..362aec0d933 --- /dev/null +++ b/source/_integrations/compensation.markdown @@ -0,0 +1,62 @@ +--- +title: Compensation +description: Instructions on how to integrate compensation sensors into Home Assistant. +ha_category: + - Utility + - Sensor +ha_iot_class: Calculated +ha_release: "2021.5" +ha_quality_scale: internal +ha_codeowners: + - '@petro31' +ha_domain: compensation +--- + +The Compensation integration consumes the state from other sensors. It exports the compensated value as state and the following values as attributes: `entity_id` and `coefficients`. A single polynomial, linear by default, is fit to all data points provided. + +## Configuration + +To enable the compensation sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +compensation: + media_player_db_volume: + source: media_player.yamaha_receiver + data_points: + - [0.2, -80.0] + - [1.0, 0.0] +``` + +{% configuration %} +source: + description: The entity to monitor. + required: true + type: string +data_points: + description: "The collection of data point conversions with the format `[uncompensated_value, compensated_value]`. e.g., `[1.0, 2.1]`. The number of required data points is equal to the polynomial `degree` + 1. For example, a linear compensation (with `degree: 1`) requires at least 2 data points." + required: true + type: list +unique_id: + description: An ID that uniquely identifies this sensor. Set this to a unique value to allow customization through the UI. + required: false + type: string +attribute: + description: Attribute to monitor. + required: false + type: string +degree: + description: "The degree of a polynomial. e.g., Linear compensation (y = x + 3) has 1 degree, Quadratic compensation (y = x2 + x + 3) has 2 degrees, etc." + required: false + default: 1 + type: integer +precision: + description: Defines the precision of the calculated values, through the argument of round(). + required: false + default: 2 + type: integer +unit_of_measurement: + description: Defines the units of measurement of the sensor, if any. + required: false + type: string +{% endconfiguration %}