2015-04-25 09:35:36 -07:00

53 lines
1.8 KiB
Markdown

---
layout: page
title: "History support"
description: "Instructions how to enable history support for Home Assistant."
date: 2015-03-23 19:59
sidebar: false
comments: false
sharing: true
footer: true
---
This component will track everything that is going on within Home Assistant and allows the user to browse through it.
```yaml
# Example configuration.yaml entry
history:
```
<p class='img'>
<a href='{{site_root}}/images/screenshots/component_history_24h.png'>
<img src='{{site_root}}/images/screenshots/component_history_24h.png' />
</a>
</p>
<p class='note'>
Events are saved in a local database. Google Graphs is used to draw the graph. Drawing is happening 100% in your browser - no data is transferred to anyone at any time.
</p>
### Implementation details
The history is stored in a SQLite databse `home-assistant.db` within your config directory.
- events table is all events except time_changed that happened while recorder component was running.
- states table contains all the new_state values of state_changed events.
- Inside the states table you have:
- entity_id: the entity_id of the entity
- state: the state of the entity
- attributes: JSON of the state attributes
- last_changed: timestamp last time the state has changed. A state_changed event can happen when just attributes change.
- last_updated: timestamp anything has changed (state, attributes)
- created: timestamp this entry was inserted into the database
When the history component queries the states table it only selects states where the state has changed: `WHERE last_changed=last_updated`
#### On dates
SQLite databases do not support native dates. That's why all the dates are saved in seconds since the UNIX epoch. Convert them manually using this site or in Python:
```python
from datetime import datetime
datetime.fromtimestamp(1422830502)
```