历史


历史集成将跟踪家庭助理内部发生的一切,并允许用户浏览它。必威是什么这取决于录音机用于存储数据并使用相同数据库设置的集成。如果将任何实体排除在记录之外,则这些实体将无法使用历史记录。

默认情况下,此集成将启用,除非您已禁用或删除default_config:从您的配置中行。如果是这样,以下示例向您展示了如何手动启用此集成:

#基本配置.yaml条目历史

事件保存在本地数据库中。Google图用于绘制图形。浏览器中有100%发生绘图。任何时间都没有将数据传输给任何人。

配置变量

排除 地图 ((可选的

配置哪些集成应不是显示。

实体 列表 ((可选的

历史记录中要排除的实体ID列表。

entity_globs 列表 ((可选的

在创建日志条目时包括所有与列出模式匹配的实体(例如,传感器。天气_*)。

列表 ((可选的

历史记录中要排除的域列表。

包括 地图 ((可选的

配置应显示哪些集成。

实体 列表 ((可选的

历史记录中包含的实体ID列表。

entity_globs 列表 ((可选的

在创建日志条目时包括所有与列出模式匹配的实体(例如,传感器。天气_*)。

列表 ((可选的

历史记录中包含的域列表。

没有任何包括或者排除配置历史记录为每个实体显示图表(嗯,这并非完全正确 -场景从未显示)在给定日期。如果您仅对某些实体感兴趣,则有几个选择:

将域和实体定义为排除(又名BlockList)。当您基本上对显示的信息感到满意时,这很方便,但只想删除某些实体或域。通常这些是不会改变或很少改变的实体/域(例如更新者或者自动化)。

#示例configuration.yaml条目历史排除-自动化-更新者实体-传感器。last_boot-传感器entity_globs-binary_sensor。*_占用

定义域和实体以使用包括配置(又称允许列表)。如果您的系统中有很多实体,您的排除列表越来越大,最好将实体或域定义为包括

#示例configuration.yaml条目包含历史包括-传感器-转变-媒体播放器

使用包括列表以定义要显示的域/实体,并将其中一些排除在排除列表。例如,如果您包括传感器域,但要排除一些特定的传感器。而不是将每个传感器实体添加到包括实体列表只包括传感器域并排除您不感兴趣的传感器实体。请注意,任何的顺序包括实体将显示为在配置中列出的情况下显示,否则,显示顺序是任意的。

#示例配置历史包括-传感器-转变-媒体播放器排除实体-传感器。last_boot-传感器

如果您希望传感器的显示顺序遵循其中包含的实体列表中列出的方式,则可以设置标志use_include_order真实。

#示例configuration.yaml输入使用指定的实体显示顺序历史use_include_order真的包括实体-太阳-light.front_porch

过滤器的应用如下:

  1. 否包括或排除 - 通过所有实体
  2. 包括,不排除 - 仅包括指定实体
  3. 排除,否包括 - 仅排除指定实体
  4. 两者都包括和排除 - 包括指定的实体,并将指定的实体排除在其余。

以下字符可以在实体环境中使用:

*- 星号表示零,一个或多个字符- 周期代表一个字符

实施细节

历史记录存储在SQLite数据库中home-assistant_v2.db在您的配置目录中,除非录音机集成的设置不同。

  • 事件表是录音机集成运行时发生的一切。
  • 状态表包含所有new_statestate_changed事件。
  • 在状态表中您有:
    • ENTITY_ID:实体的entity_id
    • 状态:实体状态
    • 属性:状态属性的JSON
    • last_changed:TIMESTAMP上次状态发生了变化。
    • 最近更新时间:Timestamp一切都发生了变化(状态,属性)
    • 创建:时间戳此条目已插入数据库

当。。。的时候历史集成查询状态表,仅选择状态已更改的状态:last_changed = last_updated

在日期

SQLITE数据库不支持本地日期。这就是为什么自Unix时代以来所有日期都在几秒钟内保存的原因。使用手动转换这个网站或在Python中:

约会时间进口约会时间约会时间Fromtimestamp((1422830502

API

历史信息也可以通过RESTFUL API

Baidu