Flow Gadgets - Now available

Nice app! Can you add a When or And card (preferably both) for something or anything changing on a boolean list?

That would reduce my When questionnaire to one single card:

Nice idea, and I understand why this would make the flow much cleaner.

Unfortunately, this is not something Flow Gadgets can do in a reliable generic way. The “Anything has changed” cards in your example are device triggers from the device apps themselves. Flow Gadgets does not receive all arbitrary device change events from Homey, so it cannot offer one single WHEN card that triggers when any boolean tag from such devices changes.

Flow Gadgets can evaluate boolean values inside a flow, but the flow first needs to be started by an actual trigger. For this specific case, the current solution with the separate device trigger cards connected to ANY is still the correct approach.

Hi Pascal, I’m really impressed by your app, but I’m still having a little trouble understanding how to use some of the Flow cards.

What I hope to achieve:
I want to store the outdoor temperature in a temporary variable every 30 minutes. After 29 minutes, the stored value should be compared with the current temperature. If the difference is greater than or equal to -2 °C, an action should be performed.

I found the following flow card in the And section

If I understand the card’s meaning correctly, it might be helpful for my flow.
But I have absolutely no idea how to use this flow card correctly in a flow.
Can you show me the way?

Ok, thanks for the explanation. :ok_hand:


Hi Dirk,

This is quite easy to do with the card shown in your screenshot.

Explanation:
The card “Value changed enough from last accepted value” has its own internal memory.

The first time the Flow runs with a new ID, no last accepted value exists yet. In that case, the current temperature is stored under the ID tmp_temp_outdoor and the card returns true.

On the following runs, the card compares the current temperature with the last accepted value stored under that ID.
With your settings: + 0 / - 2 the card will only return true when the current temperature is at least 2 °C lower than the last accepted value. Small changes are ignored. If the change is not large enough, the card returns false and the stored reference value is not updated. If the change is large enough, the card returns true, your action runs, and the current temperature is stored as the new reference value.

Please consider:
This does not compare the current temperature with the temperature from exactly 30 minutes ago. It compares the current temperature with the last accepted reference value.

Example:
Initial value: 20 °C
After 30 minutes: 18.5 °C
Difference: -1.5 °C
Result: false, the stored reference value remains 20 °C
After another 30 minutes: 17.5 °C
Difference compared to the stored reference value 20 °C: -2.5 °C
Result: true, the action runs, and 17.5 °C becomes the new reference value.

So in this example, it takes 60 minutes before the action runs. From your description, I think this is actually what you want.

Important:
The value stored by this card is kept in its own internal “last accepted value” store. This is not the same store as the Temporary Value cards. So you should not mix this card with the Temporary Number cards unless you intentionally want two separate mechanisms.

Please note that the first run will return true, because no reference value exists yet. If you do not want the action to run on the first execution, you need to work around this for now.

I may create an upgraded version of this card in the future with two additional options:

  1. Choose whether the card stores a new reference value only when the condition is true, as it does now, or on every run. The second option would compare against the previous run, for example the temperature from 30 minutes ago.
  2. Choose whether the first run should return true or false.

I see that your cards are in German. If you prefer, and if it is easier for you, I can also reply in German by private message. My German is quite good.

Hi Pascal,

Thank you very much for the detailed explanation… :folded_hands:

Unfortunately, I can’t use this card for my purposes (yet), because the reference value needs to be replaced by the current temperature value every 30 minutes.

So this is exactly what I need:

So it would be great if you could add this option at some point.

Maybe I’ll get back to you about your offer at some point. Thank you very much!

Hi Dirk,

You can get it to work with a little more complex workaround. Not one card, but functional until the card will be updated … that may take some time as I’m in hollidays.


The first time the flow runs the temporary value does not exist an throws an error, the flow follows the red path and the temporary value is created and stored. Nothing else happens. Next time it compares the temperature against the stored temporary value-2 (you can change “less than” against “less than or equal to” if the action should run also at exactly -2) and either the true or false path continue. In any case, the temporary value is replaced by the actual temperature (every 30 min).
That does exactly what you need.

Edit: This is even easier and works also:


The Get temporary number .. or return … does not throw a hard error if the temporary values does not exist, but simply returns the default value. In this example it returns on the first run the temperature and following up the flow the false path runs. That path sets the temporary value for the next runs.

Beste Grüsse, Pascal.