Weather data Dasboard

Please find the weather data dashboard using openweathermap node "node-red-node-openweathermap"

[
    {
        "id": "e3a8978165a55a2a",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 21,
        "width": 4,
        "height": 2,
        "name": "",
        "label": "Sunrise and Sunset based on Eastern Time Zone",
        "format": "",
        "layout": "row-left",
        "className": "",
        "x": 210,
        "y": 1040,
        "wires": []
    },
    {
        "id": "7e4b9ff439662f63",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 16,
        "width": 4,
        "height": 2,
        "name": "",
        "label": "Sunrise and Sunset based on Central Time Zone",
        "format": "",
        "layout": "row-left",
        "className": "",
        "x": 200,
        "y": 960,
        "wires": []
    },
    {
        "id": "9240245060b2694f",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 7,
        "width": 4,
        "height": 2,
        "name": "",
        "label": "Sunrise and Sunset based on Pacific Time Zone",
        "format": "",
        "layout": "row-left",
        "className": "",
        "x": 200,
        "y": 840,
        "wires": []
    },
    {
        "id": "58c934c0ac29dd79",
        "type": "ui_text_input",
        "z": "44b2120ea5184e73",
        "name": "",
        "label": "US City name",
        "tooltip": "",
        "group": "710879178a1b4896",
        "order": 13,
        "width": 5,
        "height": 1,
        "passthru": true,
        "mode": "text",
        "delay": 300,
        "topic": "topic",
        "sendOnBlur": true,
        "className": "",
        "topicType": "msg",
        "x": 100,
        "y": 780,
        "wires": [
            [
                "f178825320f3597a"
            ]
        ]
    },
    {
        "id": "f178825320f3597a",
        "type": "change",
        "z": "44b2120ea5184e73",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "location",
                "pt": "msg",
                "to": "{}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "location.city",
                "pt": "msg",
                "to": "payload",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "location.country",
                "pt": "msg",
                "to": "USA",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 300,
        "y": 780,
        "wires": [
            [
                "e7e9a6d112bd55a2"
            ]
        ]
    },
    {
        "id": "e7e9a6d112bd55a2",
        "type": "openweathermap",
        "z": "44b2120ea5184e73",
        "name": "US West City Weather Data",
        "wtype": "current",
        "lon": "",
        "lat": "",
        "city": "",
        "country": "",
        "language": "msg",
        "x": 440,
        "y": 680,
        "wires": [
            [
                "95f98eb891ccbe71",
                "22c0a76c6aca2965",
                "2cd3080e85674a89",
                "fbb79b608db037e2",
                "a11aa470e6ae189e",
                "c53f9dbdec39a03b",
                "b2d6f12edcc586e0",
                "bbd3a9855e80fa6c",
                "f92cb0c6a54caca0",
                "83ca7f089c873e93",
                "562066dd7791edd8",
                "6a400d9c2830f990",
                "dcc868cd42c21c8e",
                "0a2c80e9e9e264cb",
                "1e9cc548118348d2"
            ]
        ]
    },
    {
        "id": "562066dd7791edd8",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 30",
        "func": "var t = msg.payload.tempc;\nvar tf = ((t * 1.8) + 32)\nvar rh = msg.payload.humidity;\nvar wbt_part1 = (0.151977) * Math.sqrt(rh + 8.313659)\nvar wbt_part2 = Math.atan(wbt_part1);\nvar wbt_part3 = wbt_part2*t;\nvar wbt_part4 = (Math.atan(t + rh)) - (Math.atan(rh - 1.676331));\nvar wbt_part5 = (((0.00391838 * ((rh)*(Math.sqrt(rh)))) * Math.atan(0.023101 * rh)) - 4.686035);\nvar wbt_part6 = wbt_part3 + wbt_part4 + wbt_part5;\nmsg.payload = wbt_part6;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 370,
        "y": 580,
        "wires": [
            [
                "2fa04ffe39bd677e"
            ]
        ]
    },
    {
        "id": "fbb79b608db037e2",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 17",
        "func": "var tempf = [];\nvar tempc = msg.payload.tempc;\n\ntempf.push((tempc*1.8) + 32);\n\nmsg.payload = tempf;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 350,
        "y": 500,
        "wires": [
            [
                "9b4736cf49fbc544"
            ]
        ]
    },
    {
        "id": "9b4736cf49fbc544",
        "type": "calculator",
        "z": "44b2120ea5184e73",
        "name": "",
        "inputMsgField": "payload",
        "outputMsgField": "payload",
        "operation": "round",
        "constant": "",
        "round": false,
        "decimals": "0",
        "x": 560,
        "y": 500,
        "wires": [
            [
                "eccb7349d86a7a61"
            ]
        ]
    },
    {
        "id": "2fa04ffe39bd677e",
        "type": "calculator",
        "z": "44b2120ea5184e73",
        "name": "",
        "inputMsgField": "payload",
        "outputMsgField": "payload",
        "operation": "round",
        "constant": "",
        "round": false,
        "decimals": "0",
        "x": 560,
        "y": 580,
        "wires": [
            [
                "9d2b764139900a11"
            ]
        ]
    },
    {
        "id": "eccb7349d86a7a61",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 1,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Temperature (F)",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 780,
        "y": 500,
        "wires": []
    },
    {
        "id": "a11aa470e6ae189e",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 2,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Temperature (C)",
        "format": "{{msg.payload.tempc}}",
        "layout": "row-left",
        "className": "",
        "x": 780,
        "y": 540,
        "wires": []
    },
    {
        "id": "9d2b764139900a11",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 4,
        "width": 5,
        "height": 1,
        "name": "",
        "label": "Wet Bulb Temperature (C)",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 810,
        "y": 580,
        "wires": []
    },
    {
        "id": "95f98eb891ccbe71",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 3,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Humidity (%)",
        "format": "{{msg.payload.humidity}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 620,
        "wires": []
    },
    {
        "id": "22c0a76c6aca2965",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 5,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "pressure (mbar)",
        "format": "{{msg.payload.pressure}}",
        "layout": "row-left",
        "className": "",
        "x": 780,
        "y": 660,
        "wires": []
    },
    {
        "id": "bbd3a9855e80fa6c",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 6,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "wind speed (m/s)",
        "format": "{{msg.payload.windspeed}}",
        "layout": "row-left",
        "className": "",
        "x": 790,
        "y": 700,
        "wires": []
    },
    {
        "id": "83ca7f089c873e93",
        "type": "ui_gauge",
        "z": "44b2120ea5184e73",
        "name": "",
        "group": "710879178a1b4896",
        "order": 11,
        "width": 4,
        "height": 3,
        "gtype": "compass",
        "title": "Wind direction",
        "label": "deg",
        "format": "{{msg.payload.winddirection}}",
        "min": 0,
        "max": "360",
        "colors": [
            "#00b500",
            "#e6e600",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "className": "",
        "x": 780,
        "y": 740,
        "wires": []
    },
    {
        "id": "c53f9dbdec39a03b",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 24",
        "func": "var timestamp = msg.payload.sunrise;\nvar newtime = (timestamp - 28800) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 780,
        "wires": [
            [
                "08e7decf25355a25"
            ]
        ]
    },
    {
        "id": "b2d6f12edcc586e0",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 25",
        "func": "var timestamp = msg.payload.sunset;\nvar newtime = (timestamp - 28800) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 820,
        "wires": [
            [
                "7f5df19d48f2feec"
            ]
        ]
    },
    {
        "id": "08e7decf25355a25",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 8,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "PST sun rise",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 780,
        "wires": []
    },
    {
        "id": "7f5df19d48f2feec",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 12,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "PST sun set",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 820,
        "wires": []
    },
    {
        "id": "2cd3080e85674a89",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 14,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "location",
        "format": "{{msg.payload.location}}",
        "layout": "row-left",
        "className": "",
        "x": 760,
        "y": 860,
        "wires": []
    },
    {
        "id": "f92cb0c6a54caca0",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 10,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Weather",
        "format": "{{msg.payload.weather}}",
        "layout": "row-left",
        "className": "",
        "x": 760,
        "y": 900,
        "wires": []
    },
    {
        "id": "6a400d9c2830f990",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 33",
        "func": "var timestamp = msg.payload.sunrise;\nvar newtime = (timestamp - 25200) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 940,
        "wires": [
            [
                "547d5ee6b2f59889"
            ]
        ]
    },
    {
        "id": "dcc868cd42c21c8e",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 34",
        "func": "var timestamp = msg.payload.sunset;\nvar newtime = (timestamp - 25200) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 980,
        "wires": [
            [
                "77bce30566e8e597"
            ]
        ]
    },
    {
        "id": "0a2c80e9e9e264cb",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 35",
        "func": "var timestamp = msg.payload.sunrise;\nvar newtime = (timestamp - 18000) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 1020,
        "wires": [
            [
                "e218e3ccf17f5cde"
            ]
        ]
    },
    {
        "id": "1e9cc548118348d2",
        "type": "function",
        "z": "44b2120ea5184e73",
        "name": "function 36",
        "func": "var timestamp = msg.payload.sunset;\nvar newtime = (timestamp - 18000) * 1000\nvar d = new Date(newtime);\nmsg.payload = d\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 590,
        "y": 1060,
        "wires": [
            [
                "f72b7a55d4a5428a"
            ]
        ]
    },
    {
        "id": "f72b7a55d4a5428a",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 24,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "EST sun set",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 1060,
        "wires": []
    },
    {
        "id": "e218e3ccf17f5cde",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 22,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "EST sun rise",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 1020,
        "wires": []
    },
    {
        "id": "77bce30566e8e597",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 19,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "CST sun set",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 980,
        "wires": []
    },
    {
        "id": "547d5ee6b2f59889",
        "type": "ui_text",
        "z": "44b2120ea5184e73",
        "group": "710879178a1b4896",
        "order": 17,
        "width": 7,
        "height": 1,
        "name": "",
        "label": "CST sun rise",
        "format": "{{msg.payload}}",
        "layout": "row-left",
        "className": "",
        "x": 770,
        "y": 940,
        "wires": []
    },
    {
        "id": "710879178a1b4896",
        "type": "ui_group",
        "name": "US City Weather",
        "tab": "3de53b631e6cb854",
        "order": 2,
        "disp": true,
        "width": "25",
        "collapse": false,
        "className": ""
    },
    {
        "id": "3de53b631e6cb854",
        "type": "ui_tab",
        "name": "US WeatherData",
        "icon": "dashboard",
        "order": 17,
        "disabled": false,
        "hidden": false
    },
    {
        "id": "adf1977c2e275ab0",
        "type": "global-config",
        "env": [],
        "modules": {
            "node-red-dashboard": "3.6.5",
            "node-red-node-openweathermap": "1.0.1",
            "node-red-contrib-calc": "1.0.6"
        }
    }
]

Maybe you can post a screen capture of the dashboard?
Just copy / paste the image into the forum.

I see you have not migrated to the replacement @flowfuse/node-red-dashboard.
Do you have any plans to do so?

Please see the screen shot.

I have a similar wind rose with a little more info on it:

Hmm, I notice that my weather icon is broken - must fix that. glitch

Flow looks good, 'HMI' Interface (web page) meeds to be adapted to whatever Dashboard being used.

My (compact) weather-view. The today's weather (Thursday) is providing additional hourly update (yellow)

Off-topic, sorry, but I wish there was a simple way for the image of the moon on a dashboard to reflect the actual appearance in the sky, standing on end or reclining.

It should be possible to rotate the image with CSS, but how to calculate the rotation amount?

And while I'm on a lunatic rant, that famous "Earthrise" photo which made us all aware of the fragility of our planet.
If you are on the moon, as opposed to in orbit, does the earth rise and fall, or is it always in the same place in the sky, quietly waxing and waning throughout the day/night?

Actually, calculating this is easy! All you need is the node-red-contrib-sun-position node, it provides details about the sun and moon including azimuth and elevation

From that, you can calculate the moon visual - urm, somehow, my math isn't that good I'm afraid! :smiley:

No, it does not I believe (never actually been there to observe it sadly!). The moon is tidally locked to the Earth. The "dark side" of the moon absolutely is not always dark, it simply never faces the Earth.

So the Sun rises and sets on the Moon but the Earth does not.