šŸ“³ Appliance Notifications & Actions - Washing Machine - Clothes Dryer - Dish Washer - ETC

Thanks for your quick reply!
I don’t have any Global Condition filled in… So it must be something else!?

@WOrange

Could you please provide us your YAML of the automation? This YAML code are the settings you have selected in the automation so I can help. To do this go into your automation, top right 3 dots, Edit in YAML, copy all the code, come back to the forum and in your reply at the top tool bar click on ā€œ</>ā€ and paste code in there.

Blacky :grinning:

Thanks again!
See YAML below. (edited the device id’s with xxx)

When I read the YAML I’m thinking, is it because I’ve used the default settings? Because I don’t see i.e. the Power Settings.

alias: Wasdroger - Notificatie
description: ""
use_blueprint:
  path: Blackshome/appliance-notifications.yaml
  input:
    power_sensor: sensor.wasdroger_power
    include_end_notify: enable_end_notify_options
    end_notify_device:
      - 6d2c6914xxx
      - f53633f33xxx
    end_message_title: Wasdroger
    end_message: De wasdroger is klaar!
    power_consumption_sensor: sensor.wasdroger_energy
    end_message_cost: Kosten
    include_power_tracking: disable_power_tracking
    start_title: Wasdroger
    include_time: time_disabled
    include_start_notify: enable_start_notify_options
    start_notify_device:
      - f53633xxx
    start_message: De wasdroger staat aan.

Thanx for your great blueprint once again!
Any chance of getting FAQ for telegram notifications on End event with duration and watchdog notifications as well? Thanx!

@WOrange

Everything looks good.

The only thing I can see is your sensor.wasdroger_power. You need to make sure that this is the entity that reads the actual watts when the machine turns ON. Click Here for the FAQ on how to set this up.

Blacky :grinning:

1 Like

@avoronkov

I don’t use telegram but you would add custom end action > notify telegram > then follow the inputs.

your message would be something like this just need to enable duration.

action: notify.telegram
metadata: {}
data:
  title: Washing Machine
message: >
    Your end message here
    {% if include_duration_tracking == "enable_duration_tracking" %}
    {% set end_time = now().timestamp() %}
    {% set duration = (end_time - start_time) | int %}
    {% set hours = (duration // 3600) | int %}
    {% set minutes = ((duration % 3600) // 60) | int %}
    {% set seconds = (duration % 60) | int %}
    {{'\n'}}Duration {{ '%02d' | format(hours) }}:{{ '%02d' | format(minutes) }}:{{ '%02d' | format(seconds) }}
    {% endif %}

As I said this may or may not work as I don’t use it so I can’t event see or test it.

You then would add a custom watchdog action to telegram as well.

Make sure you enable both duration and watchdog.

Blacky :grinning:

Great! Thanx for duration notification script - i will give it a try this weekend and give feedback.
And speaking about watchdog - may be you have a sample code for that as well? Or there is nothing to edit - it just sends custom script without error description? Because there are no key-words in blueprint’s description to insert them in notification script like the ones you gave in Battery level blueprint - where i managed to do everything on my own lol
Thanx a lot!

@avoronkov

No problem. For your watchdog you will have to enable it and set the time frame. Then in the custom actions just add an action to the watchdog to send yourself a telegram. Just add the title and message directly in there.

Blacky :grinning:

Firstly, thank you for creating this blueprint, it’s been great to use. I’ve been using it without issues for a while now, but I recently tried to change my end_custom_actions to include a sequence to call Google Gemini to get a different notification over the speakers each time, however, after making this change I’m getting an error in the logs about a variable not existing

Logger: homeassistant.components.automation.drying_finished_v3_0
Source: components/automation/__init__.py:663
integration: Automation (documentation, issues)
First occurred: 7 May 2025 at 13:10:43 (5 occurrences)
Last logged: 19:11:05
Error rendering variables: UndefinedError: 'notificationMessage' is undefined 

As far as I can tell the YAML is correct, and using the same sequence in an automation that doesn’t use the blueprint works fine. I found that tmakowka had a similar issue before (šŸ“³ Appliance Notifications & Actions - Washing Machine - Clothes Dryer - Dish Washer - ETC - #347 by tmakowka), but I couldn’t see a follow up that showed how to fix it. My YAML looks like this

alias: Drying finished v3.0
description: ""
use_blueprint:
  path: Blackshome/appliance-notifications.yaml
  input:
    power_sensor: sensor.dryer_current_power
    running_dead_zone: 61
    start_time_delay: 2
    end_appliance_power: 10
    end_time_delay: 5
    include_start_notify: enable_start_notify_options
    include_end_notify: enable_end_notify_options
    end_message_title: Dryer
    end_message: Dryer has finished
    include_power_tracking: disable_power_tracking
    include_custom_actions:
      - enable_end_custom_actions
    include_time: time_enabled
    after_time: "07:00:00"
    before_time: "22:00:00"
    end_custom_actions:
      - metadata: {}
        data:
          message: Dryer has finished
          target:
            - Kitchen speaker
        action: notify.google_assistant_sdk
        enabled: false
      - sequence:
          - action: google_generative_ai_conversation.generate_content
            metadata: {}
            data:
              prompt: >-
                You need to generate a short, funny, family friendly
                notification (there are young children around) informing the
                household that the dryer has finished. Keep it nice and short,
                and don't include any emoji.
            response_variable: notificationMessage
          - action: notify.google_assistant_sdk
            metadata: {}
            data:
              message: "{{ notificationMessage.text }}"
              target:
                - Kitchen speaker
    start_title: Dryer
    start_message: YES! Another load is Drying

Any pointer on how to fix this would be great :bowing_man:

As is usually the case, after posting that I wondered if it is possible to trigger another automation as a custom end event, and have that second automation just trigger the AI/TTS, and it worked, so I now have double the automation’s, one using your blueprint, and another with just the following in it

alias: Dryer AI notification
description: ""
triggers: []
conditions: []
actions:
  - sequence:
      - action: google_generative_ai_conversation.generate_content
        metadata: {}
        data:
          prompt: >-
            You need to generate a short, funny, family friendly notification
            (there are young children around) informing the household that the
            dryer has finished. Keep it nice and short, and don't include any
            emoji.
        response_variable: notificationMessage
      - action: notify.google_assistant_sdk
        metadata: {}
        data:
          message: "{{ notificationMessage.text }}"
          target:
            - Kitchen speaker
mode: single

And in the blueprint end_custom_actions I just have the following

    end_custom_actions:
      - action: automation.trigger
        metadata: {}
        data:
          skip_condition: true
        target:
          entity_id: automation.dryer_ai_notification

@EspadaV8

So what happens when you just use the working action in the blueprint?

I have also disabled the start and end notifications as you had no selected devices shown in your YAML.

alias: Drying finished v3.0
description: ""
use_blueprint:
  path: Blackshome/appliance-notifications.yaml
  input:
    power_sensor: sensor.dryer_current_power
    running_dead_zone: 61
    start_time_delay: 2
    end_appliance_power: 10
    end_time_delay: 5
    include_start_notify: disable_start_notify_options
    include_end_notify: disable_end_notify_options
    end_message_title: Dryer
    end_message: Dryer has finished
    include_power_tracking: disable_power_tracking
    include_custom_actions:
      - enable_end_custom_actions
    include_time: time_enabled
    after_time: "07:00:00"
    before_time: "22:00:00"
    end_custom_actions:
      - action: google_generative_ai_conversation.generate_content
        metadata: {}
        data:
          prompt: >-
            You need to generate a short, funny, family friendly notification
            (there are young children around) informing the household that the
            dryer has finished. Keep it nice and short, and don't include any
            emoji.
        response_variable: notificationMessage
      - action: notify.google_assistant_sdk
        metadata: {}
        data:
          message: "{{ notificationMessage.text }}"
          target:
            - Kitchen speaker
    start_title: Dryer
    start_message: YES! Another load is Drying

Does this work? It would be nice to know if someone else reads this post.

Blacky :grinning:

1 Like

I just discovered this blueprint. Thanks so much for doing this. It’s very cool :).
One thing I would like to do is to track cumulative run time of the appliance (our clothes dryer in my case). I thought it would be nice to create a reminder to clean the dryer vent after X hours of operation. I know I could do this based on the cycle count but I’d rather use runtime. I don’t mind doing this in a separate automation or node red flow. I think all I would need is for the duration to be exposed outside of the automation. I think it could work similarly to the cycle counter: provide the automation a helper that the duration is added to when the cycle ends.
Of course, if something like this is already supported and I missed it, sorry and let me know :). And if it was already discussed, sorry again :). I searched but the thread is pretty huge so I could have missed that too.

Thanks!

@dancrocker

Your welcome.

That make total sense. We already have it set up to add this in and I can see it would be nice to know how many hours the machine has run at a cumulative total and also have a reset service reminder hours. Thanks for reaching out… I will add it to the development list so keep an eye out for update.

Blacky :grinning:

Oh, awesome :).
I guess you can decide the best way to implement this. One would be the way I described. I guess the other one would be to support the service reminder being based on cycles or total duration (selectable). Or maybe there could be multiple service reminders. I can imagine wanting one type of service reminder for cycles and another for duration. But, that could be overkill too. I will say that I would be interested in keeping track of total duration as well as the duration between vent cleanings. As I said, if the blueprint supports an accumulated duration, I can do an automation to give me what I want.

@dancrocker

Yeah I have to work it out. The easy part is the code, the hard part it working out the best way the UI will handle it so it easy to understand. The blueprint doesn’t currently accumulate the duration but I an make that happen, easy done.

We do it all in the blueprint with just a UI tick and entity input.

We will have it keep track of total hours run and we will also have a service hours that will need to be reset once done just like cycles.

Blacky :grinning:

Beautiful :slight_smile:
Thanks

New Update 2.9

:thinking: Watts your appliance up to, you’re always in the know from start to finish! :bellhop_bell: :electric_plug: :money_with_wings:

:new: New Features

  • Runtime Tracking
    Records the total runtime of your appliance by updating a text helper each time it completes a full cycle.

  • Time-Based Service Reminder
    Notifies you when a service is due based on the total time the appliance has been in use since the last service.

:bug: Bugs Fixed

  • Realigned the logic to update cycle count, cycle count service reminders when time restriction stops the end notification.

If you like this blueprint? Consider hitting the :heart: button in the top post :+1:

If you like my blueprints, and would like to show your support or just say thank you? Click Here :smiling_face_with_three_hearts:

Enjoy

Blacky :grinning:

Hi Blacky, my son left open the freezer door yesterday for a couple of hours. The alarm was not heard from the garage so I thought, time to setup a watchdog for this using your blueprint!
I’m missing a bit of explaination on how the watchdog works though. The watchdog should send a message if a device’s cycle takes longer that the watchdog_timeframe setting right? But how do I select the devices the notification is send to? I find this option for the start_notify and end_notify menu option but the watchdog is missing this. Where do I define the devices the watchdog sends its notifications to?

I created an automation based on v2.9.
I set it up like this:

id: '1747214346428'
alias: Watchdog Freezer
description: ''
use_blueprint:
  path: Blackshome/appliance-notifications.yaml
  input:
    power_sensor: sensor.garage_freezer_power
    end_time_delay: 5
    include_watchdog: enable_watchdog
    watchdog_timeframe:
      hours: 0
      minutes: 15
      seconds: 0
    watchdog_title: āš ļø Freezer Watchdog
    watchdog_message: Uh-oh! The freezer door might still be open!

my freezer takes around 80watts for approx 20 minutes before being idle at 0 watts for another 30 minutes. So right now I expect the watchdog to trigger every cycle (as i set the timeframe to 15 minutes), just for test. I’ll change the watchdog timeframe to 30+ minutes later.

edit:
when looking at the trace of my last run I also see this:

trigger: numeric_state
id: t0
entity_id: sensor.garage_freezer_power
above: 10
below: '24000'
for:
  minutes: 1

why is there a below: ā€˜24000’ here? I did not set this up?

and another edit:
I went to the trace and found the action that should have send the notification:

alias: Send a notification to each device
repeat:
  for_each: []
  sequence:
    - action: notify.mobile_app_{{ device_attr(repeat.item, 'name') | slugify }}
      data:
        title: āš ļø Freezer Watchdog
        message: '{{watchdog_message}}'
        data: '{{ watchdog_message_data }}'

the ā€œfor_eachā€ that probably? should contain the device list is empty. So no notifications can be send?

@RezzZ

I need to set a below so it is hard coded.

The watchdog uses the end notify device.

Question, would it be a good idea to put a contact sensor on the freezer door? You then could use the :round_pushpin: State Notifications & Actions blueprint. If the door is open for 5 to 10 min then be notified.

Blacky :grinning:

definitely an option and I appreaciate the suggestion, but a (zigbee) sensor uses a battery and costs me 10-20 euros. That would take a lot of wasted kWh before I got my money back on a hopefully incidental not properly closing of the door :). I’ll try the end message device list and see what happens. Perhaps you can add it in the watchdog automation description.