From 12b6447a5fe54421540b790c45262fa4195a1f07 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 26 Feb 2018 20:26:09 +0000 Subject: [PATCH] Adds simulated sensor (#4712) * Create sensor.simulated.markdown * Fix seed ref * Update sensor.simulated.markdown * Update sensor.simulated.markdown * Update sensor.simulated.markdown --- source/_components/sensor.simulated.markdown | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 source/_components/sensor.simulated.markdown diff --git a/source/_components/sensor.simulated.markdown b/source/_components/sensor.simulated.markdown new file mode 100644 index 00000000000..4667b9ff396 --- /dev/null +++ b/source/_components/sensor.simulated.markdown @@ -0,0 +1,94 @@ +--- +layout: page +title: "Simulated sensor" +description: "Component for simulating a numerical sensor." +date: 2018-02-20 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: home-assistant.png +ha_category: Sensor +ha_iot_class: "Local Polling" +ha_release: 0.65 +--- + +This component provides a simulated sensor that generates a time-varying signal ```V(t)``` given by the [function](https://en.wikipedia.org/wiki/Sine_wave): + + ``` + V(t) = M + A sin((2 pi (t - t_0) / w) + P) + N(s) + ``` + +where: + +- **M** = the [mean](https://en.wikipedia.org/wiki/Mean) value of the sensor +- **A** = the [amplitude](https://en.wikipedia.org/wiki/Amplitude) of the periodic contribution +- **t** = the time when a value is generated +- **t_0** = the time when the sensor is started +- **w** = the time [period](https://en.wikipedia.org/wiki/Periodic_function) in seconds for a single complete cycle of the periodic contribution +- **P** = the [phase](https://en.wikipedia.org/wiki/Phase_(waves)) offset to add to the periodic contribution, in units of degrees +- **N(s)** = the random [Gaussian noise](https://en.wikipedia.org/wiki/Gaussian_noise) with spread **s** + +A simulated sensor with default values can be added to home-assistant using the following config: + +```yaml +sensor: + - platform: simulated +``` + +To give an example of simulating real world data, a simulated relative humidity sensor (in %) can be added using the following config: + +```yaml +sensor: + - platform: simulated + name: 'simulated relative humidity' + unit: '%' + amplitude: 0 # Turns off the periodic contribution + mean: 50 + spread: 10 + seed: 999 +``` + +Configuration variables: +{% configuration %} +name: + description: The name of the sensor + required: false + default: Defaults to 'simulated' + type: string +unit: + description: The unit to apply + required: false + default: Defaults to 'value' + type: string +amplitude: + description: The amplitude of periodic contribution + required: false + default: 1 + type: float +mean: + description: The mean level of the sensor + required: false + default: 0 + type: float +period: + description: The time in seconds for one complete oscillation of the periodic contribution + required: false + default: 0 + type: seconds +phase: + description: The phase offset (in degrees) to apply to the periodic component + required: false + default: 0 + type: float +seed: + description: The [seed](https://docs.python.org/3.6/library/random.html#random.seed) value for the random noise component + required: false + default: 999 + type: int +spread: + description: The spread is the range of the randomly distributed values about their mean. This is sometimes referred to as the Full Width at Half Maximum ([FWHM](https://en.wikipedia.org/wiki/Full_width_at_half_maximum)) of the random distribution + required: false + default: None + type: float +{% endconfiguration %}