-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpanicButton.js
86 lines (76 loc) · 2.07 KB
/
panicButton.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/**
* This is a sample Lambda function that sends an SMS on click of a
* button. It needs one permission sns:Publish. The following policy
* allows SNS publish to SMS but not topics or endpoints.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": [
"*"
]
},
{
"Effect": "Deny",
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:*:*:*"
]
}
]
}
*
* The following JSON template shows what is sent as the payload:
{
"serialNumber": "GXXXXXXXXXXXXXXXXX",
"batteryVoltage": "xxmV",
"clickType": "SINGLE" | "DOUBLE" | "LONG"
}
*
* A "LONG" clickType is sent if the first press lasts longer than 1.5 seconds.
* "SINGLE" and "DOUBLE" clickType payloads are sent for short clicks.
*
* For more documentation, follow the link below.
* http://docs.aws.amazon.com/iot/latest/developerguide/iot-lambda-rule.html
*/
'use strict';
const AWS = require('aws-sdk');
const SNS = new AWS.SNS({ apiVersion: '2010-03-31' });
const PHONENUMBER = '6581136652'; // Replace with your number
exports.handler = (event, context, callback) => {
console.log('Received event:', event);
if (event.clickType == "LONG")
{
const payload = JSON.stringify(event);
const params = {
PhoneNumber: PHONENUMBER,
Message: "HELP! I've fallen and I can't up! -Grandma",
};
SNS.publish(params, callback);
}
if (event.clickType == "SINGLE")
{
const payload = JSON.stringify(event);
const params = {
PhoneNumber: PHONENUMBER,
Message: "I am going downstairs for a walk! -Grandma",
};
SNS.publish(params, callback);
}
if (event.clickType == "DOUBLE")
{
const payload = JSON.stringify(event);
const params = {
PhoneNumber: PHONENUMBER,
Message: "I am okay! -Grandma",
};
SNS.publish(params, callback);
}
// result will go to function callback
};