Question about the new sustained Values in flows feature

I have made a flow that tells me when the washing machine is done, but it often trigger upon turning on the machine. It is an older machine with a smart plug and is probably caused by a random drop since it does not always happen, but it is annoying.

I was delighted to hear about this feature, though I suppose I’ll have to wait for the Namron app to be updated to support it.

However, I have the Homey Pro (Early 2019) which is not listed as supported, can we expect this to change or is this just their way of forcing us to buy new hardware? I’m asking because I’ve noticed other features that seems to be exclusive for the never devices for no good reason.

I can live with paying one time fees for advanced new features, but I do think basic stuff like this should be free, but if I’m forced to buy new hardware to get it…

1 Like

I was also happy, have over 70 countdown counters in my setup and lots of complexity… but couldn’t find it in many apps yet, right?!

The dev of the Device Capabilities app made the example for the Athom flow card years ago, also usable @ Pro 2016-2019:

and it can do more than only numbers, check on text and states are possible too:

A timer is a solution to shave peaks as well:

https://community.homey.app/search?context=topic&context_id=140847&q=washing%20machine%20notification

I never really understand why they only provide a greater than and a less than.

it probably simple but how do you implement this if you want a sustained value of an exact number like zero..

Hope someone can provide a simple answer for me.

Thank you for the tip, I’ll keep that app in mind in case Homey fails to come to their senses. It would be much simpler to set up if they did. :slight_smile:

This is a new feature of flows, there shouldn’t be any required changes to apps to make this work.

I can choose this logic-card, but you can’t?

He’s referring to the newly introduced trigger cards, Wim:

So, this: When “value X is equal to 0 for 5 minutes", isn’t possible (yet).

For now, only greater/smaller than 0 (or any number).

2 Likes

Thanks Peter. The other thing I realised is that it is only available for certain parameters. For example what I initially wanted to use it for is to monitor power from/to the Grid on my Tesla Battery. Then when this value has been at zero for several minutes I could assume a Grid Outage condition. But it appears that it can only be used with the parameter which holds the battery level/SoC.

So instead of “battery becomes” I want “Grid Power becomes”.

Why did they just select certain parameters instead of being able to select one? Memory? Processing capacity? Something else?

Lack of imagination?

For instance, I don’t understand why this only works for (some?) numerical capabilities and not for binary capabilities, for which this feature can be very useful (I often use it in Home Assistant: “when there has been no motion detected for X minutes, turn off the lights”).

2 Likes

The sustained value card works great for removing the spikes in humidity readings from my Aqara T/H sensors. However, the temperature is a different situation. My Aqara sensors are setup to report temperatures in Fahrenheit (°F), not Celsius (°C). The card won’t accept a conversion equation. The card needs a selection for °C or °F. Any plans when this will be added? Where is the correct place to report this?

The new firmware just released for Homey Pro 2019 does not include the feature so I guess we’re not getting it..

Nope, they announced supported models in the mailings & news blog

But no worries: the original and better card is available for all Pro models, with the Device Capabilities app

Numeric values:

Boolean values:

String values:

1 Like

I also have a question about this. This feature sounds really great. I Also still have some flows that rely on the CountDown app for either timeouts or debouncing and the Loops app for delayed repetition. I could replace all of these and do away with two apps if the native logic cards would support this feature.
It would have been so easy and so trivial if there was a native logic when card like: “When [tag] became [value] for [seconds] S.”

Why wasn’t this just added? When can we expect these cards to be added?

I can relate, but Logic cards can be puzzling for some.
What’s wrong with this card in your opinion? Any numeric capability should be supported:

(and imho they should support boolean and string values as well).

Question:

I would like to have a car?

Answer:

What is wrong with a horse?

Try 100 horses?:grin:

The point is that cards are building stones, and you keep the number of building stones to a minimum. It is not the case is that óne card is your complete solution.

So maybe you can elaborate why a tag needs to be exactly a value, i.e. why less than a value does not work for you. So we can find you a solution.

My whole point of my request was to keep the number of building stones to a minimum. I want to do as much as possible with the native functionalities and keep the number of third party community apps as low as possible. The thing is that for some of my flows I now have to rely on third party apps like Countdown and Loops to do (imho) very trivial things.

Three very common programming patterns are the Timeout Pattern, the Debounce Pattern and a Delayed Loop Pattern. These patterns require a lot of advanced flow steps in order to create these with the native building blocks we have now and thus I use Countdown and Loops for this.

I use these patterns in my flow to do a bunch of things that are mainly related to home security. I have a smart lock paired with Heimdall and motion sensors to secure my house. The smart lock is automatically locked and Heimdall is automatically armed when the last person left the house. Heimdall is automatically disarmed when the first person comes home. And when a person comes home, he will receive a notification on their phone to open the doors as well manually. This all works fine for residence of my home, but sometimes you would also allow someone else to enter the house for instance to water the plants while we’re on holiday. For this I used a simpel remote, and a person needs to click a few buttons in the right order within a certain timeframe to disarm the alarm. For this, I used a timeout pattern with countdown.

I also created a flow that fully locks the door when the last person went to sleep, and unlocks the door exactly 20min after the last person woke up. For this, I used a debounce pattern. This is to prevent unwanted unlocking when people woke up but went to sleep again within 20min. Or Other people leaving, coming home and/or going to bed (night shifts here). I also need to use Countdown for this.

When the alarm does go off, I send a notification to all owners, but I also play a very loud alarm over all Sonos speakers. This alarm is repeated every 2 minutes until the alarm is turned off. For this I use Loops.

I have a bunch of other flows with debounce and timeout patterns as well. And yes, some of them I was already able to refactor to the new sustained values feature, including some that check for power usage. For others however, I could only use native building blocks if Atom would build their new sustained values features into their own logic cards.

This is why I was a bit confused, and maybe also a bit annoyed that when I asked for a saw, someone suggested me a screwdriver without even asking me what I would need a saw for. They are both equally valuable tools, but they both serve different purposes.

I wonder if it is possible to use “subroutine” flows in the mean time before your request is being full filled. Like in program languages, when for example there is no standard function “calculate the square of a value, one can write a function, put it into a library and publish it. For the user of this function it does not matter whether this function is in a library or native in the program language.

In the past I used subroutines to handle a number of flows including the autonomous dimming of all the lights. However, I was actually able to simplify a lot of these flows with this new sustained values feature, but also by making use of the circadian app for dimming lights and virtual motion triggers to trigger the dimming. In the past I used subroutines to offload some very complex dimming logic to individual flows, but also to be able to trigger them, disable them and enable them at specific times. With the ability to enable, disable, trigger or turn of the motion alarm through flow cards, and with the new “When zone has been (in)active for [minutes] minutes.” cards, I was actually able to get rid off my subroutine flows.

It’s not that I currently have a problem that I urgently need to fix. It would just be nice if I could do away with two apps without having to greatly increase the complexity of my flows. Don’t get me wrong, as a developer I’m not opposed to using third party apps/libraries if they simplify your life. Countdown and Loops are great apps that serve their purpose and work fine. Sure, I would probably be able to program my own timout, debounce and delayed loop patterns by using subroutine flows, variables, delay cards or even homey-scripts, if I would want to, but that would make things even more complex.