H.O.O.P. (Hope) - Examples

Example Flow Variables - Using variables and a custom function

First i created a function called “random” in the App Settings:

Enter the next javascript into the function by clicking edit.

function (arr) {
  return arr[Math.floor(Math.random() * Math.floor(arr.length))];
}

Then the next flow:

  • First, put a Javascript Array into a Flow Variable type JSON called Kids.
    (Variables are created on the fly, no need to define them in settings, just start the flow to use them)
  • Then set Flow Variable Testname (type String) to: random(Flow Variable - Kids).
    (The returning type needs to be the defined type, in this case a string. JSON accepts any kinds of input)
  • Now you can use the Flow Variable - Testname and send it to your watch, or use it the way you need it.
1 Like

This is one I use to restore my tado heating when the patio door is closed.

Homey has no options to set a dropdown type action card from a variable so H.O.O.P comes to the rescues here.

To set the scene:

  1. I have a flow that is triggered when the patio door opens and that sets a timer.
  2. Next a flow is triggered when the time reaches 0 and that stores the current heating mode tag from the tado lounge thermostat.
  3. I also have a flow that runs when the door is closed and that resets the door open timer, so it doesn’t timeout if it hasn’t already, and then runs the following H.O.O.P flo

3 Likes

Example Flow Director - Volume based on time (Day/night)

Starting Flow | Homey

Method Flow | Homey

This flow will be activated when the Google Service TTS device URL triggers, so when speech is started.

  • If it is daytime, volume will be set to 45%
  • Else, volume will be set to 40%

Example Flow Director - Setting a (BL) variable based on one-flow-logic.

Setting a (BL) variable based on one-flow-logic | Homey

Example Method Group - Announcement (P.A.) Methods

These flows are used in my announcement system, used by many other flows to direct speech-output/announcements throughout the house.
(I might rewrite some flows now that i have the Flow Director cards for IF-THEN-ELSEIF.)

I have all these flows dublicated in sync and async.
The sync methods can be used it you want to do something after annoouncement is done, because the method will wait for the execution to finish and complete with the rest of the flow that executed the method.
I will be sharing the synchronised methods, since asynchronised is just default.

Here is a diagram of the flows.





Flows

Send Notification House (message, title) (Await)


Send Notification House (message, title, sendToWatch) (Await)


Send Notification House (message, title, watchMessage, sendToWatch) (Await)


Send Notification TV Bar (message, title) (Await)


Send Notification TV Bar (message, title) - handler (Await)


Send Notification Watch (message, title, watchMessage, sendToWatch) (Await)


Send Notification Watch (message, title, watchMessage) (Await)


Send Notification Watch (message, title) (Await)



And finally a flow that uses the system:

Start test (Await)

Example Using one button for multiple purposes (multiple fired)

This flow can be triggered from a single source (like a button or flow-trigger) but will handle it as if the button can be clicked multiple times.
Because HOOP doesn’t have a debounce-functionality yet, i have created a Countdowntimer called PushButtonPushesResets.
I have also created (in the flow) a number variable called PushButtonPushesCount.
Where ever you see the questionmark, it’s the PushButtonPushesCount variable.

(After you create a flow-variable in flow, they flow needs to be triggered once for the variable to become visible (and to select it)).

Main Method Flow | Homey

  • Conditioncardmode is set to If-Or-Finally
  • First stop the Countdown
  • Then increase the PushButtonPushesCount with one
  • Then comes the IF PushButtonPushesCount equals 1 THEN
    • Then comes the INNER IF Light is Off THen
    • Turn light On
    • Else Turn light Off
    • End If
  • ElseIf PushButtonPushesCount equals 2 THEN dim light to 50%
  • ElseIf PushButtonPushesCount equals 3 THEN dim light to 100%
  • END IF
    And finally, in the 3th And group (watch carefull where you place it!), start the (restart) countdown with an amount of seconds (here 3 is used) which will set PushButtonPushesCount to 0 (zero).


Main Method Flow (reduced flow) | Homey


The INNER IF is replaced with a Toggle Light card.


Countdown stops Flow | Homey


Test trigger Flow | Homey

1 Like

Example Using one button for multiple purposes (waits a second before firing)

Thanks to Arie_J_Godschalk
He created this flow, I used some time to understand and add flowcards :slight_smile:
Therefore you will see flow comments that is not needed
You need to create a counter called "PushButtonPushesDebounce"

1 Push = ON/OFF
2 Push = Dim 50%
3 Push = Dim 100%

1. Hope - (Trigger)

2. Hope (Counter)
Count no. of button pushes “PushButtonPushesCount”
Start counter “PushButtonPushesDebounce” = 1

3. Hope Start (Debouncer)
Counter “PushButtonPushesDebounce” = 0
Start (Debouncer method flow)

4. Hope (Debouncer method)
IF “PushButtonPushesCount” = 1
THEN (turn light ON/OFF)

IF “PushButtonPushesCount” = 2
THEN (Set light 50%)

IF “PushButtonPushesCount” = 3
THEN (Set light 100%)

2 Likes

Nice too see!
You can even easily add dim steps, or other actions with a certain no. of pushes.
I realized f.i. my table lights have 3 favorite dim values: 20%, 50% and 100%
So an extra step is simple to add:
IF “PushButtonPushesCount” = 2
THEN (Set light 20%)

IF “PushButtonPushesCount” = 3
THEN (Set light 50%)

IF “PushButtonPushesCount” = 4
THEN (Set light 100%)

I like it!

I made this 3-step-dim-and-off function earlier on with standard flows, and it took me 7 flows. Yes… seven!
eettafel_dimstappen_flows

1 Like

Example Volume based on time (Day/night) - one flow

Complete Flow | Homey

This flow will be activated when the Google Service TTS device URL triggers, so when speech is started.

  • If it is daytime, volume will be set to 45%
  • Else, volume will be set to 40%

Example: A 5-function-sequence-click (pulse) button

2 flows needed
– You can add as much steps as you like! (with respect to Homey’s limits)

  • Expected functionality:
    Clicking within x secs follows the sequence;
    Clicking after those x secs, should always turn the light off.
    (So no need for remembering how many clicks are needed here).

  • Sequence:

    • 1st click = dim light to 20%
    • 1st click after x secs = turn light off
    • 2nd click = dim light to 30%
    • 3rd click = dim light to 50%
    • 4rd click = dim light to 100%
    • 5th click = turn light off

You could use H.O.O.P. Flow Variables cards, but I chose to use BetterLogics variables.

  • NumVar used: Eettafel1btnCount

  • Chronograph timer used: Eettafel1btnCountTmr

    • Note, on the BL cards, the zero isn’t shown
  • Flow 1: The sequence function & steps & timer trigger

  • Flow 2: The resetting of the Variable

Have fun. Questions, suggestions, improvements welcome!

1 Like

sadly, it doesn’t make a difference :frowning:

that is what you suggested, so yes and sadly, it doesn’t make a difference

well… it is a hue motion sensor… all of them i have give the same values inside the house. once outside it goed very high.
0 is pitchblack? that is very weird coz even 1 is not needed to have the light on. and yes, i also thought it is strange but i dont know better… :frowning:

but i do can change it to a static value, i can also try that… but… the value was this afternoon about 5 and that is higher then 3 so, it should change it… but it doesn’t.

Example
When a light sensor’s value changes, set a numeric variable with different values, depending on the brightness level

/

log:
edgar-HOOP

Example Mmultiple triggers in ONE flow

When the Hal Lamp OR Kapstok Lamp is turned on, this flow will be executed.

Now it's possible to

- Change the Device Name -

through a flow

And… The status can be changed by another great app by Arie: Device Capabilities

Example:

  • With Advanced flow:
  • Standard Flow

1 Like

- Practical example -

- A thermostat device which also shows the room temperature, besides the target temperature -

.
The default thermostat device, only shows the target temperature:
Screenshot from 2022-09-08 00-31-21

But now, with use of the updated H.O.O.P. app, we can show the room temperature as well, by alternating the device name for the temperature tag.

This can be done with the original device!

Peek 2022-09-08 00-12
(right click and open in new tab for big screen view)

.

- And a similar example for window coverings position -

This is also done with the original device!

Peek 2022-09-08 01-09
(right click and open in new tab for big screen view)

1 Like

Nice! Curious, is this a (to) heavy load for Homey to keep doing this all the time?

Changing the Name, no not really as it looks like.

1 Like

- Show presence of all household members, on just one tile -

Sometimes there’s just too much info, too much tiles.
Now you can show the household members’ presence with just one tile

Additional apps used: Device Capabilities and Advanced Triggers, also made by Arie. You can f.i. create a virtual device like below;

1 Like