Powerpal smart energy monitor

Same here. Just discovered it.

1 Like

If that is the issue, then there is a fixed merged into ESPHOME dev about an hour ago it seems

1 Like

can someone please post the latest working esp32 config for ESPHome 2025.6.0?

Hi People,
I have a dedicated esp32 for the powerpal HACS intergration. It’s all up and running, my bluetooth proxy can see the powerpal device . But i don’t get any readings. All the entities read as unknown. Been like this for days. I got some readings for half a day, got all excited and nothing since then. Tried with the powerpal app on,off, working int he background, completely removed from phone, I’m not sure what to do from here. Any help would be greatly appreciated.
I’m using the HACS from @muneeb1990.

Easy fix for now until a fix for the unknown error is found would be to downgrade your esphome to 2025.5.3 version.

That’s what I did for now.

Can confirm that ESPHOME 2025.6.1 has the fixes. All working fine for me.

1 Like

can you please post your esp32 yaml for the node?

Could you share your YAML?

esphome:
  name: powerpal-gateway
  friendly_name: Powerpal Gateway #THE FRIENDLY NAME OF YOUR ESP Device
  on_boot:
    then:
      - lambda: |-
           id(powerpal_ble_sensor)->daily_pulses_ = id(powerpal_daily_pulses_backup);

esp32:
  board: esp32dev
  framework:
    type: arduino

external_components:
  - source:
     type: git
     url: https://github.com/muneeb1990/esphome
     ref: powerpal_ble
    components: [ powerpal_ble ]

time:
  - platform: homeassistant
    id: homeassistant_time

ble_client:
  - mac_address: XX:XX:XX:XX:XX:XX #PUT YOUR MAC ADDRESS HERE - NO QUOTES IS IMPORTANT
    id: powerpal

button:
  - platform: restart
    name: "Restart"
    icon: "mdi:restart"

globals:
  - id: powerpal_daily_pulses_backup
    type: int
    restore_value: true

http_request:
  id: powerpal_cloud_uploader
  verify_ssl: false
  
sensor:
  - platform: powerpal_ble
    id: powerpal_ble_sensor
    ble_client_id: powerpal
    power:
      name: "Powerpal Power"
    daily_energy:
      name: "Powerpal Daily Energy"
    daily_pulses:
      name: "Powerpal Daily Pulses"
    energy:
      name: "Powerpal Total Energy"
    battery_level:
      name: "Powerpal Battery"
    watt_hours:
       name: "Powerpal Watt Hours_json"
    cost:
       name: "Powerpal Cost_json"
    timestamp:
       name: "Powerpal Timestamp_json"
    pulses:
       name: "Powerpal Pulses_json"
    pairing_code: XXXXXX #PUT THE PAIRING CODE FOUND WITH YOUR POWERPAL HERE
    notification_interval: 1
    pulses_per_kwh: 1000
    time_id: homeassistant_time
    #powerpal_apikey: XXX
    # powerpal_device_id: XXX
    # http_request_id: powerpal_cloud_uploader
    # cost_per_kwh: 0.30 #dollars per kWh

  - platform: homeassistant
    id: ha_daily_pulses
    entity_id: sensor.powerpal_daily_pulses
    on_value:
     then:
       - globals.set:
          id: powerpal_daily_pulses_backup
          value: !lambda 'return int(x);'

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret esphome_api_encryption_key

ota:
  platform: esphome
  password: “XXX”

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Powerpal Fallback Hotspot"
    password: “XXX”

preferences:
  flash_write_interval: 10min
1 Like

I never did manage to get uploader working but it’s working fine otherwise.

NOTE 2025.6.0 was broken for me, 2025.6.1 has the fixes introduced.

1 Like

Since the upgrade, the intergration only works when a device that uses high amount of energy like dishwasher or washing machine is turned on. I get readings for about 3 or 4 hours and then nothing. Wish it would just work 24/7. Getting fed up and ready to ditch this project.

That’s unlikely to be esphome version related. You can always downgrade the esphome version to test your theory.

I did have an issue with my electricity metre where it stopped flashing the light for a good 6 months or more. I got 2 warranty replacement powerpals to during that time then gave up on it completely.

Until I was doing a manual metre check a few months later and noticed the light was back to normal flashing mode.

Hi Guys,
i was using the powerpal cloud uploader automation using the rest_command feature which was working perfectly fine until now.

After upgrading HA to 2025.7.0 and ESPHome to 2025.6.3 I realised the cloud uploader has stopped working.

i am getting a 400 Bad Request error in the logs. is anyone else getting it too?

 [homeassistant.components.rest_command] Error. Url: https://readings.powerpal.net/api/v1/meter_reading/0004xxxx. Status code 400. Payload: b'[ {"cost":"0.0","is_peak": false, "pulses":"0.0", "timestamp": 1751591220, "watt_hours": "0.0" } ]'
rest_command:
  my_request:
    url: https://readings.powerpal.net/api/v1/meter_reading/0004xxxx
    method: POST
    headers:
      authorization: "authorization key"
      accept: ""
    payload: >-
      [ {"cost":{{ states.sensor.esphome_powerpal_cost_json.state | to_json }},"is_peak": false, "pulses":{{ states.sensor.esphome_powerpal_pulses_json.state | to_json }}, "timestamp": {{ as_timestamp(now(),0) | int(0) | to_json }}, "watt_hours": {{ states.sensor.esphome_powerpal_watt_hours_json.state | to_json }} } ]
    content_type: "application/json"
    verify_ssl: true

Yes, I am on HA core 2025.7.1 and ESPHome 2025.6.3 and I have been seeing multiple reports of a similar error over the past couple of days …

Error. Url: https://readings.powerpal.net/api/v1/meter_reading/0002XXxX. Status code 400. Payload: b'[ {"cost":0.00323840021155775,"is_peak": false, "pulses":16.0, "timestamp": 1751693160 , "watt_hours": 16.0 } ]'

I have no idea what it really means, nor how to fix it … :frowning_face:

1 Like

ok good, so it’s not a local issue to me.