šŸ”Œ Detect and monitor the state of an appliance based on its power consumption - V2.1.1 - Updated!

@leofabri Thank you for this blueprint, I really like it!
Can you however explain why the in/out values are maxed so low? Had to change them for me too low maximum settings for in/out. Is there a reason why youā€™ve set it so low?

Iā€™m using it to send a message whenever the washing machine and dryer are ready. The dryer has a cycle for ā€œturn the drum sometimes to keep the clothes movingā€ whenever it is finished but the door has not been opened yet. During this time the power used is about 90-100W for a very short time, so my turn on value has to be much higher to prevent false starts.

A possibility for accurate detection could of course also be a period of time higher than starting value, same as you have now with the stop.

Then for something completely different, is it possible to also calculate the power used by the appliance during a full cycle? So count kWh during the active period, have that value multiplied by the actual rate/kWh and have this value logged. Even better yet, have itā€™s value sent together with the notification:
"Dear wife, the dryer is now ready. This cycle costs us ā‚¬ 1,93.

Iā€™d love to give my wife some insight in the costs of esp. the dryer, she sometimes lets it run with only two or three pieces in it or during a heatwave like now, never realizing the costs involved. Ok, the drying cycle is shorter then, but still I find it rather obliviousā€¦

And something else, Iā€™d love to sent the notification only to whoever is at home, but I have no clue how to create an on-the-fly group of devices of the people at home. Does anyone have a solution/add-on for that?

3 Likes

Hi! Thank you for your appreciation!
No, there isnā€™t any specific reason why the start/finish power thresholds are so low. Those variables initially worked for my use case, so I kept them. In the next version, they will be limited higher than now (maybe between 0.1 - 1000 W).

Concerning the start sequence, I am working on that right now. The next version of the blueprint will offer the possibility of setting a delay on the job_ongoing state. I need to ensure that it doesnā€™t break other things, and debugging this is proving to be a mess.


Then for something completely different, is it possible to also calculate the power used by the appliance during a full cycle?

It should be possible, but itā€™s not easy.

I donā€™t know about you, but I have an energy sensor for each one of my appliances.
Maybe, we could store the time the appliance started, as well as the time it finished. Get the energy at the end and before it started. Then if we consider the amount of time elapsed, we could estimate the power consumption per cycle. Itā€™s quite a lot of work for such a simple estimate.

I will add this to my to-do list. However, I have a limited amount of time these days, so keep in mind that it might take a while. This feature will definitely come in the form of a separate blueprint.


Iā€™d love to give my wife some insight in the costs of esp. the dryer, she sometimes lets it run with only two or three pieces in it or during a heatwave like now, never realizing the costs involved.

Hahaha, I understand. I have the same problem in my family! My goal is to save as much energy as possible and raise awareness. I am sure there is a lot that we can do.


And something else, Iā€™d love to sent the notification only to whoever is at home, but I have no clue how to create an on-the-fly group of devices of the people at home. Does anyone have a solution/add-on for that?

Iā€™m sorry. I canā€™t help with that right now because of time.
What Iā€™d suggest you to do is to check whoā€™s at home. Thereā€™s an entity for that, the zone.home which also tells with an attribute who is inside.
Iā€™d probably come up with a blueprint for this too in the future, but thereā€™s already a lot of work to do and this is outside the scope of this topic.

Take care, and stay tuned for V3.0.0!

3 Likes

Hey @leofabri. Great work with the blueprint, it works perfectly with my washer and my dryer! For my dishwasher, there is a long period of time where there is almost no activity, causing a premature ā€˜job completeā€™ state unless I add a really long delay (30+ mins) to capture the last ā€˜blipā€™ā€¦ This of course will cause the state change to occur much later than desired. Iā€™ve attached what the cycle looks like. Wondering if you have any ideas, or perhaps something that could be done in v3.0 to address this ā€˜cycleā€™. One idea is a setting for ā€˜minimum cycle timeā€™, but ideally there is a less hacky solution.

2 Likes

This blueprint seems nice, though maybe a bit overkill for my situation. I do like the state-machine setup, but I donā€™t really need the overload or unplugged stuff. Could you maybe make something like a ā€˜liteā€™ version with basically just idle, job_ongoing, job_finished or something along those lines?

2 Likes

Hi @Merlijn thank you. Well, in V3.0 Iā€™m planning to add some checkboxes to enable/disable some of the features (Iā€™m testing one for the overload state).
If you donā€™t want these states though, I could think about a ā€œliteā€ version that does remove the unused logic. Bear in mind that having the full version or the stripped one likely wonā€™t affect the overall speed of the automation.

The biggest issue on my side is that Iā€™d have to maintain two versions, and unfortunately, I plan to have a difficult time with that, because this is the one used at home.

Hmm, I see. I never thought that an appliance could spend that long doing nothing!

I donā€™t know if I understand the ā€˜minimum cycle timeā€™ idea. It would filter out the cycles that take less than a minimum time, wouldnā€™t it?
Based on your chart, the cycle would end at about 8:35 PM, thus ignoring the spike completely, but this would also cause the start to be shifted forward in the future.

Iā€™ve been testing the first unpublished release of V3 that comes with a very similar idea (PM me if you want to be a tester :grinning_face_with_smiling_eyes:). V3 includes an optional ā€œDelayed Job Ongoing timerā€ that does what I described above.
I know that the most accurate and ideal thing to do is to be able to capture the entire cycle without delays, but I guess that we donā€™t have enough information to do that.

Updates about V3

Iā€™ve been developing the new version over the past few weeks and have done most of the work. This month, however, Iā€™m very busy with my exams and that means that I postponed the release a bit. However, I still have time to test the changes, and that is positive.

Home Assistant doesnā€™t seem to have a proper way to notify the users about blueprintsā€™ updates. I donā€™t want to push too many updates for this blueprint because I know many people wouldnā€™t update it.
What I prefer to do instead is to release something that I tested, hopefully, bug-free and complete feature-wise.

Feature requests

Please feel free to ask if thereā€™s anything that youā€™d like to see in the next version of the blueprint. I wonā€™t be implementing everything, but It would give me a better idea of your needs.

1 Like

Thanks for your thoughts!

To elaborate on the ā€˜min cycle time ideaā€™ā€¦ The thinking was that a job would go from ā€˜ongoingā€™ to ā€˜completeā€™ IF and ONLY IF a ā€˜minimum cycle durationā€™ has passed since the start.

For example, my dishwasher ā€˜estimated run timeā€™ at the start of cycle is 156 minutes. It may finished a bit sooner/later (maybe +/- 15 minutes), but it would never finish in, for example, 110 minutes. Thus, I would prefer that job_completed only trigger after a min amount of time has passed. For example, I would want the blueprint to assume the job is ongoing while that min time has not been met (and of course while there is power utilization above the finishing threshold).

Not sure this would be useful to others, but that was at least the idea that I had to make this blueprint work for my dishwasher! :slight_smile:

1 Like

This looks really interesting to me.

I see from the requirements the devices need to be plugged into smart sockets that HA can control but also monitor energy usage.

Can anyone recommend decent smart plugs for the uk market that satisfy these requirements?

Thanks

These are what Iā€™m using:

1 Like

I have been trying a number of smart plugs from different vendors, some of which are very complex to setup and maintain in HA.

These ESPHome plugs have opensource firmware and designed to be interfered and maintained though HA so are now my go-to plugs. The setup is the simplest I have seen.

1 Like

The automation keeps firing every 10 seconds for me. It obviously fails on some conditions and nothing happens but surely itā€™s not meant to be triggering ever to seconds?

I think it may be due to very slight power fluctuations in the power monitoring sensor that is changing its state and this firing?

Anything I can do to stop this behaviour?

EDIT: I now see that this is by design - will exclude from recorder/logbook as solution

Hi! Yes, thatā€™s expected. The automation triggers every single time a new power read comes in. Donā€™t worry about that.
Yes, excluding that from the recorder is a good idea. I will add that to the documentation for the next release!

Hi !

I have the same problemā€¦

1 Like

@Sygnus83 I see. This strange behavior complicates things :slightly_frowning_face:
By the way, this doesnā€™t make any sense! What is the appliance doing from 10:40 to 12:00? It looks like not much is happening. I wonder why the manufacturer wouldnā€™t just consider the job done much sooner!

The problem is that if the appliance utilizes such a low amount of power, itā€™s difficult to tell if itā€™s still on or not with just the information we have.

Here are a few desperate ideas:

  • I could count the number of spikes, and then ā€˜teachā€™ the automation to wait and recognize them. You would need to tell it how many of those you have.
    CONS: it wouldnā€™t be too reliable, and the automation would turn substantially more complex.

  • We could implement an external sensor that inhibits the finished state when, for example, an LED or an indicator on the appliance is detected as on. That would be ideal!
    CONS: itā€™d require additional hardwareā€¦

  • As @dimatx suggested, we could use something like a minimum job_ongoing timer. Then youā€™d set it from the timespan leveraging from circa 11:55 to 8:55, so thatā€™s approximately 3 hours. Immediately after that, the automation would behave like normal and use the Delayed Job Completion timer for the last part, as it usually would.
    CONS: what if your appliance supports more than one program with different durations? This method wouldnā€™t account for that.
    :1st_place_medal: This is probably the best idea, so far.

  • Anything better?

I wish I could make something that works for everybody, but you have to consider that we have some constraints. And conceptually, automations are something that is usually very repetitive and stateless; so you can forget any advanced power analysis.

Hi !
Thanks for the answer, unfortunately I donā€™t know what the best solution would be either.

I think this time is ā€œdryingā€. The pump switches on twice and lets in water after the first one. In this case, the water from the hot plates splashes onto the cold inner wall.

Development Updates

Hey folks, Iā€™m back on the project!
Today, V3.0.0-dev branch came to GitHub. Even if itā€™s not ready for a release, you can already see what changed. I know itā€™s taking some time, but Iā€™m trying to make this repo as streamlined as possible.

The automation itself seems very stable so far (Iā€™ve been testing it for over a month now), but there is a lot of documentation to review/write as there are important changes.

Speaking about these ideas: Iā€™m still evaluating if these are going to get implemented, or if Iā€™m just going to release what I did so far.

2 Likes

I think @Sygnus83 is right. For efficiency reasons, some dishwashers use residual heat to dry the dishes, rather than turning on heaters. I think that time is used to dry the dishes, so itā€™s doing stuff, just using electricity infrequently and in a limited capacity. Sygnus - Is yours also a Bosch?

Hi @dimatx, my dishwasher does that as well. However, I can tell itā€™s doing something because the power consumption is still higher compared to the idle state (~ 0.6 Watts).

Take a look at my dishwasher (Miele):


This was done with grafana, just to highlight the min power usage while in operation.

At this point, I have two suspects:

  1. Your dishwasher is unbelievably efficient, and during the drying process, it doesnā€™t consume more power than when itā€™s offā€¦ itā€™s hard to believe :sweat_smile:
  2. Your socket is not sensitive/precise enough. This is the most plausible explanation. If this is proven to be the case, the only solution I can think of is to try a different smart plug.

Thatā€™s fair, @leofabri :slight_smile: Itā€™s a Tasmota-flashed plug, so I perhaps I can up the sensitivity of said power monitoring. Perhaps it could be re-configured.

PS. Just curious, do you pull directly into Grafana from the HA db, or do you feed it into InfluxDB and then have grafana pull from there?