Inaccurate status reporting for washing machine & dryer due to fluctuating power values

Hello everyone,

I’m trying to integrate my dryer and washing machine into Home Assistant using their built-in power meters. My goal is to reliably determine the status of each appliance and receive notifications, for example, when the dryer is finished or the washing machine is running.

Problem:

Both appliances have three distinct operating states that can be identified based on their power consumption.

Here’s an example for the dryer:

  • Off: <= 1 watt
  • Idle/Standby: > 1 watt & < 10 watts
  • On/Running: >= 11 watts

Unfortunately, the power meter readings fluctuate slightly during operation. This means that even when the dryer is running (and should be consuming >11 watts), it might briefly report a value like 10 watts. This causes false status changes and inaccurate notifications.

To smooth out these fluctuations, I’ve already tried using the median sensor. While this helped somewhat, it didn’t completely solve the issue. Calculating the average power consumption over a longer period using get_history also didn’t work as expected. It seems Home Assistant only records the history of entities when their values change. For example, if the power consumption is 100 watts for 5 minutes and then drops to 1 watt for 1 second, only those two values are stored. This results in an inaccurate average of 50 watts.

Question:

Is there a way to make the status reporting for my washing machine and dryer more reliable despite these power fluctuations?

Has anyone else experienced similar issues and found a solution?

I’m open to solutions that can be implemented directly in Home Assistant or through Node-RED.

Any advice would be greatly appreciated!

Best regards

What power meter is this? Technology and update frequency? Best is usually to have a very high update interval on the device (like 0.1s) and actually have the calculations and states directly done on the power meter hardware and just exposed to HA like in this (esphome) example :point_down:

ZigBee?

1 Like

Can’t you add a for: xx seconds in the automation?

2 Likes

What I did watch the Power Level

above 14 must be running

below 5 could be finish…

so

- id: e0be077b-0f44-4dde-bd9b-ba134dc055e7
  alias: Set washing machine finished when power drops
  triggers:
  - entity_id: sensor.washing_power
    below: 5
    trigger: numeric_state
  conditions:
  - condition: and
    conditions:
    - condition: state
      entity_id: input_select.washing_machine_status
      state: Running
  actions:
  - data:
      entity_id: input_select.washing_machine_status
      option: Finishing
    action: input_select.select_option

now if the Finishing has a that state for more than 8Mins

- id: d623804a-bebc-47ba-9e27-17c919b8127b
  alias: Set washing machine clean after timeout
  triggers:
  - entity_id: input_select.washing_machine_status
    to: Finishing
    for:
      minutes: 8
    trigger: state
  conditions:
  - condition: and
    conditions:
    - condition: state
      entity_id: input_select.washing_machine_status
      state: Finishing
    - condition: state
      entity_id: binary_sensor.washing_door
      state: 'off'
  actions:
  - data:
      entity_id: input_select.washing_machine_status
      option: Clean
    action: input_select.select_option

set it to clean them I can run the clean thing.

 id: 0f4ca2e5-e4ad-42e9-a889-7c880f9efb76
  alias: Pause TV washine Machine
  description: ''
  triggers:
  - entity_id: sensor.washing_machine_status
    trigger: state
    to: Clean
  condition: []
  action:
  - action: notify.android_tv_fire_tv
    data:
      title: Home Assistant
      message: '''Washing DONE drying time This morning {{states.sensor.mckillen_s_home_clothes_drying_time_morning.state
        }} but This Afternoon {{states.sensor.mckillen_s_home_clothes_drying_time_afternoon.state}}
        '''
      data:
        duration: 12
        position: bottom-right
        fontsize: medium
        transparency: 80%
        interrupt: 0
  - action: remote.send_command
    data:
      command: MEDIA_PLAY_PAUSE
    target:
      entity_id: remote.living_room_tv
  initial_state: true
1 Like

@orange-assistant

I use some WiFi Tuya smart meters with the LocalTuya integration, which gives me the power usage. I tried to convert the power readings into three states, but my main problem is the occasional drops in power values.

I tried to manually inject values with timestamps every 2 seconds using Node-RED, but it didn’t work. I suspect this is because Home Assistant doesn’t save the values to the history if they haven’t changed, presumably to save space.

@Hellis81

This didn’t work for me because the power usage fluctuates and sometimes falls into the ranges of other states, which incorrectly changes the entity state.

@myle

I’ll try your suggestion tomorrow.

Thank you all for your suggestions and help! I’ll try them out and report back.