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

 找回密码
 立即注册
查看: 1583|回复: 9

[技术探讨] [求助]国家电网每天用电量的apexcharts-card柱状图生成的问题

[复制链接]

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
发表于 2024-5-11 23:13:48 | 显示全部楼层 |阅读模式
本帖最后由 hw2000 于 2024-5-12 10:12 编辑

目前,通过本站https://bbs.hassbian.com/thread-25214-1-1.html有了日用电量的传感器,想用apexcharts-card制作日用柱状图
但现在国网更新数据时延迟的,“日用电量“不是实时更新.所以我想采用sensor.state_grid_XX00XXX00398_daily_lasted_date 用电日期;sensor.state_grid_XX00XXXX00398_daily_ele_num 用电电量
生成一个新的传感器来作为apexcharts-card的实体。看了下本站其他一些帖子,这个新传感器 (相当于一个包含历史数据的传感器)的属性this_month_by_day需要有类似以下的格式才可以做出柱状图

state_class: total
unit_of_measurement: kWh
device_class: energy
icon: mdi:lightning-bolt
friendly_name: 本月用电量
this_month_by_day:
- date: '2023-01-01'
  kwh: 4.69
- date: '2023-01-02'
  kwh: 5.01
- date: '2023-01-03'
  kwh: 5.39
- date: '2023-01-04'
  kwh: 4.17
- date: '2023-01-05'
  kwh: 2.92

初步想法时创建一个每天定时更新并且将用电日期和电量追加到属性中的传感器,但具体如何实现请教各位大佬?谢谢
回复

使用道具 举报

14

主题

243

帖子

1597

积分

金牌会员

Rank: 6Rank: 6

积分
1597
金钱
1354
HASS币
0
发表于 2024-5-12 01:07:56 | 显示全部楼层
南方电网的插件在 当月电量 和 上月电量 这两个传感器的属性中是会有每天的历史电量的,柱状图就是根据这个属性来生成的
国网的不知道有没有,你先看下有没有现成的
回复

使用道具 举报

32

主题

1065

帖子

4946

积分

论坛元老

Rank: 8Rank: 8

积分
4946
金钱
3866
HASS币
90
发表于 2024-5-12 02:48:46 | 显示全部楼层
直接用utility meter https://www.home-assistant.io/integrations/utility_meter/ HA会自带柱状图
我家全屋智能的HA设置 https://github.com/relliky/Tais_Home_Assistant_Config
回复

使用道具 举报

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
 楼主| 发表于 2024-5-12 06:50:10 | 显示全部楼层
TestUser123 发表于 2024-5-12 01:07
南方电网的插件在 当月电量 和 上月电量 这两个传感器的属性中是会有每天的历史电量的,柱状图就是根据这个 ...

谢谢回复,确实南网的像你所说是自带历史电量的,但国网这个不带。
回复

使用道具 举报

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
 楼主| 发表于 2024-5-12 06:52:52 | 显示全部楼层
本帖最后由 hw2000 于 2024-5-12 07:26 编辑

谢谢回复,因为国网这个日用电量是从APP中抓取过来的,并不是实时的,应该是不能用这个的吧
回复

使用道具 举报

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
 楼主| 发表于 2024-5-12 07:26:07 | 显示全部楼层
本帖最后由 hw2000 于 2024-5-12 10:15 编辑

我现在试想用下面的步骤解决,但在第三步就不知如何处理数据了。请各位大佬看看我这思路是否正确。
1.用辅助功能定义一个输入文本
input_text:
electricity_usage_history:
   name: Electricity Usage History
   max: 5000  # (后期可以做个自动化每月初清零)
2.建立一个自动化来每天追加新的数据到输入文本
automation:
  - alias: "Append Daily Electricity Usage to History"
    trigger:
      - platform: time
        at: "21:00:00"  # 每天21点触发
    action:
      - service: input_text.set_value
        target:
          entity_id: input_text.electricity_usage_history
        data:
          value: >
            {% set history = states('input_text.electricity_usage_history') %}
            {% set new_entry = 'Date: ' + states('sensor.state_grid_2XXXXXX00398_daily_lasted_date') + ', kWh: ' + states('sensor.state_grid_2XXXXX400398_daily_ele_num') %}
            {{ history + ' | ' + new_entry if history else new_entry }}
这个自动化将检查输入文本的当前值,并在其后每天追加一个新的数据条目。这个条目包括日期和用电量。输出的状态值是这样的形式:Date: 2024-05-09, kWh: 10.05 | Date: 2024-05-10, kWh: 10.15…….
3. 采用模板传感器(Template Sensor)建立新的传感器,并从第2步创建的输入文本实体状态中提取数据作为这个新传感器属性。并且建立一个自动化,每天定时追加数据到属性中,从而建立历史数据。
这一步就不知怎么办了,




回复

使用道具 举报

14

主题

243

帖子

1597

积分

金牌会员

Rank: 6Rank: 6

积分
1597
金钱
1354
HASS币
0
发表于 2024-5-12 10:32:32 | 显示全部楼层
本帖最后由 TestUser123 于 2024-5-12 12:24 编辑
hw2000 发表于 2024-5-12 07:26
我现在试想用下面的步骤解决,但在第三步就不知如何处理数据了。请各位大佬看看我这思路是否正确。
1.用辅 ...

这个问题我前几天也是学习中。然后在其它坛友的帮助下成功处理了,我给你一个建议:
1.在NR中建立一个定时触发的节点,然后使用函数节点处理成下面的格式
    msg.payload = {
        data: {
            state: XXX
            attributes: {
                history: data.map(item => ({
                    date: item.date
                    kwh: Number(item.kwh)
                }))
            }
        }
    };
2.将payload输成到NR中的sensor节点,注意指定state和attributes的位置,就能生成带属性的新实体了
3.你也可以通过临时数组的方式(或用get history等方式),将之前若干天的数据临时生成一次。
4.之后每天定时插入新数据(读取旧传感器的属性,函数处理新数组,保留一定数目)
回复

使用道具 举报

11

主题

184

帖子

1583

积分

金牌会员

Rank: 6Rank: 6

积分
1583
金钱
1399
HASS币
0
发表于 2024-5-12 12:10:56 | 显示全部楼层
回复

使用道具 举报

3

主题

50

帖子

532

积分

高级会员

Rank: 4

积分
532
金钱
482
HASS币
0
 楼主| 发表于 2024-5-12 21:59:29 | 显示全部楼层
TestUser123 发表于 2024-5-12 10:32
这个问题我前几天也是学习中。然后在其它坛友的帮助下成功处理了,我给你一个建议:
1.在NR中建立一个定时 ...

谢谢回复,之前搜索到你的贴子,有很多启发。看来需要学习下NR了
回复

使用道具 举报

5

主题

28

帖子

800

积分

高级会员

Rank: 4

积分
800
金钱
772
HASS币
0
发表于 2024-5-12 23:22:38 来自手机 | 显示全部楼层
的确有问题,虽然能实现,但有时电网几天不更新数据,然后一次性更新,这时无论用日用电量或者累计用电差值来做柱状图都有问题
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 02:32 , Processed in 0.103362 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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