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?
Læser idé: Send kun beskeder til personer, som er hjemme
Efter at have læst denne artikel har Mika skrevet i kommentarerne og spurgt, hvordan man kan lave, så det kun er personer, som er hjemme, som modtager beskeder fra Homey.
Jeg synes at ideen er så god, at jeg har valgt at opdatere denne artikel med et afsnit, der forklarer løsningen. Det kan faktisk ikke lade sig gøre at løse dette, hvis man ikke bruger centraliseret besked flows – så det er en helt ny funktion, som Mika har fundet på og som kan glæde os alle!
Inden du kan lave flows til dette, så kræver det at Homey ved, hvem der er hjemme og hvem der er ude af huset. Jeg har lavet en artikel om emnet her: AUTOMATISK TILSTEDEVÆRELSE MED SMART PRESENCE OG WIFI
Jeg bruger i ovenstående flow eksempel Homeys indbygget brugersystem, men du kan også lave tilsvarende, selvom dine brugere kun ligger i Smart Presence.
Ideen er, at du skal lave ét centralt besked flow pr. bruger. Så er der 5 brugere, så skal du lave 5 flows. Vi er kun 2, så jeg viser det for 2 personer.
Uanset om I er 2 eller 5 personer, så skal der, i mindst et af flowene, være et kort under else, som nulstiller Pushbesked variablen, hvis personen ikke er hjemme. Det sikrer, at hvis alle er ude af huset, så bliver variablen stadigvæk nulstillet.
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.
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. “
Hej.
Tak for fordi du deler ud af din erfaring med homey. Dette er til stor gavn for os andre med homey:)
Jeg har allerede brugt dette flow i noget tid, og er glad for det.
Men en anden her i husstanden brokker sig til tider over antallet af beskeder hun modtager når hun er på arbejde:)
Har du en smart og simpel må, hvor enkelte af husstandens brugere kun for besked hvis de er hjemme
Hej Mika
Tak for de rosende ord! Og ikke mindst tak for den fantastiske ide! Jeg har opdateret artiklen, så der nu er et afsnit der viser, hvordan man laver det 🙂
Super fedt du har en løsning på dette, havde selv lidt svært ved at gennemskue hvordan flowet skulle strikkes sammen:)
Tak?