Indholdsfortegnelse:

Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret et stykke tid: 16 trin
Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret et stykke tid: 16 trin

Video: Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret et stykke tid: 16 trin

Video: Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret et stykke tid: 16 trin
Video: How Apple Products Are Deaf Friendly 2024, November
Anonim
Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret i et stykke tid
Modtag en notifikations -e -mail, når en kanal på ThingSpeak ikke blev opdateret i et stykke tid

Baggrundshistorie

Jeg har seks automatiserede drivhuse, der er spredt ud over Dublin, Irland. Ved at bruge en specialfremstillet mobiltelefon -app kan jeg eksternt overvåge og interagere med de automatiserede funktioner i hvert drivhus. Jeg kan manuelt åbne / lukke vinduerne, når temperaturen er for høj / lav; Jeg kan starte / stoppe kunstvandingen, når jordfugtigheden er for lav / høj; og jeg kan starte / stoppe ventilatoren, når luftfugtigheden er for høj / lav. Eller jeg kan simpelthen skifte systemet til Auto -tilstand, og grøntsagerne bliver passet af Arduino -hjernen. Flere detaljer om dette projekt findes her -

Fjernforbindelsen til Arduino-kortene på de seks drivhuse er muliggjort ved hjælp af USB GPRS-dongler, en på hvert sted (jeg købte min herfrahttps://www.aliexpress.com/item/Unlocked-New-Huawei-E353 -E353s-2-Med-antenne-3G-USB-modem-21-6-Mbps-HSPA-mobil/32979630201.html? Spm = a2g0s.9042311.0.0.44cb4c4dzVUThU). Som det er tilfældet med mobildataforbindelsen (i hvert fald i Dublin), falder den tilfældigt, nogle gange i et par minutter, nogle gange kan det være i et par timer. Skulle forbindelsen falde, er Arduino programmeret til at nulstille USB -donglen hvert 10. minut, så den kan prøve at starte en ny forbindelse. Nogle gange på grund af (endnu) ukendte årsager, selvom GPRS -dataforbindelsen er tændt igen, undlader Arduino (og det vedhæftede Ethernet -skjold) at lægge mærke til hændelsen. Dette er det øjeblik, jeg skal gå til det pågældende sted og manuelt nulstille hele systemet.

Når dataforbindelsen falder på et eller andet sted, ville jeg hurtigst muligt få besked via e -mail, så jeg kunne holde øje med den pågældende placering. Da kommunikationen mellem telefonappen og Arduino foregår via en onlinetjeneste fra https://thingspeak.com, indtil for nylig (og frem til 31. marts 2019), var dette muligt ved at bruge en anden service leveret af https:// ifttt.com/discover og indstilling af en ThingHTTP og en React på hver kanal, der overvåger, om den pågældende kanal ikke er blevet opdateret i nogen tid. Ifølge en e-mail, jeg modtog fra Google, begyndende med 31. marts 2019, på grund af manglende overholdelse af deres opdaterede krav til databeskyttelse (https://cloud.google.com/blog/products/g-suite/elevating-user -trust-in-our-api-ecosystems), vil adgang til nogle data på min Google-konto ikke længere være tilgængelig for IFTTT, og som i mit tilfælde var e-mailen den eneste ressource, IFTTT havde adgang til, min forståelse var, at meddelelsen tjenesten beskrevet ovenfor ville stoppe med at fungere.

Så her er vi ved at implementere en alternativ løsning, så notifikationer via e -mail fortsat kommer, når dataforbindelsen til mine steder falder. Dette bruger stadig funktionerne ThingHTTP og React på mine kanaler, kun linket til IFTTT blev peget til Google Drev igen. Så bortset fra den hardware (Arduino i mit tilfælde), du måske har kommunikation med din ThingSpeak -konto, skal du oprette en Google -konto, at hvis du ikke allerede har en … og lad os starte!

Trin 1:

Billede
Billede

I Google Drev

For det første skal vi i Google Drev (https://drive.google.com) oprette et regneark og en simpel formular. Åbn dit Google Drev, og klik på Nyt - Google Sheets - Tomt regneark.

Trin 2:

Billede
Billede

Jeg omdøbte min til "Placering ned regneark". Gå derefter til Værktøjer - Opret en formular.

Trin 3:

Billede
Billede

Jeg omdøbte formularen til "Placering ned form" og ændrede "Uden titel" til "Status" og typen fra "Multiple choice" til "Kort svar".

Trin 4:

Billede
Billede

Jeg fjernede derefter muligheden for at indsamle e -mail -adresser - klik på "Skift indstillinger", og fjern markeringen af alle mulighederne i vinduet, der dukkede op. Klik på "Gem".

Trin 5:

Billede
Billede

Luk den aktuelle browserfane, der indeholder din formular, og du skal tilbage til din primære fane i Google Drev, hvor du skal have både formularen og regnearket, du lige har oprettet. Åbn regnearket, og gå til "Fil - Del …". Klik på "Avanceret" i det nye vindue

Trin 6:

Billede
Billede

Klik derefter på "Skift …" ved siden af etiketten "Privat - Kun du har adgang"

Trin 7:

Billede
Billede

og skift til "Til - Alle med linket", og også til "Kan redigere"

Trin 8:

Billede
Billede

Klik på "Gem" og "Udført" for at komme tilbage til dit regneark. Mens du er der, skal du klikke på "File - Publicer på internettet …", og derefter klikke på "Publicer" og "OK" i dialogvinduet. Luk vinduet "Publicer på internettet".

Mens du stadig er i regnearket, skal du klikke på "Formular - Gå til liveformular". Højreklik med din mus (jeg bruger Google Chrome-browseren) og vælg "Vis sidekilde".

Trin 9:

Billede
Billede

På den nye side, der åbner, skal du søge efter "formhandling" og derefter finde det link, der ligner https://docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse. Vælg det link, og kopier og indsæt det i et tekstdokument. Du vil bruge det til at danne det sidste link, der skal indtastes i ThingHTTP for ThingSpeak.

Trin 10:

Billede
Billede

Gå tilbage til kildevisningen i din formular, og søg nu efter "post". Find og vælg hele teksten, noget i retning af "entry. XXXXX". Kopier og indsæt det i det samme tekstdokument som ovenfor. Du kan nu lukke kildevisningen for din Google -formular.

Trin 11:

Billede
Billede

I det nye tekstdokument (hvor du nu har linket og posten, vi har indsat før), skal du oprette det sidste link, der skal se ud

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = Send

I mit tilfælde ville "LOCATION+NAME" blive erstattet af det faktiske navn på hvert bestemt sted, som jeg skal overvåge. Den e -mail -meddelelses -e -mail, som jeg modtager, når forbindelsen falder, indeholder denne tekst, så jeg ved præcis, hvilken placering der har problemer. Denne tekst vil faktisk blive indsendt som indhold med kort tekst til "status" -feltet i Google-formularen. "& Submit = Submit" sender lydløst formularen uden behov for yderligere handlinger, når den påberåbes af ThingHTTP og React.

Endelig skal vi tilføje et script, der automatisk sender en e -mail -meddelelse, hver gang der blev tilføjet en ny post i regnearket. Åbn regnearket, og klik derefter på "Værktøjer - Scripteditor". Tilføj følgende kode i det nye vindue, der åbnes (med de nødvendige ændringer for at afspejle dine behov):

funktion newEntryNotification (e)

{

prøve

{

var tidsstempel = e.værdier [0];

var location = e.values [1];

var message = location + 'location is DOWN / n' + tidsstempel;

MailApp.sendEmail ("DIN E -MAILADRESSE", "Opmærksomhed, placering NED!", Besked);

}

fangst (e)

{

MailApp.sendEmail ("DIN E -MAILADRESSE", "Fejl - opmærksomhed, placering NED!", E.message);

}

}

Erstat teksten "DIN E -MAILADRESSE" med den e -mailadresse, hvor meddelelsen skal sendes, og den faktiske meddelelsesmeddelelse, hvis du ønsker det.

Trin 12:

Billede
Billede

Dette script skal udløses, når der blev tilføjet en ny post i regnearket. Mens du er i det samme vindue (med scriptkoden ovenfor), skal du klikke på ikonet "stopur" i værktøjslinjen - "Aktuelle projekts udløsere". Du bliver bedt om at navngive dit projekt (jeg kaldte mit "locationDown"), og en anden browserfane åbnes og rapporterer, at der ikke blev fundet nogen resultater (ingen udløsere). Klik på "opret en ny trigger".

Trin 13:

Billede
Billede

I det nye vindue skal du vælge "Fra regneark" for "Vælg hændelseskilde"; "På formular indsendelse" for "Vælg begivenhedstype"; "Giv mig besked med det samme" for "Indstillinger for fejlmeddelelse". Klik på "Gem". Du bliver bedt om at logge ind på din Google -konto og "Tillad" denne trigger for at få adgang til din konto, når det er påkrævet.

Trin 14:

Billede
Billede

Du skal nu have en udløser på listen over udløsere, som vil blive knyttet til det script, vi tidligere har oprettet. Derfor, ved indsættelse af nye data i regnearket (ved hjælp af det automatiserede formlink og den lydløse metode beskrevet ovenfor), vil triggeren straks kalde scriptet, som sender en meddelelse til den angivne e -mailadresse, der indeholder din valgte besked.

Vi er færdige i Google Drive -siden, og vi flytter nu til ThingSpeak.

Trin 15:

Billede
Billede

I ThingSpeak Log ind på din konto (https://thingspeak.com/login), gå til "Apps - ThingHTTP", og klik derefter på "New ThingHTTP". Giv det et navn (jeg har valgt det faktiske navn for hver placering; "MyLocationName" med henblik på denne vejledning), og i feltet "URL" skal du indsætte linket fra din tekstfil, den der ligner

docs.google.com/forms/d/e/XXXXXXXXXXXXXXXXXXXXXXXX/formResponse?entry. XXXXX = LOCATION+NAME & submit = Send

Lad alle andre felter være, som de er, og klik på "Gem ThingHTTP".

Trin 16:

Billede
Billede

Gå derefter til "Apps - React", og klik på "New React". Giv det et navn (igen, jeg har valgt placeringsnavnet efterfulgt af ordet "reager", men du kan vælge et hvilket som helst navn, du vil have); "Ingen datatjek" for "Tilstandstype"; "Hvert 10. minut" for "Testfrekvens"; det kanalnavn, du vil overvåge for opdateringer, for "If Channel"; det tidspunkt, hvor kanalen ikke er blevet opdateret (jeg har valgt 15 minutter), for "er ikke blevet opdateret til"; "ThingHTTP" for "Action"; "MyLocationName" for "udfør derefter ThingHTTP"; "Kør handling kun første gang betingelsen er opfyldt", da jeg kun ønsker at få en besked én gang. Dette nulstiller sig selv, når kanalen opdateres igen med nye indgående data. Klik på "Gem reager", og du er færdig.

Fra nu af, når din kanal ikke er blevet opdateret i 15 minutter (eller et andet tidspunkt, afhængigt af hvad du har valgt), vil React fange den undtagelse, der vil udløse ThingHTTP, som igen stille og roligt vil oprette en ny post i din regneark. Udløseren og scriptet på Google Regneark vil tage det derfra, som allerede forklaret ovenfor.

Anbefalede: