- A+
所属分类:智能家居
一、简介:
将国网的电费、用电量数据接入homeassistant,实现实时追踪家庭用电量情况;并且可以将每日用电量保存到数据库,历史有迹可循。
二、项目地址:
1 |
https://github.com/ARC-MX/sgcc_electricity_new/ |
三、前提准备
01、注册国家电网
注册网址:https://www.95598.cn/osgweb/login
绑定用户
02、创建HomeAssistant Token
点击左下角头像、安全, 长期访问令牌,创建令牌。
四、部署sgcc_electricity_new
1、使用 docker-compose 安装
克隆项目到执定目录下
1 2 |
git clone https://github.com/ARC-MX/sgcc_electricity_new.git cd sgcc_electricity_new |
2、修改配置文件
修改 .env 配置文件
配置国网登录信息、HA Token。
3、运行项目
打开飞牛docker compose,新建项目,选中克隆的项目文件。
运行成功后,查看docker 运行日志,可以看到国网登录成功后的信息。
五、修改HomeAssistant 配置信息
1、修改HA配置文件
配置configuration.yaml文件, 添加如下内容,将下面中的_xxxx 替换为电号后4位。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
template: #xxx - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.electricity_charge_balance_xxx sensor: - name: electricity_charge_balance_xxx unique_id: electricity_charge_balance_xxx state: "{{ states('sensor.electricity_charge_balance_xxx') }}" state_class: total unit_of_measurement: "CNY" device_class: monetary - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.last_electricity_usage_xxx sensor: - name: last_electricity_usage_xxx unique_id: last_electricity_usage_xxx state: "{{ states('sensor.last_electricity_usage_xxx') }}" state_class: measurement unit_of_measurement: "kWh" device_class: energy - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.month_electricity_usage_xxx sensor: - name: month_electricity_usage_xxx unique_id: month_electricity_usage_xxx state: "{{ states('sensor.month_electricity_usage_xxx') }}" state_class: measurement unit_of_measurement: "kWh" device_class: energy - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.month_electricity_charge_xxx sensor: - name: month_electricity_charge_xxx unique_id: month_electricity_charge_xxx state: "{{ states('sensor.month_electricity_charge_xxx') }}" state_class: measurement unit_of_measurement: "CNY" device_class: monetary - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.yearly_electricity_usage_xxx sensor: - name: yearly_electricity_usage_xxx unique_id: yearly_electricity_usage_xxx state: "{{ states('sensor.yearly_electricity_usage_xxx') }}" state_class: total_increasing unit_of_measurement: "kWh" device_class: energy - trigger: - platform: event event_type: state_changed event_data: entity_id: sensor.yearly_electricity_charge_xxx sensor: - name: yearly_electricity_charge_xxx unique_id: yearly_electricity_charge_xxx state: "{{ states('sensor.yearly_electricity_charge_xxx') }}" state_class: total_increasing unit_of_measurement: "CNY" device_class: monetary |
2、重启HA ,并添加HomeAssistant卡片,参考配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
type: vertical-stack # 定义通用卡片样式锚点(放在 cards 列表外) card_style: &card_style card_mod: style: | ha-card { background: rgba(255, 255, 255, 0.15) !important; backdrop-filter: blur(10px) !important; border-radius: 20px !important; border: 1px solid rgba(255, 255, 255, 0.2) !important; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15) !important; transition: all 0.3s ease-in-out !important; overflow: hidden !important; } ha-card:hover { transform: translateY(-3px) scale(1.02) !important; box-shadow: 0 12px 40px rgba(31, 38, 135, 0.25) !important; background: rgba(255, 255, 255, 0.25) !important; } ha-card:active { transform: translateY(1px) scale(0.98) !important; box-shadow: 0 4px 20px rgba(31, 38, 135, 0.2) !important; } .name { font-size: 18px !important; font-weight: 600 !important; color: var(--primary-text-color) !important; text-align: center !important; margin: 12px 0 !important; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important; } .state { font-size: 16px !important; color: var(--secondary-text-color) !important; text-align: center !important; font-weight: 500 !important; margin-bottom: 12px !important; } cards: # 第一部分:每日用电量与电费余额图表 - type: custom:mini-graph-card entities: - entity: sensor.last_electricity_usage_0767 name: 国网每日用电量 aggregate_func: first show_state: true show_points: true icon: mdi:lightning-bolt-outline - entity: sensor.electricity_charge_balance_0767 name: 电费余额 aggregate_func: first show_state: true show_points: true color: "#e74c3c" icon: mdi:cash y_axis: secondary group_by: date hour24: true hours_to_show: 240 lower_bound: 0 upper_bound: 10 lower_bound_secondary: 0 upper_bound_secondary: 120 show: icon: false <<: *card_style # 复用通用样式 # 第二部分:上月电费与用电量 - type: horizontal-stack cards: - type: sensor entity: sensor.month_electricity_charge_0767 detail: 1 name: 上月电费 icon: "" unit: 元 graph: none <<: *card_style # 复用通用样式 - type: sensor entity: sensor.month_electricity_usage_0767 detail: 1 name: 上月用电量 unit: 度 icon: mdi:lightning-bolt-outline graph: none <<: *card_style # 复用通用样式 # 第三部分:今年总用电量与总费用图表 - type: horizontal-stack cards: - type: custom:mini-graph-card entities: - entity: sensor.yearly_electricity_usage_0767 name: 今年总用电量 aggregate_func: first show_state: true show_points: true group_by: date hour24: true hours_to_show: 240 animate: true <<: *card_style # 复用通用样式 - type: custom:mini-graph-card entities: - entity: sensor.yearly_electricity_charge_0767 name: 今年总用电费用 aggregate_func: first show_state: true show_points: true group_by: date hour24: true hours_to_show: 240 animate: true <<: *card_style # 复用通用样式 |
3、 效果演示:
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-