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

 找回密码
 立即注册
查看: 3505|回复: 23

[插件集成] 内蒙古电费查询插件 (v1.0.0支持图形界面添加账户)

[复制链接]

6

主题

264

帖子

1184

积分

金牌会员

Rank: 6Rank: 6

积分
1184
金钱
920
HASS币
10
发表于 2023-10-8 11:18:02 | 显示全部楼层 |阅读模式
本帖最后由 NiaoBlush 于 2025-2-21 11:13 编辑

内蒙古电费查询


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


数据说明

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

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

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

安装

HACS安装(推荐):可以通过在HACS中搜索插件名`IMPC Energy`进行安装


手动安装:
以从这里下载最新版本
把压缩包内容解压到`custom_components/impc_energy`文件夹下

安装后需要重启hass


配置

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

  • 进入 设置 -> 设备与服务 -> 添加集成(右下角)
  • 在弹出的对话框中搜索 `IMPC Energy` 并点击
  • select_integration.png
  • 在弹出的配置向导中输入户号及户名
  • 如果不输入户名, 则集成会尝试使用获取到的户名(多数情况下为住址)作为户名
  • config_helper.png
  • 等待配置完成
  • 系统会自动生成实体名称, 如有需要可自行修改


如果您从 `v0.X.X` 旧版本升级到 `v1.X.X` 及以上版本,可能需要注意以下事项:

- 旧版本配置文件配置方式已被移除,请改用图形界面添加。
- 由于`entity_id`与`unique_id`的问题,旧版实体与新版不兼容,需要删除旧版实体。
- 需要删除配置文件中的`impc_energy`配置
- 如果无法删除旧版实体,请尝试删除旧版`IMPC Energy`集成,重启HomeAssistant,再重新安装。




传感器
插件会为每个家庭添加两个传感器 剩余电费 与 历史
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/)








config.png

评分

参与人数 2金钱 +25 HASS币 +10 收起 理由
gfl2428 + 5 更新可以用了,赞
+ 20 + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

1

主题

247

帖子

1094

积分

论坛积极会员

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

使用道具 举报

0

主题

16

帖子

104

积分

注册会员

Rank: 2

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

使用道具 举报

0

主题

11

帖子

240

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

16

帖子

82

积分

注册会员

Rank: 2

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

使用道具 举报

6

主题

264

帖子

1184

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

0

主题

16

帖子

82

积分

注册会员

Rank: 2

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

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

使用道具 举报

0

主题

16

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
66
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

主题

264

帖子

1184

积分

金牌会员

Rank: 6Rank: 6

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

方便私聊我户号吗?
回复

使用道具 举报

0

主题

16

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
66
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, 2025-3-5 00:55 , Processed in 1.241373 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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