Skip to content

Instantly share code, notes, and snippets.

@xmlking
Last active September 21, 2015 21:50
Show Gist options
  • Save xmlking/5fe77ea443a8560ff74b to your computer and use it in GitHub Desktop.
Save xmlking/5fe77ea443a8560ff74b to your computer and use it in GitHub Desktop.
Amazon Dash Button triggering Auth0's `webtask` to send text message when button is pressed.

Node-Dash-Button-Webtasks

Simple demo showcasing IoT and Auto0's Webtask integration.

npm install wt-cli -g

wt create send_text.js --name send_text -s TWILIO_ACCOUNT_SID=aaaa -s TWILIO_AUTH_TOKEN=aaa -s TWILIO_NUMBER=+15005550006

sudo python run.py
from scapy.all import *
import requests
import time
WEB_TASK_URL = 'https://webtask.it.auth0.com/api/run/wt-xmlking+github-gmail_com-0/send_text?webtask_no_cache=1'
def call_webtask():
data = {
"Timestamp": time.strftime("%Y-%m-%d %H:%M"),
"to": '+19513677933',
"message": 'Tide button pressed'
}
r = requests.post(WEB_TASK_URL, data)
print(r.text)
def arp_display(pkt):
if pkt[ARP].op == 1: #who-has (request)
if pkt[ARP].psrc == '0.0.0.0': # ARP Probe
if pkt[ARP].hwsrc == '74:75:48:8a:4f:f0': # Tide
# print "Pushed Tide"
call_webtask()
else:
print "ARP Probe from unknown device: " + pkt[ARP].hwsrc
print sniff(prn=arp_display, filter="arp", store=0, count=10)
"use latest";
var request = require('request');
module.exports = function (context, callback) {
var required_params = ['TWILIO_AUTH_TOKEN', 'TWILIO_ACCOUNT_SID', 'to', 'TWILIO_NUMBER', 'message'];
for (var p in required_params)
if (!context.data[required_params[p]])
return callback(new Error('The `' + required_params[p] + '` parameter must be provided.'));
request({
url: 'https://api.twilio.com/2010-04-01/Accounts/' + context.data.TWILIO_ACCOUNT_SID + '/Messages',
method: 'POST',
auth: {
user: context.data.TWILIO_ACCOUNT_SID,
pass: context.data.TWILIO_AUTH_TOKEN
},
form: {
From: context.data.TWILIO_NUMBER,
To: context.data.to,
Body: context.data.message
}
}, function (error, res, body) {
callback(error, body);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment