Centraliseret besked flow

Dette er et flow, som man desværre først opdager, at man har brug for, efter man allerede har oprettet talrige flows, som hver især sender push besked til en eller flere personer.

Forestil dig at der kommer en gæst i hustanden – eller én der skal passe huset – hvor det også ville være en fordel, at personen modtager de samme push beskeder fra Homey, som de faste beboere modtager. Så skal du ind i samtlige flows, hvor der bliver sendt push beskeder fra og tilføje personen med et ekstra kort. Og senere skal du fjerne personen igen. Det er så omstændeligt, at det gider man ikke begynde på.

Jeg står lige nu med en lignende udfordring. Jeg vil gerne have et tidsstempel foran alle beskederne, så jeg kan se hvornår de er afsendt. Det er nemlig ikke altid, at vi modtager beskederne i samme øjeblik at de afsendes. Nogle gange er problemet afhjulpet, før beskeden kommer frem. Det skaber unødvendig forvirring, og vi er nødt til manuelt at undersøge nærmere, om der stadigvæk er et problem, fejl i flowet eller om det bare er en forsinket besked.

Det betyder også, at jeg er nødt til at skulle finde alle flows, hvorfra der sendes push beskeder. Jeg vil benytte lejligheden til at ændre, så det er et centralt flow, som står for at tilføje tidsstemplet og sende push beskederne ud. Det gør det nemt fremover at tilføje/fjerne modtagere.

Det centrale flow

Lad os kigge på flowet som er afbilledet til højre på ovenstående billede. Det er flowet, som fremover håndterer alle sendinger af push beskeder. Jeg bruger en ny tekst variable, som jeg har kaldt Pushbesked, og som jeg giver værdien 0 når jeg opretter den. Jeg giver også Pushbesked variablen værdien 0 i slutningen af flow’et, så standardværdien altid er 0, når beskeden er sendt.

Og hvorfor gør jeg så det? Lad os forestille os, at jeg ikke gør det og der 2 gange i træk skal sendes den samme besked, om at køleskabet ikke er lukket korrekt. Hvis der ikke har været en anden besked i mellemtiden, så kommer besked nummer 2 ikke frem, da der ikke sker en ændring i Pushbesked variablen. Værdien af variablen forbliver den samme og udløser derfor ikke flowet.

Når jeg ændrer værdien af Pushbesked variablen til 0 i slutningen af flowet, så bliver flowet udløst igen – fordi værdien jo blev ændret. Derfor har jeg et kort under AND, hvor jeg sørger kun at fortsætte flowet, hvis værdien af Pushbesked variablen er noget andet end 0.

Hvis vi kigger på venstre og midterste kolonne på billedet, så kan du se, hvordan push besked delen af de gamle (og kommende) flows skal ændres.

Hvad hvis jeg vil opsamle alle beskeder i en log?

Nu er det jo blevet super nemt, at tilføje nye funktioner til håndteringen af beskederne. Bare tilføj et nyt kort i det centrale besked flow, som gemmer værdien af Pushbesked variablen i Papertrails loggen og så er du færdig.

Hvor langt tid ville det have taget førhen?

Begrænsninger

Ideen om det centrale besked flow kan ikke bruges ved de push beskeder, som stiller et spørgsmål og venter på et svar fra modtageren. Den slags beskeder er beskrevet i STIL ET SPØRGSMÅL? artiklen.

Det fungerer heller ikke med push beskeder, som sender et billede med beskeden.

5 thoughts on “Centraliseret besked flow

  • Hej Brian,
    Tak for en meget fin Homey Guide.
    Jeg har prøvet det centrale besked flow og det virker normalt fint. Dog kan jeg se, at hvis man eksempelvis har flere individuelle flows, hvor man benytter “Pushbesked” og hvor aktionerne sker samtidigt, så kommer kun den ene pushbesked frem. Jeg lavede eksempelvis en test med to pærer, hvor pushbeskeden virkede fint hvis man tændte pærerne en af gangen, men hvor kun den ene pushbesked kom frem, hvis man tænder begge pærer samtidigt.
    Kan det fikses?
    Pft.

    • Hej John

      Hmm, ja den situation havde jeg godt nok ikke overvejet – da jeg ikke selv har noget som kommer samtidigt.

      Jeg har ikke testet det, men har tænkt lidt over hvad udfordringen kan være…
      Kan du evt prøve at sætte et delay på et par sekunder på det kort, som sætter Pushbesked variablen til 0?

  • Hej Brian,

    Tak for dit forslag. Det har jeg netop afprøvet. Men desværre tager den ene pushbesked for den ene pære preference, og bliver sendt to gange, når der indtastes et delay på eks. 1, 2 eller 3 sekunder.

    • Hej igen

      Jeg har lavet nogle test flows og jeg oplever det samme som dig.

      Jeg har sendt flow’ene til Athom’s support og forespurgt om det er en bug eller sådan det skal være.

      Jeg vender tilbage når jeg har fået et svar.

    • Jeg har nu fået svar fra Athom’s support af flere omgange, uden at blive rigtigt meget klogere.

      De bliver ved med at foreslå, at lave et delay så de 2 pærer i test eksemplet, ikke tænder samtidig men lidt forskudt, samt giver nedenstående svar, som jeg ikke helt forstår, men i hvert fald ikke kan bruge til noget. Så jeg tror at vi må konkludere, at det ikke kan fungere, hvis der er flere ting som vil sende beskeder i præcist samme sekund.

      Må jeg have lov at være nysgerrig og spørge, hvordan det kan være, at du har en situation hvor der sendes flere beskeder samtidig? Hvis det kun er i én situation, kunne løsningen så være at ændre i det ene flow, så der er 1-2 sekunds forsinkelse, før den ændrer logic variablen, så Homey kan nå at få den første afsted først?

      En del af svaret fra supporten:
      “Homey does a lot of things at the same time and I think the message is not updated before the command is given when the second push notification is send. “

Skriv en kommentar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *