每次重启我松散的数据实体,我想继续。
上次客人参观我的房子吗?
最后一次加热装置继续在夏天(检查)?
上次从未使用过光改变吗?

答案总是相同的:x小时/天前,x =日期重新启动。

我知道我可以使用自动化和数据存储在input_date等等…但这不是轻易可见的UI,即secondary-info。

图像

光在上次3个月前,不是18个小时。眨眼:

是的!+ 1

应该是持久的。

4喜欢

自去年的几个版本中HA数据库是如此快速和优化我希望将会有额外的日期的地方保存,重启后恢复哈…

^ ^知道的事实“啊不管怎样的数据是错误的…”是让我最难过的时候

所以这是一个大问题,当前所有状态改变状态就发生了变化。如果我们这样做,它只能在启动期间(如没有自动化活动所以写非流动状态的工作)。

但如果我们在启动,那么如果你input_booleans重载。你希望它仍然是过去的日期?现在将会打破很多假设系统,这是消费者的API。

@balloob——input_booleans只是例子。
在我看来应该有一个选项(如果不能做每公顷),自动化和所有传感器加载之前,最后一次修改日期恢复。

所以,在示例:
我在2020-08-18 18:30打开或关闭灯光。日期存储在“last_change”属性或在数据库(我没有技术,只是一个例子)。
我重启在2020-08-18点,之后和其他状态恢复/自动化运行之前,我想哈,“last_change”,使它在某种程度上可见的UI(次要信息等)。

我不需要哈重新分配一切包括状态机、自动化等。
我想有数据(即模板)和使用证明(在二级信息界面),而不需要使用外部存储实体和模板的传感器。

只是找到一个例子截图domoticz的主题。


Yellow-marked值是我希望看到的UI never-used-light旁边。日期最后一次使用它,而不是自去年重新启动。

3喜欢

@andriej@balloob

同时,传感器的状态(或光开关)可以改变在重启。例如有人可以从墙壁开关,手动开启/关闭光哈了。或者无线个域网运动传感器可以被激活。所以我们必须比较之前和之后的状态,和恢复旧last_updated时间戳在美国只有当没有变化。

在大型系统我不知道需要多少时间来加载,循环/比较和更新吗?

它可能很快状态恢复数据加载之后,可能依赖于数据结构。

可能是值得的根据用户的需求,可能需要一个配置选项来启用。

Non-Startup状态恢复很有趣,可能创建一个实体的副本是重载状态信息和使用这些数据以相同的方式恢复状态数据会在启动时?

是的这惹恼了我的退出。我有一公顷在夏天我的父母家里,因为它是全年经常无人值守每晚我重启它,以防它挂起和不能rebootet。这帮助我几次多年来已经不需要从瑞典飞往波兰重启树莓π。但这使运动传感器有点意义,因为他们总是显示,重启时间对于我来说总是< 24小时所以我需要进入日志看看。

Up-voted。这将是一个好去处。周围有组装的方法(如大多数事情)。就其价值而言我使用hass-variables (https://github.com/rogro82/hass-variables)和一些自动化和传感器。

我们的大门是一个例子。

variable.yaml:

front_gate_open:值:' 0 '恢复:真的

我必须为我的一些实体创建模板切换,我想跟踪触发脚本把他们所以我可以设置变量(假设我也可以做一个自动化监听”:在“状态改变…

switches.yaml

平台:模板开关:front_drive_gate: friendly_name:“前面车道门”value_template:“{{is_state (“binary_sensor.front_gate_contact”,“上”)}}“turn_on:服务:script.front_gate_open turn_off:服务:script.front_gate_close icon_template:“mdi:门”

这里的关键是当门打开脚本变量设置为现在().timestamp ()

scripts.yaml

front_gate_open:序列:条件:国家entity_id: binary_sensor.front_gate_contact状态:“离开”——服务:开关。turn_on entity_id: switch.front_gate -服务:变量。set_variable数据:变量:front_gate_open value_template:“{{现在().timestamp ()}}”

我创建了一个传感器显示的时间自去年开放。当然很多方面显示这一次,这就是我选择去做。

sensors.yaml

front_gate_last_open: value_template: >{%设置运行= (as_timestamp(州(sensor.date_time) .replace(" ", ")) -状态(“variable.front_gate_open”) | int) %}{%设置天=(运行/ 86400)| int %}{%设置小时=((运行% 86400)/ 3600)| int %}{%设置分钟=((运行% 3600)/ 60)| int %}{%设置秒=运行| int % 60%}{%如果天> 0%}{{天}}d{%如果小时<}0 10% {% endif %}{{小时}}:{%如果分钟10% <}0 {% endif %}{{分钟}}{% elif小时> 0%}{%如果小时<}0 10% {% endif %}{{小时}}:{%如果分钟10% <}0 {% endif %}{{分钟}}{% elif分钟> 0%}{{分钟}}m{%其他%}{{秒}}年代{% endif %}

然后我有一个条件卡在我的UI显示多久大门已经打开,并重启。

ui-lovelace.yaml

类型:有条件的条件:-实体:binary_sensor.front_gate_contact state_not:“关闭”名片:类型:实体风格:| ha-card #州{margin-bottom: 5 px !重要;padding-top: 5 px !重要;padding-bottom: 0 px;}实体:实体:switch.front_drive_gate类型:自定义:multiple-entity-row名称:前门state_color:真正的切换:假show_state:假实体:-实体:switch.front_drive_gate切换:真实姓名:假tap_action:行动:调用服务服务:脚本。turn_on service_data: entity_id: script.front_gate_close -实体:sensor.front_gate_last_open名称:持续时间

这显示打开的时候:
图像

总是一群皮肤一只猫的方法哈,但这肯定是一个迂回的交际方法。(我理解我可以创建自动化去除其中的一些步骤,但嘿,一年前我编码,我懒得改变(如果没坏,就不要修复它])。:man_shrugging:

3喜欢

马库斯,

谢谢你的解决方案,但正如许多可以看到有很多事情你必须配置有最新状态改变生存重启(在它存储在一个单独的实体)。
理想情况下,这应该以类似的方式工作@andriej发布。
重载是重建实体(对吗?),这将导致最后的状态变化改变,但对于大多数用例生存重启就足够了。
知道限制我们总是可以重启HA YAML更改之后,以避免失去最后的状态变化(这不会引起重新加载对吧?)。

进一步思考。我想我可以创建一个变量。last_on然后使用属性来存储实体的last_on / last_open时期,随着自动化监听状态打开/设置这些。

可以减少到一个变量(使用多个属性),一个自动化(触发器。entity_id设置我认为),然后只会需要多个传感器计算机last_on时间和现在()和显示每一个“好”。

上面再一次,我在做什么工作,只是再走几步。也再一次,这就是我喜欢哈,通常> 1去你想去的地方。

最好是修复所需的所有原因重启解决这个问题。

2喜欢

认为这是目前的核心-哈斯…(重新)建立在客户端接口

我认为它不会需要你所有东西恢复重启。很多事情不重要。
一个选项来选择是否要恢复“是”或“否”将是一个很好的主意。

2喜欢

系统崩溃或你可以更新到最新版本,然后需要重新启动。
总是会有重启的情况下是必要的。

1像

+ 1
或改变你的配置添加传感器,然后需要重新启动…

这正是问题的关键。
系统崩溃,电源故障,甚至恢复快照不会改变的事那个人叫做“X”上次来访的家1月前;上次中央供热系统是在冬天的结束;(伟德国际官方app下载苹果版示例列表增长)。

我认为你必须小心的假设。如果哈重启,没有办法知道它不运行时发生了什么。,重启可能不是一个(相对)快速重启。它可能没有运行一段时间。所以,发生了什么“东西”哈的实体表示,哈不跑步?即使检查状态和上次一样哈跑是不够的,因为它可以改变其他东西,然后回来。

基本上在数据有差距,如果什么都没有发生在这一差距是有问题的。

现在,它可能是合理的添加一些新的数据,是最后一次改变观察到的哈。至少很明显这是不完整的数据,使用在你的自己的风险。

2喜欢

可以简单吗?

重启之前复制状态,之后重启

  1. 使用复制状态:让其他颜色
  2. 检查每个实体状态:
    。如果同样的1(前状态):正常的颜色
    b。如果不同状态:改变它并使用正常的颜色
    c。如果无法检查国家保持其他颜色

确定但你怎么知道公顷重启呢?崩溃呢,你怎么计划?