mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-05-30 14:56:50 +00:00

* 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>
77 lines
2.6 KiB
Markdown
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"`
|