- 博客(73)
- 收藏
- 关注
原创 二十七 Home Assistant 实体-气候(温度控制)
本文档介绍了 Home Assistant 中的气候实体(Climate Entity)相关内容。气候实体用于控制如空调、加湿器等设备的温度、湿度和风扇等功能。它具有一系列属性,包括当前湿度、温度、风扇模式、HVAC 动作和模式、预设模式、摆风模式、目标湿度和温度等,这些属性都有其特定的数据类型和默认值或要求,且属性获取数据应通过特定的update()或方法,而不是直接进行 I/O 操作。在模式方面,HVAC 模式有多种内置类型如关闭、制热、制冷等,且只能使用这些内置模式,如需其他功能可通过预设实现;
2025-01-07 16:58:45
1141
原创 二十六 Home Assistant 实体-事件
本文档介绍了Home Assistant中的事件实体(Event Entity)相关内容,包括其概念(用于捕获物理世界中的事件信号)、无状态特性(由Home Assistant管理状态,集成负责触发事件)、属性(如事件类型列表)、触发事件的方法(通过方法,且只能触发定义在中的事件类型)以及可用的设备类(如按钮、门铃、运动传感器等类型),为开发人员在Home Assistant中处理事件相关的集成提供了指导和规范。
2024-12-16 16:44:56
542
原创 二十五 Home Assistant 实体-风扇
此文档介绍了Home Assistant中的风扇实体(Fan Entity)相关内容,包括其属性(如风扇方向、开关状态、摆动状态、速度百分比、预设模式等)、预设模式的规则、支持的功能(如改变方向、摆动、预设模式、设置速度等)以及相关方法(如设置方向、预设模式、速度百分比、打开/关闭/切换风扇、摆动风扇等),还提到了速度转换的方法,为开发人员在Home Assistant中集成风扇设备提供了详细的指导和规范。
2024-12-16 15:02:15
524
原创 二十四 Home Assistant 实体- 开关
如果要表示可以打开或关闭但无法控制的东西,例如一个能传输其状态但无法从Home Assistant打开或关闭的墙壁开关,二进制传感器是更好的选择。如果要表示没有状态的东西,例如门铃按钮,自定义事件或设备触发器是更好的选择。开关实体用于打开或关闭某些东西,例如继电器。提示:属性应始终仅从内存返回信息,不应进行I/O操作(如网络请求)。以下属性已弃用,新集成不应使用它们。应改为将它们作为传感器提供。它可能会映射到谷歌设备类型。如果未实现,将默认根据。属性检查调用哪个方法。
2024-12-12 08:54:06
641
原创 二十三 Home Assistant 实体-按钮
按钮实体是一种可以向设备或服务触发事件/操作,但从Home Assistant的角度来看是无状态的实体。它可以类比为一个真实的瞬时开关、按钮或其他形式的无状态开关。按钮实体的唯一目的是在Home Assistant内部提供一个虚拟按钮。如果你想表示可以打开和关闭的东西(因此具有实际状态),则应该使用开关实体。如果你想在Home Assistant中集成一个真实的、物理的、无状态的按钮设备,可以通过触发自定义事件来实现。当用户按下按钮或调用按下按钮的服务时,Home Assistant会调用此方法。
2024-12-12 08:51:35
825
原创 二十二 Home Assistant 实体-传感器
传感器实体传感器是一种只读实体,用于提供一些信息。信息具有一个值,并且可选地具有一个度量单位。从 homeassistant.components.sensor.SensorEntity 派生实体平台。属性提示:属性应始终仅从内存返回信息,不应进行I/O操作(如网络请求)。实现 update() 或 async_update() 来获取数据。名称类型默认值描述device_class字符串None传感器类型。last_resetdatetime.datetime
2024-12-12 08:47:54
1991
1
原创 二十一 Home Assistant 实体-盖子(车库门,窗帘)
此页面主要介绍了Home Assistant中的封面实体(Cover Entity)相关内容,包括属性(如当前位置、倾斜位置、开关状态等)、设备类别(如遮阳篷、百叶窗、窗帘等不同类型的设备)、状态(打开、关闭、正在打开、正在关闭)、支持的功能(如打开、关闭、设置位置、停止动作等)以及对应的方法(实现各种操作的函数定义),用于开发者在创建和控制与开口或盖子相关的设备时进行参考和使用。
2024-12-12 08:42:00
833
原创 十九 Home Assistant 实体-报警控制面板
发送自定义旁路布防命令。# 实现以下其中一个方法。"""发送自定义旁路布防命令。""""""发送自定义旁路布防命令。"""该文档详细介绍了Home Assistant中的报警控制面板实体。首先说明了其功能是控制报警系统,实体需从特定类派生。接着阐述了属性方面的要求,包括状态、密码相关属性等,同时列出了各种可能的状态值、支持的功能枚举值和代码格式枚举值。
2024-12-12 08:38:38
343
原创 十八 Home Assistant 实体
文档主要围绕Home Assistant中的实体展开详细阐述。首先介绍了实体的基本实现,包括以开关实体为例说明其构建方式及属性设置,接着阐述了更新实体的两种策略(轮询和订阅更新)及其原理和操作要点,然后依次说明了实体的通用属性(如等)、注册表属性(如unique_id等)、高级属性(如等)和系统属性(如enabled)的定义、作用、默认值及使用注意事项,还涉及实体命名的规范和多种情况(如为True。
2024-12-11 11:25:05
1155
原创 十七 Home Assistant 大语言模型API
本文档主要介绍了Home Assistant与大语言模型交互的相关内容,包括内置辅助API及其功能,支持大语言模型API时在集成中的选项流程(涉及API选择的存储与展示给用户)和获取工具传递给大语言模型的操作,以及创建自己API的方法(需创建继承自API的类并实现方法),同时详细阐述了工具(Tool类的属性和方法)和API(API类及类的属性)相关的概念与要求,为开发者在Home Assistant中集成大语言模型功能提供了全面的指导和规范。
2024-12-11 11:24:53
1110
原创 十六 Home Assistant 蓝牙 Api
此文档主要介绍了Home Assistant中蓝牙API的相关功能及使用方法。涵盖了订阅蓝牙发现、获取共享扫描器实例、确定扫描器运行状态、订阅不可用回调、查明可用性超时、获取设备相关信息(如BLEDevice、最新服务信息、设备存在状态、所有已发现设备等)、触发设备重新发现、等待特定广告以及注册外部扫描器等操作的API使用方式,为开发者在Home Assistant中进行蓝牙设备相关的集成开发提供了详细的接口说明和操作指导,有助于开发者更高效地利用蓝牙功能与设备进行交互。
2024-12-11 11:24:44
1027
原创 十五 Home Assistant 蓝牙
该文档主要介绍了在Home Assistant中获取蓝牙数据的不同方法及相关协调器的使用。首先根据设备通知更新方式和主要功能选择合适的协调器,如或。然后详细说明了(包括Passive和Active两种类型)和(包括Passive和Active两种类型)的功能、使用示例及相关数据格式要求。这些协调器有助于减少创建蓝牙相关集成所需的代码量,并能有效地处理蓝牙设备的数据更新和连接管理等操作,使开发者能更方便地在Home Assistant中集成蓝牙设备并获取其数据。
2024-12-11 11:24:34
1275
原创 十四 Home Assistant 网络&发现
主要用例是查找没有已知固定IP地址的设备,或者用于可以动态添加和删除任意数量兼容可发现设备的集成。可以使用以下内置助手API获取发现的SSDP设备列表。SSDP集成提供了一个注册API,以便在发现与特定键值匹配的新设备时接收回调。将返回与SSDP ST匹配的所有发现设备的列表。以下示例返回网络上发现的每个Sonos播放器的发现信息列表。对于使用非内置发现方法且需要访问用户网络适配器配置的集成,应使用以下助手API。将返回与UPNP UDN匹配的所有发现设备的列表。在使用这些助手之前,请确保在集成的。
2024-12-11 11:24:23
866
原创 十三 Home Assistant 事件的监听
你的集成可能需要在Home Assistant内部发生特定事件时采取行动。Home Assistant提供了事件助手来监听特定事件类型,并提供对事件总线的直接访问。如果已经有针对你需要监听的特定事件的助手,那么使用助手比直接监听事件总线更可取。除非集成是核心的一部分,否则这些事件很少直接被监听。通常有一个助手可以处理这些事件,在这种情况下,不应直接监听它们。有两个函数可用于创建监听器。两个函数都返回一个可调用对象,用于取消监听器。这些函数返回一个可调用对象,用于取消监听器。以下事件通常直接被监听。
2024-12-11 11:24:03
539
原创 十二 Home Assistant 事件的处理
一些集成代表具有事件的设备或服务,例如检测到运动或按下瞬时按钮时。集成可以通过在Home Assistant中将这些事件作为事件触发,使其对用户可用。可以根据有效负载附加到特定事件上,并将使事件对用户可访问。通过设备触发器,用户将能够查看设备的所有可用事件,并在其自动化中使用它。例如,你不希望有一个二进制传感器在事件发生时开启30秒。内部启用将集成事件转换为Home Assistant事件的逻辑。如果事件与特定设备/服务相关,则应正确归因。与事件相关的代码不应成为集成实体逻辑的一部分。
2024-12-11 11:23:53
407
原创 十一 Home Assistant 失败的处理
你的集成必须重试安装,以便在设备或服务重新上线时尽快恢复,而无需用户重新启动Home Assistant。Home Assistant将以警告日志级别记录一次重试,后续重试将以调试级别记录。Home Assistant将以警告日志级别记录一次重试,后续重试将以调试级别记录。如果你的集成支持发现功能,一旦你的设备或服务被发现,Home Assistant将自动重试。异常,Home Assistant将自动将配置项置于失败状态并启动重新认证流程。异常,Home Assistant将自动在稍后重试安装。
2024-12-11 11:23:43
742
原创 十 Home Assistant获取数据
此页面主要介绍了在Home Assistant集成中获取数据的相关内容,包括推送与轮询两种方式获取数据的特点及使用场景,详细阐述了轮询API端点中为所有实体协调进行单一API轮询和为每个单独实体单独轮询的方法及示例代码,提及推送API端点如何使用数据更新协调器处理新数据,最后介绍了Home Assistant控制集成请求并行性的逻辑及相关参数设置。
2024-12-11 08:27:56
1250
原创 九 Home Assistant 集成平台& 多个平台继承
该页面主要介绍了Home Assistant中的集成平台相关内容,包括如何创建平台(需根据集成类型创建对应文件名的文件),提供了示例集成供参考,强调了集成不应直接与设备接口而应与第三方Python 3库交互,以及在准备好Python库并发布到PyPI后要实现相关Entity基类,还提及可在实体索引中查看集成的方法和属性等信息。多个平台集成时的相关操作,当有多个平台时需在__init__.py中集中连接逻辑;若集成通过configuration.yaml配置,配置入口点会改变且由集成负责设置平台;
2024-12-11 08:27:47
429
原创 八 Home Assistant 集成服务操作
此页面主要介绍了Home Assistant中的集成服务操作相关内容,包括如何注册一个简单的服务操作(如“hello world”示例),通过创建特定文件和在配置文件中添加条目来加载集成,使用描述服务操作(包括操作的各种属性、字段、分组、过滤以及图标等),实体服务操作的注册方式,以及操作的响应数据相关要求(包括如何返回响应数据、响应数据的适用场景以及如何在注册操作时表明对响应数据的支持方式等)。这些内容有助于开发者在Home Assistant中创建和定制自己的服务操作,以满足不同的自动化和控制需求。
2024-12-11 08:27:33
1178
原创 七 Home Assistant 通过 YAML 进行集成配置
本文主要讲述了Home Assistant中通过YAML进行集成配置的相关内容,包括configuration.yaml文件的作用、设备和服务相关集成配置的方式(通常通过配置流程,特殊情况除外)、Home Assistant对配置的预处理操作(涉及CONFIG_SCHEMA和PLATFORM_SCHEMA的验证及平台配置的收集),并通过示例展示了YAML配置文件如何被处理后传递给组件,为开发者理解和处理Home Assistant中的YAML配置提供了指导。
2024-12-11 08:27:22
1034
原创 六 Home Assistant 集成诊断
本文主要介绍了Home Assistant中集成诊断的相关内容,包括诊断信息的提供方式(针对配置项和设备项)、注意事项(确保不暴露敏感数据)以及如何使用async_redact_data函数来处理诊断输出中的敏感数据,并给出了配置项和设备项诊断的实现示例,为开发者在Home Assistant集成中实现诊断功能提供了指导,有助于提升用户排查问题的能力。
2024-12-11 08:27:13
238
原创 五 Home Assistant 选项流程
本文主要介绍了Home Assistant中配置项选项流程相关内容,包括集成如何支持选项(通过在配置流程处理程序中定义async_get_options_flow方法)、选项流程处理程序的工作方式(与配置流程处理程序类似但第一步固定为async_step_init)以及如何注册更新监听器来处理选项更新,为开发者在Home Assistant集成中实现选项流程功能提供了必要的指导。
2024-12-11 08:27:04
411
原创 四 Home Assistant 配置流程(Config Flow)
配置项使用数据流入口框架来定义它们的配置流程。配置流程需要在集成文件夹中的config_flow.py文件中定义,扩展homeassistant.config_entries.ConfigFlow并在继承ConfigFlow时传递一个域键(domain key)。# 它创建的条目的模式版本# 如果版本更改,Home Assistant将调用你的迁移方法。
2024-12-11 08:26:53
1080
原创 三 Home Assistant 集成清单(manifest.json)
在组件开发期间,针对要求的不同版本进行测试可能很有用。这将使用指定版本,并防止Home Assistant尝试用requirements中指定的版本覆盖它。要防止任何包被自动覆盖而不指定依赖项,可以使用全局–skip-pip标志启动Home Assistant。也可以使用公共git仓库安装要求。例如,在要求依赖项发布到PyPI之前测试对其的更改时,这可能很有用。<git ref>可以是任何git引用:分支、标签、提交哈希等。有关git支持的详细信息,请参阅PIP文档。自定义集成应仅包括Core。
2024-12-10 15:57:18
773
原创 二 Home Assistant 集成文件结构 & 集成测试文件结构
该文档主要讲述了Home Assistant中集成的文件结构相关内容,包括集成的存储目录结构、各文件的作用(如light.py等)、数据更新协调器相关、Home Assistant查找集成的位置以及覆盖内置集成的注意事项等。
2024-12-10 15:56:58
1725
原创 一 Home Assistant 创建你的第一个集成
好了,现在是时候为你的集成编写第一段代码了。别担心,我们已经尽力让它尽可能简单。这将为你设置好构建一个能够通过用户界面进行设置的集成所需的一切。更全面的集成示例可以从我们的。脚手架集成包含的内容比最低要求多一些。最低要求是你定义一个包含集成域的。此外,还需要一个清单文件,至少包含以下键。方法,如果设置成功则返回一个布尔值。使用上述两个代码块之一创建一个文件。第二部分是它需要定义一个。
2024-12-10 15:56:43
345
1
原创 三十一 Home Assistanta 添加状态卡片
本文介绍了Home Assistant主界面中状态卡片的呈现形式,包括实体相关信息的展示方式,以及传感器徽章的显示位置。重点阐述了添加自定义卡片类型的步骤,通过以camera域为例,详细说明了在不同文件中进行相应操作的方法,为开发者扩展或定制Home Assistant前端的状态卡片功能提供了清晰的指导,有助于实现更个性化和多样化的用户界面展示效果,满足不同用户的需求和场景应用。
2024-12-09 11:13:31
397
原创 四十一 Home Assistant 开发hass.io插件-创建插件仓库
用户可以通过进入Home Assistant中的Hass.io面板,点击右上角的商店图标,将你的仓库的URL复制/粘贴到仓库文本区域中,然后点击“保存”来添加仓库。插件仓库可以包含一个或多个插件。每个插件都存储在其自己的唯一文件夹中。为了将其识别为一个仓库,仓库包含一个配置文件。每个仓库都需要在Git仓库的根目录包含。
2024-12-09 09:59:38
615
原创 四十 Home Assistant 开发hass.io插件-发布插件
你需要一个Docker Hub账户来创建自己的插件。下载我们的构建脚本并运行以下命令之一。
2024-12-09 09:59:18
384
原创 三十九 Home Assistant 开发hass.io插件-本地测试
所有标准输出和标准错误都被重定向到Docker日志中。可以从Home Assistant中的Hass.io面板的插件页面获取日志。你也可以在开发机器上构建并尝试插件。将所有插件文件移动到一个临时文件夹中。在Dockerfile中用以下内容替换。开发插件的最快方法是将它们添加到本地插件仓库中。要访问本地插件仓库,可以安装。目前,插件将与存储在Docker Hub上的镜像一起工作(使用插件配置中的。还需在Dockerfile中添加。如果本地插件仓库中没有。,则会在设备上构建它。
2024-12-09 09:58:50
232
原创 三十八 Home Assistant 开发hass.io插件-配置
与每个Docker容器一样,你需要一个在容器启动时运行的脚本。用户可能会运行许多插件,所以如果只是做简单的事情,建议尽量使用Bash脚本。Hass.io将根据机器架构自动替换正确的基础镜像。如果你需要在正确的时区运行,可以添加。如果在插件启动前用户必须提供该值,则将默认值设置为。或者如果你不想进行多架构构建/支持,也可以使用简单的。每个插件都存储在一个文件夹中。那么在你的bash文件的环境中将会有一个包含。,但描述了我们应该如何验证用户输入。,但我们的基础镜像中已经包含了它。仅支持非嵌套数组和字典。
2024-12-09 09:58:13
1229
原创 三十七 Home Assistant 开发hass.io插件流程&First Demo
启动后,你可以通过SSH连接到Hass.io,并将你的自定义插件存储在“/addons”中。对于Samba,一旦你启用并启动它,你的Hass.io实例将出现在本地网络选项卡中,并共享一个名为“addons”的文件夹。启用Samba插件后,你可以通过本地网络浏览到你的Hass.io服务器。一旦你通过SSH连接到你的Hass.io设备,你就可以访问“/addons”中的插件。现在到了有趣的部分,打开Hass.io用户界面并安装和运行你的插件。你现在应该看到一个名为“Local”的新卡片,列出了你的插件!
2024-12-09 09:57:19
1913
原创 三十六 Home Assistant Hass.io调试
此页面主要面向Hass.io开发者,提供了调试Hass.io的相关信息。重点包括如何通过创建文件并放置在SD卡特定位置,然后使用SSH以root用户在特定端口访问Hass.io设备,以及如何查看不同组件(如监管器服务、Hass.io监管器、Home Assistant)的日志,这些操作有助于开发者在处理Hass.io基础镜像时进行问题排查和调试工作。
2024-12-09 09:56:41
315
原创 三十四 Home Assistant 创建自定义面板
如果你想使用自己的状态卡片,且不将代码合并到中,你可以创建自己的实现。将元素源文件及其依赖项放在Home Assistant配置目录下的目录中。例如,如果要为light域创建一个名为的状态卡片,将放在中。该文件应该使用Polymer实现标签。在中,你应该使用导入Home Assistant用户界面未使用的所有依赖项。不要导入Home Assistant用户界面使用的任何依赖项。在模式下导入这些依赖项会起作用,但在生产模式下会失败。在文件的部分,放入。在frontend部分,使用指定要加载的URL。
2024-12-09 09:55:51
645
原创 三十三 Home Assistant 创建自定义面板
任何组件都有可能向前端添加一个面板。面板将全屏渲染,并可以通过JavaScript实时访问Home Assistant对象。在应用程序中,地图、日志和历史记录等都是这样的例子。</script>在你的文件中为新面板创建一个条目:示例页面。
2024-12-09 09:55:23
606
原创 三十二 Home Assistanta 更多弹窗
本文主要介绍了Home Assistant中更多信息对话框的功能及添加步骤。对话框在用户点击卡片时弹出,包含状态卡片、实体历史记录和更多信息组件,组件能提供更多信息或控制方式。以camera域为例,详细说明了添加更多信息组件的操作,包括在特定文件中修改数组和创建、引入相关HTML文件,为开发者扩展实体的详细信息展示和控制功能提供了指导,有助于提升用户与Home Assistant交互时获取信息的丰富度和操作的便利性。
2024-12-09 09:54:54
306
原创 三十 Home Assistant 前端开发
Home Assistant前端开发的相关内容。首先强调了生产环境与开发环境的差异,生产中不应使用开发模式。在设置开发环境方面,涵盖了启用开发模式的配置、Node.js与Yarn的安装、获取前端代码及相关操作(如处理git子模块、fork项目等)。开发过程中需运行Rollup以实时反映代码更改。最后说明了构建前端的流程,包括安装依赖、编译、合并压缩、复制文件、生成哈希值和gzip版本等一系列操作,为前端开发者提供了全面的指导,有助于顺利开展Home Assistant前端项目的开发与维护工作。
2024-12-07 22:25:38
948
原创 二十九 Home Assistant 异步操作
在Home Assistant中如何使用异步功能。包括与核心交互时应根据情况选择合适的方法(异步或非异步版本);实现异步组件、平台和实体的方法,如通过定义和将实体的update方法转为异步等;从线程调用异步函数可借助工具;处理传入函数时可利用hass对象的和方法,它们能根据函数类型将其正确调度到相应位置执行,帮助开发者更好地在Home Assistant中运用异步编程,提升程序性能和效率。
2024-12-07 22:25:12
923
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人