Flow-->Haltepunkte/Warten bis...?

Hallo,

wieder mal ne Frage:

Gibt es eine Möglichkeit in einem Flow soeas wie einen “Wartepunkt” einzubauen ? Timer wĂ€re eher eine “Notlösung” da eben die Zeiten nicht unbedingt fix sind.

Szenario: Saugroboter soll durch entsprechende Trigger RĂ€ume A-D saugen. Hat er dies erledigt (und ist jemanf im Homeoffice) kommt dann eine Push mit Abfrage. SinngemĂ€ĂŸ “RĂ€ume gesaugt. Jetzt auch BĂŒro saugen oder störts ?”

Soweit so gut. Was ich aber nicht hinbekomme ist dass der Roborock eben erst alle RĂ€ume saugt und erst wenn dies erledigt ist die Push kommt.

Der Flow rauscht halt immet direkt durch. Also hÀtte ich gerne dass der Flow eben stehen bleibt bis RÀume A-E gesaugt sind. Dann weiterlÀuft und die Push schickt.

Kennt jemand eine Möglichkeit ?

Du kannst mal mit der neuen Möglichkeit in Push-Benachrichtigungen experimentieren. Ich habe es aber selbst noch nicht probiert.

1 Like

Die hab ich, funktioniert auch ganz gut.

Nur finde ich keine Möglichkeit einen Flow in einen bestimmten Schritt einfach anzuhalten bzw. “warten” zu lassen bis alle Bedingungen erfĂŒllt sind (also eben erst weiterlaufen wenn RĂ€ume A-D gesaugt sind).

Die Flows rattern halt durch. Sowas wie klassische Schleifen (so lange bis Bedingung erfĂŒllt loopen) gab ich nicht gefunden bzw. das was ich gefunden hab (Loops-App) versteh ich nicht wirklich

Der Flow lĂ€uft erst weiter, wenn alle Bedingungen erfĂŒllt sind.

1 Like

Hast du denn in der Robo-App einen Trigger, wenn er mit dem ersten Teil fertig ist? Du brauchst ein Event/Trigger, um eine neue Aktion im Flow auszulösen.

Es wÀre also z.B. möglich:

  • Trigger1: Flow starten und Saugplan 1 auszufĂŒhren
  • Trigger2: wenn fertig, dann Push-abfrage
  • Wenn Push bestĂ€tigt, dann Saugplan 2 ausgĂŒhren

Dann brauchst du auch kein Warten. Die Beendigung des ersten Saugdurchgangs wĂ€re dann der Auslöser fĂŒr Teil2.

Eine Bedingung reicht nicht aus. Die wird nur geprĂŒft im aktuellen Durchlauf. Du brĂ€uchtest also einen Timer, der alle paar Minuten startet und die Bedingung prĂŒft.

2 Likes

Hast Du das mal selber ausprobiert? :thinking:


@RonnyW hat mMn schon den richtigen Weg erklĂ€rt. Anstelle alle RĂ€ume inkl. BĂŒro in einen Saugplan zu packen, das BĂŒro außen vor lassen. Und erst das BĂŒro saugen lassen, wenn die Frage-Push mit Ja beantwortet wurde.

1 Like

Danke fĂŒr euren Input.

UrsprĂŒngliche Idee war so

Wie alsoschon geschildert. Soll Saugen, erstmal alles außer einen Raum (kommt ĂŒber Bedingungen). Wenn dieser RĂ€ume alle gesaugt sind sollte er in eine Warteposition fahren und eine Push-Abfrage erfolgen ob er nun den letzten Raum saugen soll oder eben nicht (weil vielleicht gerade störend). Wollte eher nicht dass er nach Abschluss von "der ersten Aufgabe zur Dockingstation zurĂŒck fĂ€hrt und absaugt.

Habe aber bemerkt das die Karte “is Cleaning” oder umgekehrt nicht funktioniert. Der Status bleibt unverĂ€ndert auf “Nein”. Auch wenn gerade eine Reinigung lĂ€uft. Damit scheitert letztendlich grundlegend obiges Konstrukt. (Scheint ein Problem mit der RobrockCloud-App zu sein).

Sprich: Ich werde wohl so oder so in Richtung des Ansatzes von Ronny gehen mĂŒssen.
Wobei hier werde ich auch erstmal schauen mĂŒssen ob ein Status/Trigger-Karte der App (Cleaning Finished) ĂŒberhaupt funktioniert. Wenn eine laufende Reinigung scheinbar nicht erkannt wird dann auch deren Ende nicht was diesen Trigger auch erledigt haben dĂŒrfte.

Nur als eher technische ErklÀrung zum besseren VerstÀndnis des Ablaufs


Du startest die Reinigung in deinem Flow. Das wird wohl ein API-Aufruf sein an die Cloud. D.h. dein Robo beginnt ein paar Sekunden spÀter mit der Reinigung.

Nach Senden dieser Aufforderung ist diese Flowkarte ‘fertig’ und die nĂ€chste wird verarbeitet (die PrĂŒfung). Zu dem Zeitpunkt hat der Robo die Aufforderung von der Cloud noch nicht erhalten und ist noch nicht am Reinigen.

Solche Karten wie ‘beginne 
’ schicken i.d.R. nur den Befehl ab. Die Reinigung startet dann irgendwann (oder auch nicht, wenn der Robo einen Fehler hat). Das hat keinen Einfluss auf den Flow.

Man braucht fĂŒr solche parallelel/zeitversetzten Dinge also immer einen zweiten Trigger, also z.B. ‘Reinigung beendet’. Dann kannst du einen zweiten Flow starten.

2 Likes

Hast Recht. Ja.

Ich habs jetzt mal so umgesetzt. Mit einer zusÀtzlichen Variable.

Ich will ja nur bei diesem spezielln Strang des Flows auch die Push-Abfrage bekommen und nicht jedesmal wenn die Reinigung abgeschlossen ist (also durch andere StrÀnge des Advanced Flows)

Wie Sie bemerkt haben, wartet Homey bei den 4 linken Karten nicht, bis diese Befehle erledigt sind.

Da ich selbst kein Roborock habe, bin ich neugierig, welche Status es gibt.

Ich sehe bei den verfĂŒgbaren ALS-Karten „Status hat sich geĂ€ndert auf 
“.

Vielleicht gibt es einen Status „RĂŒckkehr zum Dock“ oder so etwas, den Sie als Auslöser fĂŒr den Rest des Flusses verwenden können.

Mit diesem Flow:

WANN

Status hat sich geÀndert

DANN

Status in die timeline schreiben

Sie können die verschiedenen Status wÀhrend und nach einem Saugen verfolgen.