Skip to content

Instantly share code, notes, and snippets.

@dexterlabora
Created September 11, 2016 12:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dexterlabora/9c182422e877fba97900c4713796ad45 to your computer and use it in GitHub Desktop.
Save dexterlabora/9c182422e877fba97900c4713796ad45 to your computer and use it in GitHub Desktop.
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":"Format Message","func":"msg.row = 3;\nmsg.col = 1;\n\nvar n = msg.topic.lastIndexOf('/');\nvar label = msg.topic.substring(n + 1);\n\nmsg.payload = \"oled,\"+msg.row+\",\"+msg.col+\",\"+Math.abs(msg.payload)+\"c\"+\" \"+label;\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":420,"wires":[["ea735335.ead2c","a5819236.361ec"]]},{"id":"c82c3ae0.14c348","type":"mqtt in","z":"2c52dacb.b88696","name":"","topic":"/sensors/iolcity/weather/humidity","qos":"2","broker":"7609358c.89f6cc","x":210,"y":480,"wires":[["f57c5284.94dde"]]},{"id":"54c54cc9.d311f4","type":"mqtt in","z":"2c52dacb.b88696","name":"","topic":"/sensors/iolcity/weather/light","qos":"2","broker":"7609358c.89f6cc","x":200,"y":540,"wires":[["6d9011c9.94bd1"]]},{"id":"7c3a7e9f.ed261","type":"mqtt in","z":"2c52dacb.b88696","name":"","topic":"/sensors/iolcity/weather/heatindex","qos":"2","broker":"7609358c.89f6cc","x":220,"y":600,"wires":[["d596a95.94cc258"]]},{"id":"223bb9cf.9ae356","type":"function","z":"2c52dacb.b88696","name":"Message - Time","func":"msg.ip = \"192.168.0.92\";\nmsg.row = 8;\nmsg.col = 9;\n\nvar duration = msg.payload;\n\nvar milliseconds = parseInt((duration%1000)/100);\nvar seconds = parseInt((duration/1000)%60);\nvar minutes = parseInt((duration/(1000*60))%60);\nvar hours = parseInt((duration/(1000*60*60))%24);\n\nhours = (hours < 10) ? \"0\" + hours : hours;\nminutes = (minutes < 10) ? \"0\" + minutes : minutes;\nseconds = (seconds < 10) ? \"0\" + seconds : seconds;\n\nmsg.payload = hours + \":\" + minutes; // + \":\" + seconds + \".\" + milliseconds;\nmsg.url = \"http://\"+msg.ip+\"/control?cmd=oled\"+\",\"+msg.row+\",\"+msg.col+\",\"+msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":547.5,"y":815,"wires":[["f7ddc55b.1566d8"]]},{"id":"12330744.46f039","type":"inject","z":"2c52dacb.b88696","name":"","topic":"","payload":"","payloadType":"date","repeat":"1","crontab":"","once":true,"x":177.5,"y":815,"wires":[["adb242b5.83676"]]},{"id":"a0867e5d.4c502","type":"inject","z":"2c52dacb.b88696","name":"","topic":"","payload":"69","payloadType":"num","repeat":"","crontab":"","once":false,"x":130,"y":920,"wires":[["a9a97847.0ebec8"]]},{"id":"a9a97847.0ebec8","type":"mqtt out","z":"2c52dacb.b88696","name":"","topic":"billboard/news","qos":"","retain":"","broker":"7609358c.89f6cc","x":356,"y":930,"wires":[]},{"id":"29d798bf.9d2f38","type":"comment","z":"2c52dacb.b88696","name":"Billboard - ESPEasy - OLED","info":"","x":140,"y":40,"wires":[]},{"id":"f7ddc55b.1566d8","type":"debug","z":"2c52dacb.b88696","name":"Billboard time","active":false,"console":"false","complete":"payload","x":747.5,"y":815,"wires":[]},{"id":"adb242b5.83676","type":"delay","z":"2c52dacb.b88696","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"minutes","rate":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":360,"y":820,"wires":[["223bb9cf.9ae356"]]},{"id":"a8957b6a.54dbd8","type":"function","z":"2c52dacb.b88696","name":"Welcome to, IoL City - setInterval","func":"msg.row = 1;\nmsg.col = 1;\n\nvar text = [\n \"~ Welcome To ~\",\n \"~ IoL City ~\"\n ];\n\nvar c = 0\n\nsetInterval(function(){\n msg.payload = \"oled,\"+msg.row+\",\"+msg.col+\",\"+text[c];\n node.send(msg); \n if (c == text.length - 1){\n c = 0;\n }else{\n c++;\n }\n},4000);\n\nreturn null;","outputs":1,"noerr":0,"x":460,"y":280,"wires":[["cd11aeff.639cf","1d0fa469.7541cc"]]},{"id":"cd11aeff.639cf","type":"mqtt out","z":"2c52dacb.b88696","name":"","topic":"/billboard/cmd","qos":"","retain":"","broker":"7609358c.89f6cc","x":820,"y":280,"wires":[]},{"id":"873f2d42.9b587","type":"inject","z":"2c52dacb.b88696","name":"Billboard \"IoL City\"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"x":190,"y":280,"wires":[["a8957b6a.54dbd8"]]},{"id":"1d0fa469.7541cc","type":"debug","z":"2c52dacb.b88696","name":"Billboard Message","active":false,"console":"false","complete":"true","x":810,"y":340,"wires":[]},{"id":"ea735335.ead2c","type":"mqtt out","z":"2c52dacb.b88696","name":"","topic":"/billboard/cmd","qos":"","retain":"","broker":"7609358c.89f6cc","x":820,"y":480,"wires":[]},{"id":"ed922147.3866e","type":"comment","z":"2c52dacb.b88696","name":"Weather Station Feed","info":"","x":160,"y":380,"wires":[]},{"id":"a5819236.361ec","type":"debug","z":"2c52dacb.b88696","name":"Billboard Weather Feed","active":false,"console":"false","complete":"true","x":790,"y":540,"wires":[]},{"id":"f57c5284.94dde","type":"function","z":"2c52dacb.b88696","name":"Format Message","func":"msg.row = 5;\nmsg.col = 1;\n\nvar n = msg.topic.lastIndexOf('/');\nvar label = msg.topic.substring(n + 1);\n\nmsg.payload = \"oled,\"+msg.row+\",\"+msg.col+\",\"+Math.abs(msg.payload)+\"%\"+\" \"+label;\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":480,"wires":[["ea735335.ead2c","a5819236.361ec"]]},{"id":"6d9011c9.94bd1","type":"function","z":"2c52dacb.b88696","name":"Format Message","func":"msg.row = 7;\nmsg.col = 1;\n\nvar n = msg.topic.lastIndexOf('/');\nvar label = msg.topic.substring(n + 1);\n\nmsg.payload = \"oled,\"+msg.row+\",\"+msg.col+\",\"+Math.abs(msg.payload)+\" \"+label;\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":540,"wires":[["ea735335.ead2c","a5819236.361ec"]]},{"id":"d596a95.94cc258","type":"function","z":"2c52dacb.b88696","name":"Format Message","func":"msg.row = 3;\nmsg.col = 1;\n\nvar n = msg.topic.lastIndexOf('/');\nvar label = msg.topic.substring(n + 1);\n\nmsg.payload = \"oled,\"+msg.row+\",\"+msg.col+\",\"+Math.abs(msg.payload)+\"c\"+\" \"+label;\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":600,"wires":[[]]},{"id":"ce27745c.2dd828","type":"comment","z":"2c52dacb.b88696","name":"Billboard - MQTT Monitor","info":"","x":170,"y":80,"wires":[]},{"id":"e54d49a.c55fdb8","type":"comment","z":"2c52dacb.b88696","name":"Billboard - Commands","info":"","x":160,"y":180,"wires":[]},{"id":"7609358c.89f6cc","type":"mqtt-broker","z":"","broker":"mqtt.internetoflego.com","port":"1883","clientid":"IoL-Master-Dash","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"15","cleansession":true,"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":""}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment