InfluxDB Sensor
The influxdb
sensor allows you to use values from an InfluxDB database to populate a sensor state. This can be use to present statistic about home_assistant sensors if used with the influxdb
history component. It can also be used with an external data source.
To configure this sensor, you need to define the sensor connection variables and a list of queries to your configuration.yaml
file. A sensor will be created for each query:
# Example configuration.yaml entry
sensor:
- platform: influxdb
queries:
- name: mean value of foo
where: '"name" = ''foo'''
measurement: '"°C"'
Configuration variables for the server:
- host (Optional): IP address of your database host, eg. 192.168.1.10. Defaults to
localhost
. - port (Optional): Port to use. Defaults to 8086.
- username (Optional): The username of the database user.
- password (Optional): The password for the database user account.
- ssl (Optional): Use
https
instead ofhttp
to connect. Defaults tofalse
. - verify_ssl (Optional): Verify SSL certificate for
https
request. Defaults tofalse
. - queries array (Required): List of queries
- name (Required): The name of the sensor.
- unit_of_measurement (Optional): Defines the units of measurement of the sensor, if any.
- measurement (Required): Defines the measurement name in InfluxDB (the from clause of the query).
- where (Required): Defines the data selection clause (the where clause of the query).
- value_template (Optional): Defines a template to extract a value from the payload.
- database (Optional): Name of the database to use. Defaults to
home_assistant
. - group_function (Optional): The group function to be used. Defaults to
mean
. - field (Optional): The field name to select. Defaults to value.
Examples
Full configuration
The example configuration entry bellow create two request to your local InfluxDB instance, one to the database db1
, the other to db2
:
select last(value) as value from "°C" where "name" = "foo"
select min(tmp) as value from "%" where "entity_id" = ''salon'' and time > now() - 1h
sensor:
platform: influxdb
host: localhost
username: home-assistant
password: password
queries:
- name: last value of foo
unit_of_measurement: °C
value_template: '{{ value | round(1) }}'
group_function: last
where: '"name" = ''foo'''
measurement: '"°C"'
field: value
database: db1
- name: Min for last hour
unit_of_measurement: '%'
value_template: '{{ value | round(1) }}'
group_function: min
where: '"entity_id" = ''salon'' and time > now() - 1h'
measurement: '"%"'
field: tmp
database: db2