:TADA:用于HA的调度器集成:TADA:

介绍

在我的房子里,我有相当多的设备,我想控制基于时间和一天。有一段时间,我一直在寻找一种简单的方法来设置和管理控制它们的自动化。HA有很多功能,但是有些东西(比如自动化)使用起来并不像我想的那么简单。因此,我决定创建自己的调度程序集成。用一张方便移动的Lovelace卡片来管理它。

什么是调度器集成?

调度器集成是HA自动化的一个替代方案,它使用时间太阳触发。集成可用于定义规则(计划),如:

  • 日落时打开花园的灯,日出时关掉
  • 每天早上8点把恒温器调到20度
  • 触发一个脚本来备份我的HA配置,每周日21:00

这些规则表示为开关实体公顷。所以你可以随心所欲地打开或关闭它们。时间跟踪和动作的执行都发生在后台。
这些都是由scheduler-component.我想你可以说scheduler-component是行动背后的“大脑”。

然后有调度牌卡.此卡是一个用于控制组件的用户友好界面。只需点击几下,你就可以设置一个新的时间表。HA配置中的实体及其支持的操作将被自动检测到。

看看它是如何运作的

特性

持久存储使用该卡创建计划后,将添加到HA并开始观看时间。不需要重新加载或重新启动。编辑或删除时间表也相同。当你重新启动HA后,他们将仍然存在。

兼容性几乎可以安排所有实体类型,以及所有可能的动作(服务)。卡片自动检查您在HA中有哪些实体,并将出现在他们的行动中。

定制可以使用yaml模式或使用UI编辑器设置该卡。您可以选择要显示的设备(类型)和自定义显示选项。您还可以使用自定义操作设置自己的实体配置,并定义自己的实体组(仅限YAML)。如果您愿意,您可以在任何Lovelace视图中放置调度程序卡。

太阳集成调度器组件支持太阳集成.您可以选择在日出或日落时触发时间表并添加偏移量。随时将使用Sun实体的更新自动调整时间

翻译该卡有10多种语言版本。从您的HA帐户自动检测语言设置。如果你的不在这里,你可以在你的帮助下添加它。

时间方案时间计划允许你把一天分成不同的时间段。你可以控制你的设备在一天中的哪个时刻应该做什么。

工作日整合调度器组件支持工作日集成.您可以使用它来定义您的工作周刊以及您的假期的日子。选择工作日周末在调度程序中,调整时间表。

行动重试如果您的实体下降(不可用)当计划到期时,调度程序将等待它可用,然后执行操作。这是非常实用的,重新开始。

即将到来的新特性

多个实体/行动支持同时开启多个设备。或者打开收音机,设置为FM,并改变音量。快到了。

条件只想在不在家的时候启动你的吸尘器机器人吗?您将能够添加条件检查,以便在应用操作之前检查HA实体的状态。

实时视图该卡的概述将显示在每个计划触发下一个操作之前剩余的时间,直到每个计划都会触发。

检查调度程序卡问题列表对于更多想法。

我怎样才能得到它?

您可以直接从Github下载文件并将其添加到HA Config中,但也支持HAC。按照GitHub页面上的说明进行操作。

Lovelace的调度卡:

调度程序组件:

支持、问题和特性请求

如果在HA中设置集成遇到麻烦,或者不知道如何使用调度器,请在本线程中提问。许多用户和你走的是同一条路,所以它通常是一个快速修复。

对于问题(bug)和功能请求,请使用GitHub。
确保你为你的问题或请求选择了正确的repo(调度组件vs调度卡)。同时检查是否已经有一个开放的问题。

说声谢谢

如果你真的对调度员感到满意,请考虑为我买咖啡!
这样你就激励我继续支持我的工作。谢谢你!

56喜欢

好了!有做HA插件的计划吗?

看起来帅呆了!不错的工作。HA绝对需要这样的东西!
只是想知道为什么它需要mqtt和node.js?为什么你没有使用HA事件总线来附加触发器?

谢谢!
UUHM,我不熟悉HA附加组件。
这是在运行时安装外部组件的方式吗hass.io
快速看页面告诉我一个HA附加组件和一个Docker容器差不多,所以它看起来绝对是可行的。
就个人而言,我在Raspbian跑到了船坞,所以对我来说,没有必要使用附加组件,但我可以为它提供支持,肯定。
它需要测试兔子:尽管……

谢谢!
是的,我认为HA有广泛的可能性,但几乎所有事情都需要YAML技能。基于GUI的配置有一些改进,但仍然不像我想的那样容易使用。

自大约一年前,我停止使用自动化时间:扳机,因为他们并不总是开火。
所以我决定在HA之外进行计时。
但我不知道它们是否会随着时间的推移变得更可靠。

我不是一个Python向导,所以我所做的自定义组件现在非常简单,它只通过MQTT向Lovelace卡转发到Node.js应用程序。
但我看到有一个直接的方法要在自定义组件中设置定时器,因此似乎很可能。

我可以想象人们不喜欢设置Scheduler-app,所以我肯定会调查我是否可以使用自定义组件合并其所有功能。
根据您的反馈和他人的反馈,我可以确定这是否应该是优先权。

3喜欢

Hass.io附件基本上是一个容器。一个非常简单的例子是另一个调度器

1像

我会投票支持它作为一个custom_component,然后核心用户也可以使用它。

5喜欢

老实说,几乎每次发布HA都要求YAML技能越来越少。作为系统核心部分的自动化不需要YAML。除非你想要更复杂的东西和模板使用是必需的。用户界面布局也可以通过点击快速构建。
但是对于更高级的配置,是的,YAML仍然很重要。

奇怪。我使用了一些带有时间触发器的自动程序,它们从未让我失望过。他们总是火。如果某些东西不会触发,则意味着整合(组件)问题,或者自动化条件未满足。在我看来,HA非常可靠。我开发了一个自定义组件(集成)并学习其架构,真的很好。它只是有效......喜欢魔法眨眼:

是的,你可以使用它或者注册你的组件来监听合适的时间-日期事件。我知道随着时间的变化,每分每秒都有一颗子弹被发射。我可以帮你搜索。一旦事件触发,您的代码将拦截该事件并对其采取行动。我会这样做。我也不是一个python向导,在HA编程方面也不是很深入,但我可以说,我学到了一些用于组件开发中各种问题的常见解决方案。

从人们避免yaml的同样原因,安装和设置也应该尽可能简单。对我来说,解决方案取决于 - 更糟的组件。在我的自定义集成的工作开始时,我开发了通过MQTT向HA发送消息的简单Python脚本。它运作良好,但管理这有时有点痛苦。一旦我将我的开发转换为直接在HA - 我的工作中建立自定义组件的新方法 - 我的工作就获得了用户的牵引力,人们刚刚开始使用它,因为它很容易,就像HA中的其他集成一样简单。源自英国始于1946人们知道如何设置集成,如何管理它等。所以yeah - 我认为仅仅将组件构建为一个ha扩展,滴下节点.js和mqtt应该是你的优先级。人们真的很感激。你的gui非常好。我认为它可能是HA核心的一部分,并给我摆脱额外的组件只会有所帮助。
我建议你和Discord的HA核心开发者谈谈。他们很友好,他们帮助很多。我还建议您浏览HA组件,如Hue、z-wave、自动化。这有助于理解应该如何做事情。

我为你的努力祈祷!这个组件可以真正成为HA的轰动之作!

这看起来有前途。我喜欢你的UI风格。只是想知道它是如何在大量实体中扩展的。也许你必须重做引擎以使其更易于用户使用(安装),但我相信这是值得的。

同样。我有很多时间触发器,而且它们从不漏拍。

完整的自定义集成。做得好neliss。

1像

非常感谢到目前为止所有的反馈!
我使用Custom_Component进行了一些进度,在Node.js应用程序中完成的计时,现在是Custom_Component的一部分。
Node.js应用程序还负责实体的存储(持久化),这也被移动到custom_component。

这意味着不再需要Node.js应用程序。
目前,custom_component仍然依赖MQTT上保留的消息来“发现”重启HA后的实体,但我正在寻找一种适当的方式(例如生成YAML或数据库存储)。

待续!

6喜欢

我在配置它时遇到了麻烦,介意共享您的卡的完整配置转储吗?

1像

哇!很棒的进步!期待掉落MQTT!保持伟大的工作!一旦你这样做 - 我会投票赞成这是一个官方的HA集成。这项功能缺少这么长时间,所以他们需要默认一次使其成为HA的一部分:least_smile:

确定的东西!
在这里发布了很长时间,所以我把它加到回购中

一个基本的初始配置是:

类型:自定义:scheduler-card组:#组织定义的选项时,您可以选择新建一个实体all_lamps: #给一组标签下的所有灯的所有光实体域:【光】my_filter: #给一组标记为“我的过滤器”只有1下实体实体组成:[粉丝。my_filter] #注意,每个实体或域用于一组,需要至少1号行动为它定义(否则它将成为一个存根-可能导致崩溃)域:#添加在这里设置你想要适用于每个实体的类型:#所有的灯将会有一个“开启”和“关闭”行动行动:-服务:turn_on -服务:Turn_off实体:#在这里添加特定的实体和它们的动作扇。My_filter: actions:—service: turn_on service_data: {speed: high}—service: turn_off

您可以通过添加来筛选卡的可视化名称:“我的名字”图标:my-mdi-icon属性(您可以每组,每个实体,每个域和每个操作执行此操作)。

目前的代码不是很宽容:如果你打错了,整张卡都不会显示出来。
组/域的实体配置目前是强制性的,这意味着您必须放置至少一项(因此上面的示例也接近于最小配置)。

我知道它是一个有点麻烦和混乱配置卡。保持它的用户友好性是关键目标之一,因此您可以期待这里的改进。

谢谢: slightly_smiling_face:
我也想尽快删除MQTT,但这是我现在可以实现的最好的。我要求在不和谐聊天的帮助(谢谢提示!),因为我需要了解如何创建实体持久性(不必在yaml中定义它们)。目前还没有有用的输入,但我们会看到。

你发上去了吗devs_core.频道吗?https://discord.com/channels/330944238910963714/330990195199442944

基本上,如果您创建实体,HA会自动处理它们的存储。我觉得你要找的是状态属性
我在你的代码中看到你已经处理了它。无论何时你想要在那里存储东西,只要调用self.async_schedule_update_ha_state(true)你应该没事的。

然而,如果你想存储一些东西(例如配置数据),因为你想在HA重启之间保持,那么我不确定什么是最好的方法,但我知道一个常见的解决方案是输出这样的东西到一个文件。谷歌Calendar和Z_Wave集成可以做到这一点。源自英国始于1946在这里看到的:https://github.com/home-assistant/core/blob/d058802325598ab44e319f65525045295781e366/homeassistant/components/google/初始化py # L392

图标对我来说是偏移的:


如果你看不到它,这是论坛的问题,右键单击图像,打开新标签,高级,继续。

哇,看起来很糟糕!
似乎卡的完整CSS配置被忽略了。
我必须说我已经看到了一些类似的东西,但刷新后已经消失了。
这是一个陈词滥调,但你试过(强制)刷新浏览器吗?
我用默认的HA主题尝试了这张卡,你可能会使用替代主题吗?

我强迫刷新,现在正在工作!

谢谢你的工作!它看起来很棒的:least_smile:我在HA中寻找这种功能已经有一段时间了。
我还没有尝试过……我正在等待它进入一个更稳定的阶段,而我的编码技能有限。
自上次评论以来的任何更新?我应该尝试一下吗?
再次感谢:笑脸: