Can't fetch NR_NODE_ID env in template node

According to the Node-RED documentation you can access the NR_NODE_ID in a template node in version 3.0 or higher. I am running 3.1.0 and using the syntax in the documentation I am not able to fetch the env variable

[
    {
        "id": "163121b2fac65633",
        "type": "ui_template",
        "z": "f22e1574cdc79397",
        "group": "c9165343995892c6",
        "name": "",
        "order": 6,
        "width": 0,
        "height": 0,
        "format": "<div> Node id is. {{env.NR_NODE_ID}}</div>",
        "storeOutMessages": true,
        "fwdInMessages": true,
        "resendOnRefresh": true,
        "templateScope": "local",
        "className": "",
        "x": 800,
        "y": 920,
        "wires": [
            []
        ]
    },
    {
        "id": "c9165343995892c6",
        "type": "ui_group",
        "name": "Page 2",
        "tab": "8f4542aa.faf2",
        "order": 1,
        "disp": false,
        "width": "6",
        "collapse": false,
        "className": ""
    },
    {
        "id": "8f4542aa.faf2",
        "type": "ui_tab",
        "name": "Page 2",
        "icon": "wi-wu-tstorms",
        "order": 8,
        "disabled": false,
        "hidden": false
    }
]

The output is.
image

Thanks in advance

That would be a template node, not a ui-template node.

I was afraid of that. I want to do this...

$('[node-id="{{env.NR_NODE_ID}}"]').hide();

You could set a template node to output msg.template and set it prior to the ui-template node, leaving ui-template blank. You can add all your code in the template node. That way you could use the template node id instead.

[{"id":"5c8e7e61fcffc16d","type":"inject","z":"c31640d81bf733c7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":280,"wires":[["c02ff8ae8921dc73"]]},{"id":"c02ff8ae8921dc73","type":"template","z":"c31640d81bf733c7","name":"","field":"template","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Node id is - {{env.NR_NODE_ID}}\n   \n","output":"str","x":260,"y":280,"wires":[["c5d247edfd77db6c"]]},{"id":"c5d247edfd77db6c","type":"ui_template","z":"c31640d81bf733c7","group":"8b5cde76.edd58","name":"","order":8,"width":0,"height":0,"format":"","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"local","className":"","x":400,"y":280,"wires":[[]]},{"id":"8b5cde76.edd58","type":"ui_group","name":"default","tab":"8f03e639.85956","order":1,"disp":false,"width":"12","collapse":false},{"id":"8f03e639.85956","type":"ui_tab","name":"Home","icon":"dashboard","order":3,"disabled":false,"hidden":false}]

Wondering why you need the node id?

I use UI-Template nodes for a scope.watch so I can update data that is passed to the header. Maybe it can be done with a template node and UI is not needed?

Here is one example. we are hiding the UI-Template so it will not show up on the page.

<script>
    (function(scope) {
        //hide this card. NOTE: 4b689f7473831a84 is the Node id as 
        //seen in the INFO panel on the sidebar when you select this node
         $('[node-id="56b8a61817482f63"]').hide();
        scope.$watch('msg', function(msg) {
            if ( msg.topic.length !== 0) {
                $("#header-dif").text(msg.dif);
                $("#header-mhd").text(msg.mhd);
            }
        });
    })(scope);
</script>

I found that if I have several web pages on my dashboard and If I want to update all the pages I need on UI-Template assigned to group on the individual page.

My head UI Template uses the data like this...header-mhd is minute, hour, day...

let l8 = $('<p /id="header-mhd" style="font-size:15px;font-style:italic ">');    

Which renders this in the navbar..
image

I just tried the flow you sent. It does not render in the navbar. I tried passing it with

<div ng-bind-html="msg.payload"></div>

and still will not render

Not sure i am understanding you. May need to see an example flow.
If you want to hide a group you can use the ui-control node, read the help text.
Or you could set a class in the ui_template nodes and use that class hide the template node/s.

Here is a working example.

[{"id":"f4b5da941d147d72","type":"function","z":"443d669d0a1fb7cb","name":"formatSolar","func":"const sfi = parseFloat(msg.payload.solar.solardata[0].solarflux[0]);\nconst kdx = parseFloat(msg.payload.solar.solardata[0].kindex[0]);\nconst Aindex = parseFloat(msg.payload.solar.solardata[0].aindex);\nconst muf = msg.payload.solar.solardata[0].muf[0]; \nconst fof2 = (parseFloat(muf / 3.084).toFixed(2) !== 'Nan') ? parseFloat(muf / 3.084).toFixed(2) : 0;\n\nlet sficolor\nif (sfi <= 80) { sficolor = '#ff0000' }\nif (sfi > 80 && sfi <= 120) { sficolor = '#ffcc00' }\nif (sfi > 130) { sficolor = \"#14f00c\" }\n\nlet aColor\nif (Aindex <= 3) { aColor = 'blue' }\nif (Aindex > 3 && Aindex <= 27) { aColor = \"#14f00c\" }\nif (Aindex > 27 && Aindex <= 80) { aColor = \"yellow\" }\nif (Aindex > 80) { aColor = \"red\" }\n\nlet kColor\nif (kdx <= 1) { kColor = '#3399ff' }\nif (kdx > 1 && kdx <= 4) { kColor = \"#14f00c\" }\nif (kdx > 4 && kdx <= 6) { kColor = \"yellow\" }\nif (kdx > 6) { kColor = \"red\" }\n\nmsg = { payload: 0, topic: 'solar', sfi: sfi, sficolor: sficolor, kdx: kdx, Aindex: Aindex, aColor: aColor, kColor: kColor };\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":240,"wires":[["47f636b8b353b7c6"]]},{"id":"e34eb60ffb7e2507","type":"ui_template","z":"443d669d0a1fb7cb","group":"e357ef02.ef3cb","name":"Load CSS","order":1,"width":"0","height":"0","format":"/*!\n* Weather Icons Lite v1.6.1\n* Weather themed icons for Bootstrap\n* Author - Paul Reed\n* Maintained at https://github.com/Paul-Reed/weather-icons-lite\n* Description - A lighweight version of Weather Icons\n* Credit to Erik Flowers - erik@helloerik.com\n*\n*/\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Russo+One&display=swap');\n@import url('https://w3schools.com/w3css/4/w3.cs');\n@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0');\n@font-face {\nfont-family: 'weather-icons-lite';\nfont-weight: normal;\nfont-style: normal;\nsrc: url('../fonts/weather-icons-lite.woff2') format('woff2'),\nurl('../fonts/weather-icons-lite.woff') format('woff'),\nurl('../fonts/weather-icons-lite.ttf') format('truetype'),\nurl('../fonts/weather-icons-lite.eot') format('embedded-opentype');\n}\n.wi {\ndisplay: inline-block;\nfont-family: 'weather-icons-lite';\nfont-style: normal;\nfont-weight: normal;\nline-height: 1;\n-webkit-font-smoothing: antialiased;\n-moz-osx-font-smoothing: grayscale;\n}\n.wi-lg {\nfont-size: 1.33333em;\nline-height: 0.75em;\nvertical-align: -.0667em;\n}\n.wi-xs {\nfont-size: .75em;\n}\n.wi-sm {\nfont-size: .875em;\n}\n.wi-1x {\nfont-size: 1em;\n}\n.wi-2x {\nfont-size: 2em;\n}\n.wi-3x {\nfont-size: 3em;\n}\n.wi-4x {\nfont-size: 4em;\n}\n.wi-5x {\nfont-size: 5em;\n}\n.wi-6x {\nfont-size: 6em;\n}\n.wi-7x {\nfont-size: 7em;\n}\n.wi-8x {\nfont-size: 8em;\n}\n.wi-9x {\nfont-size: 9em;\n}\n.wi-10x {\nfont-size: 10em;\n}\n.wi-fw {\ntext-align: center;\nwidth: 1.4em;\n}\n.wi-rotate-0,.wi-rotate-N,.wi-towards-N,.wi-from-S {\n-webkit-transform: rotate(0deg);\n-ms-transform: rotate(0deg);\ntransform: rotate(0deg);\n}\n.wi-rotate-23,.wi-rotate-NNE,.wi-towards-NNE,.wi-from-SSW {\n-webkit-transform: rotate(23deg);\n-ms-transform: rotate(23deg);\ntransform: rotate(23deg);\n}\n.wi-rotate-45,.wi-rotate-NE,.wi-towards-NE,.wi-from-SW {\n-webkit-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.wi-rotate-68,.wi-rotate-ENE,.wi-towards-ENE,.wi-from-WSW {\n-webkit-transform: rotate(68deg);\n-ms-transform: rotate(68deg);\ntransform: rotate(68deg);\n}\n.wi-rotate-90,.wi-rotate-E,.wi-towards-E,.wi-from-W {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n-webkit-transform: rotate(90deg);\n-ms-transform: rotate(90deg);\ntransform: rotate(90deg);\n}\n.wi-rotate-113,.wi-rotate-ESE,.wi-towards-ESE,.wi-from-WNW {\n-webkit-transform: rotate(113deg);\n-ms-transform: rotate(113deg);\ntransform: rotate(113deg);\n}\n.wi-rotate-135,.wi-rotate-SE,.wi-towards-SE,.wi-from-NW {\n-webkit-transform: rotate(135deg);\n-ms-transform: rotate(135deg);\ntransform: rotate(135deg);\n}\n.wi-rotate-158,.wi-rotate-SSE,.wi-towards-SSE,.wi-from-NNW {\n-webkit-transform: rotate(158deg);\n-ms-transform: rotate(158deg);\ntransform: rotate(158deg);\n}\n.wi-rotate-180,.wi-rotate-S,.wi-towards-S,.wi-from-N {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n-webkit-transform: rotate(180deg);\n-ms-transform: rotate(180deg);\ntransform: rotate(180deg);\n}\n.wi-rotate-203,.wi-rotate-SSW,.wi-towards-SSW,.wi-from-NNE {\n-webkit-transform: rotate(203deg);\n-ms-transform: rotate(203deg);\ntransform: rotate(203deg);\n}\n.wi-rotate-225,.wi-rotate-SW,.wi-towards-SW,.wi-from-NE {\n-webkit-transform: rotate(225deg);\n-ms-transform: rotate(225deg);\ntransform: rotate(225deg);\n}\n.wi-rotate-248,.wi-rotate-WSW,.wi-towards-WSW,.wi-from-ENE {\n-webkit-transform: rotate(248deg);\n-ms-transform: rotate(248deg);\ntransform: rotate(248deg);\n}\n.wi-rotate-270,.wi-rotate-W,.wi-towards-W,.wi-from-E{\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n-webkit-transform: rotate(270deg);\n-ms-transform: rotate(270deg);\ntransform: rotate(270deg);\n}\n.wi-rotate-293,.wi-rotate-WNW,.wi-towards-WNW,.wi-from-ESE {\n-webkit-transform: rotate(293deg);\n-ms-transform: rotate(293deg);\ntransform: rotate(293deg);\n}\n.wi-rotate-315,.wi-rotate-NW,.wi-towards-NW,.wi-from-SE {\n-webkit-transform: rotate(315deg);\n-ms-transform: rotate(315deg);\ntransform: rotate(315deg);\n}\n.wi-rotate-320,.wi-rotate-NW,.wi-towards-NW,.wi-from-SE {\n-webkit-transform: rotate(320deg);\n-ms-transform: rotate(320deg);\ntransform: rotate(320deg);\n}\n.wi-rotate-338,.wi-rotate-NNW,.wi-towards-NNW,.wi-from-SSE {\n-webkit-transform: rotate(338deg);\n-ms-transform: rotate(338deg);\ntransform: rotate(338deg);\n}\n.wi-flip-horizontal {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0,\nmirror=1);\n-webkit-transform: scale(-1, 1);\n-ms-transform: scale(-1, 1);\ntransform: scale(-1, 1);\n}\n.wi-flip-vertical {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n-webkit-transform: scale(1, -1);\n-ms-transform: scale(1, -1);\ntransform: scale(1, -1);\n}\n.wi-arrow:before {\ncontent: \"\\f0d2\";\n}\n.wi-direction:before {\ncontent: \"\\f0d1\";\n}\n.wi-darksky-clear-day:before {\ncontent: \"\\f00d\";\n}\n.wi-darksky-clear-night:before {\ncontent: \"\\f02e\";\n}\n.wi-darksky-rain:before {\ncontent: \"\\f019\";\n}\n.wi-darksky-snow:before {\ncontent: \"\\f01b\";\n}\n.wi-darksky-sleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-darksky-wind:before {\ncontent: \"\\f050\";\n}\n.wi-darksky-fog:before {\ncontent: \"\\f014\";\n}\n.wi-darksky-cloudy:before {\ncontent: \"\\f013\";\n}\n.wi-darksky-partly-cloudy-day:before {\ncontent: \"\\f002\";\n}\n.wi-darksky-partly-cloudy-night:before {\ncontent: \"\\f086\";\n}\n.wi-darksky-hail:before {\ncontent: \"\\f015\";\n}\n.wi-darksky-thunderstorm:before {\ncontent: \"\\f01e\";\n}\n.wi-darksky-tornado:before {\ncontent: \"\\f056\";\n}\n.wi-owm-01d:before {\ncontent: \"\\f00d\";\n}\n.wi-owm-02d:before {\ncontent: \"\\f00c\";\n}\n.wi-owm-03d:before {\ncontent: \"\\f002\";\n}\n.wi-owm-04d:before {\ncontent: \"\\f013\";\n}\n.wi-owm-09d:before {\ncontent: \"\\f017\";\n}\n.wi-owm-10d:before {\ncontent: \"\\f019\";\n}\n.wi-owm-11d:before {\ncontent: \"\\f01e\";\n}\n.wi-owm-13d:before {\ncontent: \"\\f01b\";\n}\n.wi-owm-50d:before {\ncontent: \"\\f014\";\n}\n.wi-owm-01n:before {\ncontent: \"\\f02e\";\n}\n.wi-owm-02n:before {\ncontent: \"\\f081\";\n}\n.wi-owm-03n:before {\ncontent: \"\\f07e\";\n}\n.wi-owm-04n:before {\ncontent: \"\\f086\";\n}\n.wi-owm-09n:before {\ncontent: \"\\f026\";\n}\n.wi-owm-10n:before {\ncontent: \"\\f028\";\n}\n.wi-owm-11n:before {\ncontent: \"\\f02c\";\n}\n.wi-owm-13n:before {\ncontent: \"\\f02a\";\n}\n.wi-owm-50n:before {\ncontent: \"\\f04a\";\n}\n.wi-wu-chanceflurries:before {\ncontent: \"\\f064\";\n}\n.wi-wu-chancerain:before {\ncontent: \"\\f019\";\n}\n.wi-wu-chancesleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-wu-chancesnow:before {\ncontent: \"\\f01b\";\n}\n.wi-wu-chancetstorms:before {\ncontent: \"\\f01e\";\n}\n.wi-wu-clear:before {\ncontent: \"\\f00d\";\n}\n.wi-wu-cloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-flurries:before {\ncontent: \"\\f064\";\n}\n.wi-wu-fog:before {\ncontent: \"\\f014\";\n}\n.wi-wu-hazy:before {\ncontent: \"\\f0b6\";\n}\n.wi-wu-mostlycloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-mostlysunny:before {\ncontent: \"\\f00c\";\n}\n.wi-wu-partlycloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-partlysunny:before {\ncontent: \"\\f002\";\n}\n.wi-wu-rain:before {\ncontent: \"\\f01a\";\n}\n.wi-wu-sleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-wu-snow:before {\ncontent: \"\\f01b\";\n}\n.wi-wu-sunny:before {\ncontent: \"\\f00d\";\n}\n.wi-wu-tstorms:before {\ncontent: \"\\f01e\";\n}\n.wi-wu-nt_chanceflurries:before {\ncontent: \"\\f067\";\n}\n.wi-wu-nt_chancerain:before {\ncontent: \"\\f028\";\n}\n.wi-wu-nt_chancesleet:before {\ncontent: \"\\f0b4\";\n}\n.wi-wu-nt_chancesnow:before {\ncontent: \"\\f02a\";\n}\n.wi-wu-nt_chancetstorms:before {\ncontent: \"\\f02d\";\n}\n.wi-wu-nt_clear:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_flurries:before {\ncontent: \"\\f067\";\n}\n.wi-wu-nt_fog:before {\ncontent: \"\\f04a\";\n}\n.wi-wu-nt_hazy:before {\ncontent: \"\\f07e\";\n}\n.wi-wu-nt_mostlycloudy:before {\ncontent: \"\\f081\";\n}\n.wi-wu-nt_mostlysunny:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_partlycloudy:before {\ncontent: \"\\f081\";\n}\n.wi-wu-nt_partlysunny:before {\ncontent: \"\\f086\";\n}\n.wi-wu-nt_rain:before {\ncontent: \"\\f028\";\n}\n.wi-wu-nt_sleet:before {\ncontent: \"\\f0b4\";\n}\n.wi-wu-nt_snow:before {\ncontent: \"\\f02a\";\n}\n.wi-wu-nt_sunny:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_tstorms:before {\ncontent: \"\\f02d\";\n}\n.wi-wu-nt_cloudy:before {\ncontent: \"\\f031\";\n}\n.wi-moon-wax-cres-dark:before {\ncontent: \"\\f0de\";\n}\n.wi-moon-first-quart-dark:before {\ncontent: \"\\f0df\";\n}\n.wi-moon-wax-gibb-dark:before {\ncontent: \"\\f0e0\";\n}\n.wi-moon-full-dark:before {\ncontent: \"\\f0e1\";\n}\n.wi-moon-wan-gibb-dark:before {\ncontent: \"\\f0da\";\n}\n.wi-moon-third-quart-dark:before {\ncontent: \"\\f0db\";\n}\n.wi-moon-wan-cres-dark:before {\ncontent: \"\\f0dc\";\n}\n.wi-moon-new-dark:before {\ncontent: \"\\f0dd\";\n}\n.wi-moon-wax-cres:before {\ncontent: \"\\f0da\";\n}\n.wi-moon-first-quart:before {\ncontent: \"\\f0db\";\n}\n.wi-moon-wax-gibb:before {\ncontent: \"\\f0dc\";\n}\n.wi-moon-full:before {\ncontent: \"\\f0dd\";\n}\n.wi-moon-wan-gibb:before {\ncontent: \"\\f0de\";\n}\n.wi-moon-third-quart:before {\ncontent: \"\\f0df\";\n}\n.wi-moon-wan-cres:before {\ncontent: \"\\f0e0\";\n}\n.wi-moon-new:before {\ncontent: \"\\f0e1\";\n}\n.rounded {\nborder-radius: 12px 12px 12px 12px;\nborder: #808080 2px solid;\n}\n.smallfont {\nfont-size: 12px;\ntext-transform:none;\n}\n\n</style>\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"global","className":"","x":350,"y":160,"wires":[[]]},{"id":"17f153caa3651a8c","type":"ui_template","z":"443d669d0a1fb7cb","group":"e357ef02.ef3cb","name":"Toolbar UI","order":4,"width":0,"height":0,"format":"<script id=\"toolbar\" type=\"text/javascript\">\n    let clockInterval;\n    $(function () {\n        if (clockInterval) return;\n\n        // add solar\n        let div1 = $('<div/>');\n        let p0 = $('<p style=\"font-size:15px; \"><i>SFi</i></p>');\n        let p1 = $('<p/ id=\"header-sfi\">');\n        let p2 = $('<p>&nbsp&nbsp</p>');\n        let p3 = $('<p style=\"font-size:15px; \"><i>A</i></p>');\n        let p4 = $('<p/ id=\"header-Aindex\">');\n        let p5 = $('<p>&nbsp&nbsp</p>');\n        let p6 = $('<p style=\"font-size:15px; \"><i>K</i></p>');\n        let p7 = $('<p/ id=\"header-kdx\">');\n        let p8 = $('<p>&nbsp&nbsp</p>');\n        let p9 = $('<p style=\"font-size:15px; \"><i>G</i></p>');  \n        let p10 = $('<p / id=\"header-gdx\">');      \n\n        div1.append(p0);\n        div1.append(p1);\n        div1.append(p2);\n        div1.append(p3);\n        div1.append(p4);\n        div1.append(p5);\n        div1.append(p6);\n        div1.append(p7);\n        div1.append(p8);\n        div1.append(p9);\n        div1.append(p10);\n        \n        div1[0].style.width = 'auto';\n        div1[0].style.margin = 'auto';\n        div1[0].style.display = 'flex';\n        div1[0].style.color = '#c4d0ee';\n\n        p0[0].style.margin = 'auto';\n        p1[0].style.margin = 'auto';\n        p1[0].style.color = 'white';\n        p2[0].style.margin = 'auto';\n        p3[0].style.margin = 'auto';\n        p4[0].style.margin = 'auto';\n        //p4[0].style.color = 'white';\n        p5[0].style.margin = 'auto';\n        p6[0].style.margin = 'auto';\n        p7[0].style.margin = 'auto';\n        //p7[0].style.color = 'white';\n        p8[0].style.margin = 'auto';\n       p10[0].style.margin = 'auto';\n       p10[0].style.color = 'white';\n        \n        //add wx\n        let div2 = $('<div/>');\n        let f0 = $('<p/ id=\"header-thermometer\">');\n        let f1 = $('<p>&nbsp</p>');\n        let f2 = $('<p/id=\"header-temperature\" style=\"font-size:15px; font-style:italic\">');\n        let f3 = $('<p>&deg;</p>');\n        let f4 = $('<p>&nbsp&nbsp&nbsp</p>');\n        let f5 = $('<p/id=\"header-wdirection\">');\n        let f6 = $('<p>&nbsp</p>');\n        let f7 = $('<p/id=\"header-wspeed\" style=\"font-size:15px;font-style:italic\">');\n        let f8 = $('<p>&nbsp</p>');\n        let f9 = $('<p/id=\"header-spdUnit\" style=\"font-size:10px;font-style:italic\">');\n        let f10 = $('<p>&nbsp&nbsp</p>');\n        let f11 = $('<p/id=\"header-wicon\">');\n        let f12 = $('<p>&nbsp&nbsp&nbsp</p>');\n        let f13 = $('<p/id=\"header-wbar\">');\n        \n        div2.append(f0);\n        div2.append(f1);\n        div2.append(f2);\n        div2.append(f3);\n        div2.append(f4);\n        div2.append(f5);\n        div2.append(f6);\n        div2.append(f7);\n        div2.append(f8);\n        div2.append(f9);\n        div2.append(f10);\n        div2.append(f11);\n        div2.append(f12);\n        div2.append(f13);\n\n        div2[0].style.width = 'auto';\n        div2[0].style.margin = 'auto';\n        div2[0].style.display = 'flex';\n\n        f0[0].style.margin = 'auto';\n        f1[0].style.margin = 'auto';\n        f2[0].style.margin = 'auto';\n        f3[0].style.margin = 'auto';\n        f4[0].style.margin = 'auto';\n        f5[0].style.margin = 'auto';\n        f6[0].style.margin = 'auto';\n        f7[0].style.margin = 'auto';\n        f8[0].style.margin = 'auto';\n        f9[0].style.margin = 'auto';\n       f10[0].style.margin = 'auto';\n       f11[0].style.margin = 'auto';\n       f12[0].style.margin = 'auto';\n       f13[0].style.margin = 'auto';\n           \n        //add lightning\n        let div3 = $('<div/>');\n        let l0 = $('<p /id=\"header-lightning\" style=\"font-size:20px; \">');\n        //let l1 = $('<p>&nbsp</p>');\n        // let l2 = $('<p style=\"font-size:15px;font-style:italic\">Km</p>');\n        let l2 = $('<p /id=\"header-distance_unit\" style=\"font-size:15px;font-style:italic\"></p>');\n        let l3 = $('<p>&nbsp&nbsp</p>');\n        let l4 = $('<p / id=\"header-icon\">');\n        let l5 = $('<p>&nbsp&nbsp</p>');\n        let l6 = $('<p /id=\"header-dif\" style=\"font-size:20px; \">');  \n        //let l7 = $('<p>&nbsp</p>');\n        let l8 = $('<p /id=\"header-mhd\" style=\"font-size:15px;font-style:italic \">');        \n        \n        div3.append(l0);\n        //div3.append(l1);\n        div3.append(l2);\n        div3.append(l3);\n        div3.append(l4);\n        div3.append(l5);\n        div3.append(l6);\n        //div3.append(l7);\n        div3.append(l8);\n        \n        div3[0].style.width = 'auto';\n        div3[0].style.margin = 'auto';\n        div3[0].style.display = 'flex';\n        div3[0].style.color = '#c4d0ee';\n        \n        l0[0].style.margin = 'auto';\n        l0[0].style.color = 'white';\n        //l1[0].style.margin ='auto';\n        l2[0].style.margin = 'auto';\n        l3[0].style.margin = 'auto';\n        l4[0].style.margin = 'auto';\n        l5[0].style.margin = 'auto';\n        l6[0].style.margin = 'auto';\n        l6[0].style.color = 'white';\n        //l7[0].style.margin = 'auto';\n        l8[0].style.margin = 'auto';\n\n        // add clock\n        let div4 = $('<div/>');\n        let t0 = $('<p/>');\n        let t1 = $('<p style=\"font-size:15px; \"><i>UTC</i></p>');\n        \n        div4.append(t0);\n        div4.append(t1);\n         \n        div4[0].style.margin = 'auto';\n        div4[0].style.display = 'flex';\n        div4[0].style.color = '#c4d0ee';\n\n        t0[0].style.margin = 'auto';\n        t0[0].style.color = 'white';\n        t1[0].style.margin = 'auto';\n\n \n \n        function displayTime() {\n            var d = Date();\n            var options = { timeZone: 'UTC',   hourCycle: 'h23', hour: `2-digit`, minute: `2-digit`, second: `2-digit`};\n            t0.text(new Date().toLocaleString('en-US', options));\n        }\n        \n        clockInterval = setInterval(displayTime, 1000);\n\n        //add to toolbar when it's available\n        var addToToolbarTimer;\n        \n        function addToToolbar() {\n            var toolbar = $('.md-toolbar-tools');\n            \n            if(!toolbar.length) return;\n            \n            toolbar.append(div1);\n            //toolbar.append(div2);\n            // toolbar.append(div3);\n            toolbar.append(div4);\n\n            clearInterval(addToToolbarTimer);\n        }\n        addToToolbarTimer = setInterval(addToToolbar, 1000);\n    });\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"global","className":"","x":510,"y":160,"wires":[[]],"icon":"font-awesome/fa-list-alt","info":"# Solar / Wx / Lightning / Clock\n\n1. solar data from Solar flow variables:  #kdx, #sfi, #Aindex\n\n2.  Open Weather icons for current conditions: Temp, Wind Dir / Speed, Current Conditions,  Barometric Trend\n\n3. Lightning Strike Distance - If < 25Km, then distance in miles is shown.  >25Km distance default.\n4. Lightning Stirke Icon - When < 15Km,  Icon = Red.  >25Km = green.\n5. Last Strike - Time from last strike in min(1-59), hrs(1-23), and day(1-~).  Last time is determined when strike occurs.  Default is 180 days if variable is undefined.\n\n6. UTC Clock with seconds\n\n\n\n"},{"id":"45091496a9f1a874","type":"inject","z":"443d669d0a1fb7cb","name":"1 min","props":[{"p":"payload"}],"repeat":"30","crontab":"","once":true,"onceDelay":"15","topic":"","payload":"","payloadType":"date","x":150,"y":240,"wires":[["c82ce772e8b1ec20"]]},{"id":"c82ce772e8b1ec20","type":"http request","z":"443d669d0a1fb7cb","name":"getSolar","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://www.hamqsl.com/w8bexml.php","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":300,"y":240,"wires":[["22008c6560952311"]],"info":"# getSolar\n\n## HTTP request node to fetch solar indicies data from https://www.hamqsl.com/w8bexml.php\n\nData is returned in xml format\n\nobject\nsolar: object\nsolardata: array[1]\n0: object\nsource: array[1]\nupdated: array[1]\nsolarflux: array[1]\naindex: array[1]\nkindex: array[1]\nkindexnt: array[1]\nxray: array[1]\nsunspots: array[1]\nheliumline: array[1]\nprotonflux: array[1]\nelectonflux: array[1]\naurora: array[1]\nnormalization: array[1]\nlatdegree: array[1]\nsolarwind: array[1]\nmagneticfield: array[1]\ncalculatedconditions: array[1]\ncalculatedvhfconditions: array[1]\ngeomagfield: array[1]\nsignalnoise: array[1]\nfof2: array[1]\nmuffactor: array[1]\nmuf: array[1]\n"},{"id":"22008c6560952311","type":"xml","z":"443d669d0a1fb7cb","name":"","property":"payload","attr":"","chr":"","x":430,"y":240,"wires":[["f4b5da941d147d72"]]},{"id":"47f636b8b353b7c6","type":"ui_template","z":"443d669d0a1fb7cb","group":"e357ef02.ef3cb","name":"Solar","order":8,"width":0,"height":0,"format":"<script>\n    (function(scope) {\n        //hide this card. NOTE: 4b689f7473831a84 is the Node id as \n        //seen in the INFO panel on the sidebar when you select this node\n         $('[node-id=\"47f636b8b353b7c6\"]').hide();\n        scope.$watch('msg', function(msg) {\n            if (msg && msg.topic == \"solar\") {\n                $(\"#header-sfi\").text(msg.sfi).css(\"color\",(msg.sficolor));\n                $(\"#header-Aindex\").text(msg.Aindex).css(\"color\",(msg.aColor));\n                $(\"#header-kdx\").text(msg.kdx).css(\"color\",(msg.kColor));\n            }\n        });\n    })(scope);\n</script>\n","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":710,"y":240,"wires":[[]],"info":"# Update Server K\n\n# Node links to Solar Flow logic for K index varible #kdx\n\nNode needs to be in one flow for each dashboard tab in order for toolbar to update \n\n\n"},{"id":"e357ef02.ef3cb","type":"ui_group","name":"Page 1","tab":"4bc17c6e.b74934","order":2,"disp":false,"width":"6","collapse":false,"className":""},{"id":"4bc17c6e.b74934","type":"ui_tab","name":"Page 1","icon":"wi-wu-tstorms","order":5,"disabled":false,"hidden":false}]

The Solar UI template needs to be in a group on every page you have in dashboard in order to update the header (Toolbar UI). You need to hide the Solar UI on the actual dashboard page so it does not show up.

Currently I have to manually set the node id of the UI template in the .hide method. It would be cool if I could reference the node id from a variable

Using ui-control

[{"id":"2fafd025389463c7","type":"inject","z":"c31640d81bf733c7","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"{\"group\":{\"hide\":[\"Page_1_Page_1\"]}}","payloadType":"json","x":90,"y":440,"wires":[["d759b614f74d44da"]]},{"id":"f4b5da941d147d72","type":"function","z":"c31640d81bf733c7","name":"formatSolar","func":"const sfi = parseFloat(msg.payload.solar.solardata[0].solarflux[0]);\nconst kdx = parseFloat(msg.payload.solar.solardata[0].kindex[0]);\nconst Aindex = parseFloat(msg.payload.solar.solardata[0].aindex);\nconst muf = msg.payload.solar.solardata[0].muf[0]; \nconst fof2 = (parseFloat(muf / 3.084).toFixed(2) !== 'Nan') ? parseFloat(muf / 3.084).toFixed(2) : 0;\n\nlet sficolor\nif (sfi <= 80) { sficolor = '#ff0000' }\nif (sfi > 80 && sfi <= 120) { sficolor = '#ffcc00' }\nif (sfi > 130) { sficolor = \"#14f00c\" }\n\nlet aColor\nif (Aindex <= 3) { aColor = 'blue' }\nif (Aindex > 3 && Aindex <= 27) { aColor = \"#14f00c\" }\nif (Aindex > 27 && Aindex <= 80) { aColor = \"yellow\" }\nif (Aindex > 80) { aColor = \"red\" }\n\nlet kColor\nif (kdx <= 1) { kColor = '#3399ff' }\nif (kdx > 1 && kdx <= 4) { kColor = \"#14f00c\" }\nif (kdx > 4 && kdx <= 6) { kColor = \"yellow\" }\nif (kdx > 6) { kColor = \"red\" }\n\nmsg = { payload: 0, topic: 'solar', sfi: sfi, sficolor: sficolor, kdx: kdx, Aindex: Aindex, aColor: aColor, kColor: kColor };\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":340,"wires":[["47f636b8b353b7c6"]]},{"id":"e34eb60ffb7e2507","type":"ui_template","z":"c31640d81bf733c7","group":"e357ef02.ef3cb","name":"Load CSS","order":1,"width":"0","height":"0","format":"/*!\n* Weather Icons Lite v1.6.1\n* Weather themed icons for Bootstrap\n* Author - Paul Reed\n* Maintained at https://github.com/Paul-Reed/weather-icons-lite\n* Description - A lighweight version of Weather Icons\n* Credit to Erik Flowers - erik@helloerik.com\n*\n*/\n<style>\n@import url('https://fonts.googleapis.com/css2?family=Russo+One&display=swap');\n@import url('https://w3schools.com/w3css/4/w3.cs');\n@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0');\n@font-face {\nfont-family: 'weather-icons-lite';\nfont-weight: normal;\nfont-style: normal;\nsrc: url('../fonts/weather-icons-lite.woff2') format('woff2'),\nurl('../fonts/weather-icons-lite.woff') format('woff'),\nurl('../fonts/weather-icons-lite.ttf') format('truetype'),\nurl('../fonts/weather-icons-lite.eot') format('embedded-opentype');\n}\n.wi {\ndisplay: inline-block;\nfont-family: 'weather-icons-lite';\nfont-style: normal;\nfont-weight: normal;\nline-height: 1;\n-webkit-font-smoothing: antialiased;\n-moz-osx-font-smoothing: grayscale;\n}\n.wi-lg {\nfont-size: 1.33333em;\nline-height: 0.75em;\nvertical-align: -.0667em;\n}\n.wi-xs {\nfont-size: .75em;\n}\n.wi-sm {\nfont-size: .875em;\n}\n.wi-1x {\nfont-size: 1em;\n}\n.wi-2x {\nfont-size: 2em;\n}\n.wi-3x {\nfont-size: 3em;\n}\n.wi-4x {\nfont-size: 4em;\n}\n.wi-5x {\nfont-size: 5em;\n}\n.wi-6x {\nfont-size: 6em;\n}\n.wi-7x {\nfont-size: 7em;\n}\n.wi-8x {\nfont-size: 8em;\n}\n.wi-9x {\nfont-size: 9em;\n}\n.wi-10x {\nfont-size: 10em;\n}\n.wi-fw {\ntext-align: center;\nwidth: 1.4em;\n}\n.wi-rotate-0,.wi-rotate-N,.wi-towards-N,.wi-from-S {\n-webkit-transform: rotate(0deg);\n-ms-transform: rotate(0deg);\ntransform: rotate(0deg);\n}\n.wi-rotate-23,.wi-rotate-NNE,.wi-towards-NNE,.wi-from-SSW {\n-webkit-transform: rotate(23deg);\n-ms-transform: rotate(23deg);\ntransform: rotate(23deg);\n}\n.wi-rotate-45,.wi-rotate-NE,.wi-towards-NE,.wi-from-SW {\n-webkit-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.wi-rotate-68,.wi-rotate-ENE,.wi-towards-ENE,.wi-from-WSW {\n-webkit-transform: rotate(68deg);\n-ms-transform: rotate(68deg);\ntransform: rotate(68deg);\n}\n.wi-rotate-90,.wi-rotate-E,.wi-towards-E,.wi-from-W {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n-webkit-transform: rotate(90deg);\n-ms-transform: rotate(90deg);\ntransform: rotate(90deg);\n}\n.wi-rotate-113,.wi-rotate-ESE,.wi-towards-ESE,.wi-from-WNW {\n-webkit-transform: rotate(113deg);\n-ms-transform: rotate(113deg);\ntransform: rotate(113deg);\n}\n.wi-rotate-135,.wi-rotate-SE,.wi-towards-SE,.wi-from-NW {\n-webkit-transform: rotate(135deg);\n-ms-transform: rotate(135deg);\ntransform: rotate(135deg);\n}\n.wi-rotate-158,.wi-rotate-SSE,.wi-towards-SSE,.wi-from-NNW {\n-webkit-transform: rotate(158deg);\n-ms-transform: rotate(158deg);\ntransform: rotate(158deg);\n}\n.wi-rotate-180,.wi-rotate-S,.wi-towards-S,.wi-from-N {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n-webkit-transform: rotate(180deg);\n-ms-transform: rotate(180deg);\ntransform: rotate(180deg);\n}\n.wi-rotate-203,.wi-rotate-SSW,.wi-towards-SSW,.wi-from-NNE {\n-webkit-transform: rotate(203deg);\n-ms-transform: rotate(203deg);\ntransform: rotate(203deg);\n}\n.wi-rotate-225,.wi-rotate-SW,.wi-towards-SW,.wi-from-NE {\n-webkit-transform: rotate(225deg);\n-ms-transform: rotate(225deg);\ntransform: rotate(225deg);\n}\n.wi-rotate-248,.wi-rotate-WSW,.wi-towards-WSW,.wi-from-ENE {\n-webkit-transform: rotate(248deg);\n-ms-transform: rotate(248deg);\ntransform: rotate(248deg);\n}\n.wi-rotate-270,.wi-rotate-W,.wi-towards-W,.wi-from-E{\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n-webkit-transform: rotate(270deg);\n-ms-transform: rotate(270deg);\ntransform: rotate(270deg);\n}\n.wi-rotate-293,.wi-rotate-WNW,.wi-towards-WNW,.wi-from-ESE {\n-webkit-transform: rotate(293deg);\n-ms-transform: rotate(293deg);\ntransform: rotate(293deg);\n}\n.wi-rotate-315,.wi-rotate-NW,.wi-towards-NW,.wi-from-SE {\n-webkit-transform: rotate(315deg);\n-ms-transform: rotate(315deg);\ntransform: rotate(315deg);\n}\n.wi-rotate-320,.wi-rotate-NW,.wi-towards-NW,.wi-from-SE {\n-webkit-transform: rotate(320deg);\n-ms-transform: rotate(320deg);\ntransform: rotate(320deg);\n}\n.wi-rotate-338,.wi-rotate-NNW,.wi-towards-NNW,.wi-from-SSE {\n-webkit-transform: rotate(338deg);\n-ms-transform: rotate(338deg);\ntransform: rotate(338deg);\n}\n.wi-flip-horizontal {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0,\nmirror=1);\n-webkit-transform: scale(-1, 1);\n-ms-transform: scale(-1, 1);\ntransform: scale(-1, 1);\n}\n.wi-flip-vertical {\nfilter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n-webkit-transform: scale(1, -1);\n-ms-transform: scale(1, -1);\ntransform: scale(1, -1);\n}\n.wi-arrow:before {\ncontent: \"\\f0d2\";\n}\n.wi-direction:before {\ncontent: \"\\f0d1\";\n}\n.wi-darksky-clear-day:before {\ncontent: \"\\f00d\";\n}\n.wi-darksky-clear-night:before {\ncontent: \"\\f02e\";\n}\n.wi-darksky-rain:before {\ncontent: \"\\f019\";\n}\n.wi-darksky-snow:before {\ncontent: \"\\f01b\";\n}\n.wi-darksky-sleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-darksky-wind:before {\ncontent: \"\\f050\";\n}\n.wi-darksky-fog:before {\ncontent: \"\\f014\";\n}\n.wi-darksky-cloudy:before {\ncontent: \"\\f013\";\n}\n.wi-darksky-partly-cloudy-day:before {\ncontent: \"\\f002\";\n}\n.wi-darksky-partly-cloudy-night:before {\ncontent: \"\\f086\";\n}\n.wi-darksky-hail:before {\ncontent: \"\\f015\";\n}\n.wi-darksky-thunderstorm:before {\ncontent: \"\\f01e\";\n}\n.wi-darksky-tornado:before {\ncontent: \"\\f056\";\n}\n.wi-owm-01d:before {\ncontent: \"\\f00d\";\n}\n.wi-owm-02d:before {\ncontent: \"\\f00c\";\n}\n.wi-owm-03d:before {\ncontent: \"\\f002\";\n}\n.wi-owm-04d:before {\ncontent: \"\\f013\";\n}\n.wi-owm-09d:before {\ncontent: \"\\f017\";\n}\n.wi-owm-10d:before {\ncontent: \"\\f019\";\n}\n.wi-owm-11d:before {\ncontent: \"\\f01e\";\n}\n.wi-owm-13d:before {\ncontent: \"\\f01b\";\n}\n.wi-owm-50d:before {\ncontent: \"\\f014\";\n}\n.wi-owm-01n:before {\ncontent: \"\\f02e\";\n}\n.wi-owm-02n:before {\ncontent: \"\\f081\";\n}\n.wi-owm-03n:before {\ncontent: \"\\f07e\";\n}\n.wi-owm-04n:before {\ncontent: \"\\f086\";\n}\n.wi-owm-09n:before {\ncontent: \"\\f026\";\n}\n.wi-owm-10n:before {\ncontent: \"\\f028\";\n}\n.wi-owm-11n:before {\ncontent: \"\\f02c\";\n}\n.wi-owm-13n:before {\ncontent: \"\\f02a\";\n}\n.wi-owm-50n:before {\ncontent: \"\\f04a\";\n}\n.wi-wu-chanceflurries:before {\ncontent: \"\\f064\";\n}\n.wi-wu-chancerain:before {\ncontent: \"\\f019\";\n}\n.wi-wu-chancesleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-wu-chancesnow:before {\ncontent: \"\\f01b\";\n}\n.wi-wu-chancetstorms:before {\ncontent: \"\\f01e\";\n}\n.wi-wu-clear:before {\ncontent: \"\\f00d\";\n}\n.wi-wu-cloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-flurries:before {\ncontent: \"\\f064\";\n}\n.wi-wu-fog:before {\ncontent: \"\\f014\";\n}\n.wi-wu-hazy:before {\ncontent: \"\\f0b6\";\n}\n.wi-wu-mostlycloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-mostlysunny:before {\ncontent: \"\\f00c\";\n}\n.wi-wu-partlycloudy:before {\ncontent: \"\\f002\";\n}\n.wi-wu-partlysunny:before {\ncontent: \"\\f002\";\n}\n.wi-wu-rain:before {\ncontent: \"\\f01a\";\n}\n.wi-wu-sleet:before {\ncontent: \"\\f0b5\";\n}\n.wi-wu-snow:before {\ncontent: \"\\f01b\";\n}\n.wi-wu-sunny:before {\ncontent: \"\\f00d\";\n}\n.wi-wu-tstorms:before {\ncontent: \"\\f01e\";\n}\n.wi-wu-nt_chanceflurries:before {\ncontent: \"\\f067\";\n}\n.wi-wu-nt_chancerain:before {\ncontent: \"\\f028\";\n}\n.wi-wu-nt_chancesleet:before {\ncontent: \"\\f0b4\";\n}\n.wi-wu-nt_chancesnow:before {\ncontent: \"\\f02a\";\n}\n.wi-wu-nt_chancetstorms:before {\ncontent: \"\\f02d\";\n}\n.wi-wu-nt_clear:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_flurries:before {\ncontent: \"\\f067\";\n}\n.wi-wu-nt_fog:before {\ncontent: \"\\f04a\";\n}\n.wi-wu-nt_hazy:before {\ncontent: \"\\f07e\";\n}\n.wi-wu-nt_mostlycloudy:before {\ncontent: \"\\f081\";\n}\n.wi-wu-nt_mostlysunny:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_partlycloudy:before {\ncontent: \"\\f081\";\n}\n.wi-wu-nt_partlysunny:before {\ncontent: \"\\f086\";\n}\n.wi-wu-nt_rain:before {\ncontent: \"\\f028\";\n}\n.wi-wu-nt_sleet:before {\ncontent: \"\\f0b4\";\n}\n.wi-wu-nt_snow:before {\ncontent: \"\\f02a\";\n}\n.wi-wu-nt_sunny:before {\ncontent: \"\\f02e\";\n}\n.wi-wu-nt_tstorms:before {\ncontent: \"\\f02d\";\n}\n.wi-wu-nt_cloudy:before {\ncontent: \"\\f031\";\n}\n.wi-moon-wax-cres-dark:before {\ncontent: \"\\f0de\";\n}\n.wi-moon-first-quart-dark:before {\ncontent: \"\\f0df\";\n}\n.wi-moon-wax-gibb-dark:before {\ncontent: \"\\f0e0\";\n}\n.wi-moon-full-dark:before {\ncontent: \"\\f0e1\";\n}\n.wi-moon-wan-gibb-dark:before {\ncontent: \"\\f0da\";\n}\n.wi-moon-third-quart-dark:before {\ncontent: \"\\f0db\";\n}\n.wi-moon-wan-cres-dark:before {\ncontent: \"\\f0dc\";\n}\n.wi-moon-new-dark:before {\ncontent: \"\\f0dd\";\n}\n.wi-moon-wax-cres:before {\ncontent: \"\\f0da\";\n}\n.wi-moon-first-quart:before {\ncontent: \"\\f0db\";\n}\n.wi-moon-wax-gibb:before {\ncontent: \"\\f0dc\";\n}\n.wi-moon-full:before {\ncontent: \"\\f0dd\";\n}\n.wi-moon-wan-gibb:before {\ncontent: \"\\f0de\";\n}\n.wi-moon-third-quart:before {\ncontent: \"\\f0df\";\n}\n.wi-moon-wan-cres:before {\ncontent: \"\\f0e0\";\n}\n.wi-moon-new:before {\ncontent: \"\\f0e1\";\n}\n.rounded {\nborder-radius: 12px 12px 12px 12px;\nborder: #808080 2px solid;\n}\n.smallfont {\nfont-size: 12px;\ntext-transform:none;\n}\n</style>\n","storeOutMessages":false,"fwdInMessages":false,"resendOnRefresh":false,"templateScope":"global","className":"","x":270,"y":260,"wires":[[]]},{"id":"17f153caa3651a8c","type":"ui_template","z":"c31640d81bf733c7","group":"e357ef02.ef3cb","name":"Toolbar UI","order":4,"width":0,"height":0,"format":"<script id=\"toolbar\" type=\"text/javascript\">\n    let clockInterval;\n    $(function () {\n        if (clockInterval) return;\n\n        // add solar\n        let div1 = $('<div/>');\n        let p0 = $('<p style=\"font-size:15px; \"><i>SFi</i></p>');\n        let p1 = $('<p/ id=\"header-sfi\">');\n        let p2 = $('<p>&nbsp&nbsp</p>');\n        let p3 = $('<p style=\"font-size:15px; \"><i>A</i></p>');\n        let p4 = $('<p/ id=\"header-Aindex\">');\n        let p5 = $('<p>&nbsp&nbsp</p>');\n        let p6 = $('<p style=\"font-size:15px; \"><i>K</i></p>');\n        let p7 = $('<p/ id=\"header-kdx\">');\n        let p8 = $('<p>&nbsp&nbsp</p>');\n        let p9 = $('<p style=\"font-size:15px; \"><i>G</i></p>');  \n        let p10 = $('<p / id=\"header-gdx\">');      \n\n        div1.append(p0);\n        div1.append(p1);\n        div1.append(p2);\n        div1.append(p3);\n        div1.append(p4);\n        div1.append(p5);\n        div1.append(p6);\n        div1.append(p7);\n        div1.append(p8);\n        div1.append(p9);\n        div1.append(p10);\n        \n        div1[0].style.width = 'auto';\n        div1[0].style.margin = 'auto';\n        div1[0].style.display = 'flex';\n        div1[0].style.color = '#c4d0ee';\n\n        p0[0].style.margin = 'auto';\n        p1[0].style.margin = 'auto';\n        p1[0].style.color = 'white';\n        p2[0].style.margin = 'auto';\n        p3[0].style.margin = 'auto';\n        p4[0].style.margin = 'auto';\n        //p4[0].style.color = 'white';\n        p5[0].style.margin = 'auto';\n        p6[0].style.margin = 'auto';\n        p7[0].style.margin = 'auto';\n        //p7[0].style.color = 'white';\n        p8[0].style.margin = 'auto';\n       p10[0].style.margin = 'auto';\n       p10[0].style.color = 'white';\n        \n        //add wx\n        let div2 = $('<div/>');\n        let f0 = $('<p/ id=\"header-thermometer\">');\n        let f1 = $('<p>&nbsp</p>');\n        let f2 = $('<p/id=\"header-temperature\" style=\"font-size:15px; font-style:italic\">');\n        let f3 = $('<p>&deg;</p>');\n        let f4 = $('<p>&nbsp&nbsp&nbsp</p>');\n        let f5 = $('<p/id=\"header-wdirection\">');\n        let f6 = $('<p>&nbsp</p>');\n        let f7 = $('<p/id=\"header-wspeed\" style=\"font-size:15px;font-style:italic\">');\n        let f8 = $('<p>&nbsp</p>');\n        let f9 = $('<p/id=\"header-spdUnit\" style=\"font-size:10px;font-style:italic\">');\n        let f10 = $('<p>&nbsp&nbsp</p>');\n        let f11 = $('<p/id=\"header-wicon\">');\n        let f12 = $('<p>&nbsp&nbsp&nbsp</p>');\n        let f13 = $('<p/id=\"header-wbar\">');\n        \n        div2.append(f0);\n        div2.append(f1);\n        div2.append(f2);\n        div2.append(f3);\n        div2.append(f4);\n        div2.append(f5);\n        div2.append(f6);\n        div2.append(f7);\n        div2.append(f8);\n        div2.append(f9);\n        div2.append(f10);\n        div2.append(f11);\n        div2.append(f12);\n        div2.append(f13);\n\n        div2[0].style.width = 'auto';\n        div2[0].style.margin = 'auto';\n        div2[0].style.display = 'flex';\n\n        f0[0].style.margin = 'auto';\n        f1[0].style.margin = 'auto';\n        f2[0].style.margin = 'auto';\n        f3[0].style.margin = 'auto';\n        f4[0].style.margin = 'auto';\n        f5[0].style.margin = 'auto';\n        f6[0].style.margin = 'auto';\n        f7[0].style.margin = 'auto';\n        f8[0].style.margin = 'auto';\n        f9[0].style.margin = 'auto';\n       f10[0].style.margin = 'auto';\n       f11[0].style.margin = 'auto';\n       f12[0].style.margin = 'auto';\n       f13[0].style.margin = 'auto';\n           \n        //add lightning\n        let div3 = $('<div/>');\n        let l0 = $('<p /id=\"header-lightning\" style=\"font-size:20px; \">');\n        //let l1 = $('<p>&nbsp</p>');\n        // let l2 = $('<p style=\"font-size:15px;font-style:italic\">Km</p>');\n        let l2 = $('<p /id=\"header-distance_unit\" style=\"font-size:15px;font-style:italic\"></p>');\n        let l3 = $('<p>&nbsp&nbsp</p>');\n        let l4 = $('<p / id=\"header-icon\">');\n        let l5 = $('<p>&nbsp&nbsp</p>');\n        let l6 = $('<p /id=\"header-dif\" style=\"font-size:20px; \">');  \n        //let l7 = $('<p>&nbsp</p>');\n        let l8 = $('<p /id=\"header-mhd\" style=\"font-size:15px;font-style:italic \">');        \n        \n        div3.append(l0);\n        //div3.append(l1);\n        div3.append(l2);\n        div3.append(l3);\n        div3.append(l4);\n        div3.append(l5);\n        div3.append(l6);\n        //div3.append(l7);\n        div3.append(l8);\n        \n        div3[0].style.width = 'auto';\n        div3[0].style.margin = 'auto';\n        div3[0].style.display = 'flex';\n        div3[0].style.color = '#c4d0ee';\n        \n        l0[0].style.margin = 'auto';\n        l0[0].style.color = 'white';\n        //l1[0].style.margin ='auto';\n        l2[0].style.margin = 'auto';\n        l3[0].style.margin = 'auto';\n        l4[0].style.margin = 'auto';\n        l5[0].style.margin = 'auto';\n        l6[0].style.margin = 'auto';\n        l6[0].style.color = 'white';\n        //l7[0].style.margin = 'auto';\n        l8[0].style.margin = 'auto';\n\n        // add clock\n        let div4 = $('<div/>');\n        let t0 = $('<p/>');\n        let t1 = $('<p style=\"font-size:15px; \"><i>UTC</i></p>');\n        \n        div4.append(t0);\n        div4.append(t1);\n         \n        div4[0].style.margin = 'auto';\n        div4[0].style.display = 'flex';\n        div4[0].style.color = '#c4d0ee';\n\n        t0[0].style.margin = 'auto';\n        t0[0].style.color = 'white';\n        t1[0].style.margin = 'auto';\n\n \n \n        function displayTime() {\n            var d = Date();\n            var options = { timeZone: 'UTC',   hourCycle: 'h23', hour: `2-digit`, minute: `2-digit`, second: `2-digit`};\n            t0.text(new Date().toLocaleString('en-US', options));\n        }\n        \n        clockInterval = setInterval(displayTime, 1000);\n\n        //add to toolbar when it's available\n        var addToToolbarTimer;\n        \n        function addToToolbar() {\n            var toolbar = $('.md-toolbar-tools');\n            \n            if(!toolbar.length) return;\n            \n            toolbar.append(div1);\n            //toolbar.append(div2);\n            // toolbar.append(div3);\n            toolbar.append(div4);\n\n            clearInterval(addToToolbarTimer);\n        }\n        addToToolbarTimer = setInterval(addToToolbar, 1000);\n    });\n</script>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"global","className":"","x":430,"y":260,"wires":[[]],"icon":"font-awesome/fa-list-alt","info":"# Solar / Wx / Lightning / Clock\n\n1. solar data from Solar flow variables:  #kdx, #sfi, #Aindex\n\n2.  Open Weather icons for current conditions: Temp, Wind Dir / Speed, Current Conditions,  Barometric Trend\n\n3. Lightning Strike Distance - If < 25Km, then distance in miles is shown.  >25Km distance default.\n4. Lightning Stirke Icon - When < 15Km,  Icon = Red.  >25Km = green.\n5. Last Strike - Time from last strike in min(1-59), hrs(1-23), and day(1-~).  Last time is determined when strike occurs.  Default is 180 days if variable is undefined.\n\n6. UTC Clock with seconds\n\n\n\n"},{"id":"45091496a9f1a874","type":"inject","z":"c31640d81bf733c7","name":"1 min","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":"15","topic":"","payload":"","payloadType":"date","x":130,"y":380,"wires":[["c82ce772e8b1ec20"]]},{"id":"c82ce772e8b1ec20","type":"http request","z":"c31640d81bf733c7","name":"getSolar","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://www.hamqsl.com/w8bexml.php","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":220,"y":340,"wires":[["22008c6560952311"]],"info":"# getSolar\n\n## HTTP request node to fetch solar indicies data from https://www.hamqsl.com/w8bexml.php\n\nData is returned in xml format\n\nobject\nsolar: object\nsolardata: array[1]\n0: object\nsource: array[1]\nupdated: array[1]\nsolarflux: array[1]\naindex: array[1]\nkindex: array[1]\nkindexnt: array[1]\nxray: array[1]\nsunspots: array[1]\nheliumline: array[1]\nprotonflux: array[1]\nelectonflux: array[1]\naurora: array[1]\nnormalization: array[1]\nlatdegree: array[1]\nsolarwind: array[1]\nmagneticfield: array[1]\ncalculatedconditions: array[1]\ncalculatedvhfconditions: array[1]\ngeomagfield: array[1]\nsignalnoise: array[1]\nfof2: array[1]\nmuffactor: array[1]\nmuf: array[1]\n"},{"id":"22008c6560952311","type":"xml","z":"c31640d81bf733c7","name":"","property":"payload","attr":"","chr":"","x":350,"y":340,"wires":[["f4b5da941d147d72"]]},{"id":"47f636b8b353b7c6","type":"ui_template","z":"c31640d81bf733c7","group":"e357ef02.ef3cb","name":"Solar","order":8,"width":0,"height":0,"format":"<script>\n    (function(scope) {\n        //hide this card. NOTE: 4b689f7473831a84 is the Node id as \n        //seen in the INFO panel on the sidebar when you select this node\n        scope.$watch('msg', function(msg) {\n            if (msg && msg.topic == \"solar\") {\n                $(\"#header-sfi\").text(msg.sfi).css(\"color\",(msg.sficolor));\n                $(\"#header-Aindex\").text(msg.Aindex).css(\"color\",(msg.aColor));\n                $(\"#header-kdx\").text(msg.kdx).css(\"color\",(msg.kColor));\n            }\n        });\n    })(scope);\n</script>","storeOutMessages":false,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":630,"y":340,"wires":[[]],"info":"# Update Server K\n\n# Node links to Solar Flow logic for K index varible #kdx\n\nNode needs to be in one flow for each dashboard tab in order for toolbar to update \n\n\n"},{"id":"d759b614f74d44da","type":"ui_ui_control","z":"c31640d81bf733c7","name":"","events":"all","x":260,"y":440,"wires":[[]]},{"id":"e357ef02.ef3cb","type":"ui_group","name":"Page 1","tab":"4bc17c6e.b74934","order":2,"disp":false,"width":"6","collapse":false,"className":""},{"id":"4bc17c6e.b74934","type":"ui_tab","name":"Page 1","icon":"wi-wu-tstorms","order":5,"disabled":false,"hidden":false}]

Add all group tab you wish hidden to the array. as shown tab_name_group_name, all spaces are underscores.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.