Skip to content

Instantly share code, notes, and snippets.

@dexterlabora
dexterlabora / cmxreceiver-lambda-inline-testPOST.js
Created September 26, 2016 16:18
CMX Lambda in-line - TEST POST
{
"resource": "/cmxreceiver-dynamodb",
"path": "/cmxreceiver-dynamodb",
"httpMethod": "POST",
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.8",
"Cache-Control": "no-cache",
"CloudFront-Forwarded-Proto": "https",
@dexterlabora
dexterlabora / cmxreceiver-lambda-inline.js
Last active April 1, 2019 11:14
A Cisco Meraki CMX receiver to be run on Amazon AWS Lambda. This acts as a micro service to collect CMX JSON posts and commit them to a DynamoDB
/**
* Cisco Meraki CMX Receiver to DynamoDB
*
* Written by Cory Guynn
*/
'use strict';
// ******* ENTER YOUR CREDENTIALS **********
@dexterlabora
dexterlabora / OLEDbillboardESPEasy.json
Created September 11, 2016 12:50
A Node-RED flow to collect weather data and transmit it to an ESPEasy based OLED screen using MQTT.
[{"id":"9945da0f.2a7b68","type":"mqtt in","z":"2c52dacb.b88696","name":"","topic":"/billboard/#","qos":"2","broker":"7609358c.89f6cc","x":170,"y":120,"wires":[["e7c65a45.a47508"]]},{"id":"e7c65a45.a47508","type":"debug","z":"2c52dacb.b88696","name":"/billboard/#","active":true,"console":"false","complete":"payload","x":810,"y":120,"wires":[]},{"id":"549d260e.0d5318","type":"inject","z":"2c52dacb.b88696","name":"Billboard Clear","topic":"","payload":"oledcmd,clear","payloadType":"str","repeat":"","crontab":"","once":false,"x":180,"y":220,"wires":[["493a4d4e.763194"]]},{"id":"493a4d4e.763194","type":"mqtt out","z":"2c52dacb.b88696","name":"","topic":"/billboard/cmd","qos":"","retain":"","broker":"7609358c.89f6cc","x":820,"y":220,"wires":[]},{"id":"96a198b3.ecaee8","type":"mqtt in","z":"2c52dacb.b88696","name":"","topic":"/sensors/iolcity/weather/temperature","qos":"2","broker":"7609358c.89f6cc","x":220,"y":420,"wires":[["9f172cb3.ae4b7"]]},{"id":"9f172cb3.ae4b7","type":"function","z":"2c52dacb.b88696","name":"F
@dexterlabora
dexterlabora / Train Crossing - Node-RED flow
Last active September 12, 2016 22:06
This Node-RED flow uses the node-red-contrib-gpio nodes to control a LEGO train crossing using an Arduino nano via Raspberry Pi.
[{"id":"9444f83b.ef0ad8","type":"nodebot","z":"a95b80de.67f24","name":"","username":"","password":"","boardType":"firmata","serialportName":"/dev/ttyUSB0","connectionType":"local","mqttServer":"","socketServer":"","pubTopic":"","subTopic":"","tcpHost":"","tcpPort":"","sparkId":"","sparkToken":"","beanId":"","impId":"","meshbluServer":"https://meshblu.octoblu.com","uuid":"","token":"","sendUuid":""},{"id":"98648f72.7b1ad","type":"inject","z":"a95b80de.67f24","name":"Activate","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"x":103.5,"y":202,"wires":[["3b80da05.e922c6"]]},{"id":"73514cd1.a256c4","type":"function","z":"a95b80de.67f24","name":"Servo 90 degrees","func":"msg.payload = 90;\nreturn msg;","outputs":1,"noerr":0,"x":550,"y":180,"wires":[["71805320.3193ac"]]},{"id":"52f22a6f.2717d4","type":"function","z":"a95b80de.67f24","name":"Servo 180 degrees","func":"msg.payload = 180;\nreturn msg;","outputs":1,"noerr":0,"x":550,"y":240,"wires":[["7ab41623.1c8488"]]},{"id":"9e58777
@dexterlabora
dexterlabora / merakiCMXSampleFlow.json
Created July 27, 2016 09:50
A Cisco Meraki CMX sample flow for Node-RED.
[{"id":"63f92812.0db518","type":"switch","z":"7e446509.34277c","name":"Search Clients","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"Apple","vt":"str"},{"t":"cont","v":"00:26:ab:b8:a9:a5","vt":"str"}],"checkall":"true","outputs":2,"x":140,"y":160,"wires":[["d9c66fc1.8e415"],["d06f6538.11dd78"]]},{"id":"5945d3d6.15f76c","type":"debug","z":"7e446509.34277c","name":"Apple Device Found!","active":true,"console":"false","complete":"payload","x":600,"y":160,"wires":[]},{"id":"d9c66fc1.8e415","type":"function","z":"7e446509.34277c","name":"Apple device found!","func":"msg.payload = \"Apple device found!\"\nreturn msg;","outputs":1,"noerr":0,"x":360,"y":160,"wires":[["5945d3d6.15f76c"]]},{"id":"4cc8a088.2fccb","type":"file","z":"7e446509.34277c","name":"","filename":"logs/cmx.log","appendNewline":true,"createDir":true,"overwriteFile":"false","x":630,"y":100,"wires":[]},{"id":"d06f6538.11dd78","type":"trigger","z":"7e446509.34277c","op1":"Welcome Back!","op2":"We miss you :(","op1type":"str","op2
@dexterlabora
dexterlabora / PalaceCinema-Node-RED.json
Created May 31, 2016 11:07
Node-RED flow to demonstrate controlling two different strands of addressable LEDs for a cinema. More info: www.InternetOfLEGO.com
[{"id":"6693c500.996c3c","type":"ui_tab","z":"","name":"IoL","icon":"dashboard","order":"1"},{"id":"7167a6c3.61f5c8","type":"inject","z":"bbcb5e8d.ab303","name":"Marquee Rainbow","topic":"","payload":"https://iot.seeed.cc/v1/node/GroveLedWs2812D1/start_rainbow_flow/7/25/9?access_token=[yourtoken]","payloadType":"str","repeat":"","crontab":"","once":true,"x":150,"y":120,"wires":[["76ab58cc.d20528"]]},{"id":"71802f0d.9e035","type":"http request","z":"bbcb5e8d.ab303","name":"[post] GroveLedWs2812D1","method":"POST","ret":"txt","url":"","x":540,"y":160,"wires":[["a4a79d6a.f3b34"]]},{"id":"a4a79d6a.f3b34","type":"debug","z":"bbcb5e8d.ab303","name":"Marquee Lights","active":true,"console":"false","complete":"payload","x":760,"y":200,"wires":[]},{"id":"c0f8746c.609bc8","type":"inject","z":"bbcb5e8d.ab303","name":"Roof Rainbow","topic":"","payload":"https://iot.seeed.cc/v1/node/GroveLedWs2812D2/start_rainbow_flow/7/25/4?access_token=[yourtoken]","payloadType":"str","repeat":"","crontab":"","once":true,"x":130,"y":300
[{"id":"24f5738f.cbf0ec","type":"mqtt out","z":"d4b3d624.664fe8","name":"","topic":"/trains/horizonexpress/motor","qos":"","retain":"","broker":"","x":947.4999694824219,"y":661.6666259765625,"wires":[]},{"id":"8f1263f4.60953","type":"trigger","z":"d4b3d624.664fe8","op1":"0","op2":"1000","op1type":"val","op2type":"val","duration":"5","extend":false,"units":"s","reset":"","name":"Pause train 5s","x":712.9999694824219,"y":662.6666259765625,"wires":[["24f5738f.cbf0ec","6f4b984.8d42b68"]]},{"id":"8fd852b1.276e8","type":"delay","z":"d4b3d624.664fe8","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","rateUnits":"minute","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":534.9999694824219,"y":662.6666259765625,"wires":[["8f1263f4.60953"]]},{"id":"6f4b984.8d42b68","type":"debug","z":"d4b3d624.664fe8","name":"Reed: Pausing Train","active":true,"console":"false","complete":"payload","x":926.9999694824219,"y":713.6666259765625,"wires":[]},{"id":"53d90812.d397d8","type"
@dexterlabora
dexterlabora / gist:df109bf67c554dd23bd4cb078bd98f23
Created April 8, 2016 13:36
WiFi Controlled train - Node-RED Master Dashboard
[{"id":"b1a4b956.4e5b48","type":"ui_tab","name":"Train","icon":"dashboard","order":"1"},{"id":"7609358c.89f6cc","type":"mqtt-broker","z":"","broker":"52.19.148.133","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"15","cleansession":true,"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":""},{"id":"1a2d0774.e5d2f9","type":"inject","z":"8e58674f.71a798","name":"Forward","topic":"motor","payload":"{\"command\":{\"motor\":1024}}","payloadType":"json","repeat":"","crontab":"","once":false,"x":117,"y":3088,"wires":[["bd88d388.42773"]]},{"id":"b8189f3c.47e76","type":"inject","z":"8e58674f.71a798","name":"Stop","topic":"motor","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"x":107,"y":3168,"wires":[["bd88d388.42773"]]},{"id":"b18313d0.4e7cf","type":"inject","z":"8e58674f.71a798","name":"Reverse","topic":"motor","payload":"-1000","payloadType":"num","repeat":"",
@dexterlabora
dexterlabora / WiFi-Controlled-Train-Node-RED-UI.json
Last active February 26, 2017 01:34
WiFi controlled LEGO train using NodeMCU and aREST - This the Node-RED UI, to be run on a local server such as a Raspberry Pi.
[{"id":"1e952328.aa7cbd","type":"mqtt-broker","z":"a073730a.79863","broker":"52.19.148.133","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willRetain":null,"willPayload":"","birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":""},{"id":"50bfec48.165834","type":"ui_tab","name":"Train","icon":"dashboard","order":"1"},{"id":"36934f45.9d7e","type":"inject","z":"a073730a.79863","name":"Forward","topic":"motor","payload":"1023","payloadType":"str","repeat":"","crontab":"","once":false,"x":120,"y":80,"wires":[["55863283.b31b3c"]]},{"id":"8413bbda.0048b8","type":"inject","z":"a073730a.79863","name":"Stop","topic":"motor","payload":"0","payloadType":"string","repeat":"","crontab":"","once":false,"x":110,"y":160,"wires":[["55863283.b31b3c"]]},{"id":"a640c6b2.71bec8","type":"inject","z":"a073730a.79863","name":"Reverse","topic":"motor","payload":"-1023","payloadType":"string","repeat":"","crontab":"","onc
@dexterlabora
dexterlabora / NodeMCU_WiFi_LEGO_train-aREST-lights.ino
Created March 30, 2016 09:16
WiFi Controlled LEGO Train - NodeMCU with REST interface using Arduino IDE
/*
This program provides a WiFi connected REST interface for a LEGO Power Functions motor and lights.
Written in 2016 by Cory Guynn under a GPL license.
www.InternetOfLEGO.com
*/
// Import required libraries
#include <ESP8266WiFi.h>