SMS Kammando System och central kontroll

En del människor vill kunna styra olika saker både via en instrumentpanel och via sin telefon med t.ex. SMS. Detta kan göras med GSMCloud och kan skalas när det gäller antal och kommandon.

I detta inlägg kommer vi att använda oss av följande noder:

  • TIME: Lägg till tid, mellan, puls.
  • LOGIK: NOT Gate, Is NULL, Value, AND, Match.
  • Meddelanden: Ta emot SMS, skicka SMS, skriva till logg.

Jämfört med ett grundläggande flöde som använder kommandon via SMS är det relativt enkelt.

Vi börjar med att använda oss av vår "Receive SMS"-nod där vi behöver skapa ett subsystem som håller reda på när flödet ska uppdateras. Detta eftersom vi lätt kan stöta på något som kallas "deadlock". 

Och kom ihåg att inte lämna något oanvänt i fältet "TO" i Skicka SMS. 

Uppdateringssystem

Vi börjar med att ta vårt Receive SMS, varefter vi måste ansluta Timestamp till 2x Add Time - Add Time ska ställas in på 10 sekunder. Nu behöver vi vår Between-nod, den här noden ska anslutas till båda Add time-noderna - den ena ska tidsinställa "Time" och den andra till "Input 2". Nu ansluter vi bara tidsstämpeln från Receive SMS till "Input 1". Between-nodens utgång går i en 10-sekunders puls.

Ta emot SMS uppdateringssystem

Telefonnummer

Denna del är inte komplicerad, men kan bli lång med tanke på hur många personer som ska kunna skicka SMS till systemet. Här behöver vi vår Value(text)-nod och Match-nod.

Hur fungerar matchningsnoden?

Kort sagt, den tar en inmatning som den matchar med fälten i den och tar den inmatning som går till fältet.

Först och främst är det en god idé att ha en lista över de personer som ska vara med i systemet. Alla nummer bör börja med en landskod. I vårt fall alltså "+45".

I Receive SMS finns det en output som heter "Sender" som ska dras till vår match-nods input. Nu kommer noden att matcha telefonnumret som kommer in med det som skrivs in.

Nu kan du ta Value-noden och ändra den till text för att lägga till namn i match-noden, så att du enkelt kan logga vem som skickade ett SMS och när utan problem.

Nu har du ett system som hanterar telefonnummer och ser till att det är rätt nummer.

SMS-kommandon och koder

Det är egentligen precis samma sak som med telefonnummer. Det är inte så stor skillnad, den enda skillnaden är att det inte spelar någon roll vad du skriver i Match-noden. Så länge den får rätt typ av inmatning. Om du till exempel ger den ett värde "TRUE" kommer den att skicka "TRUE", men "TRUE" kommer inte att loggas eller skickas som ett meddelande utan ett ytterligare system som kan "omvandla" värdet till en STRING som är "levande". MEN, det kan användas i form av ett system för att "trigga" något annat om det vill.

Men du kan ge matchnoden "temp", "1" eller "?62345". När du har skapat de kommandon du vill ha kan du ta vilken utdata som helst från din enhet, till exempel temperatur och senaste uppdatering från en GT-1000 Pro, du kommer inte att kunna ta batteri eftersom det är ett sant/falskt värde, utan att behöva göra något extra.

Ta emot SMS Kommandon för matchningsflöde

Jag vill dock inte logga personer som inte finns med på listan.

Inga problem, vi lägger bara till lite extra i flödet. Om Match-noden för data som inte matchar, kommer den att ge "NULL" som utdata. Vilket innebär att vi kan kuba en "Is NULL", "Not GATE" och en "AND Gate"-nod för att lösa problemet.

Ta en "Is NULL"-nod och anslut den till utgången från vår nod för matchning av telefonnummer. Sedan måste vi ansluta vår "Is NULL" till en "AND Gate". Anslut sedan din puls till "AND Gate" också.

Detta innebär att den alltid kommer att skicka "true" om ett nytt meddelande kommer oavsett om det är samma nummer eller inte. Det betyder också att om en person som skickar ett SMS inte finns med på listan över "tillåtna" telefonnummer, kommer vår "AND Gate" inte att gå till "True".

Koppla ihop hela systemet

Först och främst kan vi lägga till en "Write To Log"-nod. Med detta måste vi skapa ett meddelande, i detta meddelande måste vi skapa några variabler - för att hålla det enkelt kommer mitt meddelande bara att vara `{avsändare} - {kommando}`. Detta gör att vi kan dra in andra noders utdata i vårt meddelande.

Nu är det äntligen dags, i din mottagning av SMS måste du ansluta "Sender" till din telefonnummermatchningsnod - dessutom måste du ansluta "Message" till kommandonoden.

Både noden för matchning av telefonnummer och kommandonoden ska anslutas till vår "Write To Log"-nod. Och vår "AND Gate" ska anslutas till vår "Write"-ingång på loggnoden.

Men jag skulle vilja få ett SMS-meddelande

Då använder du bara vår "Skicka SMS" nod. Du måste lägga till alla telefonnummer du vill skicka till i fältet som heter "Till", för att ange fler nummer, tryck på "enter" efter, nummer i den här noden behöver inte en landskod.

Det ska sägas att alla i den här noden kommer att få ett meddelande - att separera meddelanden baserat på vem som skickar ett meddelande kräver ytterligare utveckling i ditt flöde.

Ritningarna är gjorda med Exalidraw