『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 6627|回复: 2

[技术探讨] sensor.template 有什么办法可以存储一个变量麽?

[复制链接]

35

主题

153

帖子

1078

积分

金牌会员

Rank: 6Rank: 6

积分
1078
金钱
925
HASS币
10
发表于 2020-4-5 21:00:52 | 显示全部楼层 |阅读模式
  - platform: template
    sensors:
      dianliang:
        value_template: >
          {{states("sensor.ch_1_energy")|float + states("sensor.ch_2_energy")|float + states("sensor.ch_3_energy")|float | round(2)}}
        unit_of_measurement: "KWH"
        friendly_name: 三项总电量
        icon_template: mdi:chart-bar-stacked

utility_meter:
  energy:
    source: sensor.dianliang
    cycle: yearly

如上:是一个简单的把三项电的总电量加起来的传感器。。然后交给utility_meter处理电量信息。
但是观察发现。有时候sensor.ch_1_energy 或者其他两厢点没有得到数据。或者网络断开等原因。sensor.dianliang会得到一个0值或者小于一个之前提交的值。。会导致utility_meter出错。比如出现一次0值后在出现一次正常值。那么就会又累加一次电量

有没有什么方法可以让sensor.dianliang 这个传感器输出数值的时候检查一下。比如搞一个属性作为上次的值。然后本次的指需要和上次的值做比较。比上次小的就直接输出上次的值。

类似于
  - platform: template
    sensors:
      dianliang:
        value_template: >
          if(1+2+3 > 上次值)
              上次值 = 1+2+3;
          return 上次值
        unit_of_measurement: "KWH"
        friendly_name: 三项总电量
        icon_template: mdi:chart-bar-stacked
        附加属性:上次值



回复

使用道具 举报

6

主题

743

帖子

5958

积分

论坛元老

Rank: 8Rank: 8

积分
5958
金钱
5210
HASS币
20
发表于 2020-4-5 23:01:00 | 显示全部楼层
可以考虑用sensor.ch_1_energy,sensor.ch_2_energy,sensor.ch_3_energy做为触发条件,用自动化来做判断处理。
回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-4-6 14:03:17 | 显示全部楼层
我也在找 如何存储变量
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 00:58 , Processed in 0.082433 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表