OpenWeather API Flow

Here is my current flow. I will add another 5 day forecast too when I get it done.

[{"id":"6acc9db.7a04264","type":"tab","label":"Proelian","disabled":false,"info":""},{"id":"41b964aa.16c99c","type":"inject","z":"6acc9db.7a04264","name":"","topic":"","payload":"","payloadType":"date","repeat":"15","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":40,"wires":[["90657ec7.3489","e5eb33da.12ab1"]]},{"id":"df9d40fa.99fd78","type":"openweathermap in","z":"6acc9db.7a04264","name":"Openweathermap","wtype":"current","lon":"","lat":"","city":"San Andreas","country":"California","language":"en","x":100,"y":290,"wires":[["777b03c9.e1a804","58bdc1c1.c8c78"]]},{"id":"4b774407.efeda4","type":"zabbix-sender","z":"6acc9db.7a04264","zabbixServer":"127.0.0.1","zabbixPort":10051,"sendTimestamps":false,"withNs":false,"timeout":5000,"defaultHostname":"Zabbix server","x":1250,"y":200,"wires":[]},{"id":"ed6ce4cb.aadb6","type":"function","z":"6acc9db.7a04264","name":"Zabbix Array","func":"var payload=msg.payload;\nmsg.payload = ['Zabbix server', 'system.cpu.temp', payload ]\nreturn msg;","outputs":1,"noerr":0,"x":560,"y":200,"wires":[["20d97373.f574fc"]]},{"id":"777b03c9.e1a804","type":"function","z":"6acc9db.7a04264","name":"Openweather Zabbix Function","func":"var payload=msg.payload;\nmsg.payload = [\n    ['Zabbix server', 'openweather.tempk', payload.tempk ],\n    ['Zabbix server', 'openweather.maxtemp', payload.maxtemp ],\n    ['Zabbix server', 'openweather.mintemp', payload.mintemp ],\n    ['Zabbix server', 'openweather.tempc', payload.tempc ],\n    ['Zabbix server', 'openweather.temp_maxc', payload.temp_maxc ],\n    ['Zabbix server', 'openweather.temp_minc', payload.temp_minc ],\n    ['Zabbix server', 'openweather.humidity', payload.humidity ],\n    ['Zabbix server', 'openweather.pressure', payload.pressure ],\n    ['Zabbix server', 'openweather.windspeed', payload.windspeed ],\n    ['Zabbix server', 'openweather.winddirection', payload.winddirection ],\n    ['Zabbix server', 'openweather.sunrise', payload.sunrise ],\n    ['Zabbix server', 'openweather.sunset', payload.sunset ],\n    ['Zabbix server', 'openweather.clouds', payload.clouds ]\n]    \nreturn msg;","outputs":1,"noerr":0,"x":380,"y":290,"wires":[["a5ceab0c.d138e8"]]},{"id":"58bdc1c1.c8c78","type":"function","z":"6acc9db.7a04264","name":"Openweather Dashboard Function","func":"var msg1 = { payload:msg.payload.temp_maxc };\nmsg1.topic = \"Max\";\nvar msg2 = { payload:msg.payload.tempc };\nmsg2.topic = \"Current\";\nvar msg3 = { payload:msg.payload.temp_minc };\nmsg3.topic = \"Min\";\nvar msg4 = { payload:msg.payload.description};\nvar msg5 = { payload:msg.payload.icon};\nvar msg6 = { payload:msg.payload.pressure};\nvar msg7 = { payload:msg.payload.humidity};\nvar msg8 = { payload:msg.payload.clouds};\nvar msg9 = { payload:msg.payload.windspeed};\nvar msg10 = { payload:msg.payload.winddirection};\nvar msg11 = { payload:msg.payload.sunrise};\nvar msg12 = { payload:msg.payload.sunset};\nvar msg13 = { payload:msg.location};\nreturn [ msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9, msg10, msg11, msg12, msg13 ];","outputs":13,"noerr":0,"x":390,"y":430,"wires":[["e08f590.57f33a8","57dff58e.8ec274"],["e08f590.57f33a8","c75ee5d0.8550e"],["e08f590.57f33a8","e6350e56.21106"],["302cf849.6a4e58"],["fb81c77f.51b148"],["13a8b34b.a559ad"],["42c43d9.2d9c7c4"],["bcdd3969.389168"],["4dc13725.0a2d28"],["8d90e8b7.55bb48"],[],[],[]],"outputLabels":["Temp Max","Current Temp","Temp Min","Description","Weather icon","Pressure","Humidity","Clouds","Wind Speed","Wind Direction","Sunrise","Sunset","Location"]},{"id":"9557f682.c2d048","type":"ui_gauge","z":"6acc9db.7a04264","name":"Max Temp","group":"c10a76da.b6e7d8","order":25,"width":7,"height":5,"gtype":"gage","title":"Max Temp","label":"","format":"{{value | number:2}} ºF","min":"-15","max":"120","colors":["#0080ff","#008080","#ca3838"],"seg1":"60","seg2":"80","x":1270,"y":290,"wires":[]},{"id":"9d3a2b43.a1bbc8","type":"ui_gauge","z":"6acc9db.7a04264","name":"Current Temperature","group":"c10a76da.b6e7d8","order":26,"width":7,"height":5,"gtype":"gage","title":"Current Temperature","label":"","format":"{{value | number:2}} ºF","min":"-15","max":"120","colors":["#0080ff","#008040","#ca3838"],"seg1":"60","seg2":"80","x":1300,"y":330,"wires":[]},{"id":"caca4a17.cfd48","type":"ui_gauge","z":"6acc9db.7a04264","name":"Min Temp","group":"c10a76da.b6e7d8","order":27,"width":7,"height":5,"gtype":"gage","title":"Min Temp","label":"","format":"{{value | number:2}} ºF","min":"-15","max":"120","colors":["#0080ff","#008080","#ca3838"],"seg1":"60","seg2":"80","x":1260,"y":370,"wires":[]},{"id":"e08f590.57f33a8","type":"ui_chart","z":"6acc9db.7a04264","name":"Temperature - Celcius","group":"a3bb27b0.21c0f8","order":4,"width":18,"height":10,"label":"Temperature - Celcius","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"-5","ymax":"50","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":870,"y":250,"wires":[[]]},{"id":"302cf849.6a4e58","type":"ui_text","z":"6acc9db.7a04264","group":"5aa0cc20.177064","order":3,"width":"20","height":"3","name":"","label":"","format":"{{msg.payload}}","layout":"col-center","x":820,"y":410,"wires":[]},{"id":"fb81c77f.51b148","type":"ui_template","z":"6acc9db.7a04264","group":"b30d7ba.f768d88","name":"Weather icon","order":1,"width":"5","height":3,"format":"<div style=\"display: flex;height: 100%;justify-content: center;align-items: center;\">\n<i class=\"fa-3x wi wi-owm-{{msg.payload}}\"></i>\n</div>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":840,"y":450,"wires":[[]]},{"id":"fca87095.0adfc","type":"ui_gauge","z":"6acc9db.7a04264","name":"Pressure","group":"c10a76da.b6e7d8","order":28,"width":7,"height":5,"gtype":"gage","title":"Pressure","label":"MBAR","format":"{{value | number:2}}","min":"900","max":"1050","colors":["#00b500","#e6e600","#ca3838"],"seg1":"1015","seg2":"1023","x":1260,"y":410,"wires":[]},{"id":"41070f1f.5a77e8","type":"ui_gauge","z":"6acc9db.7a04264","name":"Humidity","group":"c10a76da.b6e7d8","order":29,"width":7,"height":5,"gtype":"gage","title":"Humidity","label":"","format":"{{value | number:2}}%","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"45","seg2":"55","x":1270,"y":490,"wires":[]},{"id":"e8be6823.2e7978","type":"ui_gauge","z":"6acc9db.7a04264","name":"Clouds","group":"c10a76da.b6e7d8","order":30,"width":7,"height":5,"gtype":"gage","title":"Clouds","label":"","format":"{{value | number:2}}%","min":0,"max":"100","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":1270,"y":570,"wires":[]},{"id":"30720f6d.cc00b","type":"ui_chart","z":"6acc9db.7a04264","name":"Pressure","group":"f468656d.3ff56","order":1,"width":18,"height":10,"label":"Pressure","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"900","ymax":"1100","removeOlder":"15","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1260,"y":450,"wires":[[]]},{"id":"383c6806.493288","type":"ui_chart","z":"6acc9db.7a04264","name":"Humidity","group":"9e32a364.0d0a","order":1,"width":18,"height":10,"label":"Humidity","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1270,"y":530,"wires":[[]]},{"id":"7721052c.889044","type":"ui_chart","z":"6acc9db.7a04264","name":"Clouds","group":"f8396000.d0334","order":1,"width":18,"height":10,"label":"Clouds","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"0","ymax":"100","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1270,"y":610,"wires":[[]]},{"id":"cda8a21f.30fd3","type":"ui_chart","z":"6acc9db.7a04264","name":"CPU Temperature - Celcius","group":"2db625cf.759fb2","order":2,"width":30,"height":6,"label":"CPU Temperature - Celcius","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":610,"y":120,"wires":[[]]},{"id":"ff9f4473.0a6e2","type":"unit-converter","z":"6acc9db.7a04264","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"C to F Conversion","x":580,"y":160,"wires":[["25d351b5.0d983e"]]},{"id":"25d351b5.0d983e","type":"ui_chart","z":"6acc9db.7a04264","name":"CPU Temperature - Fahrenheit","group":"2db625cf.759fb2","order":1,"width":30,"height":6,"label":"CPU Temperature - Fahrenheit","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":830,"y":160,"wires":[[]]},{"id":"57dff58e.8ec274","type":"unit-converter","z":"6acc9db.7a04264","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":850,"y":290,"wires":[["2405a7c1.b27fb8"]]},{"id":"c75ee5d0.8550e","type":"unit-converter","z":"6acc9db.7a04264","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":850,"y":330,"wires":[["37ab6991.cd7646"]]},{"id":"e6350e56.21106","type":"unit-converter","z":"6acc9db.7a04264","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":850,"y":370,"wires":[["f8af3829.7aeaf8"]]},{"id":"2cec0989.5a6ade","type":"ui_chart","z":"6acc9db.7a04264","name":"Temperature -  Fahrenheit","group":"a3bb27b0.21c0f8","order":1,"width":18,"height":10,"label":"Temperature -  Fahrenheit","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1520,"y":350,"wires":[[]]},{"id":"90657ec7.3489","type":"python-function","z":"6acc9db.7a04264","name":"MCP9808 I2C Inquiry","func":"import time\nimport Adafruit_MCP9808.MCP9808 as MCP9808\nimport os\n\nfrom unittest import TestCase, skipIf\nfrom time import time as now\n\n# Define a function to convert celsius to fahrenheit.\ndef c_to_f(c):\n\treturn c * 9.0 / 5.0 + 32.0\n\n# Default constructor will use the default I2C address (0x18) and pick a default I2C bus.\n#\n# For the Raspberry Pi this means you should hook up to the only exposed I2C bus\n# from the main GPIO header and the library will figure out the bus number based\n# on the Pi's revision.\n#\n# For the Beaglebone Black the library will assume bus 1 by default, which is\n# exposed with SCL = P9_19 and SDA = P9_20.\nsensor = MCP9808.MCP9808()\n\n# Optionally you can override the address and/or bus number:\n#sensor = MCP9808.MCP9808(address=0x20, busnum=2)\n\n# Initialize communication with the sensor.\nsensor.begin()\ntemp = sensor.readTempC()\n\ntempc = ('{0:0.3F}'.format(temp))\n\nmsg['topic'] = \"tempc\"\nmsg['payload'] = tempc\n\nreturn msg","outputs":1,"x":340,"y":40,"wires":[["7936895.3f49978","dc74645d.897bd"]]},{"id":"7936895.3f49978","type":"unit-converter","z":"6acc9db.7a04264","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":570,"y":40,"wires":[["eaa16911.5598d"]]},{"id":"eaa16911.5598d","type":"function","z":"6acc9db.7a04264","name":"Change Topic","func":"msg.topic = \"tempf\";\nreturn msg;\n","outputs":1,"noerr":0,"x":760,"y":40,"wires":[["c18a2e43.512fb8","40bc6f9e.188838"]]},{"id":"dc74645d.897bd","type":"function","z":"6acc9db.7a04264","name":"Zabbix local.MCP9808.tempc","func":"var payload=msg.payload;\nmsg.payload = ['Zabbix server', 'local.MCP9808.tempc', payload ]\nreturn msg;\n","outputs":1,"noerr":0,"x":610,"y":80,"wires":[["5a3971c3.2dc14"]]},{"id":"c18a2e43.512fb8","type":"function","z":"6acc9db.7a04264","name":"Zabbix local.MCP9808.tempf","func":"var payload=msg.payload;\nmsg.payload = ['Zabbix server', 'local.MCP9808.tempf', payload ]\nreturn msg;","outputs":1,"noerr":0,"x":1010,"y":40,"wires":[["528ffbc7.f57f94"]]},{"id":"40bc6f9e.188838","type":"mqtt out","z":"6acc9db.7a04264","name":"MCP9808 Temperature","topic":"home/temperature","qos":"","retain":"","broker":"6b8f56d7.82af78","x":1000,"y":80,"wires":[]},{"id":"fa3f6c4a.f43d58","type":"ui_chart","z":"6acc9db.7a04264","name":"Windspeed","group":"23419a7a.82931e","order":1,"width":18,"height":10,"label":"Windspeed","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"30","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1280,"y":650,"wires":[[]]},{"id":"4dc13725.0a2d28","type":"unit-converter","z":"6acc9db.7a04264","category":"speed","inputUnit":"m/s","outputUnit":"m/h","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"Windspeed","x":770,"y":650,"wires":[["fa3f6c4a.f43d58","5ee3b8ac.ed4ee8"]]},{"id":"27a0a06c.91dac","type":"ui_template","z":"6acc9db.7a04264","group":"c10a76da.b6e7d8","name":"Wind","order":2,"width":11,"height":11,"format":"<!--\npass msg.payload.degrees, msg.payload.speed, msg.payload.speed_unit\n-->\n<script>\n    // Watch the incoming message and convert the degrees to a human readable compass direction\n    (function(scope){\n        scope.$watch('msg', function(msg) {\n            if(typeof(msg) === \"object\"){\n                // Convert the degrees to cardinal directions\n                var deg = msg.payload.degrees;\n                var dirs = [\"N\",\"NNE\",\"NE\",\"ENE\",\"E\",\"ESE\",\"SE\",\"SSE\",\"S\",\"SSW\",\"SW\",\"WSW\",\"W\",\"WNW\",\"NW\",\"NNW\",\"N\"];\n                var idx = Math.round(deg*(dirs.length-1)/360);\n                scope.direction = dirs[idx];\n                \n                \n                // Keep track of the highest speed value, giving it 40 as a rough starting point.\n                // Works okay for MPH and KTS, but KMH will show purple at a lower speed than the rest\n                scope.max_val = (msg.payload.speed > scope.max_val ? msg.payload.speed : 40);\n                \n                scope.p_speed = msg.payload.speed;\n                scope.p_max_val = scope.max_val;\n                var low_colors = [\n                    '#FFFFFF', // white\n                    '#d6f7ff', // light blue \n                    '#85ffd2', // blue green\n                    '#61ff6e'  // green 10mph\n                    ];\n                var high_colors = [\n                    '#61ff6e', // green 10mph\n                    '#d5ff61', // green yellow\n                    '#fffc61', // yellow\n                    '#ffe561', // yellow orange 20mph\n                    '#ffcd61', // orange\n                    '#ffad61', // orange red\n                    '#ff7661', // red\n                    '#ff61dd', // red purple\n                    '#e261ff'  // purple\n                ];\n                \n                if(msg.payload.speed <= 10){\n                    scope.color = low_colors[Math.round(msg.payload.speed*(low_colors.length-1)/10)];\n                }else{\n                    scope.color = high_colors[Math.round(msg.payload.speed*(high_colors.length-1) / scope.max_val)];\n                }\n                // $(\".compass_container\").css(\"background-color\",scope.color);\n            }\n    \t});\n    })(scope);\n    \n    // Hacks to improve the layout and make it scale\n    $(document).ready(function(){\n        setTimeout(function () {\n            // Remove the auto scrolling from the parent node\n            $(\".compass_container\").parent().css(\"overflow\",\"hidden\");\n        \n            // Adjust the color to match the theme base color by looking up the toolbar header background color;\n            $(\".compass_container .triangle\").css(\"border-bottom-color\",$(\"md-toolbar\").css(\"background-color\"));\n        \n            // Scale the compass into the box that it's being rendered in\n            // This CSS hack helps make sure the line & font size scales appropriately\n            // Based on the node's grid size\n            $(\".compass_container\").each(function(k,v){\n                var scaleWidth = $(v).parent().width() / $(v).width();\n                var scaleHeight = $(v).parent().height() / $(v).height();\n        \n                var translateX = ($(v).width() - $(v).parent().width()) / 2;\n                var translateY = ($(v).height() - $(v).parent().height()) / 2;\n        \n                $(v).css(\"transform\",\"translate(-\"+translateX+\"px,-\"+translateY+\"px) scale(\"+scaleWidth+\",\"+scaleHeight+\") \");\n            });\n            \n            $(\".compass_container\").css(\"display\",\"block\"); // Unhide it now that it's resized\n        }, 1000);\n    });\n</script>\n<style>\n     @import url(https://fonts.googleapis.com/css?family=Dosis:200,400,500,600);\n     \n     .compass_container{\n        transition: 1s ease-in-out;\n        position: relative;\n        display: none;\n        width: 500px;\n        height: 500px;\n        border-radius: 100%;\n        font-family: 'Dosis';\n        font-size: 80px;\n        box-shadow: inset 0px 0px 0px 30px #777; \n        background-color: {{color}};\n     }\n     \n     .compass_container .compass_header{\n        font-weight: bold;\n        position: absolute;\n        text-align: center;\n        width: 100%;\n        font-size: 75%;\n        top: -15px\n     }\n     .compass_container .text_container{\n        height: 100%;\n        width: 100%;\n        padding: 0px;\n        display: block;\n        border-radius: 100%;\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        align-items: center;\n     }\n     \n     .compass_container .arrow{\n        transition: 1s ease-in-out;\n        width: 100%;\n        height: 100%;\n        display: block;\n        position: absolute;\n        top: 0;\n     }\n     \n     .compass_container .arrow .triangle{\n        width: 0;\n\t\theight: 0;\n\t\tborder-left: 45px solid transparent;\n\t\tborder-right: 45px solid transparent;\n\t\tborder-bottom: 90px solid black;\n\t\tposition: absolute;\n\t\ttop: -15px;\n\t\tleft: 50%;\n\t\tmargin-left: -45px;\n\t\tz-index: 99;\n     }\n</style>\n\n<div class=\"compass_container\" style=\"\">\n    <div class=\"compass_header\">N</div>\n  \n    <div class=\"nr-dashboard-text text_container\">\n    \n        <div class=\"direction\" style=\"font-size: 120%\">{{direction}}</div>\n        <div style=\"flex-direction: row; font-weight: bold;\">\n            <span style=\"font-size: 100%\">{{msg.payload.speed}}</span>\n            <span style=\"font-size: 75%\">{{msg.payload.speed_unit}}</span>\n        </div>\n    </div>\n    <div class=\"arrow\" style=\"transform: rotate({{msg.payload.degrees}}deg);\">\n      <div class=\"triangle\"></div>\n    </div>\n</div>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":1360,"y":710,"wires":[[]]},{"id":"8d90e8b7.55bb48","type":"change","z":"6acc9db.7a04264","name":"","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.degrees","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":790,"y":710,"wires":[["8185dd79.72c14"]]},{"id":"5ee3b8ac.ed4ee8","type":"function","z":"6acc9db.7a04264","name":"","func":"var speed = msg.payload;\nvar unit = \"MPH\";\nmsg.payload = {\n  speed: speed.toFixed(2), \n  \"speed_unit\": unit,\n  \"degrees\": 0}\nreturn msg;","outputs":1,"noerr":0,"x":960,"y":680,"wires":[["8185dd79.72c14"]]},{"id":"e5eb33da.12ab1","type":"vcgencmd","z":"6acc9db.7a04264","name":"","command":"measure_temp","codec":"H264","clock":"core","voltage":"core","memory":"arm","videoOutput":"0","separateMsg":false,"x":330,"y":120,"wires":[["cda8a21f.30fd3","ff9f4473.0a6e2","ed6ce4cb.aadb6"]]},{"id":"2405a7c1.b27fb8","type":"link out","z":"6acc9db.7a04264","name":"Temp - Max","links":["1bbb8609.d9e48a","6bda6fec.798c3"],"x":965,"y":290,"wires":[]},{"id":"1bbb8609.d9e48a","type":"link in","z":"6acc9db.7a04264","name":"","links":["2405a7c1.b27fb8","37ab6991.cd7646","f8af3829.7aeaf8"],"x":1075,"y":350,"wires":[["2cec0989.5a6ade"]]},{"id":"6bda6fec.798c3","type":"link in","z":"6acc9db.7a04264","name":"","links":["2405a7c1.b27fb8"],"x":1145,"y":290,"wires":[["9557f682.c2d048"]]},{"id":"17861197.bcccce","type":"link in","z":"6acc9db.7a04264","name":"","links":["37ab6991.cd7646"],"x":1145,"y":330,"wires":[["9d3a2b43.a1bbc8"]]},{"id":"aec2be2e.df83d","type":"link in","z":"6acc9db.7a04264","name":"","links":["f8af3829.7aeaf8"],"x":1145,"y":370,"wires":[["caca4a17.cfd48"]]},{"id":"37ab6991.cd7646","type":"link out","z":"6acc9db.7a04264","name":"Temp - Current","links":["1bbb8609.d9e48a","17861197.bcccce"],"x":965,"y":330,"wires":[]},{"id":"f8af3829.7aeaf8","type":"link out","z":"6acc9db.7a04264","name":"Temp - Min","links":["1bbb8609.d9e48a","aec2be2e.df83d"],"x":965,"y":370,"wires":[]},{"id":"8185dd79.72c14","type":"join","z":"6acc9db.7a04264","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":1100,"y":710,"wires":[["d406af13.6e4c1"]]},{"id":"d406af13.6e4c1","type":"function","z":"6acc9db.7a04264","name":"","func":"if ( msg.payload[0].degrees ) {\n    msg.payload = {\n           \"speed\": msg.payload[1].speed, \n           \"speed_unit\": msg.payload[1].speed_unit,\n           \"degrees\": msg.payload[0].degrees }\n   } else {\n    msg.payload = {\n           \"speed\": msg.payload[1].speed, \n           \"speed_unit\": msg.payload[1].speed_unit,\n           \"degrees\": msg.payload[1].degrees }\n}\nreturn msg;","outputs":1,"noerr":0,"x":1220,"y":710,"wires":[["27a0a06c.91dac"]]},{"id":"58de8e58.88a7","type":"link in","z":"6acc9db.7a04264","name":"Zabbix Sender","links":["20d97373.f574fc","528ffbc7.f57f94","5a3971c3.2dc14","a5ceab0c.d138e8"],"x":1115,"y":200,"wires":[["4b774407.efeda4"]]},{"id":"528ffbc7.f57f94","type":"link out","z":"6acc9db.7a04264","name":"Zabbix local.MCP9808.tempf","links":["58de8e58.88a7"],"x":1165,"y":40,"wires":[]},{"id":"5a3971c3.2dc14","type":"link out","z":"6acc9db.7a04264","name":"Zabbix local.MCP9808.tempc","links":["58de8e58.88a7"],"x":765,"y":80,"wires":[]},{"id":"a5ceab0c.d138e8","type":"link out","z":"6acc9db.7a04264","name":"Openweather Zabbix","links":["58de8e58.88a7"],"x":575,"y":290,"wires":[]},{"id":"20d97373.f574fc","type":"link out","z":"6acc9db.7a04264","name":"Zabbix Array","links":["58de8e58.88a7"],"x":675,"y":200,"wires":[]},{"id":"13a8b34b.a559ad","type":"link out","z":"6acc9db.7a04264","name":"Openweather Pressure","links":["a92cca40.fd4248"],"x":785,"y":490,"wires":[]},{"id":"a92cca40.fd4248","type":"link in","z":"6acc9db.7a04264","name":"Openweather Pressure","links":["13a8b34b.a559ad"],"x":1145,"y":410,"wires":[["fca87095.0adfc","30720f6d.cc00b"]]},{"id":"7091fa1d.8fd7a4","type":"link in","z":"6acc9db.7a04264","name":"Openweather Humidity","links":["42c43d9.2d9c7c4"],"x":1145,"y":490,"wires":[["383c6806.493288","41070f1f.5a77e8"]]},{"id":"42c43d9.2d9c7c4","type":"link out","z":"6acc9db.7a04264","name":"Openweather Humidity","links":["7091fa1d.8fd7a4"],"x":785,"y":530,"wires":[]},{"id":"9305ce5c.9754","type":"link in","z":"6acc9db.7a04264","name":"Openweather Clouds","links":["bcdd3969.389168"],"x":1145,"y":570,"wires":[["e8be6823.2e7978","7721052c.889044"]]},{"id":"bcdd3969.389168","type":"link out","z":"6acc9db.7a04264","name":"Openweather Clouds","links":["9305ce5c.9754"],"x":785,"y":570,"wires":[]},{"id":"c10a76da.b6e7d8","type":"ui_group","z":"","name":"Gauges","tab":"b0e039c7.776c88","order":3,"disp":true,"width":"21","collapse":false},{"id":"a3bb27b0.21c0f8","type":"ui_group","z":"","name":"Temperature","tab":"b0e039c7.776c88","order":4,"disp":true,"width":18,"collapse":true},{"id":"5aa0cc20.177064","type":"ui_group","z":"","name":"","tab":"b0e039c7.776c88","order":2,"disp":true,"width":"70","collapse":false},{"id":"b30d7ba.f768d88","type":"ui_group","z":"","name":"","tab":"b0e039c7.776c88","order":1,"disp":true,"width":"5","collapse":false},{"id":"f468656d.3ff56","type":"ui_group","z":"","name":"Pressure","tab":"b0e039c7.776c88","order":5,"disp":true,"width":18,"collapse":true},{"id":"9e32a364.0d0a","type":"ui_group","z":"","name":"Humidity","tab":"b0e039c7.776c88","order":6,"disp":true,"width":18,"collapse":true},{"id":"f8396000.d0334","type":"ui_group","z":"","name":"Cloud Cover","tab":"b0e039c7.776c88","order":7,"disp":true,"width":"18","collapse":true},{"id":"2db625cf.759fb2","type":"ui_group","z":"","name":"CPU Temperature","tab":"4802b223.98b354","order":1,"disp":true,"width":30,"collapse":false},{"id":"6b8f56d7.82af78","type":"mqtt-broker","z":"","name":"PI","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"home/temperature","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"23419a7a.82931e","type":"ui_group","z":"","name":"Windspeed","tab":"b0e039c7.776c88","order":8,"disp":true,"width":"18","collapse":true},{"id":"b0e039c7.776c88","type":"ui_tab","z":"","name":"Weather","icon":"dashboard","order":2,"disabled":false,"hidden":false},{"id":"4802b223.98b354","type":"ui_tab","z":"","name":"Proelian Server","icon":"dashboard","order":1,"disabled":false,"hidden":false}]

If anyone can figure how to change the wind direction font color to black that would be a great change. Cant seem to identify it.

1 Like

You should add the full name of the extra nodes you use - importing your flow show these missing nodes:

  • zabbix-sender
  • unit-converter
  • python-function
  • vcgencmd

And mention it is Pi based since vcgencmd is Pi centric.