# Reading a Json file from a render farm and display in UI Table

**URL:** https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013
**Category:** Dashboard
**Created:** [8 October 2021 10:25 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013 "2021-10-08T10:25:07Z")
**Posts on this page:** 18
**Page:** 1

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [8 October 2021 10:25 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/1 "2021-10-08T10:25:08Z")

</div>

Hi,  
I made a small personal Render-Farm that writes and overwrites a Json text file to an ftp every minute. In Node Red I read this text file with a "http request node" that then gets fed into a UI Table. The Table gets filled out correctly. The only issue I have is that the "http request node" doesn't read the latest version of this text file. So the text file updates every min with new data. If I go directly to the http link of the text file with a browser I see the data getting updated every min. But in Node Red the "http request node" doesn't seem to update. Whenever I send a Get it reads the first text file that was made. It's like it doesn't clear the history or something. How does one read a text file on a http link in Node Red?

Below an example of the text file:

```auto
[
{"SHOT":"SHOT_01_HOR_ALL-LAYERS_HANGAR-INTRO","RANGE":"(1..100)","PROG":33,"FRAMES":"<34..100>"},
{"SHOT":"SHOT_02_HOR_ALL-LAYERS_FlY-OVER","RANGE":"(1..110)","PROG":0,"FRAMES":"<1..110>"},
{"SHOT":"SHOT_03_HOR_ALL-LAYERS_STEP-DOWN","RANGE":"(1..55)","PROG":0,"FRAMES":"<1..55>"},
{"SHOT":"SHOT_04_HOR_ALL-LAYERS_DECREASE-TENSION","RANGE":"(1..55)","PROG":0,"FRAMES":"<1..55>"},
{"SHOT":"SHOT_05_HOR_ALL-LAYERS_INCREASE-TENSION","RANGE":"(1..50)","PROG":0,"FRAMES":"<1..50>"},
{"SHOT":"SHOT_06_HOR_ALL-LAYERS_CLOSE-TLS","RANGE":"(1..75)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_07_HOR_ALL-LAYERS_CLOSE-TOECAP","RANGE":"(1..55)","PROG":0,"FRAMES":"<1..55>"},
{"SHOT":"SHOT_08_HOR_ALL-LAYERS_CLOSE-SHOE","RANGE":"(1..40)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_09_HOR_ALL-LAYERS_LACE-CLOSE","RANGE":"(1..60)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_10_HOR_ALL-LAYERS_TLS-WIRE-IN","RANGE":"(1..30)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_11_HOR_ALL-LAYERS_TLS-PUSH-IN","RANGE":"(1..50)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_12_HOR_ALL-LAYERS_TLS-PULL-OUT","RANGE":"(1..20)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_13_HOR_ALL-LAYERS_WIRE-CLOSE-SHOE","RANGE":"(1..40)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_14_HOR_ALL-LAYERS_CONTAINER","RANGE":"(1..100)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_15_HOR_ALL-LAYERS_TLS-MORPHE","RANGE":"(1..125)","PROG":0,"FRAMES":"<1..125>"},
{"SHOT":"SHOT_16_HOR_ALL-LAYERS_AIRPLANE-MORPHE","RANGE":"(1..125)","PROG":0,"FRAMES":"<1..125>"},
{"SHOT":"SHOT_17_HOR_ALL-LAYERS_SIDE-SHOE","RANGE":"(1..40)","PROG":0,"FRAMES":"<1..40>"},
{"SHOT":"SHOT_18_HOR_ALL-LAYERS_SHOE-TURN","RANGE":"(1..85)","PROG":0,"FRAMES":"<1..85>"},
{"SHOT":"SHOT_19_HOR_ALL-LAYERS_LACE-CLOSE-INSERT","RANGE":"(1..55)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_20_HOR_ALL-LAYERS_INSERT-END","RANGE":"(1..60)","PROG":0,"FRAMES":"<1..60>"},
{"SHOT":"SHOT_21_HOR_ALL-LAYERS_MICROFIBER","RANGE":"(1..60)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_22_HOR_ALL-LAYERS_DECREASE-TENSION-B","RANGE":"(1..55)","PROG":0,"FRAMES":"<1..55>"},
{"SHOT":"SHOT_23_HOR_ALL-LAYERS_PRINT-A","RANGE":"(1..4)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_24_HOR_ALL-LAYERS_PRINT-B","RANGE":"(1..4)","PROG":100,"FRAMES":"< COMPLETE >"},
{"SHOT":"SHOT_25_HOR_ALL-LAYERS_FlY-OVER-NO-SHOES","RANGE":"(110..110)","PROG":100,"FRAMES":"< COMPLETE >"}
]

```

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [8 October 2021 10:39 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/2 "2021-10-08T10:39:41Z")

</div>

This is what the table looks like when I read the text file with the http request node:

 ![renderfarm_info](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/4/b47fb2b271459d9046725efb9e5ea04108323050.jpeg)

---

<div class="post-metadata">

### Author: ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)
#### Post date: [8 October 2021 11:51 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/3 "2021-10-08T11:51:10Z")

</div>

> [@CarloJongen](#):
>
> But in Node Red the "http request node" doesn't seem to update.

Since you havent shared your flow its little difficult to check anything.  
I dont know if this applies to the Http request node but .. could this be a caching issue ?  
There is a request header that controls the caching :

> **[Cache-Control - HTTP | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control)**
>
> The Cache-Control HTTP header field holds directives (instructions) — in both requests and responses — that control caching in browsers and shared caches (e.g. Proxies, CDNs).

Does sending/setting this header just before the request node fix the issue ?

Example :  
`msg.headers["Cache-Control"] = "no-cache"`

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [8 October 2021 12:01 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/4 "2021-10-08T12:01:35Z")

</div>

> [@UnborN](#):
>
> msg.headers["Cache-Control"] = "no-cache"

Here is the node flow:

```auto
[
    {
        "id": "9cb597d5a7bf8129",
        "type": "ui_table",
        "z": "c15f0fc498f6a014",
        "group": "e5aef99a33253423",
        "name": "",
        "order": 12,
        "width": "10",
        "height": "22",
        "columns": [
            {
                "field": "SHOT",
                "title": "SHOT",
                "width": "65%",
                "align": "left",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "RANGE",
                "title": "RANGE",
                "width": "10%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "PROG",
                "title": "PROG",
                "width": "10%",
                "align": "left",
                "formatter": "progress",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "FRAMES",
                "title": "FRAMES",
                "width": "15%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            }
        ],
        "outputs": 0,
        "cts": false,
        "x": 2050,
        "y": 180,
        "wires": []
    },
    {
        "id": "2c0b438335294857",
        "type": "json",
        "z": "c15f0fc498f6a014",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 1890,
        "y": 180,
        "wires": [
            [
                "9cb597d5a7bf8129"
            ]
        ]
    },
    {
        "id": "8035eeb623202a66",
        "type": "http request",
        "z": "c15f0fc498f6a014",
        "name": "",
        "method": "GET",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://I_removed_the_link_here",
        "tls": "",
        "persist": true,
        "proxy": "",
        "authType": "",
        "credentials": {},
        "x": 1710,
        "y": 180,
        "wires": [
            [
                "2c0b438335294857"
            ]
        ]
    },
    {
        "id": "8137554f5934eb06",
        "type": "inject",
        "z": "c15f0fc498f6a014",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "date",
        "x": 1490,
        "y": 180,
        "wires": [
            [
                "8035eeb623202a66"
            ]
        ]
    },
    {
        "id": "e5aef99a33253423",
        "type": "ui_group",
        "name": "TABLE TEST",
        "tab": "461f3885ff28d84f",
        "order": 1,
        "disp": true,
        "width": "10",
        "collapse": false,
        "className": ""
    },
    {
        "id": "461f3885ff28d84f",
        "type": "ui_tab",
        "name": "TABLE",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

### Author: ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)
#### Post date: [8 October 2021 12:05 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/5 "2021-10-08T12:05:59Z")

</div>

is there a reason you have **"Enable connection keep-alive"** checked ?  
does it make a difference if you disable it ?  
have you tested the no-cache header suggestion ?

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [8 October 2021 12:10 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/6 "2021-10-08T12:10:41Z")

</div>

I had the **"Enable connection keep-alive"** disabled before.. I was just trying to get it to work. I'm not sure how to implement the No Cache. Do I put a function node between timestamp and the http request node?  
If so That is what I tried and it didn't work.

---

<div class="post-metadata">

### Author: ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)
#### Post date: [8 October 2021 19:21 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/7 "2021-10-08T19:21:25Z")

</div>

> [@CarloJongen](#):
>
> Do I put a function node between timestamp and the http request node?

yes .. a function or a Change node would do but it seems that thats not the problem.  
I created a server on my system serving a text file with your data and did an http request to read it.  
then made a small change, saved and read it again. The changes are read by the http request in my test with no problem.

are you sure its the http request that its not reading the changes in your flow ?  
have you wired a debug node directly after the request node to confirm that?

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [8 October 2021 19:39 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/8 "2021-10-08T19:39:11Z")

</div>

I've send you a private message with the url.

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [9 October 2021 17:04 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/9 "2021-10-09T17:04:51Z")

</div>

OK so it works, only thing I can't figure out is how to get the value in the progressbar. Like in the example to the left. It shows 90% in the progressbar.

 ![value_in_progressbar](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/c/ccb83232a3ac1cf59c83e897aedf4573fadb966f.jpeg)

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [9 October 2021 17:16 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/10 "2021-10-09T17:16:57Z")

</div>

This is the flow used so far. Special thanks to UnborN...

```auto
[
    {
        "id": "9cb597d5a7bf8129",
        "type": "ui_table",
        "z": "c15f0fc498f6a014",
        "group": "e5aef99a33253423",
        "name": "TEST1",
        "order": 12,
        "width": "10",
        "height": "22",
        "columns": [
            {
                "field": "SHOT",
                "title": "SHOT",
                "width": "65%",
                "align": "left",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "RANGE",
                "title": "RANGE",
                "width": "10%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "PROG",
                "title": "PROG",
                "width": "10%",
                "align": "left",
                "formatter": "progress",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "FRAMES",
                "title": "FRAMES",
                "width": "15%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            }
        ],
        "outputs": 0,
        "cts": false,
        "x": 1860,
        "y": 220,
        "wires": []
    },
    {
        "id": "8137554f5934eb06",
        "type": "inject",
        "z": "c15f0fc498f6a014",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "date",
        "x": 1330,
        "y": 220,
        "wires": [
            [
                "611010f410660c95"
            ]
        ]
    },
    {
        "id": "611010f410660c95",
        "type": "function",
        "z": "c15f0fc498f6a014",
        "name": "",
        "func": "msg.headers = {};\nmsg.headers[\"Cache-Control\"] = \"no-cache\"\nmsg.headers[\"Pragma\"] = \"no-cache\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1500,
        "y": 220,
        "wires": [
            [
                "ed6ff04eabbe6ef2"
            ]
        ]
    },
    {
        "id": "ad041b238c0a1439",
        "type": "comment",
        "z": "c15f0fc498f6a014",
        "name": "Save this as a text file and copy it to an URL, use the same URL in the http request node",
        "info": "[\n{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}\n]",
        "x": 1540,
        "y": 260,
        "wires": []
    },
    {
        "id": "ed6ff04eabbe6ef2",
        "type": "http request",
        "z": "c15f0fc498f6a014",
        "name": "renderfarm",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1670,
        "y": 220,
        "wires": [
            [
                "9cb597d5a7bf8129"
            ]
        ]
    },
    {
        "id": "e5aef99a33253423",
        "type": "ui_group",
        "name": "TABLE TEST",
        "tab": "461f3885ff28d84f",
        "order": 1,
        "disp": true,
        "width": "10",
        "collapse": false,
        "className": ""
    },
    {
        "id": "461f3885ff28d84f",
        "type": "ui_tab",
        "name": "TABLE",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

### Author: ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)
#### Post date: [9 October 2021 18:21 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/12 "2021-10-09T18:21:42Z")

</div>

Im glad you have it working

Regarding the percentage in the progress bar, based on the ui\_control example from the ui\_table examples

```auto
[{"id":"f7c8902ad62de588","type":"debug","z":"5847b7aa62131d37","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":810,"y":800,"wires":[]},{"id":"3a167096fe25da22","type":"inject","z":"5847b7aa62131d37","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"date","x":290,"y":880,"wires":[["c742bd67b53375c1"]]},{"id":"c742bd67b53375c1","type":"function","z":"5847b7aa62131d37","name":"","func":"msg.headers = {};\nmsg.headers[\"Cache-Control\"] = \"no-cache\"\nmsg.headers[\"Pragma\"] = \"no-cache\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":470,"y":880,"wires":[["04664a28783869ad"]]},{"id":"2f483df4000bc3f1","type":"comment","z":"5847b7aa62131d37","name":"Save this as a text file and copy it to an URL, use the same URL in the http request node","info":"[\n{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}\n]","x":530,"y":1020,"wires":[]},{"id":"04664a28783869ad","type":"http request","z":"5847b7aa62131d37","name":"renderfarm","method":"GET","ret":"obj","paytoqs":"ignore","url":"url ","tls":"","persist":false,"proxy":"","authType":"","senderr":false,"x":640,"y":880,"wires":[["f7c8902ad62de588","8115c722.5d91d8"]]},{"id":"5aadc209c20750ed","type":"ui_table","z":"5847b7aa62131d37","group":"e7750b1af4e6fab9","name":"TEST1","order":12,"width":"32","height":"22","columns":[{"field":"SHOT","title":"SHOT","width":"65%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"RANGE","title":"RANGE","width":"10%","align":"center","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"PROG","title":"PROG","width":"10%","align":"left","formatter":"progress","formatterParams":{"target":"_blank"}},{"field":"FRAMES","title":"FRAMES","width":"15%","align":"center","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":0,"cts":false,"x":980,"y":880,"wires":[]},{"id":"8115c722.5d91d8","type":"change","z":"5847b7aa62131d37","name":"ui_control","rules":[{"t":"set","p":"ui_control","pt":"msg","to":"{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":99,\"color\":[\"gray\",\"orange\",\"green\"],\"legend\":\"function (value) {return (value>0)? '&nbsp;&nbsp;'+value+' %' : '-';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"center\"},\"title\":\"PROG\",\"field\":\"PROG\",\"formatter\":\"progress\",\"topCalc\":\"max\",\"width\":100}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":12}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":820,"y":880,"wires":[["5aadc209c20750ed"]]},{"id":"92e26730d3bf33b3","type":"inject","z":"5847b7aa62131d37","name":"test data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}]","payloadType":"json","x":640,"y":960,"wires":[["8115c722.5d91d8"]]},{"id":"e7750b1af4e6fab9","type":"ui_group","name":"TABLE TEST","tab":"461f3885ff28d84f","order":1,"disp":true,"width":"32","collapse":false,"className":""},{"id":"461f3885ff28d84f","type":"ui_tab","name":"TABLE","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

```

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [9 October 2021 21:54 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/13 "2021-10-09T21:54:57Z")

</div>

There is an extra black row can this be removed? And how can I set the text to white in your example?

 ![value_in_progressbar2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/e/2ec6e151677869d6c52d036845abbfca40aa34f6.jpeg)

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [9 October 2021 22:59 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/14 "2021-10-09T22:59:47Z")

</div>

Almost there... The PROG text color is now white, it is more visible then the black text.  
I would only like to remove the black bar.

 ![value_in_progressbar3](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/7/078617a4877eebd18690416e67b151cfb8839db1.jpeg)

And here is the flow so far:

```auto
[
    {
        "id": "9cb597d5a7bf8129",
        "type": "ui_table",
        "z": "c15f0fc498f6a014",
        "group": "e5aef99a33253423",
        "name": "TEST1",
        "order": 12,
        "width": "10",
        "height": "22",
        "columns": [
            {
                "field": "SHOT",
                "title": "SHOT",
                "width": "65%",
                "align": "left",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "RANGE",
                "title": "RANGE",
                "width": "10%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "PROG",
                "title": "PROG",
                "width": "10%",
                "align": "left",
                "formatter": "progress",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "FRAMES",
                "title": "FRAMES",
                "width": "15%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            }
        ],
        "outputs": 0,
        "cts": false,
        "x": 1000,
        "y": 200,
        "wires": []
    },
    {
        "id": "8035eeb623202a66",
        "type": "http request",
        "z": "c15f0fc498f6a014",
        "name": "DUMMY",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "credentials": {},
        "x": 640,
        "y": 200,
        "wires": [
            [
                "29edea72ba4352b2",
                "e6d07fa1a97184ce"
            ]
        ]
    },
    {
        "id": "8137554f5934eb06",
        "type": "inject",
        "z": "c15f0fc498f6a014",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "date",
        "x": 270,
        "y": 200,
        "wires": [
            [
                "611010f410660c95"
            ]
        ]
    },
    {
        "id": "611010f410660c95",
        "type": "function",
        "z": "c15f0fc498f6a014",
        "name": "",
        "func": "msg.headers = {};\nmsg.headers[\"Cache-Control\"] = \"no-cache\"\nmsg.headers[\"Pragma\"] = \"no-cache\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 200,
        "wires": [
            [
                "69ccdc31a1c60ac3",
                "8035eeb623202a66"
            ]
        ]
    },
    {
        "id": "ad041b238c0a1439",
        "type": "comment",
        "z": "c15f0fc498f6a014",
        "name": "Save this as a text file and copy it to an URL, use the same URL in the http request node",
        "info": "[\n{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}\n]",
        "x": 620,
        "y": 140,
        "wires": []
    },
    {
        "id": "e6d07fa1a97184ce",
        "type": "change",
        "z": "c15f0fc498f6a014",
        "name": "ui_control",
        "rules": [
            {
                "t": "set",
                "p": "ui_control",
                "pt": "msg",
                "to": "{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d255; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":100,\"color\":[\"red\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"green\"],\"legend\":\"function (value) {return (value>0)? '&nbsp;&nbsp;'+value+' % ' : '-';}\",\"legendColor\":\"white\",\"legendAlign\":\"center\"},\"title\":\"PROG\",\"field\":\"PROG\",\"formatter\":\"progress\",\"topCalc\":\"max\",\"color\":\"white\"}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":30}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 840,
        "y": 200,
        "wires": [
            [
                "9cb597d5a7bf8129"
            ]
        ]
    },
    {
        "id": "e5aef99a33253423",
        "type": "ui_group",
        "name": "TABLE TEST",
        "tab": "461f3885ff28d84f",
        "order": 1,
        "disp": true,
        "width": "10",
        "collapse": false,
        "className": ""
    },
    {
        "id": "461f3885ff28d84f",
        "type": "ui_tab",
        "name": "TABLE",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

### Author: ![UnborN](https://avatars.discourse-cdn.com/v4/letter/u/4491bb/32.png) [@UnborN](https://discourse.nodered.org/u/UnborN)
#### Post date: [10 October 2021 05:14 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/15 "2021-10-10T05:14:58Z")

</div>

> [@CarloJongen](#):
>
> I would only like to remove the black bar.

The black bar (due to dark theme) is because of the `topCalc:"max"` option that shows the max value at this row. you can remove it along with a few other unnecessary lines

```auto
[{"id":"071635dd1eb716b0","type":"ui_table","z":"5847b7aa62131d37","group":"64cab9eb23d3e552","name":"TEST1","order":12,"width":"10","height":"22","columns":[{"field":"SHOT","title":"SHOT","width":"65%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"RANGE","title":"RANGE","width":"10%","align":"center","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"PROG","title":"PROG","width":"10%","align":"left","formatter":"progress","formatterParams":{"target":"_blank"}},{"field":"FRAMES","title":"FRAMES","width":"15%","align":"center","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":0,"cts":false,"x":680,"y":540,"wires":[]},{"id":"35210755562ebfb0","type":"change","z":"5847b7aa62131d37","name":"ui_control","rules":[{"t":"set","p":"ui_control","pt":"msg","to":"{\"tabulator\":{\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":100,\"color\":[\"red\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"green\"],\"legend\":\"function (value) {return (value>0)? '&nbsp;&nbsp;'+value+' % ' : '-';}\",\"legendColor\":\"white\",\"legendAlign\":\"center\"},\"title\":\"PROG\",\"field\":\"PROG\",\"formatter\":\"progress\",\"color\":\"white\"}],\"layout\":\"fitColumns\",\"movableColumns\":true},\"customHeight\":30}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":520,"y":540,"wires":[["071635dd1eb716b0"]]},{"id":"f1b851ac0a927a17","type":"inject","z":"5847b7aa62131d37","name":"fake data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":13,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":23,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":33,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":43,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":63,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}]","payloadType":"json","x":340,"y":540,"wires":[["35210755562ebfb0"]]},{"id":"64cab9eb23d3e552","type":"ui_group","name":"TABLE TEST","tab":"461f3885ff28d84f","order":1,"disp":true,"width":"10","collapse":false,"className":""},{"id":"461f3885ff28d84f","type":"ui_tab","name":"TABLE","icon":"dashboard","order":2,"disabled":false,"hidden":false}]

```

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [10 October 2021 12:33 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/16 "2021-10-10T12:33:57Z")

</div>

Thanks a lot, this is how I wanted the table to be..

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [10 October 2021 12:45 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/17 "2021-10-10T12:45:52Z")

</div>

To summarize, this is the UI Table example and below is the flow used to create the final UI Table.

 ![final_ui_table](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/f/ff91a05301dfe2cbd327955379cdf9503823dc57.jpeg)

```auto
[
    {
        "id": "9cb597d5a7bf8129",
        "type": "ui_table",
        "z": "c15f0fc498f6a014",
        "group": "e5aef99a33253423",
        "name": "TEST1",
        "order": 12,
        "width": "10",
        "height": "22",
        "columns": [
            {
                "field": "SHOT",
                "title": "SHOT",
                "width": "65%",
                "align": "left",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "RANGE",
                "title": "RANGE",
                "width": "10%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "PROG",
                "title": "PROG",
                "width": "10%",
                "align": "left",
                "formatter": "progress",
                "formatterParams": {
                    "target": "_blank"
                }
            },
            {
                "field": "FRAMES",
                "title": "FRAMES",
                "width": "15%",
                "align": "center",
                "formatter": "plaintext",
                "formatterParams": {
                    "target": "_blank"
                }
            }
        ],
        "outputs": 0,
        "cts": false,
        "x": 1060,
        "y": 140,
        "wires": []
    },
    {
        "id": "ea23f50c7b4fdc52",
        "type": "function",
        "z": "c15f0fc498f6a014",
        "name": "clearData",
        "func": "\nmsg.payload={\n command:\"clearData\",\n arguments: [],\n returnPromise: true\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 820,
        "y": 200,
        "wires": [
            [
                "9cb597d5a7bf8129"
            ]
        ],
        "info": "# clear data\n\nunfortunately this command (currently) do not send a promise back! So we have to pass it directly to the table handler"
    },
    {
        "id": "91595cab4e1da836",
        "type": "inject",
        "z": "c15f0fc498f6a014",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 640,
        "y": 200,
        "wires": [
            [
                "ea23f50c7b4fdc52"
            ]
        ]
    },
    {
        "id": "8137554f5934eb06",
        "type": "inject",
        "z": "c15f0fc498f6a014",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "10",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payloadType": "date",
        "x": 250,
        "y": 140,
        "wires": [
            [
                "611010f410660c95"
            ]
        ]
    },
    {
        "id": "611010f410660c95",
        "type": "function",
        "z": "c15f0fc498f6a014",
        "name": "",
        "func": "msg.headers = {};\nmsg.headers[\"Cache-Control\"] = \"no-cache\"\nmsg.headers[\"Pragma\"] = \"no-cache\"\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 420,
        "y": 140,
        "wires": [
            [
                "69ccdc31a1c60ac3",
                "8035eeb623202a66",
                "8e389a5c8a43c82e"
            ]
        ]
    },
    {
        "id": "ad041b238c0a1439",
        "type": "comment",
        "z": "c15f0fc498f6a014",
        "name": "Save this as a text file and copy it to an URL, use the same URL in the http request node",
        "info": "[\n{\"SHOT\":\"SHOT_01_HOR_ALL-LAYERS_TEST-AAAA\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_02_HOR_ALL-LAYERS_TEST-BBBB\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_03_HOR_ALL-LAYERS_TEST-CCCC\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_04_HOR_ALL-LAYERS_TEST-DDDD\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_05_HOR_ALL-LAYERS_TEST-EEEE\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_06_HOR_ALL-LAYERS_TEST-FFFF\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_07_HOR_ALL-LAYERS_TEST-GGGG\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_08_HOR_ALL-LAYERS_TEST-HHHH\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_09_HOR_ALL-LAYERS_TEST-IIII\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_10_HOR_ALL-LAYERS_TEST-JJJJ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_11_HOR_ALL-LAYERS_TEST-KKKK\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_12_HOR_ALL-LAYERS_TEST-LLLL\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_13_HOR_ALL-LAYERS_TEST-MMMM\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_14_HOR_ALL-LAYERS_TEST-NNNN\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_15_HOR_ALL-LAYERS_TEST-OOOO\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_16_HOR_ALL-LAYERS_TEST-PPPP\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_17_HOR_ALL-LAYERS_TEST-QQQQ\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_18_HOR_ALL-LAYERS_TEST-RRRR\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_19_HOR_ALL-LAYERS_TEST-SSSS\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_20_HOR_ALL-LAYERS_TEST-TTTT\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_21_HOR_ALL-LAYERS_TEST-UUUU\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_22_HOR_ALL-LAYERS_TEST-VVVV\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_23_HOR_ALL-LAYERS_TEST-WWWW\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_24_HOR_ALL-LAYERS_TEST-XXXX\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"},\n{\"SHOT\":\"SHOT_25_HOR_ALL-LAYERS_TEST-YYYY\",\"RANGE\":\"(1..100)\",\"PROG\":3,\"FRAMES\":\"<4..100>\"}\n]",
        "x": 600,
        "y": 100,
        "wires": []
    },
    {
        "id": "8e389a5c8a43c82e",
        "type": "http request",
        "z": "c15f0fc498f6a014",
        "name": "DUMMY",
        "method": "GET",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 640,
        "y": 140,
        "wires": [
            [
                "a214cc114bf0cb9a"
            ]
        ]
    },
    {
        "id": "a214cc114bf0cb9a",
        "type": "change",
        "z": "c15f0fc498f6a014",
        "name": "ui_control",
        "rules": [
            {
                "t": "set",
                "p": "ui_control",
                "pt": "msg",
                "to": "{\"tabulator\":{\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"min\":0,\"max\":100,\"color\":[\"red\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"orange\",\"green\"],\"legend\":\"function (value) {return (value>0)? '&nbsp;&nbsp;'+value+' % ' : '-';}\",\"legendColor\":\"white\",\"legendAlign\":\"center\"},\"title\":\"PROG\",\"field\":\"PROG\",\"formatter\":\"progress\",\"color\":\"white\"}],\"layout\":\"fitColumns\",\"movableColumns\":true},\"customHeight\":30}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 820,
        "y": 140,
        "wires": [
            [
                "9cb597d5a7bf8129"
            ]
        ]
    },
    {
        "id": "e5aef99a33253423",
        "type": "ui_group",
        "name": "TABLE TEST",
        "tab": "461f3885ff28d84f",
        "order": 1,
        "disp": true,
        "width": "10",
        "collapse": false,
        "className": ""
    },
    {
        "id": "461f3885ff28d84f",
        "type": "ui_tab",
        "name": "TABLE",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    }
]

```

---

<div class="post-metadata">

### Author: ![CarloJongen](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/carlojongen/32/33683_2.png) [@CarloJongen](https://discourse.nodered.org/u/CarloJongen)
#### Post date: [10 October 2021 12:58 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/18 "2021-10-10T12:58:15Z")

</div>

And this is a Python script I used. It writes a JSON format in a text file called "node\_red\_dummy.txt" and saves it every 10 sec to an FTP. The PROG and FRAMES data changes every 10 sec.  
This I've used to test if the HTTP Request Node actually updates the data.  
PS. I'm not a programmer so the script might not be ideal but it works for me.  
But I put it out here for anybody starting out like me using the NR UI Table.

Special Thanks to @UnborN for helping me out... I owe you a few beers 😉

```auto
def node_red_data(hip_file_name,range_range,done,render,comma):
  if comma==1:
    node_red_data='{"SHOT":"'+hip_file_name+'","RANGE":"'+range_range+'","PROG":'+done+',"FRAMES":"'+render+'"},\n'
  else:
    node_red_data='{"SHOT":"'+hip_file_name+'","RANGE":"'+range_range+'","PROG":'+done+',"FRAMES":"'+render+'"}\n'
  return node_red_data

def save_node_red_full_data_to_txt(node_red_content):
  node_red_file=r"E:\your_local_path\node_red_dummy.txt"

  try:
    node_red_temp = open(node_red_file, "w")
    node_red_temp.write(node_red_content)
    node_red_temp.close()

  except:
    print('Node Red save request failed for an unknow reason!')

def send_node_red_data_to_ftp():
  print("\n>>>> Sending Node Red data to FTP")
  node_red_file_name="node_red_dummy.txt"
  node_red_file= "E:/your_local_path/node_red_dummy.txt"
  try:
    ftp = FTP('place here your ftp address')
    ftp.login("username","password")
    ftp.cwd('/public_html/renderq/')

    my_node_red_file = open(node_red_file,'rb')
    serverfilepath = '/public_html/renderq/'
    ftp.storlines('STOR ' + node_red_file_name, my_node_red_file)
    ftp.retrlines('LIST')

    ftp.quit()
    my_node_red_file.close()
  except:
    print('FTP Node Red request failed for unknow reason!')
  print("<<<< Node Red Data to FTP completed")

 ###### ######## ### ######## ########
## ## ## ## ## ## ## ##
## ## ## ## ## ## ##
 ###### ## ## ## ######## ##
      ## ## ######### ## ## ##
## ## ## ## ## ## ## ##
 ###### ## ## ## ## ## ##

import os, glob, subprocess, time, shutil
from ftplib import FTP

hip_file_name=""
range_range=""
done=""
render=""
i=0
comma=1
node_red_full_data=''
node_red_intro='[\n'
node_red_outro='\n]'
render_complete=0
loop=0

while loop!=101:

  range_range="(1..100)"
  done=str(loop)
  if loop<100:
    render="<"+str(loop+1)+"..100>"
  else:
    render="<COMPLETE>"
  i=0
  for i in range(1,26):
    hip_file_name="SHOT_"+(str(i)).zfill(2)+"_HOR_ALL-LAYERS_TEST-"+chr(64+i)+chr(64+i)+chr(64+i)+chr(64+i)
    node_red_full_data+=node_red_data(hip_file_name,range_range,done,render,comma)

  print(node_red_intro+node_red_full_data[:-2]+node_red_outro)
  node_red_content=node_red_intro+node_red_full_data[:-2]+node_red_outro
  save_node_red_full_data_to_txt(node_red_content)
  send_node_red_data_to_ftp()
  time.sleep(10)

  node_red_full_data=''

  if loop==100:
    loop=0
  else:
    loop+=1

```

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [9 November 2021 12:58 UTC](https://discourse.nodered.org/t/reading-a-json-file-from-a-render-farm-and-display-in-ui-table/52013/19 "2021-11-09T12:58:23Z")

</div>

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