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

 找回密码
 立即注册
查看: 1179|回复: 18

[插件集成] 内蒙古电费查询插件 (v0.2.0新增卡片配置)

[复制链接]

6

主题

260

帖子

1143

积分

金牌会员

Rank: 6Rank: 6

积分
1143
金钱
883
HASS币
10
发表于 2023-10-8 11:18:02 | 显示全部楼层 |阅读模式
本帖最后由 NiaoBlush 于 2024-4-9 19:18 编辑

内蒙古电费查询


查询内蒙古住户的电费及历史电量、电费情况
项目地址


数据说明

数据来自内蒙古电力公司公众号

根据公众号中的说法
查询余额为结算系统余额=上月度结转电费+本月缴纳电费,实际电费余额以表计显示为准。

所以,余额不是实时余额,仅供参考。

安装

可以通过HACS或手动安装
从HACS中搜索插件名 impc_energy
或者从这里下载最新版本

安装后需要重启hass


配置

只需知道自己的户号,即可开始配置

  • configuration.yaml中,增加配置:户号需要用引号括住
config.png


其中`name`字段可选,如果不填写就会使用获取到的户名(多数情况下为住址)作为家庭名称

  • 重启hass


传感器
插件会为每个家庭添加两个传感器 剩余电费 与 历史
1.png

电费余额是结算余额,所以理论上数值一个月才会改变一次(交了电费也可能改变,没有测试)
2.png

过去12个月的历史数据(用电量与电费)放到了一个传感器里
3.png

卡片示例

利用图表卡片 apexcharts-card以实现如下的效果:
20240409174425.png

(x轴步长没有生效可能是这个图表库的问题)


卡片配置:
type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: markdown
        content: |-
          {% set home=states.sensor.impc_energy_01xxxxxxx70_balance %}
          ### {{home.state}}
          当前余额(元)
      - type: markdown
        content: |-
          {% set home=states.sensor.impc_energy_0110xxxxxx970_history %}
          ### {{home.attributes['current']['bill']}}
          本期总电费(元)
      - type: markdown
        content: |-
          {% set home=states.sensor.impc_energy_011xxxxxxx970_history %}
          ### {{home.attributes['current']['consumption']}}
          本期总电量(kW⋅h)
  - type: custom:apexcharts-card
    header:
      show: true
      title: 用电历史
      show_states: false
      colorize_states: true
    graph_span: 1y
    span:
      offset: '-1month'
    apex_config:
      legend:
        position: top
      xaxis:
        stepSize: 1
        tooltip:
          enabled: false
        labels:
          datetimeFormatter:
            year: ''
            month: M月
      tooltip:
        x:
          format: yyyy年M月
    series:
      - name: 历史电量
        entity: sensor.impc_energy_01xxxxxxxxx70_history
        type: column
        color: 3498DB
        unit: kW⋅h
        show:
          datalabels: false
          legend_value: false
        data_generator: |
          const data=[];
          const attributes=entity.attributes;
          for(let item in attributes){
            if(item.length==6&&item.startsWith("20")){
              //202403
              const timeStr=`${item.slice(0, 4)}-${item.slice(-2)}-01T00:00:00`;
              const dataObj=new Date(timeStr);
              data.push([dataObj.getTime(),attributes[item]["consumption"]]);
            }
          }
          //console.log("data1", data);
          return data;
      - name: 历史电费
        entity: sensor.impc_energy_011xxxxxx970_history
        color: FF9F0b
        unit: 元
        extend_to: false
        show:
          datalabels: false
          legend_value: false
        data_generator: |
          const data=[];
          const attributes=entity.attributes;
          for(let item in attributes){
            if(item.length==6&&item.startsWith("20")){
              //202403
              const timeStr=`${item.slice(0, 4)}-${item.slice(-2)}-01T00:00:00`;
              const dataObj=new Date(timeStr);
              data.push([dataObj.getTime(),attributes[item]["bill"]]);
            }
          }
          //console.log("data2", data);
          return data;



其他

没有找到现成能用的,就自己写一个吧。

我是搞Java的,Python勉强能看懂,但是还是有些蛋疼的 (╯‵□′)╯︵┻━┻

这里鸣谢 @involute 大神,参考了他[帖子](https://bbs.hassbian.com/thread-13820-1-1.html)中的代码

同样感谢大神@Aaron Godfrey 提供的[插件开发教程](https://aarongodfrey.dev/home%20 ... m_component_part_1/)






评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

1

主题

245

帖子

1091

积分

论坛积极会员

积分
1091
金钱
846
HASS币
10
发表于 2023-10-8 13:21:02 | 显示全部楼层
给大神点赞!!!!
回复

使用道具 举报

0

主题

15

帖子

84

积分

注册会员

Rank: 2

积分
84
金钱
69
HASS币
0
发表于 2023-10-13 22:04:49 | 显示全部楼层
谢谢,大佬
回复

使用道具 举报

0

主题

3

帖子

62

积分

注册会员

Rank: 2

积分
62
金钱
59
HASS币
0
发表于 2024-2-27 15:32:38 | 显示全部楼层
有点东西,我们的物理位置很接近啊
回复

使用道具 举报

0

主题

11

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
41
HASS币
0
发表于 2024-3-18 05:17:24 来自手机 | 显示全部楼层
新安装 ,输入01开头的户号,查询不到信息,输入外地02开头户号可以查询到电费
回复

使用道具 举报

6

主题

260

帖子

1143

积分

金牌会员

Rank: 6Rank: 6

积分
1143
金钱
883
HASS币
10
 楼主| 发表于 2024-3-18 16:40:03 | 显示全部楼层
gfl2428 发表于 2024-3-18 05:17
新安装 ,输入01开头的户号,查询不到信息,输入外地02开头户号可以查询到电费 ...

试试看在内蒙古电力公司公众号用同样的户号有没有数据
回复

使用道具 举报

0

主题

11

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
41
HASS币
0
发表于 2024-3-18 16:53:52 | 显示全部楼层
NiaoBlush 发表于 2024-3-18 16:40
试试看在内蒙古电力公司公众号用同样的户号有没有数据

有数据,只不过公众号要求绑定手机号才能看
回复

使用道具 举报

0

主题

11

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
41
HASS币
0
发表于 2024-3-18 16:57:44 | 显示全部楼层
本帖最后由 gfl2428 于 2024-3-18 17:00 编辑

1710752172771.jpg
WX20240318-下午45935@2x.png
可以看到,上面2条数据是我输入02开头户号,获得正确数据;下面2条数据我输入户号是01开头,识别出来是1***的号码,且获取数据是0。

回复

使用道具 举报

6

主题

260

帖子

1143

积分

金牌会员

Rank: 6Rank: 6

积分
1143
金钱
883
HASS币
10
 楼主| 发表于 2024-3-18 17:08:17 | 显示全部楼层
gfl2428 发表于 2024-3-18 16:57
可以看到,上面2条数据是我输入02开头户号,获得正确数据;下面2条数据我输入户号是01开头,识别出来是1* ...

方便私聊我户号吗?
回复

使用道具 举报

0

主题

11

帖子

52

积分

注册会员

Rank: 2

积分
52
金钱
41
HASS币
0
发表于 2024-3-18 17:13:20 | 显示全部楼层
本帖最后由 gfl2428 于 2024-3-18 17:21 编辑
NiaoBlush 发表于 2024-3-18 17:08
方便私聊我户号吗?

012********02权限不够私聊
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-3 02:58 , Processed in 0.098875 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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