编辑- 18/04/2019:现在添加了custom_updater!

此更新中没有添加新功能,但您现在可以使用custom_updater使它与任何新的更新保持更新。
要实现这一点,需要更改文件的名称home-feed-card.jslovelace-home-feed-card.js,所以如果您要手动更新,请记住这一点。

编辑- 30/05/2019:性能改进,如果你有Firefox问题,请仔细阅读

最新版本以不同的方式做了几件事:

  • 它使用了一种不同的方式来导入Moment模块,它之前依赖于在Lovelace配置中作为资源加载。它现在使用动态导入。Firefox版本< 66默认不支持这些,您可能需要设置javascript.options.dynamicImport选项:配置让它工作。
  • 它现在使用不同的方式监视通知更改。旧的方法是使用WebSocket订阅,至少在我的系统上,有一个倾向,在日志中导致“客户端超过最大挂起消息”错误。它现在监视通知图标徽章计数。有时可能需要更长的时间才能让新的/更新的通知出现在提要上,但它不太容易出现错误。

HomeFeedCard

我想要一张能够更明显地显示持续通知的卡片,以及日历事件和其他实体。这是家庭喂养卡:

如果你正在使用custom_updater你可以这样添加它:

资源:- url: /customcards/github/ gadgetchannel /lovelace-home-feed-card.js?跟踪= true类型:js

或者,您需要添加下面的所有文件配置文件夹/ www / custom-lovelace / home-feed-card然后像这样将其添加到资源中:

- url: /local/custom-lovelace/home-feed-card/lovelace-home-feed-card.js

你可以这样使用它:

配置

type: 'custom: Home - Feed -card' title: Home Feedhome_calendar——日历。work_calendar id_filter: ^ home_feed_。*实体:-传感器。next_alarm_time - entity: sensor.bin_collection name: Next Bin Collection

例子

日历(可选)

这是一个日历实体列表,您希望在提要中显示事件。

id_filter(可选)

这是一个正则表达式,用于根据通知id过滤持久通知。在上面的例子中,“^home_feed_。* "将导致只显示id以home_feed_开头的通知。

实体(可选)

要显示在提要上的实体列表。对于device_class为“timestamp”的传感器,消息文本是实体名称,时间是传感器的状态。对于所有其他实体,消息文本的格式为"实体名称状态时间是实体最后修改的时间。

Show_empty(可选,默认为true)

如果没有物品显示,是否显示卡片

对项目进行排序

显示项目,以便事件在过去或未来的位置越远,它就会在列表的下方越远出现。希望这能让相关的内容排在最前面。

多产品的实体

如果实体包含对象列表作为属性,则可以使它们在提要中显示为多个项。例如,Reddit传感器的属性如下:

{“帖子”:[{“标题”:“文章标题”,“创建”:0000000000,“身体”:“身体!”“分数”:00,“comms_num”:00,“url”:“https://www.reddit.com/r /*****", " id ": "******" }, { " 标题”:“另一个文章标题”、“创建”:0000000000,“身体”:“另一篇文章身体!”,“分数”:00,”comms_num”:00,“url”:“https://www.reddit.com/r /*****", " id ": "******" }] }

要为此添加多个项目实体,可以使用以下格式:

type: 'custom: Home - Feed -card' title: Home Feedhome_calendar——日历。work_calendar id_filter: ^ home_feed_。* entities:—entity:传感器。redit_  multiple_items: true list_attribute: posts timestamp property: created max_items: 5 content_template: {{title}}'

multiple_items(必需)

这一定是真正的将实体标识为多项目实体

list_attribute(必需)

实体上的属性,它包含应该包含在提要中的项目列表

timestamp_property(必需)

对象上具有已发布时间的属性。该属性可以是ISO格式的字符串,也可以是Unix时间戳

Max_items(可选,默认为5)

要为此实体显示的最大项数

content_template(必需)

这将控制为每个项目显示的消息文本。对象上的任何属性都可以使用{{格式包含为文本的一部分。propertyname}}

模板生成文本的基本例子:

' {{title}} ' -> ' Post title '

高级示例,模板生成Markdown:

' [{{title}}]({{url}}) ' -> " [Post title](https://www.reddit.com/r/”……)
这将被表示为文章标题

注意:为了避免检索日历事件和通知的过多请求,此卡片通过localStorage缓存数据。通知将始终保持最新,因为WebSocket订阅用于保持这些刷新,但日历事件将只会每15分钟更新一次。

编辑:现在已经更新,以消除图标图像的硬编码url。(现在过时了,当前版本的图标不使用图像,而是使用mdi图标)。
现在已经改进了格式,并添加了show_empty选项。

**编辑12/03/2019:现在已经做了一些更改。

  1. 现在,如果定义了某个实体的图标,它将选择该实体的图标,而不仅仅是使用硬编码的图标
  2. 现在可以从单个实体生成多个项目。我只测试了这与新的Reddit传感器在0.89引入,但它应该与任何实体有一个属性,这是一个对象列表。
11个喜欢

谢谢大家笑脸:

完美的工作!

是否有一种方法使图像路径相对于你存储的js文件?我的所有卡片都存储在另一个文件夹内/www已经,所以我不方便把图标埋在另一个文件夹三深。

我所有的其他卡片都被/local/lovelace/cards.js引用,这将是我把你的卡文件也。我可能最终会把图标放在另一个文件夹我已经有图标(/www/icons/home-feed-card/),我会在我的配置中适当地更新你的代码。

不过,为定制组件维护某种标准结构会很好。

我现在已经更新了它,所以它获取脚本的位置,但它仍然寻找图片相对于脚本位置的文件夹。我将设法想出一个做这件事的更好的办法。我可能会添加一个额外的配置设置(类似于icon_path),以允许覆盖默认位置。

1像

谢谢你,。

我认为让它成为可配置的路径将是一个很好的解决方案。

我在看新的代码,想知道316行上的路径是否也需要更改,但这是一个疏忽,还是它的方式是可以的?我安装了,但还没有尝试它在我的lovelace配置还没有任何方式。

谢谢你!@Steven_Rollason,非常漂亮的卡片!我已经安装和它的整体工作,但我困惑的自定义选项:

  1. id_filter是如何工作的?例如,它应该保持原样还是可以更改为只显示传感器,是语法" ^sensor "。*”呢?
  2. 在您已经粘贴的片段中,它看起来像有一个选项来X出通知?我的卡上没有X
  3. 图标在我设置的实体中缺失,但可能与评论相关@finity使
  4. 卡明显地闪烁每3秒左右,大概当它刷新。

谢谢你的建议,希望这对你有帮助,再一次感谢你的工作!

我在图标上也遇到了同样的问题。我甚至试着把它恢复到硬编码路径(/local/lovelace/images/),它仍然不会显示至少持久通知图标。其他的我还没试过。

另外一个特性请求将是“hide_if_empty: true”选项,因为我可能只会使用它为持久通知,它将经常是空的。

我已经修复了第316行硬编码图像路径的问题

id_filter是用于过滤持久通知,这与您单击UI顶部栏上的通知铃时出现的通知相同。例如,如果你想要包含无效的身份验证通知,那么你可以在" ^http-login$ "一行
如果您删除了该设置,那么所有持久通知都将显示在提要中。

对于持久通知,应该显示X,因为这些通知可以被取消,但对于传感器或日历事件等事件则不能。

谢谢你的澄清

这个最新版本现在使用Home Assistant中的内置mdi图标,而不是图像,因此应该不再有固定图像路径的问题。19463331伟德国际

是的,现在好多了。我不再看到之前出现的闪烁图标出现了。

这些图标与文本的其余部分有点脱节,但这不是太大的问题。

你也可以强制解散按钮的持久通知跟随主题?现在它是暗紫色的,这使得深色的主题很难被看到。以下是我提到的这两件事的一个例子:

前女友

我想看到的唯一的另一件事是,如果没有什么可显示的,一些方法不显示牌。我在上面提到过,但我不知道你是否错过了。

谢谢你为此所做的努力。我真的不喜欢在lovelace中删除了持续通知弹出组。

解散按钮的颜色是由于图标被包装在一个链接,应用了蓝色。我已经上传了一个新的版本与此和其他样式问题修复。这也包括了show_empty选项,默认为true,用于控制如果不显示什么,该卡片是否显示。

1像

就造型而言,一切看起来都很好,所以谢谢你。

仍然有一个问题与“show_empty:”尽管。

如果设置了“show_empty: false”,那么如果一个通知出现在卡片中,它不会自动显示自己,直到你点击lovelace菜单中的刷新按钮或在浏览器本身。

但是,如果你点击通知窗格中的解散按钮或卡片中的x按钮,它会自动隐藏自己,所以这部分工作正常。

现在在最新版本中应该修复了这个问题。卡片现在应该重新出现,一旦通知通过。

1像

我刚刚试过了,它似乎和预期的一样工作。再次感谢。非常有用的。

我现在应用了一些改变:

  • 现在,如果定义了某个实体的图标,它将选择该实体的图标,而不仅仅是使用硬编码的图标
  • 现在可以从单个实体生成多个项目。我只测试了这与新的Reddit传感器在0.89引入,但它应该与任何实体有一个属性,这是一个对象列表。

您是否计划添加custom_updater支持?

我刚刚推出了修复这个问题的几个问题:

  1. 全天日历事件的时间戳给出了“无效日期”错误。这里也做了一些修改,应该可以处理更多的日历类型(如CalDav)。
  2. Home Assistant19463331伟德国际 0.90的更新影响了该卡订阅通知更新的方式。卡片可以订阅通知,但不知道它是否已经这样做了,导致它反复订阅,这最终会导致日志中出现“客户端超过最大等待消息”错误。