请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 1754|回复: 46

[新奇玩法] 电费插件(Node-Red流)-广东南方电网

[复制链接]

2

主题

65

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
金钱
323
HASS币
0
发表于 2022-9-17 15:37:45 | 显示全部楼层 |阅读模式
本帖最后由 arthurfsy 于 2022-9-29 12:58 编辑

Changelog:
  • 2022/9/27 flow更新:增加当月每日记录2(date、power为数组格式,配合apexcharts卡片使用),分享自用卡片(先下载apexcharts,然后用yaml自定义)
  • type: vertical-stack
    cards:
      - type: horizontal-stack
        cards:
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.lastdate_power
            name: 最近用电
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.curmonth_power
            name: 本月用电
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.curmonth_fee
            name: 本月电费
      - type: horizontal-stack
        cards:
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.lastmonth_power
            name: 上月用电
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.lastmonth_fee
            name: 上月电费
      - type: horizontal-stack
        cards:
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.year_power
            name: 今年用电
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.year_fee
            name: 今年电费
      - type: horizontal-stack
        cards:
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.lastyear_power
            name: 去年用电
          - hours_to_show: 24
            graph: none
            type: sensor
            detail: 1
            entity: sensor.lastyear_fee
            name: 去年电费
      - type: custom:apexcharts-card
        header:
          show: true
          title: 当月用电趋势图
        graph_span: 31d
        span:
          start: month
        series:
          - entity: sensor.everyday_power2
            data_generator: |
              return entity.attributes.date.map((item, index) => {
               return [new Date(item).getTime(), entity.attributes.power[index]];
              });
            extend_to: false
            float_precision: 2
            name: 每日电量(kWh)
      - type: custom:apexcharts-card
        header:
          show: true
          title: 今年往月用电趋势图
        graph_span: 1y
        span:
          start: year
        series:
          - entity: sensor.everymonth_power
            data_generator: |
              return entity.attributes.yearmonth.map((item, index) => {
               return [new Date(item).getTime(), entity.attributes.power[index]];
              });
            extend_to: false
            float_precision: 2
            name: 每月电量(kWh)
          - entity: sensor.everymonth_power
            data_generator: |
              return entity.attributes.yearmonth.map((item, index) => {
               return [new Date(item).getTime(), entity.attributes.fee[index]];
              });
            extend_to: false
            float_precision: 2
            name: 每月电费(元)
      - type: custom:apexcharts-card
        header:
          show: true
          title: 去年往月用电趋势图
        graph_span: 1y
        span:
          start: year
          offset: '-1y'
        series:
          - entity: sensor.lastyeareverymonth_power
            data_generator: |
              return entity.attributes.yearmonth.map((item, index) => {
               return [new Date(item).getTime(), entity.attributes.power[index]];
              });
            extend_to: false
            float_precision: 2
            name: 去年每月电量(kWh)
          - entity: sensor.lastyeareverymonth_power
            data_generator: |
              return entity.attributes.yearmonth.map((item, index) => {
               return [new Date(item).getTime(), entity.attributes.fee[index]];
              });
            extend_to: false
            float_precision: 2
            name: 去年每月电费(元)
    

  • 2022/9/19 flow更新:增加当月每日记录、月份控制(避免跨越需要更新,当然,如果cookies撑不到一个月就只能再次抓包了)
  • 2022/9/18 flow更新:新增今年、去年电量统计


主要借鉴:
也分享一个电费查询(NR)-安徽 - 『Node-RED』综合讨论区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz! (hassbian.com)
NR运行效果:
注意:flow里面的headers、payload部分数据是用XXXX代替,仅供参考格式。使用前需要自己抓包填入!

微信截图_20220919150240.png

NR流使用主要流程
1.在HASS安装Node-red集成
2.手机下载“南网在线”,登陆APP,打开“日电量”页面
日账单.png 3.通过Stream抓包(对应NR的msg.headers、msg.payload),每个链接的headers、payload都要填

主要是以下3个请求:
  • https://95598.csg.cn/ucs/ma/zt/charge/queryDayElectricByMPoint
  • https://95598.csg.cn/ucs/ma/zt/charge/queryLatelyBillElec
  • https://95598.csg.cn/ucs/ma/zt/charge/getAnalyzeFeeDetails

2222.png

3.将抓到的headers、payload数据填入NR流的“获取XXXX”的function函数中(注意每个请求对应的数据不完全一样),点击运行(HOMEASSISTANT需要改为自己系统的),输入完后点击部署
4.实体名称说明
最近日电量:LastDate_Power当月每日明细:EveryDay_Power(9/19更新,具体每日数据放在属性里)
当月每日明细2:EveryDay_Power2(9/27更新,date、power为数组格式,配合apexcharts卡片使用)
当月电量:CurMonth_Power
预计当月电费:CurMonth_Fee
上月电量:LastMonth_Power
上月电费:LastMonth_Fee(9/27更新,从原来的“上月电量”属性中拆分)
今年总电量:year_Power(9/18更新)
今年总电费:year_Fee(9/27更新,从原来的“今年总电量”属性中拆分)
去年总电量:lastYear_Power(9/18更新)
去年总电费:lastYear_Fee(9/27更新,从原来的“去年总电量”属性中拆分)

5.NR流填入说明:
深圳地区是春冬季、电量总量阶梯收费,如果是广东其他地区,可以通过以下官方链接查询单价,并修改“阶梯电费设置”的function
南方电网95598 (csg.cn)

南方电网抓包.zip (4.72 KB, 下载次数: 124)








微信截图_20220927114051.png

评分

参与人数 5金钱 +50 收起 理由
无厘头 + 1 我来瀚思就为看你!
jole + 5 论坛有你更精彩!
eric + 16 感谢楼主分享!银子奉上了!!感谢感谢!.
+ 20 感谢楼主分享!
hyq + 8 膜拜大神!

查看全部评分

回复

使用道具 举报

0

主题

57

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
金钱
419
HASS币
0
发表于 2022-9-17 15:39:55 | 显示全部楼层
支持~~~~
回复

使用道具 举报

2

主题

209

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
610
HASS币
0
发表于 2022-9-17 16:54:34 | 显示全部楼层
求抓包教程。不会抓包干瞪眼!
回复

使用道具 举报

2

主题

209

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
610
HASS币
0
发表于 2022-9-17 16:55:37 | 显示全部楼层
求抓包教程。不会抓包干瞪眼!
回复

使用道具 举报

2

主题

65

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
金钱
323
HASS币
0
 楼主| 发表于 2022-9-17 17:38:13 来自手机 | 显示全部楼层
hyq 发表于 2022-9-17 16:54
求抓包教程。不会抓包干瞪眼!

抓包需要iphone下载stream这个App
回复

使用道具 举报

2

主题

209

帖子

819

积分

高级会员

Rank: 4

积分
819
金钱
610
HASS币
0
发表于 2022-9-17 17:42:12 | 显示全部楼层
arthurfsy 发表于 2022-9-17 17:38
抓包需要iphone下载stream这个App

安卓的不行?
回复

使用道具 举报

0

主题

77

帖子

270

积分

中级会员

Rank: 3Rank: 3

积分
270
金钱
193
HASS币
0
发表于 2022-9-17 19:32:06 | 显示全部楼层
请教楼主,已经抓包了,也修改了header, payload,NODE里面没有显示错误,但是卡片里面看不到电量的数据,请问怎么从NODE RED里面看下数据是否正常?
回复

使用道具 举报

2

主题

153

帖子

1641

积分

金牌会员

Rank: 6Rank: 6

积分
1641
金钱
1488
HASS币
0
发表于 2022-9-17 19:37:45 来自手机 | 显示全部楼层
谢谢,一直能有大神抓南方电网的
回复

使用道具 举报

0

主题

77

帖子

270

积分

中级会员

Rank: 3Rank: 3

积分
270
金钱
193
HASS币
0
发表于 2022-9-17 19:55:23 | 显示全部楼层
刚看了,已经取到数据了,非常感谢分享。
回复

使用道具 举报

2

主题

65

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
金钱
323
HASS币
0
 楼主| 发表于 2022-9-18 01:04:43 | 显示全部楼层
chenguy2022 发表于 2022-9-17 19:32
请教楼主,已经抓包了,也修改了header, payload,NODE里面没有显示错误,但是卡片里面看不到电量的数据, ...

实体(蓝色的)下面有数字显示就是正常获取了,如果在HA里面看不到就是HA和NR之间没有通
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2022-9-30 16:54 , Processed in 0.065371 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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