找回密码
 立即注册

微信扫码登录

搜索
楼主: dscao

[经验分享] 电表接入后(阶梯+峰谷)电费算法的改进

  [复制链接]

81

主题

1425

回帖

2万

积分

元老级技术达人

积分
29958
金钱
28412
HASS币
290
 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 dscao 于 2025-8-9 21:45 编辑
新手一枚 发表于 2025-8-9 15:30
大神帮帮忙,我把你的代码代入进去,就出错

出错的相关日志有没有?
这个帖子时间比较久了,有些格式官方可能有变动,很多地方可能需要按新的格式要求进行修改。后来官方的能源面板就相当好用了,基本上不再需要这些实体就可以查看相关统计。

下面是我自己在用的代码 dianbiao.yaml,放在config/package目录下,偶尔可以看看进行一下对比。你可以参考着修改一下:
mqtt:
  sensor:  
    - name: "家庭电表"
      unique_id: jiatingdianbiao
      state_topic: "energy/zong_dian_liang"
      value_template: "{{value_json.energy}}"
      unit_of_measurement: "kWh"
      device_class: energy
      force_update: true
      state_class: total_increasing
      expire_after: "36000"
   

template:
  - sensor:
    - name: shishidianjia #实时电价  
      unique_id: dianbao_shishidianjia
      unit_of_measurement: CNY/kWh
      state: >         
        {%set jiage1f = 0.5953%}
        {%set jiage2f = 0.6453%}
        {%set jiage3f = 0.8953%}
        {%set jiage1g = 0.3153%}
        {%set jiage2g = 0.3653%}
        {%set jiage3g = 0.6153%}     
        {%if now().strftime("%H")| int(default=0) >= 8 and now().strftime("%H")|int(default=0) < 22 and states("sensor.dang_qian_jie_ti")=="1" %}
          {{jiage1f}}
        {%elif now().strftime("%H")| int(default=0) >= 8 and now().strftime("%H")|int(default=0) < 22  and states("sensor.dang_qian_jie_ti")=="2" %}
          {{jiage2f}}
        {%elif now().strftime("%H")| int(default=0) >= 8 and now().strftime("%H")|int(default=0) < 22  and states("sensor.dang_qian_jie_ti")=="3" %}
          {{jiage3f}}
        {% elif states("sensor.dang_qian_jie_ti")=="1"%}
          {{jiage1g}}
        {% elif states("sensor.dang_qian_jie_ti")=="2" %}
          {{jiage2g}}
        {% elif states("sensor.dang_qian_jie_ti")=="3" %}
          {{jiage3g}}    
        {% else %}
          {{jiage1f}}
        {% endif %}
        

    - name: dang_qian_jie_ti #当前阶梯  
      unique_id: dianbao_dangqianjieti
      #device_class: temperature
      unit_of_measurement: L
      state: >
        {% if states("sensor.jin_nian_zong_dianliang") | float(default=0) <= 2160 %}
          1
        {% elif 2160 < states("sensor.jin_nian_zong_dianliang") | float(default=0) <= 4200 %}
          2
        {% elif states("sensor.jin_nian_zong_dianliang") | float(default=0) > 4200 %}
          3
        {% endif %} 
        

    - name: remain_dianliang_jie_ti #阶梯电量余量  
      unique_id: dianbao_remain_dianliang_jie_ti
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {% if states("sensor.jin_nian_zong_dianliang") | float(default=0) <= 2160 %}
          {{ (2160-states("sensor.jin_nian_zong_dianliang") | float(default=0)) | round (1) }}
        {% elif states("sensor.jin_nian_zong_dianliang") | float(default=0) >2160  and states("sensor.jin_nian_zong_dianliang") | float(default=0) <= 4200 %}
          {{ (4200-states("sensor.jin_nian_zong_dianliang") | float(default=0)) | round (1) }}
        {% elif states("sensor.jin_nian_zong_dianliang") | float(default=0) > 4200 %}
          9999
        {% else %}
          0
        {% endif %}
        
        
    - name: jin_ri_fen_dianliang #今日峰电量
      unique_id: dianbao_jin_ri_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_energy_peak") | float + states("sensor.daily_energy_peak2l") | float + states("sensor.daily_energy_peak3l") | float )| round(3)}}
        

    - name: jin_ri_gu_dianliang #今日谷电量
      unique_id: dianbao_jin_ri_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_energy_offpeak") | float + states("sensor.daily_energy_offpeak2l") | float + states("sensor.daily_energy_offpeak3l") | float )| round(3)}}
        

    - name: jin_ri_zong_dianliang #今日电量
      unique_id: dianbao_jin_ri_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.jin_ri_gu_dianliang") | float + states("sensor.jin_ri_fen_dianliang") | float )| round(3)}}
        

    - name: ben_yue_fen_dianliang #本月峰电量
      unique_id: dianbao_ben_yue_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_energy_peak") | float + states("sensor.monthly_energy_peak2l") | float + states("sensor.monthly_energy_peak3l") | float )| round(3)}}
        

    - name: ben_yue_gu_dianliang #本月谷电量
      unique_id: dianbao_ben_yue_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_energy_offpeak") | float + states("sensor.monthly_energy_offpeak2l") | float + states("sensor.monthly_energy_offpeak3l") | float )| round(3)}}
        

    - name: ben_yue_zong_dianliang #本月电量
      unique_id: dianbao_ben_yue_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.ben_yue_gu_dianliang") | float + states("sensor.ben_yue_gu_dianliang") | float )| round(3)}}
        

    - name: jin_nian_fen_dianliang #今年峰电量
      unique_id: dianbao_jin_nian_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_energy_peak") | float + states("sensor.yearly_energy_peak2l") | float + states("sensor.yearly_energy_peak3l") | float )| round(3)}}
        

    - name: jin_nian_gu_dianliang #今年谷电量
      unique_id: dianbao_jin_nian_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_energy_offpeak") | float + states("sensor.yearly_energy_offpeak2l") | float + states("sensor.yearly_energy_offpeak3l") | float )| round(3)}}
        

    - name: jin_nian_zong_dianliang #今年电量
      unique_id: dianbao_jin_nian_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.jin_nian_gu_dianliang") | float(default=0) + states("sensor.jin_nian_fen_dianliang") | float(default=0) )| round(3)}}
        

    - name: zuo_ri_fen_dianliang #昨日峰电量
      unique_id: dianbao_zuo_ri_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_energy_peak","last_period") | float + state_attr("sensor.daily_energy_peak2l","last_period") | float + state_attr("sensor.daily_energy_peak3l","last_period") | float )| round(3)}}
        

    - name: zuo_ri_gu_dianliang #昨日谷电量
      unique_id: dianbao_zuo_ri_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_energy_offpeak","last_period") | float + state_attr("sensor.daily_energy_offpeak2l","last_period") | float + state_attr("sensor.daily_energy_offpeak3l","last_period") | float )| round(3)}}
        

    - name: zuo_ri_zong_dianliang #昨日电量
      unique_id: dianbao_zuo_ri_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.zuo_ri_gu_dianliang") | float(default=0) + states("sensor.zuo_ri_fen_dianliang") | float(default=0) )| round(3)}}
        

    - name: shan_yue_fen_dianliang #上月峰电量
      unique_id: dianbao_shan_yue_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_energy_peak","last_period") | float + state_attr("sensor.monthly_energy_peak2l","last_period") | float + state_attr("sensor.monthly_energy_peak3l","last_period") | float )| round(3)}}
        

    - name: shan_yue_gu_dianliang #上月谷电量
      unique_id: dianbao_shan_yue_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_energy_offpeak","last_period") | float + state_attr("sensor.monthly_energy_offpeak2l","last_period") | float + state_attr("sensor.monthly_energy_offpeak3l","last_period") | float )| round(3)}}
        

    - name: shan_yue_zong_dianliang #上月电量
      unique_id: dianbao_shan_yue_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.shan_yue_gu_dianliang") | float(default=0) + states("sensor.shan_yue_fen_dianliang") | float(default=0) )| round(3)}}
  

    - name: qu_nian_fen_dianliang #去年峰电量
      unique_id: dianbao_qu_nian_fen_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_energy_peak","last_period") | float + state_attr("sensor.yearly_energy_peak2l","last_period") | float + state_attr("sensor.yearly_energy_peak3l","last_period") | float )| round(3)}}
        

    - name: qu_nian_gu_dianliang #去年谷电量
      unique_id: dianbao_qu_nian_gu_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_energy_offpeak","last_period") | float + state_attr("sensor.yearly_energy_offpeak2l","last_period") | float + state_attr("sensor.yearly_energy_offpeak3l","last_period") | float )| round(3)}}
        

    - name: qu_nian_zong_dianliang #去年电量
      unique_id: dianbao_qu_nian_zong_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.qu_nian_gu_dianliang") | float(default=0) + states("sensor.qu_nian_fen_dianliang") | float(default=0) )| round(3)}}
 

    - name: zuo_ri_fen_dian_fei #昨日峰电费
      unique_id: dianbao_zuo_ri_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.daily_energy_peak","last_period") | float * 0.5953 + state_attr("sensor.daily_energy_peak2l","last_period") | float * 0.6453 + state_attr("sensor.daily_energy_peak3l","last_period") | float * 0.8953 )| round(2)}}
        

    - name: zuo_ri_gu_dian_fei #昨日谷电费
      unique_id: dianbao_zuo_ri_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.daily_energy_offpeak","last_period") | float * 0.3153 + state_attr("sensor.daily_energy_offpeak2l","last_period") | float * 0.3653 + state_attr("sensor.daily_energy_offpeak3l","last_period") | float * 0.6153 )| round(2)}}
         

    - name: zuo_ri_zong_dian_fei #昨日总电费
      unique_id: dianbao_zuo_ri_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.zuo_ri_fen_dian_fei")|float + states("sensor.zuo_ri_gu_dian_fei")|float) | round(2)}}


    - name: shan_yue_fen_dian_fei #上月峰电费
      unique_id: dianbao_shan_yue_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.monthly_energy_peak","last_period") | float(default=0) * 0.5953 + state_attr("sensor.monthly_energy_peak2l","last_period") | float(default=0) * 0.6453 + state_attr("sensor.monthly_energy_peak3l","last_period") | float(default=0) * 0.8953 )| round(2)}}
        

    - name: shan_yue_gu_dian_fei #上月谷电费
      unique_id: dianbao_shan_yue_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.monthly_energy_offpeak","last_period") | float(default=0) * 0.3153  + state_attr("sensor.monthly_energy_offpeak2l","last_period") | float(default=0) * 0.3653 + state_attr("sensor.monthly_energy_offpeak3l","last_period") | float(default=0) * 0.6153 )| round(2)}}
       

    - name: shan_yue_zong_dian_fei #上月总电费
      unique_id: dianbao_shan_yue_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.shan_yue_fen_dian_fei")|float(default=0) + states("sensor.shan_yue_gu_dian_fei")|float(default=0)) | round(2)}}
        

    - name: shan_yue_dian_fei_nofenggu #上月电费(不执行峰谷)
      unique_id: dianbao_shan_yue_dian_fei_nofenggu
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{( (state_attr("sensor.monthly_energy_peak","last_period") | float(default=0) + state_attr("sensor.monthly_energy_peak","last_period") | float(default=0))* 0.5653 + (state_attr("sensor.monthly_energy_peak2l","last_period") | float(default=0) +state_attr("sensor.monthly_energy_peak2l","last_period") | float(default=0)) * 0.6153 + (state_attr("sensor.monthly_energy_peak3l","last_period") | float(default=0) +state_attr("sensor.monthly_energy_peak3l","last_period") | float(default=0) ) * 0.8653 )| round(2)}}
        

    - name: qu_nian_fen_dian_fei #去年峰电费
      unique_id: dianbao_qu_nian_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.yearly_energy_peak","last_period") | float(default=0) * 0.5953 + state_attr("sensor.yearly_energy_peak2l","last_period") | float(default=0) * 0.6453 + state_attr("sensor.yearly_energy_peak3l","last_period") | float(default=0) * 0.8953 )| round(2)}}
        

    - name: qu_nian_gu_dian_fei #去年谷电费
      unique_id: dianbao_qu_nian_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(state_attr("sensor.yearly_energy_offpeak","last_period") | float(default=0) * 0.3153 + state_attr("sensor.yearly_energy_offpeak2l","last_period") | float(default=0) * 0.3653 + state_attr("sensor.yearly_energy_offpeak3l","last_period") | float(default=0) * 0.6153 )| round(2)}}
       

    - name: qu_nian_zong_dian_fei #去年总电费
      unique_id: dianbao_qu_nian_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.qu_nian_fen_dian_fei")|float(default=0) + states("sensor.qu_nian_gu_dian_fei")|float(default=0)) | round(2)}}
       

    - name: qu_nian_dian_fei_nofenggu #去年电费(不执行峰谷)
      unique_id: dianbao_qu_nian_dian_fei_nofenggu
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{( (state_attr("sensor.yearly_energy_peak","last_period") | float(default=0) + state_attr("sensor.yearly_energy_peak","last_period") | float(default=0))* 0.5653 + (state_attr("sensor.yearly_energy_peak2l","last_period") | float(default=0) +state_attr("sensor.yearly_energy_peak2l","last_period") | float(default=0)) * 0.6153 + (state_attr("sensor.yearly_energy_peak3l","last_period") | float(default=0) +state_attr("sensor.yearly_energy_peak3l","last_period") | float(default=0) ) * 0.8653 )| round(2)}}
       

    - name: jin_ri_fen_dian_fei #今日峰电费
      unique_id: dianbao_jin_ri_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.daily_energy_peak") | float * 0.5953) + (states("sensor.daily_energy_peak2l") | float * 0.6453) + (states("sensor.daily_energy_peak3l") | float * 0.8953)) | round(2)}}
     

    - name: jin_ri_gu_dian_fei #今日谷电费
      unique_id: dianbao_jin_ri_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.daily_energy_offpeak") | float * 0.3153) + (states("sensor.daily_energy_offpeak2l") | float * 0.3653) + (states("sensor.daily_energy_offpeak3l") | float * 0.6153)) | round(2)}}
        

    - name: jin_ri_zong_dian_fei #今日总电费
      unique_id: dianbao_jin_ri_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.jin_ri_fen_dian_fei")|float + states("sensor.jin_ri_gu_dian_fei")|float) | round(2)}}
  

    - name: ben_yue_fen_dian_fei #本月峰电费
      unique_id: dianbao_ben_yue_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.monthly_energy_peak") | float * 0.5953) + (states("sensor.monthly_energy_peak2l") | float * 0.6453) + (states("sensor.monthly_energy_peak3l") | float * 0.8953)) | round(2)}}
        

    - name: ben_yue_gu_dian_fei #本月谷电费
      unique_id: dianbao_ben_yue_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.monthly_energy_offpeak") | float * 0.3153) + (states("sensor.monthly_energy_offpeak2l") | float * 0.3653) + (states("sensor.monthly_energy_offpeak3l") | float * 0.6153)) | round(2)}}
       

    - name: ben_yue_zong_dian_fei #本月总电费
      unique_id: dianbao_ben_yue_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.ben_yue_fen_dian_fei")|float + states("sensor.ben_yue_gu_dian_fei")|float) | round(2)}}
       

    - name: ben_yue_dian_fei_nofenggu #本月电费(不执行峰谷)
      unique_id: dianbao_ben_yue_dian_fei_nofenggu
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(((states("sensor.monthly_energy_peak") | float+states("sensor.monthly_energy_offpeak") | float) * 0.5653) + ((states("sensor.monthly_energy_peak2l") | float+states("sensor.monthly_energy_offpeak2l") | float) * 0.6153) + ((states("sensor.monthly_energy_peak3l") | float+states("sensor.monthly_energy_offpeak3l") | float) * 0.8653)) | round(2)}}
       

    - name: jin_nian_fen_dian_fei #今年峰电费
      unique_id: dianbao_jin_nian_fen_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.yearly_energy_peak") | float * 0.5953) + (states("sensor.yearly_energy_peak2l") | float * 0.6453) + (states("sensor.yearly_energy_peak3l") | float * 0.8953)) | round(2)}}
        

    - name: jin_nian_gu_dian_fei #今年谷电费
      unique_id: dianbao_jin_nian_gu_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{((states("sensor.yearly_energy_offpeak") | float * 0.3153) + (states("sensor.yearly_energy_offpeak2l") | float * 0.3653) + (states("sensor.yearly_energy_offpeak3l") | float * 0.6153)) | round(2)}}
       

    - name: jin_nian_zong_dian_fei #今年总电费
      unique_id: dianbao_jin_nian_zong_dian_fei
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(states("sensor.jin_nian_fen_dian_fei")|float(default=0) + states("sensor.jin_nian_gu_dian_fei")|float(default=0)) | round(2)}}


    - name: jin_nian_dian_fei_nofenggu #今年电费(不执行峰谷)
      unique_id: dianbao_jin_nian_dian_fei_nofenggu
      device_class: monetary
      unit_of_measurement: CNY
      state: >
        {{(((states("sensor.yearly_energy_peak") | float+states("sensor.yearly_energy_offpeak") | float) * 0.5653) + ((states("sensor.yearly_energy_peak2l")  | float +states("sensor.yearly_energy_offpeak2l")  | float)  * 0.6153) + ((states("sensor.yearly_energy_peak3l") | float+states("sensor.yearly_energy_offpeak3l") | float ) * 0.8653)) | round(2)}}
              

    - name: xiyiji_jinri_dianliang #洗衣机今日电量
      unique_id: dianbao_xiyiji_jinri_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_xiyiji_energy") |float) | round(3)}}       
        

    - name: xiyiji_zuori_dianliang #洗衣机昨日电量
      unique_id: dianbao_xiyiji_zuori_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_xiyiji_energy","last_period") |float ) | round(3)}}
     

    - name: xiyiji_benyue_dianliang #洗衣机本月电量
      unique_id: dianbao_xiyiji_benyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_xiyiji_energy") |float) | round(3)}}


    - name: xiyiji_shanyue_dianliang #洗衣机上月电量
      unique_id: dianbao_xiyiji_shanyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_xiyiji_energy","last_period") |float ) | round(3)}}
        
    - name: xiyiji_jinnian_dianliang #洗衣机今年电量
      unique_id: dianbao_xiyiji_jinnian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_xiyiji_energy") |float ) | round(3)}}


    - name: xiyiji_qunian_dianliang #洗衣机去年电量
      unique_id: dianbao_xiyiji_qunian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_xiyiji_energy","last_period") |float ) | round(3)}}
       

    - name: reshuihu_jinri_dianliang #热水壶今日电量
      unique_id: dianbao_reshuihu_jinri_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_reshuihu_energy") |float ) | round(3)}}
        

    - name: reshuihu_zuori_dianliang #热水壶昨日电量
      unique_id: dianbao_reshuihu_zuori_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_reshuihu_energy","last_period") |float ) | round(3)}}
     

    - name: reshuihu_benyue_dianliang #热水壶本月电量
      unique_id: dianbao_reshuihu_benyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_reshuihu_energy") |float ) | round(3)}}
     

    - name: reshuihu_shanyue_dianliang #热水壶上月电量
      unique_id: dianbao_reshuihu_shanyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_reshuihu_energy","last_period") |float ) | round(3)}}
        
    - name: reshuihu_jinnian_dianliang #热水壶今年电量
      unique_id: dianbao_reshuihu_jinnian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_reshuihu_energy") |float ) | round(3)}}
     

    - name: reshuihu_qunian_dianliang #热水壶去年电量
      unique_id: dianbao_reshuihu_qunian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_reshuihu_energy","last_period") |float ) | round(3)}}
        
    - name: bingxiang_jinri_dianliang #冰箱今日电量
      unique_id: dianbao_bingxiang_jinri_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_bingxiang_energy") |float ) | round(3)}}
  

    - name: bingxiang_zuori_dianliang #冰箱昨日电量
      unique_id: dianbao_bingxiang_zuori_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_bingxiang_energy","last_period") |float ) | round(3)}}
     

    - name: bingxiang_benyue_dianliang #冰箱本月电量
      unique_id: dianbao_bingxiang_benyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_bingxiang_energy") |float ) | round(3)}}
     

    - name: bingxiang_shanyue_dianliang #冰箱上月电量
      unique_id: dianbao_bingxiang_shanyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_bingxiang_energy","last_period") |float ) | round(3)}}
        
    - name: bingxiang_jinnian_dianliang #冰箱今年电量
      unique_id: dianbao_bingxiang_jinnian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_bingxiang_energy") |float ) | round(3)}}
     

    - name: bingxiang_qunian_dianliang #冰箱去年电量
      unique_id: dianbao_bingxiang_qunian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_bingxiang_energy","last_period") |float ) | round(3)}}
        
        

    - name: system_jinri_dianliang #主机网络系统今日电量
      unique_id: dianbao_system_jinri_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.daily_system_energy") |float ) | round(3)}}
  

    - name: system_zuori_dianliang #主机网络系统昨日电量
      unique_id: dianbao_system_zuori_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.daily_system_energy","last_period") |float ) | round(3)}}
     

    - name: system_benyue_dianliang #主机网络系统本月电量
      unique_id: dianbao_system_benyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.monthly_system_energy") |float ) | round(3)}}
     

    - name: system_shanyue_dianliang #主机网络系统上月电量
      unique_id: dianbao_system_shanyue_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.monthly_system_energy","last_period") |float ) | round(3)}}
        
    - name: system_jinnian_dianliang #主机网络系统今年电量
      unique_id: dianbao_system_jinnian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(states("sensor.yearly_system_energy") |float ) | round(3)}}
     

    - name: system_qunian_dianliang #主机网络系统去年电量
      unique_id: dianbao_system_qunian_dianliang
      device_class: energy
      unit_of_measurement: kWh
      state: >
        {{(state_attr("sensor.yearly_system_energy","last_period") |float ) | round(3)}}

        
utility_meter:
  energy:
    source: sensor.zong_dian_liang
    cycle: yearly
    
  daily_energy:
    source: sensor.zong_dian_liang
    cycle: daily
    tariffs:
      - peak
      - offpeak
      - peak2l
      - offpeak2l
      - peak3l
      - offpeak3l

  monthly_energy:
    source: sensor.zong_dian_liang
    cycle: monthly
    tariffs:
      - peak
      - offpeak
      - peak2l
      - offpeak2l
      - peak3l
      - offpeak3l

  yearly_energy:
    source: sensor.zong_dian_liang
    cycle: yearly
    tariffs:
      - peak
      - offpeak
      - peak2l
      - offpeak2l
      - peak3l
      - offpeak3l
  daily_jiadian_energy:
    source: sensor.jia_dian_zong_dian_liang
    cycle: daily
  monthly_jiadian_energy:
    source: sensor.jia_dian_zong_dian_liang
    cycle: monthly
  yearly_jiadian_energy:
    source: sensor.jia_dian_zong_dian_liang
    cycle: yearly
  daily_xiyiji_energy:
    source: sensor.0x00158d00047994c1_energy
    cycle: daily
  monthly_xiyiji_energy:
    source: sensor.0x00158d00047994c1_energy
    cycle: monthly
  yearly_xiyiji_energy:
    source: sensor.0x00158d00047994c1_energy
    cycle: yearly
  daily_reshuihu_energy:
    source: sensor.0x00158d000777c0e2_energy
    cycle: daily
  monthly_reshuihu_energy:
    source: sensor.0x00158d000777c0e2_energy
    cycle: monthly
  yearly_reshuihu_energy:
    source: sensor.0x00158d000777c0e2_energy
    cycle: yearly
  daily_system_energy:
    source: sensor.0x00158d000129db60_energy
    cycle: daily
  monthly_system_energy:
    source: sensor.0x00158d000129db60_energy
    cycle: monthly
  yearly_system_energy:
    source: sensor.0x00158d000129db60_energy
    cycle: yearly
  daily_bingxiang_energy:
    source: sensor.0x00158d0007053e35_energy
    cycle: daily
  monthly_bingxiang_energy:
    source: sensor.0x00158d0007053e35_energy
    cycle: monthly
  yearly_bingxiang_energy:
    source: sensor.0x00158d0007053e35_energy
    cycle: yearly
  
automation:
#峰谷时切换
    
  - alias: fenggu_peak
    trigger:
      - platform: time
        at: '08:00:00'
        variables:
          tariff: "peak"
      - platform: time
        at: "22:00:00"
        variables:
          tariff: "offpeak"
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: sensor.dang_qian_jie_ti
                state: '2'
            sequence:
              - service: select.select_option
                target:
                  entity_id: 
                    - select.daily_energy
                    - select.monthly_energy
                    - select.yearly_energy
                data:
                  option: "{{ tariff }}21"

          - conditions:
              - condition: state
                entity_id: sensor.dang_qian_jie_ti
                state: '3'
            sequence:
              - service: select.select_option
                target:
                  entity_id: 
                    - select.daily_energy
                    - select.monthly_energy
                    - select.yearly_energy
                data:
                  option: "{{ tariff }}31"   
        default:
          - service: select.select_option
            target:
              entity_id: 
                - select.daily_energy
                - select.monthly_energy
                - select.yearly_energy
            data:
              option: "{{ tariff }}"   

 
  - alias: fenggu_jietishengji
    trigger:
      - platform: state
        entity_id: sensor.dang_qian_jie_ti
        from: '1'
        to: '2'
      - platform: state
        entity_id: sensor.dang_qian_jie_ti
        from: '2'
        to: '3'
    action:
      - choose:
          - conditions:
              - condition: time
                after: '08:00:00'
                before: '22:00:00'
            sequence:
              - service: select.select_option
                target:
                  entity_id: 
                    - select.daily_energy
                    - select.monthly_energy
                    - select.yearly_energy
                data:
                  option: "peak{{ trigger.to_state.state }}1" 
          
          - conditions:
              - condition: state
                entity_id: sensor.dang_qian_jie_ti
                state: '2'
              - condition: time
                after: '22:00:00'
                before: '08:00:00'
            sequence:
              - service: select.select_option
                target:
                  entity_id: 
                    - select.daily_energy
                    - select.monthly_energy
                    - select.yearly_energy
                data:
                  option: "offpeak{{ trigger.to_state.state }}1"           
        default: []
        
      
    
    








回复

使用道具 举报

1

主题

13

回帖

62

积分

注册会员

积分
62
金钱
48
HASS币
0
发表于 4 天前 | 显示全部楼层
dscao 发表于 2025-8-9 21:36
出错的相关日志有没有?
这个帖子时间比较久了,有些格式官方可能有变动,很多地方可能需要按新的格式要求 ...

ESPHome,我用的是这个
回复

使用道具 举报

1

主题

13

回帖

62

积分

注册会员

积分
62
金钱
48
HASS币
0
发表于 4 天前 | 显示全部楼层
dscao 发表于 2025-8-9 21:36
出错的相关日志有没有?
这个帖子时间比较久了,有些格式官方可能有变动,很多地方可能需要按新的格式要求 ...

ESPHome 用这个有关系么
回复

使用道具 举报

1

主题

13

回帖

62

积分

注册会员

积分
62
金钱
48
HASS币
0
发表于 4 天前 | 显示全部楼层
本帖最后由 新手一枚 于 2025-8-9 22:51 编辑
dscao 发表于 2025-8-9 21:36
出错的相关日志有没有?
这个帖子时间比较久了,有些格式官方可能有变动,很多地方可能需要按新的格式要求 ...

1

1

{
  "version": 1,
  "minor_version": 1,
  "key": "esphome.01K1608NMED6174DZYY5T5A4NF",
  "data": {
    "device_info": {
      "uses_password": false,
      "name": "espmeter-2f5373",
      "friendly_name": "Esp_meter 2f5373",
      "mac_address": "3C:71:BF:2F:53:73",
      "compilation_time": "Jul 16 2025, 15:11:21",
      "model": "esp01_1m",
      "manufacturer": "Espressif",
      "has_deep_sleep": false,
      "esphome_version": "2024.8.0",
      "project_name": "",
      "project_version": "",
      "webserver_port": 80,
      "legacy_voice_assistant_version": 0,
      "voice_assistant_feature_flags": 0,
      "legacy_bluetooth_proxy_version": 0,
      "bluetooth_proxy_feature_flags": 0,
      "suggested_area": "",
      "bluetooth_mac_address": "",
      "api_encryption_supported": false,
      "devices": [],
      "areas": [],
      "area": {
        "area_id": 0,
        "name": ""
      }
    },
    "services": [],
    "api_version": {
      "major": 1,
      "minor": 10
    },
    "sensor": [
      {
        "object_id": "temperature",
        "key": 899752953,
        "name": "temperature",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "temperature",
        "unit_of_measurement": "°C",
        "accuracy_decimals": 1,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "voltage",
        "key": 2195749573,
        "name": "Voltage",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "voltage",
        "unit_of_measurement": "V",
        "accuracy_decimals": 1,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "current",
        "key": 2037989808,
        "name": "Current",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "current",
        "unit_of_measurement": "A",
        "accuracy_decimals": 3,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "power",
        "key": 2391494160,
        "name": "Power",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "power",
        "unit_of_measurement": "W",
        "accuracy_decimals": 2,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "energy",
        "key": 1345584937,
        "name": "Energy",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "energy",
        "unit_of_measurement": "kWh",
        "accuracy_decimals": 2,
        "force_update": false,
        "state_class": 2,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "frequency",
        "key": 858531997,
        "name": "Frequency",
        "disabled_by_default": false,
        "icon": "mdi:current-ac",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "",
        "unit_of_measurement": "Hz",
        "accuracy_decimals": 1,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "power_factor",
        "key": 1214527994,
        "name": "Power Factor",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "power_factor",
        "unit_of_measurement": "",
        "accuracy_decimals": 2,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "wifi_signal",
        "key": 799351157,
        "name": "WiFi Signal",
        "disabled_by_default": false,
        "icon": "",
        "entity_category": 2,
        "device_id": 0,
        "device_class": "signal_strength",
        "unit_of_measurement": "Signal %",
        "accuracy_decimals": 0,
        "force_update": false,
        "state_class": 1,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "yesterday_energy",
        "key": 2665291562,
        "name": "Yesterday Energy",
        "disabled_by_default": false,
        "icon": "mdi:lightning-bolt",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "energy",
        "unit_of_measurement": "kWh",
        "accuracy_decimals": 3,
        "force_update": false,
        "state_class": 2,
        "legacy_last_reset_type": 0
      },
      {
        "object_id": "today_energy",
        "key": 1286684391,
        "name": "Today Energy",
        "disabled_by_default": false,
        "icon": "mdi:lightning-bolt",
        "entity_category": 0,
        "device_id": 0,
        "device_class": "energy",
        "unit_of_measurement": "kWh",
        "accuracy_decimals": 3,
        "force_update": false,
        "state_class": 2,
        "legacy_last_reset_type": 0
      }
    ],
    "text_sensor": [
      {
        "object_id": "ip",
        "key": 1752637618,
        "name": "IP",
        "disabled_by_default": false,
        "icon": "mdi:ip",
        "entity_category": 2,
        "device_id": 0,
        "device_class": ""
      },
      {
        "object_id": "uptime",
        "key": 1324261225,
        "name": "Uptime",
        "disabled_by_default": false,
        "icon": "mdi:clock-start",
        "entity_category": 0,
        "device_id": 0,
        "device_class": ""
      }
    ],
    "button": [
      {
        "object_id": "restart",
        "key": 1203400786,
        "name": "Restart",
        "disabled_by_default": false,
        "icon": "mdi:restart",
        "entity_category": 1,
        "device_id": 0,
        "device_class": "restart"
      },
      {
        "object_id": "reset_energy",
        "key": 2045456629,
        "name": "Reset Energy",
        "disabled_by_default": false,
        "icon": "mdi:cached",
        "entity_category": 0,
        "device_id": 0,
        "device_class": ""
      }
    ]
  }
}
回复

使用道具 举报

81

主题

1425

回帖

2万

积分

元老级技术达人

积分
29958
金钱
28412
HASS币
290
 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 dscao 于 2025-8-9 23:17 编辑

esphome中的实体已经有了,这里只需要一个电量值的传感器实体,其它的都是模板实体和自动化调用系统功能的。只需要将我的代码中“sensor.jia_dian_zong_dian_liang”替换为你的“sensor.energy”,应该就可以了。
回复

使用道具 举报

0

主题

97

回帖

860

积分

高级会员

积分
860
金钱
763
HASS币
0
发表于 前天 10:17 | 显示全部楼层
本帖最后由 wkbhll 于 2025-8-11 10:42 编辑

请问大佬自动化代码总是出现“Message malformed: extra keys not allowed @ data['0']”错误是怎么回事?原有设置的峰谷代码有很大问题,特别是进入第三阶梯后统计问题很大,想修正下,我已有数字电闸能统计日电量和月电量,以前都很准确的。所以特意向大佬学习下重新修改代码。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-8-13 16:38 , Processed in 0.055630 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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