HAN

2 minute read

Đây là công tơ điện tử giá rẻ tôi sử dụng module PZEM004T kết hợp với ESP8266 và Home Assistant. Với chức năng nhắn tin qua Zalo nha.

Nút reset tổng số điện

Dùng để tạo một automation, khi đến ngày bên điện lực đi ghi số nó sẽ tự reset bộ đếm

- platform: mqtt
  name: "PZEM004T-EnergyReset3"
  icon: mdi:restart
  command_topic: "cmnd/DVES_005784/EnergyReset3"
  qos: 1
  payload_on: "0"
  payload_off: "0"

Tính số tiền

Để hiển thị số tiền phải trả dựa theo tổng số điện tiêu thụ. Cái này mình chưa nhân 10% VAT nhé

- platform: mqtt   
  name: "Tiền điện"  
  icon: mdi:cash-usd
  state_topic: "tele/DVES_005784/SENSOR"
  unit_of_measurement: "K"   
  value_template: >
    {% set money_power_all_temp = value_json['ENERGY'].Total | float %}
    {% set price0 = 1678 %}
    {% set price50 = 1734 %}
    {% set price100 = 2014 %}
    {% set price200 = 2536 %}
    {% set price300 = 2834 %}
    {% set price400 = 2927 %}
    {% if money_power_all_temp < 50 %}
      {{ ((money_power_all_temp  * price0)/1000)| round(0) }}
    {% elif (money_power_all_temp >= 50 and money_power_all_temp < 100) %}
      {{ ((50 * price0 + (money_power_all_temp - 50) * price50) / 1000)| round(0)}}
    {% elif (money_power_all_temp >= 100 and money_power_all_temp < 200) %}
      {{ ((50 * price0 + 50 * price50 + (money_power_all_temp - 100) * price100) / 1000)| round(0)}}
    {% elif (money_power_all_temp >= 200 and money_power_all_temp < 300) %}
      {{ ((50 * price0 + 50 * price50 + 100 * price100 + (money_power_all_temp - 200) * price200) / 1000)| round(0)}}
    {% elif (money_power_all_temp >= 300 and money_power_all_temp < 400) %}
      {{ ((50 * price0 + 50 * price50 + 100 * price100 + 100 * price200 + (money_power_all_temp - 300) * price300) / 1000)| round(0)}}
    {% elif money_power_all_temp >= 400  %}
      {{ ((50 * price0 + 50 * price50 + 100 * price100 + 100 * price200 + 100 * price300 + (money_power_all_temp - 179) * price400) / 1000)| round(0)}}
    {% endif %} 

Code automation tự reset số điện và gửi thông báo đến Zalo

- id: '1556158193313'
  alias: Đếm lại số điện hàng tháng (ngày 12)
  trigger:
  - at: 01:00:00
    platform: time
  condition:
  - condition: template
    value_template: '{{ now().day == 12 }}'
  action:
  - data_template:
      message: 'Số điện dùng trong tháng {{ now().month }} là: {{ states("sensor.pzem004t_total") }} kWh. Số tiền tạm tính là: {{ states("sensor.tien_dien") }} K.'
    service_template: fbm_pusher.send
  - data:
      entity_id: switch.pzem004t_energyreset3
    service: switch.turn_on