Flow Details
Was looking for something simple. this queries the API every 90 minutes and stores the info then has another timer that queries the stored values to send them to the screen. These values can be changed. The icons I fetched from LaMetric to be as close as possible to the forecast.
[
{
"id": "e37dfa7528f985bd",
"type": "openweathermap",
"z": "9da611451ddbe3d3",
"name": "Weather",
"wtype": "current",
"lon": "",
"lat": "",
"city": "",
"country": "",
"language": "en",
"x": 200,
"y": 3120,
"wires": [
[
"291a463fbaac37ce"
]
]
},
{
"id": "c271bac7796d9310",
"type": "inject",
"z": "9da611451ddbe3d3",
"name": "inject",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"repeat": "5400",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 69,
"y": 3120,
"wires": [
[
"e37dfa7528f985bd"
]
]
},
{
"id": "9112bc3237e043af",
"type": "mqtt out",
"z": "9da611451ddbe3d3",
"name": "awtrix",
"topic": "awtrix/notify",
"qos": "2",
"retain": "false",
"respTopic": "",
"contentType": "",
"userProps": "",
"correl": "",
"expiry": "",
"broker": "",
"x": 670,
"y": 3120,
"wires": []
},
{
"id": "ab731a831755c8cb",
"type": "function",
"z": "9da611451ddbe3d3",
"name": "awtrix",
"func": "switch (msg.payload.icon) {\n case '01d':\n // Action for value1\n msg.payload.icon = 2282;\n break;\n\n case '02d':\n // Action for value2\n msg.payload.icon = 2286;\n break;\n\n case '03d':\n // Action for value3\n msg.payload.icon = 44321;\n break;\n \n case '04d':\n // Action for value1\n msg.payload.icon = 44326;\n break;\n\n case '09d':\n // Action for value2\n msg.payload.icon = 72;\n break;\n\n case '10d':\n // Action for value3\n msg.payload.icon = 2284;\n break;\n\n case '11d':\n // Action for value1\n msg.payload.icon = 11428;\n break;\n\n case '13d':\n // Action for value2\n msg.payload.icon = 4702;\n break;\n\n case '50d':\n // Action for value2\n msg.payload.icon = 17055;\n break;\n\n case '01n':\n // Action for value1\n msg.payload.icon = 18433;\n break;\n\n case '02n':\n // Action for value2\n msg.payload.icon = 54631;\n break;\n\n case '03n':\n // Action for value3\n msg.payload.icon = 63124;\n break;\n case '04n':\n // Action for value1\n msg.payload.icon = 44331;\n break;\n\n case '09n':\n // Action for value2\n msg.payload.icon = 72;\n break;\n\n case '10n':\n // Action for value3\n msg.payload.icon = 63079;\n break;\n case '11n':\n // Action for value1\n msg.payload.icon = 11428;\n break;\n\n case '13n':\n // Action for value1\n msg.payload.icon = 4702;\n break;\n\n case '50n':\n // Action for value2\n msg.payload.icon = 17055;\n break;\n}\n\nmsg.icon = msg.payload.icon;\nmsg.temp = msg.payload.tempc;\n\nmsg.payload = { \n \"name\": \"weather\",\n \"force\": false,\n \"icon\": msg.icon,\n \"moveIcon\": false,\n \"repeat\": 1,\n \"soundfile\": 1,\n \"color\": [\n 0,\n 106,\n 255\n ],\n \"text\": msg.temp + \" C\"\n}\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 530,
"y": 3120,
"wires": [
[
"9112bc3237e043af"
]
]
},
{
"id": "b46f2905cfa95d15",
"type": "inject",
"z": "9da611451ddbe3d3",
"name": "repeat locally",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"repeat": "60",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 180,
"y": 3160,
"wires": [
[
"81aa80fea885bd84"
]
]
},
{
"id": "291a463fbaac37ce",
"type": "change",
"z": "9da611451ddbe3d3",
"name": "",
"rules": [
{
"t": "set",
"p": "icon",
"pt": "global",
"to": "payload.icon",
"tot": "msg"
},
{
"t": "set",
"p": "tempc",
"pt": "global",
"to": "payload.tempc",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 360,
"y": 3120,
"wires": [
[
"ab731a831755c8cb"
]
]
},
{
"id": "81aa80fea885bd84",
"type": "change",
"z": "9da611451ddbe3d3",
"name": "",
"rules": [
{
"t": "set",
"p": "payload.icon",
"pt": "msg",
"to": "icon",
"tot": "global"
},
{
"t": "set",
"p": "payload.tempc",
"pt": "msg",
"to": "tempc",
"tot": "global"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 360,
"y": 3160,
"wires": [
[
"ab731a831755c8cb"
]
]
},
{
"id": "671286ff8c767144",
"type": "global-config",
"env": [],
"modules": {
"node-red-node-openweathermap": "1.0.1"
}
}
]
-- Flow first published on September 2, 2025, last updated on September 2, 2025 at 11:38.