Last active
August 29, 2015 13:59
-
-
Save cat-haines/10999504 to your computer and use it in GitHub Desktop.
Code for the SkyNet blog post
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| data <- { | |
| platform = "electric imp", | |
| online = true, | |
| token = "4e64e622-f456-44a6-af00-b996b6bea7a1", | |
| type = "temp", | |
| lat = 37.39674, | |
| long = -122.10473 | |
| } | |
| http.post(SKYNET_BASE + "devices", {}, http.urlencode(data)).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| data <- { | |
| token = "4e64e622-f456-44a6-af00-b996b6bea7a1", | |
| } | |
| http.request("DELETE", SKYNET_BASE + DEVICES + "/" + deviceId, { "Content-Type": "application/json" }, http.jsonencode(data)).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| http.get(SKYNET_BASE + DATA + "/" + deviceId +"?token=" + "4e64e622-f456-44a6-af00-b996b6bea7a1").sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| deviceId <- "c61e9231-c65c-11e3-808c-e1edaeb5122d"; | |
| http.get(SKYNET_BASE + DEVICES + "/" + deviceId).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| searchData <- { | |
| platform = "electric imp" | |
| } | |
| http.get(SKYNET_BASE + DEVICES + "?" + http.urlencode(searchData)).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const DATA = "data"; | |
| local data <- { | |
| token = "4e64e622-f456-44a6-af00-b996b6bea7a1", | |
| temp = 103, | |
| unit = "F" | |
| } | |
| http.post(SKYNET_BASE + DATA + "/" + deviceID, headers, http.jsonencode(data)).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const SKYNET_BASE = "https://skynet.im/" | |
| http.get(SKYNET_BASE + "status").sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function StreamData(autoReconnect, onDataCallback = null) { | |
| // build the Url | |
| local url = format("%s/%s/%s?token=%s&stream=true", SKYNET_BASE, DATA, deviceId, token); | |
| server.log("Opening stream.."); | |
| local streamingRequest = http.get(url).sendasync(function(resp) { | |
| // this function is executed whenever the stream is closed | |
| server.log(format("Stream closed (%s - %s)", resp.statuscode.tostring(), resp.body)); | |
| if (autoReconnect) { | |
| StreamData(true); | |
| } | |
| }.bindenv(this), function(data) { | |
| // this function is executed whenever we get data through the stream | |
| if (onDataCallback) { | |
| try { | |
| local d = http.jsondecode(data); | |
| onDataCallback(d); | |
| } catch (ex) { | |
| server.log("Error in onData callback: " + ex); | |
| server.log("data=" + data); | |
| } | |
| } | |
| }.bindenv(this)); | |
| } | |
| StreamData(true, function(d) { | |
| // whenever we get data, log it: | |
| server.log(http.jsonencode(d)); | |
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| data <- { | |
| token = "4e64e622-f456-44a6-af00-b996b6bea7a1", | |
| x = 5 | |
| } | |
| http.put(SKYNET_BASE + DEVICES + "/" + deviceId, { "Content-Type": "application/json" }, http.jsonencode(data)).sendasync(function(resp) { | |
| server.log(resp.statuscode + ": " + resp.body); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment