Innehållsförteckning:
- Steg 1:
- Steg 2:
- Steg 3:
- Steg 4:
- Steg 5:
- Steg 6:
- Steg 7:
- Steg 8:
- Steg 9:
- Steg 10:
- Steg 11:
- Steg 12:
- Steg 13:
- Steg 14:
- Steg 15:
- Steg 16:
Video: Få ett e -postmeddelande när en kanal på ThingSpeak inte uppdaterades på ett tag: 16 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Bakgrundshistoria
Jag har sex automatiserade växthus som är spridda över Dublin, Irland. Genom att använda en skräddarsydd mobilapp kan jag fjärrövervaka och interagera med de automatiska funktionerna i varje växthus. Jag kan öppna / stänga fönstren manuellt när temperaturen är för hög / låg; Jag kan starta / stoppa bevattningen när markfuktigheten är för låg / hög; och jag kan starta / stoppa ventilationsfläkten när luftfuktigheten är för hög / låg. Eller så kan jag helt enkelt växla systemet till autoläge, och grönsakerna kommer att tas om hand av Arduino -hjärnan. Mer information om detta projekt hittar du här -
Fjärranslutningen till Arduino-korten vid de sex växthusen möjliggörs med hjälp av USB GPRS-donglar, en på varje plats (jag köpte min härihttps://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-With-Antenna-3G-USB-Modem-21-6-Mbps-HSPA-Mobile/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Som det är fallet med mobildataanslutningen (åtminstone i Dublin) sjunker den slumpmässigt, ibland i några minuter, ibland kan det vara i ett par timmar. Skulle anslutningen falla, är Arduino programmerad att återställa USB -dongeln var 10: e minut, så att den kan försöka initiera en ny anslutning. Ibland, på grund av (ännu) okända orsaker, även om GPRS -dataförbindelsen är påslagen, misslyckas dock Arduino (och den anslutna Ethernet -skölden) om händelsen. Det här är det ögonblick jag behöver gå till den specifika platsen och manuellt återställa hela systemet.
När dataanslutningen faller på någon plats ville jag bli meddelad via e -post så snart som möjligt, så att jag skulle kunna hålla koll på den specifika platsen. Eftersom kommunikationen mellan telefonappen och Arduino sker via en onlinetjänst som tillhandahålls av https://thingspeak.com, fram till nyligen (och fram till 31 mars 2019), var detta möjligt genom att använda en annan tjänst från https:// ifttt.com/discover, och ställa in en ThingHTTP och en reagera på varje kanal, övervaka det faktum om just den kanalen inte har uppdaterats på ett tag. Enligt ett e-postmeddelande som jag fick från Google från och med 31 mars 2019 på grund av bristande efterlevnad av deras uppdaterade dataskyddskrav (https://cloud.google.com/blog/products/g-suite/elevating-user -förtroende-i-våra-api-ekosystem), åtkomst till vissa data i mitt Google-konto kommer inte längre att vara tillgängligt för IFTTT, och som i mitt fall var e-postmeddelandet den enda resurs IFTTT hade tillgång till, min förståelse var att meddelandet tjänsten som beskrivs ovan skulle sluta fungera.
Så därför, här är vi, implementerar en alternativ lösning för att e -postaviseringarna ska fortsätta att komma när dataanslutningen på mina platser faller. Detta använder fortfarande funktionerna ThingHTTP och React på mina kanaler, bara länken till IFTTT pekades om till Google Drive. Så bortsett från hårdvaran (Arduino i mitt fall) som du kanske kommunicerar med ditt ThingSpeak -konto, måste du skapa ett Google -konto, om du inte redan har ett … och låt oss börja!
Steg 1:
I Google Drive
Först i Google Drive (https://drive.google.com) måste vi skapa ett kalkylblad och ett enkelt formulär. Öppna din Google Drive och klicka på Nytt - Google Kalkylark - Tomt kalkylblad.
Steg 2:
Jag bytte namn på mitt "Location down spreadsheet". Gå sedan till Verktyg - Skapa ett formulär.
Steg 3:
Jag bytte namn på formuläret till "Plats ned formulär" och ändrade "Untitled question" till "Status" och typen från "Multiple choice" till "Short answer".
Steg 4:
Jag tog bort alternativet för att samla e -postadresser - klicka på "Ändra inställningar" och avmarkerade alla alternativ i fönstret som dök upp. Klicka på "Spara".
Steg 5:
Stäng den aktuella webbläsarfliken som innehåller ditt formulär, och du bör återgå till din huvudsakliga Google Drive -flik, där du ska ha både formuläret och kalkylarket du just skapade. Öppna kalkylbladet och gå till "Arkiv - Dela …". Klicka på "Avancerat" i det nya fönstret
Steg 6:
Klicka sedan på "Ändra …" bredvid etiketten "Privat - bara du kan komma åt"
Steg 7:
och ändra till "På - Alla med länken", och även till "Kan redigera"
Steg 8:
Klicka på "Spara" och "Klar" för att komma tillbaka till kalkylarket. Klicka på "Arkiv - Publicera på webben …" och klicka sedan på "Publicera" och "OK" i dialogrutan. Stäng fönstret "Publicera på webben".
Medan du fortfarande är i kalkylarket klickar du på "Form - Gå till liveform". Högerklicka med musen (jag använder webbläsaren Google Chrome) och välj "Visa sidkälla".
Steg 9:
På den nya sidan som öppnar sök efter "formuläråtgärd" och leta sedan upp länken som liknar https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Välj den länken och kopiera och klistra in den i något textdokument. Du kommer att använda den för att bilda den slutliga länken som måste anges i ThingHTTP för ThingSpeak.
Steg 10:
Gå tillbaka till källvyn i ditt formulär och sök nu efter "post". Leta reda på och markera hela texten, ungefär "entry. XXXXX". Kopiera och klistra in det i samma textdokument som ovan. Du kan nu stänga källvyn för ditt Google -formulär.
Steg 11:
I det nya textdokumentet (där du nu har länken och posten som vi klistrade in tidigare), skapa den sista länken, som ska se ut
docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = PLATS+NAMN & skicka = Skicka
I mitt fall skulle "LOCATION+NAME" ersättas med det faktiska namnet på varje specifik plats som jag behöver övervaka. E -postmeddelande -e -postmeddelandet som jag kommer att få när anslutningen upphör kommer att innehålla denna text, så att jag vet exakt vilken plats som har problem. Denna text kommer faktiskt att skickas som korttextinnehåll för "status" -fältet i Google-formuläret. "& Submit = Submit" skickar tyst formuläret, utan att det behövs några ytterligare åtgärder, när det åberopas av ThingHTTP och React.
Slutligen måste vi lägga till ett skript som automatiskt skickar ett e -postmeddelande varje gång en ny post har lagts till i kalkylarket. Öppna kalkylbladet och klicka sedan på "Verktyg - Skriptredigerare". Lägg till följande kod i det nya fönstret som öppnas (med de nödvändiga ändringarna för att återspegla dina behov):
funktion newEntryNotification (e)
{
Prova
{
var tidsstämpel = e.values [0];
var location = e.values [1];
var message = location + 'location is DOWN / n' + tidsstämpel;
MailApp.sendEmail ("DIN E -POSTADRESS", "Uppmärksamhet, plats NED!", Meddelande);
}
fångst (e)
{
MailApp.sendEmail ("DIN E -POSTADRESS", "Fel - uppmärksamhet, plats DOWN!", E.message);
}
}
Ersätt texten "DIN E -POSTADRESS" med den e -postadress som meddelandet ska skickas till och det faktiska meddelandet om du så önskar.
Steg 12:
Detta skript måste aktiveras när en ny post har lagts till i kalkylarket. I samma fönster (med skriptkoden ovan), klicka på ikonen "stoppur" i verktygsfältet - "Aktuella projektets triggers". Du kommer att bli ombedd att namnge ditt projekt (jag heter mitt "locationDown") och en annan webbläsarflik öppnas och rapporterar att inga resultat (inga utlösare) hittades. Klicka på "skapa en ny trigger".
Steg 13:
I det nya fönstret väljer du "Från kalkylblad" för "Välj händelsekälla"; "På formuläret skicka" för "Välj händelsetyp"; "Meddela mig omedelbart" för "Inställningar för felmeddelanden". Klicka på "Spara". Du kommer att bli ombedd att logga in på ditt Google -konto och "Tillåt" den här utlösaren för att komma åt ditt konto när det behövs.
Steg 14:
Du bör nu ha en utlösare i utlösarlistan, som kommer att länkas till skriptet som vi skapade tidigare. Därför, vid införande av ny data i kalkylarket (med hjälp av den automatiska formulärlänken och den tysta metoden som beskrivs ovan), kommer utlösaren omedelbart att ringa till skriptet, vilket skickar ett meddelande till den angivna e -postadressen som innehåller ditt valda meddelande.
Vi är klara på Google Drive -sidan, och vi går nu till ThingSpeak.
Steg 15:
I ThingSpeak Logga in på ditt konto (https://thingspeak.com/login), gå till "Apps - ThingHTTP" och klicka sedan på "New ThingHTTP". Ge det ett namn (jag har valt det faktiska namnet på varje plats; "MyLocationName" i syfte med den här självstudien) och i fältet "URL" klistrar du in länken från din textfil, den som ser ut
docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = Skicka
Lämna alla andra fält som de är och klicka på "Save ThingHTTP".
Steg 16:
Gå sedan till "Apps - React" och klicka på "New React". Ge det ett namn (igen, jag har valt platsnamnet följt av ordet "reagera", men du kan välja vilket namn du vill); "Ingen datakontroll" för "Villkorstyp"; "Var tionde minut" för "Testfrekvens"; kanalnamnet som du vill övervaka för uppdateringar, för "If Channel"; tiden som kanalen inte har uppdaterats (jag har valt 15 minuter), för "har inte uppdaterats för"; "ThingHTTP" för "Action"; "MyLocationName" för "utför sedan ThingHTTP"; "Kör åtgärd bara första gången villkoret uppfylls", eftersom jag bara vill få ett meddelande en gång. Detta återställer sig själv när kanalen uppdateras igen med nya inkommande data. Klicka på "Save React" och du är klar.
Från och med nu när din kanal inte har uppdaterats på 15 minuter (eller annan gång, beroende på vad du har valt), kommer React att fånga det undantaget som kommer att utlösa ThingHTTP, vilket i sin tur tyst skapar en ny post i din kalkylblad. Utlösaren och skriptet på Googles kalkylblad tar det därifrån, som redan förklarats ovan.
Rekommenderad:
När Makita BL1813G -batterier inte passar Makitas webbplatsradio: 6 steg
När Makita BL1813G-batterier inte passar Makita Site Radio: Batterierna för Makita Cordless 18V Li-Ion Combi Drill HP457D passar inte dockningen för platsradioerna, något att göra med att denna borr marknadsförs till byggvaruhus och Amazon för DIY -användning. Detta är väldigt irriterande eftersom jag inte visste
Att bli vaccinerad eller inte? ett projekt om observation av besättningsimmunitet genom sjukdomssimulering: 15 steg
Att bli vaccinerad eller inte? ett projekt om att observera besättningsimmunitet genom sjukdomssimulering: Projektöversikt: Vårt projekt utforskar flockimmunitet och hoppas kunna uppmuntra människor att vaccinera sig för att minska infektionsgraden i våra samhällen. Vårt program simulerar hur en sjukdom infekterar en befolkning med olika procentsatser vaccinering
Vad du ska göra när ITunes inte känner igen din iPod: 7 steg
Vad du ska göra när ITunes inte känner igen din iPod: Så du fick din nya iPod och du är så glad att använda den. Du ansluter USB -kabeln till datorn och ansluter den andra änden till din iPod. Nu stöter du på ett problem. Av någon anledning upptäcker inte iTunes din iPod. Du kanske tror att det här är en pr
Hur man gör ett fantastiskt nattljus (men det varar inte för länge): 7 steg
Hur man gör ett fantastiskt nattljus (men det håller inte för länge): det här visar dig hur du gör ett fantastiskt nattljus med en laser, vax och en glödlampa
Hur man skjuter en självständig film i tunnelbanan i New York när du inte har råd med tillstånd: 12 steg
Hur man skjuter en självständig film i tunnelbanan i New York när du inte har råd: Det här är en enkel guide för blivande oberoende filmskapare där ute som har drömmar om att skjuta den magiska scenen i New York Citys vackra tunnelbanesystem, men som har inte råd med de tusentals dollar som krävs för att få tillstånd att skjuta lagligt