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的命令行界面。有关如何创建数据库的说明流入文档与您安装的版本有关。
配置变量
数据库主机的IP地址或域,例如192.168.1.10。2.xx-默认为“ us-west-2-1.aws.cloud2.influxdata.com”,而不是“ localhost”。
仅2.xx-要写的组织ID。为了获得此功能,打开2.xx安装的UI,顶部的URL将在此之后具有/orgs
。例如,在InfluxDB云中,看起来像这样:https://us-west-2-1.aws.cloud2.influxdata.com/orgs/ {organizationid}。需要令牌
配置变量。
状态对象属性用作测量名称。可能的值:测量单位
,,,,domain__device_class
或者ENTITY_ID
。
配置应将哪些集成从记录到InfluxDB排除。((配置过滤器)
配置应将集成在录音中包括在流入到涌入。如果设定,所有其他实体将不会记录到infuxdb。((配置过滤器)
属性名称的列表应报告为标签,而不是influxdb的字段。例如,如果设置为友好名称
,除了其ID之外,还可以按实体的友好名称进行分组。
此属性包含特定于组件的覆盖值。看定制设备和服务用于格式。
该属性包含特定于域的集成覆盖值。看定制设备和服务用于格式。
此属性包含特定于组件的覆盖值。看定制设备和服务用于格式。
配置过滤器
默认情况下,不会排除任何实体。限制哪些实体被暴露于infuxdb
,您可以使用包括
和排除
参数。
#示例过滤器要包括指定域并排除指定的实体infuxdb:包括:域:-alarm_control_panel-光entity_globs:-binary_sensor。*_占用排除:实体:-light.kitchen_light
过滤器的应用如下:
- 否包括或排除 - 通过所有实体
- 包括,不排除 - 仅包括指定实体
- 排除,否包括 - 仅排除指定实体
- 两者都包括和排除:
- 包括指定的域和/或球形图案
- 如果包括域,并且不排除或匹配实体,则通过
- 如果实体匹配包括球形模式,并且实体与任何排除条件(域,全球模式或列出)不匹配,则通过
- 如果不包括域,则全球模式不匹配,并且不包括实体,则失败
- 排除指定的域和/或全球模式,包括不列出域或球模式
- 如果排除域并且不包括实体,则失败
- 如果实体匹配不包括球模式和未包括的实体,则失败
- 如果实体与任何排除条件不匹配(域,全球模式或列出),请通过
- 不包括或排除指定域或球模式
- 如果包括实体,请通过(如上#2)
- 如果实体包括和排除实体,则将忽略实体排除
- 包括指定的域和/或球形图案
例子
1.xx安装的完整配置
infuxdb:主持人:192.168.1.190港口:20000数据库:db_to_store_events用户名:my_username密码:我的密码SSL:真的verify_ssl:真的max_retries:3default_measurement:状态排除:实体:-实体.id1-实体.id2域:-自动化包括:实体:-实体.id3-实体.id4标签:实例:产品资源:哈斯
2.xx安装的完整配置
infuxdb:api_version:2SSL:错误的主持人:Localhost港口:9999令牌:生成_auth_token组织:Random_16_digit_hex_id桶:bucket_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_version:2组织:Random_16_digit_hex_id令牌:生成_auth_tokenqueries_flux:-group_function:意思是进口:-字符串姓名:“意思是湿度报告从过去的天”询问:>过滤器(fn:(r)=> r._field ==“ value”和r.domain ==“传感器”和字符串。|>保持(列:[“ _value”])range_start:“-1D”
配置变量
数据库主机的IP地址或域,例如192.168.1.10。2.xx-默认为“ us-west-2-1.aws.cloud2.influxdata.com”,而不是“ localhost”。
仅2.xx-要阅读的组织ID。为了获得此功能,打开2.xx安装的UI,顶部的URL将在此之后具有/orgs
。例如,在InfluxDB云中,看起来像这样:https://us-west-2-1.aws.cloud2.influxdata.com/orgs/ {organizationid}。需要令牌
配置变量。
仅1.xx-在家庭助理中暴露的传感器列表。必威是什么每个传感器的状态是通过配置influxQl查询来设置的。
仅2.xx-在家庭助理中暴露的传感器列表。必威是什么每个传感器的状态都是通过配置磁通查询来设置的。
持续时间或时间值的开始范围。所有通量查询都需要一个范围
过滤器,以自动将其添加到磁通查询的开头range(开始:{range_start},停止:{range_stop})
。
要使用的组函数。如果提供,这将为此类查询的末端添加过滤器{group_function}(列:“ _value”)
。请注意,与1.xx查询不同,此才不是默认为表示。如果您想使用自己的聚合器,则可以省略,该聚合器采用其他/不同的参数或想在其他列上行动。如果省略了,那么极限(n:1)
将添加到末尾,而不是限制每个表。
例子
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_version:2令牌:生成_auth_token组织:Random_16_digit_hex_id桶:bucket_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;