home-assistant.io/source/_components/sensor.file.markdown
2018-09-30 17:03:09 +02:00

1.9 KiB

layout, title, description, date, sidebar, comments, sharing, footer, logo, ha_category, ha_iot_class, ha_release
layout title description date sidebar comments sharing footer logo ha_category ha_iot_class ha_release
page File Sensor Instructions on how to integrate sensors which read from files into Home Assistant. 2017-05-13 12:10 true false true true file.png Utility Local Polling 0.45

The file sensor platform reads the entries from a plain-text file and shows the found value. Only the last line of the file is used. This is similar to do $ tail -n 1 sensor.txt on the command-line. Note that file paths must be added to whitelist_external_dirs.

{% linkable_title Configuration %}

To enable the file sensor, add the following lines to your configuration.yaml:

# Example configuration.yaml entry
sensor:
  - platform: file
    file_path: /home/user/.homeassistant/sensor-data.txt

Configuration variables:

  • file_path (Required): path to file that stores the sensor data.
  • name (Optional): Name of the sensor to use in the frontend. Defaults to File.
  • unit_of_measurement (Optional): Defines the units of measurement of the sensor, if any.
  • value_template (Optional): Defines a template to extract a value from the payload.

{% linkable_title Examples %}

In this section you find some real-life examples of how to use this sensor.

{% linkable_title Entries as JSON %}

Assuming that the log file contains multiple values formatted as JSON like shown below:

[...]
{"temperature": 21, "humidity": 39}
{"temperature": 22, "humidity": 36}

This would require the following entry in the configuration.yaml file to extract the temperature:

# Example configuration.yaml entry
sensor:
  - platform: file
    name: Temperature
    file_path: /home/user/.homeassistant/sensor.json
    value_template: {% raw %}'{{ value_json.temperature }}'{% endraw %}
    unit_of_measurement: '°C'