infuxdb


infuxdb集成使所有状态更改都可以转移到外部infuxdb数据库。看到官方安装文档有关如何设置InfluxDB数据库或有一个社区附加可用的。

此外,您现在可以使用此集成使用InfluxDB 2.0安装。看到官方安装说明有关如何设置InfluxDB 2.0数据库。或者您可以注册他们的云服务并将家庭助理联系起来。必威是什么请注意,2.xx安装的配置显着不同,以下文档将注意到字段或默认值仅适用于1.xx安装或2.xx安装。

目前,家庭助理中的以下设备类型支持:必威是什么

infuxdb数据库集成与家庭助理数据库平行运行。必威是什么它不能替换它。

配置

默认的InfluxDB配置无法强制执行身份验证。如果您已经在家庭助理正在运行且没有进行任何配置更改的同一主机上安装了InfluxDB,请添加以下内容必威是什么configuration.yaml文件:

#示例Configuration.yaml条目infuxdb

您仍然需要创建一个名称的数据库home_assistant通过InfluxDB的命令行界面。有关如何创建数据库的说明流入文档与您安装的版本有关。

配置变量

api_version 细绳

要使用的API版本。有效值为1或者2

SSL 布尔 ((可选的,默认:false

使用HTTP而不是HTTP连接。2.xx-默认为真的对于2.xx,错误否则错误的

主持人 细绳 ((可选的,默认:localhost

数据库主机的IP地址或域,例如192.168.1.10。2.xx-默认为“ us-west-2-1.aws.cloud2.influxdata.com”,而不是“ localhost”。

港口 整数 ((可选的,默认值:8086

要使用的端口。2.xx-没有2.xx的默认端口,否则8086。

小路 细绳 ((可选的

如果您的InfuxDB在反向代理后面运行,则使用的路径。

用户名 细绳 ((包括的

仅1.xx-数据库用户的用户名。用户需要在数据库上读/写特权。

密码 细绳 ((包括的

仅1.xx-数据库用户帐户的密码。需要用户名配置变量。

数据库 细绳 ((可选的,默认:home_assistant

仅1.xx-使用数据库的名称。数据库必须已经存在。

verify_ssl 布尔 ((可选的,默认:正确

验证HTTPS请求的SSL证书。这可以带有布尔值错误的或者真的

ssl_ca_cert 细绳 ((可选的,默认:无

在SSL验证期间将使用CA证书的可选路径。

令牌 细绳 ((包括的

仅2.xx-验证令牌,可以写入您选择的组织和存储桶。需要组织配置变量。

组织 细绳 ((包括的

仅2.xx-要写的组织ID。为了获得此功能,打开2.xx安装的UI,顶部的URL将在此之后具有/orgs。例如,在InfluxDB云中,看起来像这样:https://us-west-2-1.aws.cloud2.influxdata.com/orgs/ {organizationid}。需要令牌配置变量。

细绳 ((可选的,默认:家庭助理必威是什么

仅2.xx-组织中要写入的存储桶的名称(不是生成的存储桶ID)。

max_retries 整数 ((可选的,默认:0

设置此设置以允许集成在传输数据时存在网络错误,以重试。

精确 细绳 ((可选的,默认:NS

将其设置为指定发送到InfluxDB的时间精度。设置更粗的精度允许InfluxDB更好地压缩您的数据。如果未设置,则默认为ns。

MESUEREMENT_ATTR 细绳 ((可选的,默认:unit_of_measurement

状态对象属性用作测量名称。可能的值:测量单位,,,,domain__device_class或者ENTITY_ID

default_measurement 细绳 ((可选的

当Measurement_ATTR状态属性不存在时使用的测量名称,例如当实体没有单位时。

默认:

使用实体的实体ID

Override_measurement 细绳 ((可选的

用于使用的测量名称代替suberurement_attr或默认测量名称。这将将所有数据点存储在单个测量中。

排除 列表 ((可选的

配置应将哪些集成从记录到InfluxDB排除。((配置过滤器

实体 字符串|列表 ((可选的

将排除在录制到InfluxDB的实体ID列表。

entity_globs 字符串|列表 ((可选的

排除匹配列出模式的所有实体。

字符串|列表 ((可选的

从记录到InfluxDB的域列表。

包括 列表 ((可选的

配置应将集成在录音中包括在流入到涌入。如果设定,所有其他实体将不会记录到infuxdb。((配置过滤器

实体 字符串|列表 ((可选的

记录到InfluxDB的实体ID列表。

entity_globs 字符串|列表 ((可选的

包括所有与列出模式匹配的实体。

字符串|列表 ((可选的

记录到infuxdb的域列表。

标签 字符串|列表

标记数据的标签。

tags_attributes 字符串|列表 ((可选的,默认:0

属性名称的列表应报告为标签,而不是influxdb的字段。例如,如果设置为友好名称,除了其ID之外,还可以按实体的友好名称进行分组。

ignore_attributes 字符串|列表 ((可选的

向InfluxDB报告时要忽略的属性名称列表。这可以用来滤除对您不变或对您无关紧要的属性,以减少涌入量中存储的数据量。

component_config 细绳 ((可选的

此属性包含特定于组件的覆盖值。看定制设备和服务用于格式。

Override_measurement 细绳 ((可选的

用于使用的测量名称代替单元或默认测量名称。这将将所有数据点存储在单个测量中。

ignore_attributes 字符串|列表 ((可选的

向InfluxDB报告时要忽略的属性名称列表。将与默认值合并ignore_attributes在处理特定实体的状态变更事件时列出。

component_config_domain 细绳 ((可选的

该属性包含特定于域的集成覆盖值。看定制设备和服务用于格式。

Override_measurement 细绳 ((可选的

用于使用的测量名称代替单元或默认测量名称。这将将所有数据点存储在单个测量中。

ignore_attributes 字符串|列表 ((可选的

向InfluxDB报告时要忽略的属性名称列表。将与默认值合并ignore_attributes在处理特定实体的状态变更事件时列出。

component_config_glob 细绳 ((可选的

此属性包含特定于组件的覆盖值。看定制设备和服务用于格式。

Override_measurement 细绳 ((可选的

用于使用的测量名称代替单元或默认测量名称。这将将所有数据点存储在单个测量中。

ignore_attributes 字符串|列表 ((可选的

向InfluxDB报告时要忽略的属性名称列表。将与默认值合并ignore_attributes在处理特定实体的状态变更事件时列出。

配置过滤器

默认情况下,不会排除任何实体。限制哪些实体被暴露于infuxdb,您可以使用包括排除参数。

#示例过滤器要包括指定域并排除指定的实体infuxdb包括-alarm_control_panel-entity_globs-binary_sensor。*_占用排除实体-light.kitchen_light

过滤器的应用如下:

  1. 否包括或排除 - 通过所有实体
  2. 包括,不排除 - 仅包括指定实体
  3. 排除,否包括 - 仅排除指定实体
  4. 两者都包括和排除:
    • 包括指定的域和/或球形图案
      • 如果包括域,并且不排除或匹配实体,则通过
      • 如果实体匹配包括球形模式,并且实体与任何排除条件(域,全球模式或列出)不匹配,则通过
      • 如果不包括域,则全球模式不匹配,并且不包括实体,则失败
    • 排除指定的域和/或全球模式,包括不列出域或球模式
      • 如果排除域并且不包括实体,则失败
      • 如果实体匹配不包括球模式和未包括的实体,则失败
      • 如果实体与任何排除条件不匹配(域,全球模式或列出),请通过
    • 不包括或排除指定域或球模式
      • 如果包括实体,请通过(如上#2)
      • 如果实体包括和排除实体,则将忽略实体排除

例子

1.xx安装的完整配置

infuxdb主持人192.168.1.190港口20000数据库db_to_store_events用户名my_username密码我的密码SSL真的verify_ssl真的max_retries3default_measurement状态排除实体-实体.id1-实体.id2-自动化包括实体-实体.id3-实体.id4标签实例产品资源哈斯

2.xx安装的完整配置

infuxdbapi_version2SSL错误的主持人Localhost港口9999令牌生成_auth_token组织Random_16_digit_hex_idbucket_name标签资源tags_attributes-友好名称default_measurement单位排除实体-区域-persistent_notification-包括-传感器-binary_sensor-太阳实体-天气

传感器

infuxdb传感器允许您使用来自infuxdb数据库以填充传感器状态。如果与必威是什么infuxdb历史记录组件。它也可以与外部数据源一起使用。

您必须配置infuxdb历史组件以创建infuxdb传感器。如果您只想为外部InfluxDB数据库创建传感器,而您不希望家庭助理编写任何数据,则可以排除所有类似的实体:必威是什么

infuxdb排除entity_globs*”

配置

要配置此传感器,您需要定义传感器连接变量和查询列表configuration.yaml文件。每个查询都会创建一个传感器:

#示例Configuration.yaml条目传感器-平台infuxdb查询-姓名foo的平均值在哪里'“姓名”=''foo'''测量'“°C”'

请注意,2.xx安装InfluxDB仅支持其通量语言的查询。虽然该语言在1.xx安装中可用,但它不是默认的,也不是API中使用的,因此您可能不知道。您可以从他们的文档或使用UI中的查询构建器。

您需要在2.xx安装的传感器中使用此语言构造查询,看起来像这样:

#示例Configuration.yaml条目传感器-平台infuxdbapi_version2组织Random_16_digit_hex_id令牌生成_auth_tokenqueries_flux-group_function意思是进口-字符串姓名意思是湿度报告过去的天”询问>过滤器(fn:(r)=> r._field ==“ value”和r.domain ==“传感器”和字符串。|>保持(列:[“ _value”])range_start-1D”

配置变量

api_version 细绳

要使用的API版本。有效值为1或者2

SSL 布尔 ((可选的,默认:false

使用HTTP而不是HTTP连接。2.xx-默认为真的对于2.xx,否则错误的

主持人 细绳 ((可选的,默认:localhost

数据库主机的IP地址或域,例如192.168.1.10。2.xx-默认为“ us-west-2-1.aws.cloud2.influxdata.com”,而不是“ localhost”。

港口 整数 ((可选的,默认值:8086

要使用的端口。2.xx-没有2.xx的默认端口,否则8086。

小路 细绳 ((可选的

如果您的InfuxDB在反向代理后面运行,则使用的路径。

用户名 细绳 ((包括的

仅1.xx-数据库用户的用户名。用户需要在数据库上读/写特权。

密码 细绳 ((包括的

仅1.xx-数据库用户帐户的密码。需要用户名配置变量。

数据库 细绳 ((可选的,默认:home_assistant

仅1.xx-使用数据库的名称。数据库必须已经存在。设置传感器的默认数据库,单个传感器也可以从其他数据库中读取。

verify_ssl 布尔 ((可选的,默认:正确

仅1.xx-验证HTTPS请求的SSL证书。对于需要2.xx SSL验证,库不提供禁用它的方法。

令牌 细绳 ((包括的

仅2.xx-验证令牌,可阅读访问您选择的组织和存储桶。需要组织配置变量。

组织 细绳 ((包括的

仅2.xx-要阅读的组织ID。为了获得此功能,打开2.xx安装的UI,顶部的URL将在此之后具有/orgs。例如,在InfluxDB云中,看起来像这样:https://us-west-2-1.aws.cloud2.influxdata.com/orgs/ {organizationid}。需要令牌配置变量。

细绳 ((可选的,默认:家庭助理必威是什么

仅2.xx-您的组织中要读取的存储桶的名称(不是生成的存储桶ID)。这设置了传感器的默认存储桶,单个传感器也可以从其他桶中读取。

查询 列表 必需的

仅1.xx-在家庭助理中暴露的传感器列表。必威是什么每个传感器的状态是通过配置influxQl查询来设置的。

姓名 细绳 必需的

传感器的名称。

唯一身份 细绳 ((可选的

此查询的唯一ID。这允许从Web界面更改名称,图标和ENTITY_ID。

测量单位 细绳 ((可选的

定义传感器测量单元(如果有)。

测量 细绳 必需的

定义InfluxDB中的测量名称(来自查询的子句)。

在哪里 模板 必需的

定义数据选择子句(查询的WHERE子句)。这支持模板

value_template 模板 ((可选的

定义a模板从有效载荷中提取值。

数据库 细绳 ((可选的,默认:home_assistant

使用数据库的名称。

group_function 细绳 ((可选的,默认:均值

要使用的组函数。

场地 细绳 必需的, 默认值

要选择的字段名称。

queries_flux 列表 必需的

仅2.xx-在家庭助理中暴露的传感器列表。必威是什么每个传感器的状态都是通过配置磁通查询来设置的。

姓名 细绳 必需的

传感器的名称。

唯一身份 细绳 ((可选的

此查询的唯一ID。这允许从Web界面更改名称,图标和ENTITY_ID。

测量单位 细绳 ((可选的

定义传感器测量单元(如果有)。

range_start 细绳 ((可选的,默认:-15m

持续时间或时间值的开始范围。所有通量查询都需要一个范围过滤器,以自动将其添加到磁通查询的开头range(开始:{range_start},停止:{range_stop})

range_stop 细绳 ((可选的,默认值:now()

持续时间或时间值以停止范围。看range_start以上是在查询中如何使用的。

询问 模板 必需的

一个或多个通量过滤器用于获取所需的数据。这些应将结果集限制在一个表中,或者第一个以外的任何表都将被忽略。您的查询不应用管道开始或结束(|>)。这支持模板

group_function 细绳 ((可选的

要使用的组函数。如果提供,这将为此类查询的末端添加过滤器{group_function}(列:“ _value”)。请注意,与1.xx查询不同,此才不是默认为表示。如果您想使用自己的聚合器,则可以省略,该聚合器采用其他/不同的参数或想在其他列上行动。如果省略了,那么极限(n:1)将添加到末尾,而不是限制每个表。

value_template 模板 ((可选的

定义a模板从有效载荷中提取值。注意价值将设置为_价值查询输出中的字段。

细绳 ((可选的,默认:家庭助理必威是什么

您的组织中要阅读的存储桶的名称。

进口 字符串|列表 ((可选的

要导入的库以执行查询。前任。字符串,,,,日期,,,,实验/查询, ETC。

例子

1.xx安装的完整配置

下面的示例配置条目创建两个请求到您的本地InfluxDB实例,一个是数据库DB1,另一个DB2

  • 从“°C”中选择最后(值)作为值,其中“名称” =“ foo”
  • 从“%”中选择“最小(tmp)”为“ entity_id” ='Salon'''and Time> now()-1H
传感器平台infuxdb主持人Localhost用户名家庭辅助密码密码查询-姓名Foo的最后值测量单位°Cvalue_template'{{{价值|第1轮)}}'group_function最后的在哪里'“姓名”=''foo'''测量'“°C”'场地价值数据库DB1-姓名最后一个小时测量单位%”value_template'{{{价值|第1轮)}}'group_function最小在哪里'“ entity_id”=''沙龙''时间>现在()-1H'测量'“%”''场地TMP数据库DB2

2.xx安装的完整配置

传感器-平台infuxdbapi_version2令牌生成_auth_token组织Random_16_digit_hex_idbucket_namequeries_flux-range_start-1D”姓名如何到过这里”询问>filter(fn:(r)=> r._domain ==“ person”和r._entity_id ==“ me”和r._value!=“ {{state('person.me')}}”)|> map(fn:(r)=>({_value:r._time}))value_template{{{相对_time(strptime(值,'%y-%m-%d%h:%m:%s%z')))}}””-range_start-1D”姓名成本我的今天穿过全部力量传感器”询问>过滤器(fn:(r)=> r.domain ==“传感器”和r._field ==“ value”和regexp.matchregexpstring(r: /_ _power $ /,v:r.entity_id))|>保持(列:[“ _value”,“ _time”])|>排序(列:[“ _time”],desc:false)|>积分(单位:5s,列:“ _Value”)进口REGEXPvalue_template{{{值|浮动/24.0/1000.0*状态('sensor.current_cost_per_kwh')| float}}””-range_start-1D”一眼姓名平均中央处理器温度今天”询问过滤器(FN:(R)=>R.__field==\”价值\”r.entity_id==\”glances_cpu_temperature\”group_function意思是

请注意,在使用磁通查询时,结果集将其分成表格,您可以在UI的数据资源管理器中看到它的工作方式。如果您正在操作由InfluxDB历史记录组件创建的数据,则默认情况下,您将为每个实体和每个实体的每个属性都有一个表测量单位以及您晋升为标签的任何其他人)。

与1.xx查询相比,这是更多的桌子,您本质上有一张桌子测量单位在所有实体中。不过,您仍然可以在多个传感器上创建聚合指标。正如您在上面的示例中看到的那样,做到这一点的好方法是保持或者降低过滤器。当您删除键列涌入合并表时,您可以制作许多共享模式的表格_价值成一个。

在涌入中查询您的数据

传感器

对于具有测量单元定义单位的传感器,将测量单元用作测量名称和条目用第二部分标记ENTITY_ID。因此,您需要在查询中添加一个子句以滤除值。

例如查询电池Sensor.multi_sensor_battery_level

选择*“%”在哪里时间>现在()-12H“ entity_id”='multi_sensor_battery_level';

或代表的温度°C

选择*“°C”在哪里时间>现在()-1H;

其他一切

可以使用其他所有内容ENTITY_ID作为测量名称。

选择*“ binary_sensor.front_doorbell”在哪里时间>现在()-24H;
选择“温度”“气候”。在哪里时间>现在()-24H;