Franck Nijhof 9162850d6e
Rename Services to Actions in integrations: F (#33811)
* Rename Services to Actions in integrations: F

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-07-17 06:01:36 +02:00

77 lines
2.6 KiB
Markdown

---
title: File
description: Instructions on how to integrate sensors which read from files into Home Assistant.
ha_category:
- Notifications
- Sensor
- Utility
ha_release: pre 0.7
ha_iot_class: Local Polling
ha_codeowners:
- '@fabaff'
ha_domain: file
ha_platforms:
- notify
- sensor
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_config_flow: true
---
The File integration allows storing notifications in a file or setting up a sensor based on a file's content.
{% include integrations/config_flow.md %}
## Notifications
Make sure that the file you want to use is added to the [allowlist_external_dirs](https://www.home-assistant.io/integrations/homeassistant/#allowlist_external_dirs). The file will be created if it doesn't exist, but make sure the folder exists. Add the path of your [configuration](/docs/configuration/) folder (for example, `/config/file_notifications`) to save the file there. Setting `timestamp` to `true` adds a timestamp to every logged entry.
After creating a config entry, you can change the entry name, the name of the notify entity, or the entity ID, if you prefer.
To use notifications in automations or scripts, see the [getting started with automation page](/getting-started/automation/).
Use the `notify.send_message` entity to store notification messages.
## Sensor
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 [allowlist_external_dirs](/integrations/homeassistant/#allowlist_external_dirs).
### Examples
In this section you find some real-life examples of how to use this sensor.
#### Entries as JSON
Assuming that the log file contains multiple values formatted as JSON as shown below:
```text
[...]
{"temperature": 21, "humidity": 39}
{"temperature": 22, "humidity": 36}
```
This would require the following settings to extract the temperature:
- Name: `Temperature`
- File path: `/home/user/.homeassistant/sensor.json`
- Value template: {% raw %}`'{{ value_json.temperature }}'`{% endraw %}
- Unit of measurement: `"°C"`
#### Entries as CSV
Assuming the log file contains multiple values formatted as CSV as shown below:
```text
timestamp,temperature,humidity
1631472948,21,39
1631472949,22,36
```
This would require the following settings to extract the temperature:
- Name: `Temperature`
- File path: `/home/user/.homeassistant/sensor.csv`
- Value template: {% raw %}`'{{ value.split(",")[1] }}'`{% endraw %}
- Unit of measurement: `"°C"`