Does the context.global.set affect array somehow?

#1

Does the "context.global.set" affect array somehow or it is just my low knowledge of js syntax?
When I declare the var dataSet using the array (first uncommented line below), my table works.
When I uncomment the line 2 and 3, the table does not populate data.
My NR code attached below. To see the table in the "dark" NR theme, uncomment the style.

var dataSet = [[124,1,1,2,1,1,0,"r14","Therm. mode","Funkce termostatu\nZde je definován provoz termostatu. Buď jako obyčejný termostat ZAPNUTO/ VYPNUTO nebo "],[100,20,-500,500,-240,-240,1,"---","Cutout °C",null],[101,20,1,200,20,20,1,"r01","Differential","Diference\nPokud je teplota vyšší, než referenční"],[102,500,-490,500,-100,-100,1,"r02","Max cutout°C","Aby se zabránilo nastavení příliš vysoké požadované hodnoty"],[103,-500,-500,490,-250,-250,1,"r03","Min cutout°C","Aby se zabránilo nastavení příliš"]];
//global.set("pnuValues",dataSet);
//dataSet=global.get("pnuValues");
[{"id":"8faeabc3.e31708","type":"ui_template","z":"171dbdc2.2de1c2","group":"14e97aa2.4beb35","name":"","order":0,"width":"8","height":"5","format":"<table id=\"example\" class=\"display\" width=\"100%\"></table>\n\n<!--\n-->\n<style>\n    body.nr-dashboard-theme md-content md-card {\n    background-color: #ffffff;\n    color: #000000;\n}\n</style>\n\n\n<script>\nvar dataSet = [[124,1,1,2,1,1,0,\"r14\",\"Therm. mode\",\"Funkce termostatu\\nZde je definován provoz termostatu. Buď jako obyčejný termostat ZAPNUTO/ VYPNUTO nebo \"],[100,20,-500,500,-240,-240,1,\"---\",\"Cutout °C\",null],[101,20,1,200,20,20,1,\"r01\",\"Differential\",\"Diference\\nPokud je teplota vyšší, než referenční\"],[102,500,-490,500,-100,-100,1,\"r02\",\"Max cutout°C\",\"Aby se zabránilo nastavení příliš vysoké požadované hodnoty\"],[103,-500,-500,490,-250,-250,1,\"r03\",\"Min cutout°C\",\"Aby se zabránilo nastavení příliš\"]];\nglobal.set(\"pnuValues\",dataSet);\ndataSet=global.get(\"pnuValues\");\n\n$(document).ready(function() {\n    $('#example').DataTable( {\n        data: dataSet,\n        columns: [\n            { title: \"PNU\" },\n            { title: \"DEF\" },\n            { title: \"MIN\" },\n            { title: \"MAX\" },\n            { title: \"ACTUAL1\" },\n            { title: \"ACTUAL2\" },            \n            { title: \"SCALE\" },\n            { title: \"PARAMETER\" },\n            { title: \"TEXT\" },\n            { title: \"POPIS\" }            \n        ],\n        \"language\": {\n            \"url\": \"//cdn.datatables.net/plug-ins/1.10.19/i18n/Czech.json\"\n            //\"url\": \"/verejne/DataTables/Czech.json\"\n        }\n    } );\n} );\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":560,"y":680,"wires":[["388c05c2.0e10aa"]]},{"id":"996edc5f.e3df4","type":"ui_template","z":"171dbdc2.2de1c2","group":"29c72db3.985de2","name":"Head","order":3,"width":"16","height":"17","format":"<!--\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/verejne/DataTables/DataTables-1.10.18/css/jquery.dataTables.css\"/>\n<script type=\"text/javascript\" src=\"/verejne/DataTables/DataTables-1.10.18/js/jquery.dataTables.js\"></script>\n<script type=\"text/javascript\" src=\"/verejne/DataTables/DataTables-1.10.18/js/jquery.dataTables.min.js\"></script>\n-->\n\n<link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css\"/>\n \n<script type=\"text/javascript\" src=\"https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js\"></script>\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"global","x":550,"y":640,"wires":[[]]},{"id":"14e97aa2.4beb35","type":"ui_group","z":"","name":"www","tab":"d34254b0.c3d2a8","disp":false,"width":"16","collapse":false},{"id":"29c72db3.985de2","type":"ui_group","z":"","name":"Group 1","tab":"812e55e.16826a8","order":1,"disp":true,"width":"16","collapse":true},{"id":"d34254b0.c3d2a8","type":"ui_tab","z":"","name":"Button Panel","icon":"dashboard","order":2},{"id":"812e55e.16826a8","type":"ui_tab","z":"","name":"Tabulka","icon":"dashboard","order":6,"disabled":false,"hidden":false}]
#2

Why are you doing that in a ui_template?

#3

I do not know the other way.... With static data it works well

#4

The code in a ui_template node runs in the browser not in the node-red server. You can't access the node-red context in the browser so you can't access it in a ui_template. I imagine that if you looked in the browser console you would see run-time errors on those lines of code.

#5

I see. So how to get the data in to the table?
Something like this?

   (function(scope){
        scope.$watch('msg', function(msg) {
           gauge.value=msg.payload;
           // if (msg.units!="") gauge.units=msg.units;
        });
    })(scope);
#6

can't you create the table in a function node and pass it to the ui_template node in the msg?

1 Like
#7

What do you mean by "create the table in a function"?
To let js to generate the all html and pass pass HTML dynamically to the Dashboard UI? <div ng-bind-html="msg.payload"></div> as described on NR web?

On DataTables web, they say: "DataTables can obtain data from four different fundamental sources:

  • HTML document (DOM)
  • Javascript (array / objects)
  • Ajax sourced data with client-side processing
  • Ajax sourced data with server-side processing

I have found your post about similar problem on NR forum.
After the whole night of experimetns (mainly Error: ngRepeat:dupes Duplicate Key in Repeate was the problem) I have the code with HTML document (DOM) data source, which is functional but has two issues:

  • reloading the page (Ctrl-R) is destroing the data (only reloading using NR tabs gives the data back)
  • reloading data using NR tabs does not show the fresh/recent data

Any hints how to solve it?
What about Ajax (client side or server side)? I have not clue about Ajax approach.
My recent code:

[{"id":"576975db.f1838c","type":"debug","z":"171dbdc2.2de1c2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":810,"y":560,"wires":[]},{"id":"397e8bc1.6d86d4","type":"json","z":"171dbdc2.2de1c2","name":"","property":"payload","action":"","pretty":false,"x":390,"y":560,"wires":[["9e997315.96113"]]},{"id":"f4e42c4c.07e2d","type":"mqtt in","z":"171dbdc2.2de1c2","name":"","topic":"konecchlumska/values/","qos":"2","broker":"1742c9a6.e8bb56","x":120,"y":540,"wires":[["397e8bc1.6d86d4"]]},{"id":"9e997315.96113","type":"function","z":"171dbdc2.2de1c2","name":"global DATA","func":"context.global.set(\"pnuDataSet\",msg.payload.DATA);\ncontext.global.set(\"pnuDataColumns\",msg.payload.COLUMNS);\n\nvar dataSet = [[124,1,1,2,1,1,0,\"r14\",\"Therm. mode\",\"Funkce termostatu\\nZde je definován provoz termostatu. Buď jako obyčejný termostat ZAPNUTO/ VYPNUTO nebo jako modulační termostat.\\n1: Termostat ZAPNUTO/VYPNUTO\\n2: Modulační termostat\\nPři modulační regulaci je regulován průtok chladiva ventilem AKV tak, že kolísání teploty bude menší než v případě termostatu ZAPNUTO/VYPNUTO\\nDiference (r01) pro„modulování“ nesmí být nastavena nižší než 2K.\\nU zařízení připojeného k samostatné jednotce je nutné vybrat řízení teploty ZANUTO/VYPNUTO\"],[100,20,-500,500,-240,-240,1,\"---\",\"Cutout °C\",null],[101,20,1,200,20,20,1,\"r01\",\"Differential\",\"Diference\\nPokud je teplota vyšší, než referenční + nastavená diference, zapne se relé kompresoru. Relé se znovu vypne, když teplota klesne do nastaveného referenčního rozsahu.\"],[102,500,-490,500,-100,-100,1,\"r02\",\"Max cutout°C\",\"Aby se zabránilo nastavení příliš vysoké požadované hodnoty, je možné snížit maximální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[103,-500,-500,490,-250,-250,1,\"r03\",\"Min cutout°C\",\"Aby se zabránilo nastavení příliš nízké požadované hodnoty, je možné zvýšit minimální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[123,100,0,100,0,0,0,\"r15\",\"Ther. S4 %\",\"Výběr senzoru pro termostat během denního provozu\\nZde definujte senzor, který je použit pro řízení termostatu. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4.\"],[126,0,0,1,0,0,0,\"---\",\"Night setbck\",null],[125,0,-500,500,0,0,1,\"r13\",\"Night offset\",\"Hodnota nočního útlumu\\nReferenční hodnota termostatu bude požadovaná hodnota plus tato hodnota, a to v případě, že regulátor přejde na noční provoz. (Vyberte zápornou hodnotu, má-li dojít k akumulaci chladu.)\"],[3044,0,0,1,0,0,0,\"---\",\"Forced cool.\",null],[131,20,-500,500,20,20,1,\"r21\",\"Cutout2 temp\",\"Požadovaná hodnota 2\\nTeplota vypnutí termostatu, když je aktivováno digitálním vstupem pásmo 2 termostatu.\"],[2021,100,0,100,0,0,0,\"o17\",\"Disp. S4 %\",\"Vybrat signál pro zobrazení S4%\\nZde definujete signál, který má být zobrazen na displeji. S3, S4 nebo kombinace obou.\\nPři nastavení 0 % je použit pouze senzor S3. Při nastavení 100 % je použit pouze senzor S4.\"],[104,0,-100,100,0,0,1,\"r04\",\"Disp. Adj. K\",\"Korekce zobrazené teploty\\nV případě, že teplota v místě produktů a teplota snímaná regulátorem nejsou totožné, je možné provést korekci zobrazované teploty.\"],[122,1,0,10,0,0,0,\"r16\",\"MeltInterval\",\"Funkce tání\\nPouze pro řízení chlazení (-5 až + 10 °C). Tato funkce zajišťuje, že výparník nebude zablokován námrazou. Zde můžete nastavit, jak často má tato funkce vypnout chlazení a tím umožnit tání.\"],[121,5,0,30,0,0,0,\"r17\",\"Melt period\",\"Délka tání\\nZde můžete nastavit, jak dlouho má probíhat funkce tání.\"],[182,100,0,100,100,100,0,\"r61\",\"Ther.S4% Ngt\",\"Definování a váha teplotních sond během nočního provozu\\nZde definujte senzor termostatu, který je použit pro jeho řízení. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4 (Sout).\"],[2612,40,-2000,2000,null,null,1,\"u90\",\"Cutin temp.\",\"Čtení aktuální hodnoty zapnutí termostatu\"],[2613,20,-2000,2000,null,null,1,\"u91\",\"Cutout temp.\",\"Čtení aktuální hodnoty vypnutí termostatu\"],[2576,30,-2000,2000,null,null,1,\"u56\",\"Display air\",\"Teplota vzduchu. Váha teplotních senzorů S3 + S4\"],[2539,0,0,999,null,null,0,\"u18\",\"Ther runtime\",\"Zobrazí probíhající čas zapnutí termostatu nebo jeho dobu trvání posledního ukončeného zapnutí\"],[2533,0,0,1,null,null,0,\"u13\",\"Night Cond.\",\"Stav denního/nočního provozu (noční provoz: zap./vyp.)\"],[2607,1,1,2,null,null,0,\"u86\",\"Ther. band\",\"Čtení regulátoru používaného pro regulaci: 1= termostat 1, 2= termostat 2\"],[2551,0,0,42,41,41,0,\"o30\",\"Refrigerant\",\"Nastavení chladiva (pouze pokud„r12“ = 0)\\nPředtím, než je spuštěno chlazení, musí být definováno chladivo. Můžete si vybrat mezi následujícími chladivy\\n1 = R12. 2 = R22. 3 = R134a. 4 = R502. 5 = R717. 6 = R13. 7 = R13b1. 8 = R23.\\n9 = R500. 10 = R503. 11 = R114. 12 = R142b. 13 = Definováno uživatelem.\\n14 = R32. 15 = R227. 16 = R401A. 17 = R507. 18 = R402A. 19 = R404A. 20 = R407C.\\n21 = R407A. 22 = R407B. 23 = R410A. 24 = R170. 25 = R290. 26 = R600. 27 = R600a.\\n28 = R744. 29 = R1270. 30 = R417A. 31 = R422A. 32 = R413A. 33 = R422D. 34 = R427A.\\n35 = R438A. 36 = XP10. 37 = R407F. 38 = R1234ze. 39 = R1234yf. 40 = R448A.\\n41 = R449A. 42 = R452A.\\nVarování: Špatný výběr chladiva může způsobit poškození nebo zničení kompresoru.\\nJiná chladiva: Zvolte hodnotu 13 a poté musí být nastaveny tři faktory – Ref.Fac a1, a2 a a3 – prostřednictvím AKM .\\n\"],[2034,-10,-10,50,-10,-10,1,\"o20\",\"MinTransPres\",\"Pe. Pracovní rozsah tlakového senzoru – min. hodnota\"],[2033,120,60,2000,120,120,1,\"o21\",\"MaxTransPres\",\"Pe. Pracovní rozsah tlakového senzoru – max. hodnota\"],[3021,30,20,200,30,30,1,\"n10\",\"Min SH\",\"Min. hodnota referenčního přehřátí\"],[3015,120,20,200,120,120,1,\"n09\",\"Max SH\",\"Max. hodnota referenčního přehřátí\"],[3013,150,-500,150,150,150,1,\"n11\",\"MOP temp.\",\"Teplota MOP\\nPokud není požadována žádná funkce MOP, vyberte VYPNUTO\"],[3019,6,3,6,6,6,0,\"n13\",\"AKV Period\",\"Perioda AKV ventilu v sekundách\\nMěla by být nastavena pouze na nižší hodnotu, jestliže jde o samostatnou jednotku a sací tlak hodně kolísá v závislosti na otevírání ventilu AKV.\"],[3022,0,0,1,0,0,0,\"---\",\"Forced close\",null]];\ncontext.global.set(\"data\", dataSet);\n\n//var myData = context.global.get(\"pnuDataSet\");\n//var dataSet = [[124,1,1,2,1,1,0,\"r14\",\"Therm. mode\",\"Funkce termostatu\\nZde je definován provoz termostatu. Buď jako obyčejný termostat ZAPNUTO/ VYPNUTO nebo jako modulační termostat.\\n1: Termostat ZAPNUTO/VYPNUTO\\n2: Modulační termostat\\nPři modulační regulaci je regulován průtok chladiva ventilem AKV tak, že kolísání teploty bude menší než v případě termostatu ZAPNUTO/VYPNUTO\\nDiference (r01) pro„modulování“ nesmí být nastavena nižší než 2K.\\nU zařízení připojeného k samostatné jednotce je nutné vybrat řízení teploty ZANUTO/VYPNUTO\"],[100,20,-500,500,-240,-240,1,\"---\",\"Cutout °C\",null],[101,20,1,200,20,20,1,\"r01\",\"Differential\",\"Diference\\nPokud je teplota vyšší, než referenční + nastavená diference, zapne se relé kompresoru. Relé se znovu vypne, když teplota klesne do nastaveného referenčního rozsahu.\"],[102,500,-490,500,-100,-100,1,\"r02\",\"Max cutout°C\",\"Aby se zabránilo nastavení příliš vysoké požadované hodnoty, je možné snížit maximální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[103,-500,-500,490,-250,-250,1,\"r03\",\"Min cutout°C\",\"Aby se zabránilo nastavení příliš nízké požadované hodnoty, je možné zvýšit minimální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[123,100,0,100,0,0,0,\"r15\",\"Ther. S4 %\",\"Výběr senzoru pro termostat během denního provozu\\nZde definujte senzor, který je použit pro řízení termostatu. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4.\"],[126,0,0,1,0,0,0,\"---\",\"Night setbck\",null],[125,0,-500,500,0,0,1,\"r13\",\"Night offset\",\"Hodnota nočního útlumu\\nReferenční hodnota termostatu bude požadovaná hodnota plus tato hodnota, a to v případě, že regulátor přejde na noční provoz. (Vyberte zápornou hodnotu, má-li dojít k akumulaci chladu.)\"],[3044,0,0,1,0,0,0,\"---\",\"Forced cool.\",null],[131,20,-500,500,20,20,1,\"r21\",\"Cutout2 temp\",\"Požadovaná hodnota 2\\nTeplota vypnutí termostatu, když je aktivováno digitálním vstupem pásmo 2 termostatu.\"],[2021,100,0,100,0,0,0,\"o17\",\"Disp. S4 %\",\"Vybrat signál pro zobrazení S4%\\nZde definujete signál, který má být zobrazen na displeji. S3, S4 nebo kombinace obou.\\nPři nastavení 0 % je použit pouze senzor S3. Při nastavení 100 % je použit pouze senzor S4.\"],[104,0,-100,100,0,0,1,\"r04\",\"Disp. Adj. K\",\"Korekce zobrazené teploty\\nV případě, že teplota v místě produktů a teplota snímaná regulátorem nejsou totožné, je možné provést korekci zobrazované teploty.\"],[122,1,0,10,0,0,0,\"r16\",\"MeltInterval\",\"Funkce tání\\nPouze pro řízení chlazení (-5 až + 10 °C). Tato funkce zajišťuje, že výparník nebude zablokován námrazou. Zde můžete nastavit, jak často má tato funkce vypnout chlazení a tím umožnit tání.\"],[121,5,0,30,0,0,0,\"r17\",\"Melt period\",\"Délka tání\\nZde můžete nastavit, jak dlouho má probíhat funkce tání.\"],[182,100,0,100,100,100,0,\"r61\",\"Ther.S4% Ngt\",\"Definování a váha teplotních sond během nočního provozu\\nZde definujte senzor termostatu, který je použit pro jeho řízení. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4 (Sout).\"],[2612,40,-2000,2000,null,null,1,\"u90\",\"Cutin temp.\",\"Čtení aktuální hodnoty zapnutí termostatu\"],[2613,20,-2000,2000,null,null,1,\"u91\",\"Cutout temp.\",\"Čtení aktuální hodnoty vypnutí termostatu\"],[2576,30,-2000,2000,null,null,1,\"u56\",\"Display air\",\"Teplota vzduchu. Váha teplotních senzorů S3 + S4\"],[2539,0,0,999,null,null,0,\"u18\",\"Ther runtime\",\"Zobrazí probíhající čas zapnutí termostatu nebo jeho dobu trvání posledního ukončeného zapnutí\"],[2533,0,0,1,null,null,0,\"u13\",\"Night Cond.\",\"Stav denního/nočního provozu (noční provoz: zap./vyp.)\"],[2607,1,1,2,null,null,0,\"u86\",\"Ther. band\",\"Čtení regulátoru používaného pro regulaci: 1= termostat 1, 2= termostat 2\"],[2551,0,0,42,41,41,0,\"o30\",\"Refrigerant\",\"Nastavení chladiva (pouze pokud„r12“ = 0)\\nPředtím, než je spuštěno chlazení, musí být definováno chladivo. Můžete si vybrat mezi následujícími chladivy\\n1 = R12. 2 = R22. 3 = R134a. 4 = R502. 5 = R717. 6 = R13. 7 = R13b1. 8 = R23.\\n9 = R500. 10 = R503. 11 = R114. 12 = R142b. 13 = Definováno uživatelem.\\n14 = R32. 15 = R227. 16 = R401A. 17 = R507. 18 = R402A. 19 = R404A. 20 = R407C.\\n21 = R407A. 22 = R407B. 23 = R410A. 24 = R170. 25 = R290. 26 = R600. 27 = R600a.\\n28 = R744. 29 = R1270. 30 = R417A. 31 = R422A. 32 = R413A. 33 = R422D. 34 = R427A.\\n35 = R438A. 36 = XP10. 37 = R407F. 38 = R1234ze. 39 = R1234yf. 40 = R448A.\\n41 = R449A. 42 = R452A.\\nVarování: Špatný výběr chladiva může způsobit poškození nebo zničení kompresoru.\\nJiná chladiva: Zvolte hodnotu 13 a poté musí být nastaveny tři faktory – Ref.Fac a1, a2 a a3 – prostřednictvím AKM .\\n\"],[2034,-10,-10,50,-10,-10,1,\"o20\",\"MinTransPres\",\"Pe. Pracovní rozsah tlakového senzoru – min. hodnota\"],[2033,120,60,2000,120,120,1,\"o21\",\"MaxTransPres\",\"Pe. Pracovní rozsah tlakového senzoru – max. hodnota\"],[3021,30,20,200,30,30,1,\"n10\",\"Min SH\",\"Min. hodnota referenčního přehřátí\"],[3015,120,20,200,120,120,1,\"n09\",\"Max SH\",\"Max. hodnota referenčního přehřátí\"],[3013,150,-500,150,150,150,1,\"n11\",\"MOP temp.\",\"Teplota MOP\\nPokud není požadována žádná funkce MOP, vyberte VYPNUTO\"],[3019,6,3,6,6,6,0,\"n13\",\"AKV Period\",\"Perioda AKV ventilu v sekundách\\nMěla by být nastavena pouze na nižší hodnotu, jestliže jde o samostatnou jednotku a sací tlak hodně kolísá v závislosti na otevírání ventilu AKV.\"],[3022,0,0,1,0,0,0,\"---\",\"Forced close\",null]];\n//msg.payload.m=myData;\n//msg.payload.d=dataSet;\n//context.global.set(\"pnuDataSet1\",myData);\n//msg.payload=context.global.get(\"pnuDataSet1\");\n//msg=myData;\nreturn msg;\n\n\n","outputs":1,"noerr":0,"x":570,"y":560,"wires":[["576975db.f1838c"]]},{"id":"f7eca9cf.5f6828","type":"inject","z":"171dbdc2.2de1c2","name":"","topic":"pnu 10 field","payload":"[[124,1,1,2,1,1,0,\"r14\",\"Therm. mode\",\"Funkce termostatu\\nZde je definován provoz termostatu. Buď jako obyčejný termostat ZAPNUTO/ VYPNUTO nebo jako modulační termostat.\\n1: Termostat ZAPNUTO/VYPNUTO\\n2: Modulační termostat\\nPři modulační regulaci je regulován průtok chladiva ventilem AKV tak, že kolísání teploty bude menší než v případě termostatu ZAPNUTO/VYPNUTO\\nDiference (r01) pro„modulování“ nesmí být nastavena nižší než 2K.\\nU zařízení připojeného k samostatné jednotce je nutné vybrat řízení teploty ZANUTO/VYPNUTO\"],[100,20,-500,500,-240,-240,1,\"---\",\"Cutout °C\",null],[101,20,1,200,20,20,1,\"r01\",\"Differential\",\"Diference\\nPokud je teplota vyšší, než referenční + nastavená diference, zapne se relé kompresoru. Relé se znovu vypne, když teplota klesne do nastaveného referenčního rozsahu.\"],[102,500,-490,500,-100,-100,1,\"r02\",\"Max cutout°C\",\"Aby se zabránilo nastavení příliš vysoké požadované hodnoty, je možné snížit maximální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[103,-500,-500,490,-250,-250,1,\"r03\",\"Min cutout°C\",\"Aby se zabránilo nastavení příliš nízké požadované hodnoty, je možné zvýšit minimální přípustnou referenční hodnotu.\\nOmezení nastavení hodnoty\\nRozsah nastavení teplot v regulátoru může být omezen tak, aby nebyly náhodně nastaveny příliš vysoké nebo příliš nízké hodnoty, které by měly za následek způsobení škod.\"],[123,100,0,100,0,0,0,\"r15\",\"Ther. S4 %\",\"Výběr senzoru pro termostat během denního provozu\\nZde definujte senzor, který je použit pro řízení termostatu. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4.\"],[126,0,0,1,0,0,0,\"---\",\"Night setbck\",null],[125,0,-500,500,0,0,1,\"r13\",\"Night offset\",\"Hodnota nočního útlumu\\nReferenční hodnota termostatu bude požadovaná hodnota plus tato hodnota, a to v případě, že regulátor přejde na noční provoz. (Vyberte zápornou hodnotu, má-li dojít k akumulaci chladu.)\"],[3044,0,0,1,0,0,0,\"---\",\"Forced cool.\",null],[131,20,-500,500,20,20,1,\"r21\",\"Cutout2 temp\",\"Požadovaná hodnota 2\\nTeplota vypnutí termostatu, když je aktivováno digitálním vstupem pásmo 2 termostatu.\"],[2021,100,0,100,0,0,0,\"o17\",\"Disp. S4 %\",\"Vybrat signál pro zobrazení S4%\\nZde definujete signál, který má být zobrazen na displeji. S3, S4 nebo kombinace obou.\\nPři nastavení 0 % je použit pouze senzor S3. Při nastavení 100 % je použit pouze senzor S4.\"],[104,0,-100,100,0,0,1,\"r04\",\"Disp. Adj. K\",\"Korekce zobrazené teploty\\nV případě, že teplota v místě produktů a teplota snímaná regulátorem nejsou totožné, je možné provést korekci zobrazované teploty.\"],[122,1,0,10,0,0,0,\"r16\",\"MeltInterval\",\"Funkce tání\\nPouze pro řízení chlazení (-5 až + 10 °C). Tato funkce zajišťuje, že výparník nebude zablokován námrazou. Zde můžete nastavit, jak často má tato funkce vypnout chlazení a tím umožnit tání.\"],[121,5,0,30,0,0,0,\"r17\",\"Melt period\",\"Délka tání\\nZde můžete nastavit, jak dlouho má probíhat funkce tání.\"],[182,100,0,100,100,100,0,\"r61\",\"Ther.S4% Ngt\",\"Definování a váha teplotních sond během nočního provozu\\nZde definujte senzor termostatu, který je použit pro jeho řízení. S3, S4 nebo kombinace obou. Při nastavení 0 % je použit pouze senzor S3 (Sin). Při nastavení 100 % je použit pouze senzor S4 (Sout).\"],[2612,40,-2000,2000,null,null,1,\"u90\",\"Cutin temp.\",\"Čtení aktuální hodnoty zapnutí termostatu\"],[2613,20,-2000,2000,null,null,1,\"u91\",\"Cutout temp.\",\"Čtení aktuální hodnoty vypnutí termostatu\"],[2576,30,-2000,2000,null,null,1,\"u56\",\"Display air\",\"Teplota vzduchu. Váha teplotních senzorů S3 + S4\"],[2539,0,0,999,null,null,0,\"u18\",\"Ther runtime\",\"Zobrazí probíhající čas zapnutí termostatu nebo jeho dobu trvání posledního ukončeného zapnutí\"]]","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":600,"wires":[["397e8bc1.6d86d4"]]},{"id":"1742c9a6.e8bb56","type":"mqtt-broker","z":"","name":"foersterova","broker":"maxbox.maxbox.cz","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
#8

Blockquote

https://flows.nodered.org/flow/796e6b70ad239ea4c118d2911ff2f2ed

#9

Correct me if I’m wrong, but I am doing the same in my code.

 <tbody>
 <tr ng-repeat="row in msg.payload">
 <td ng-repeat="item in row track by $index" >{{item}}</td>
 </tr>
 </tbody>

And this is the same approach as you do in your post here

#10

Are you using other features from Dashboard? If not, you might be better off switching to uibuilder which wont add the restrictions, complexity and overheads of Angular.

#11

All my application is in NR Dashboard (charts, gauges, mail messaging ...)

#12

One big difference, that flow is not trying to get the data from context in a ui node

#13

OK.
The only way I have found, how to "refresh" data, is to use inject node repeat function.
It injects the payload to the flow and data in the open table refreshes.

Not sure how <div ng-bind-html="msg.payload"></div> works.

I was doing many experiments with
scope.$watch Lambda function to access the Angular Scope
but not success. Maybe because I do not understand the syntax properly.

#14

There are examples in the Node-RED cookbook and on my blog, perhaps some of them might be of help.

#15

The link I have posted above ( scope.$watch Lambda function to access the Angular Scope) is exactly the same link to your page you have sent :smiley:
I have experimented with it all night long, but no success...

Anyway, do you think it is possible/doable to call DataTables js within the NR Dashboard Template?
Very simple example of Javascript sourced data and DataTables js code is here.

I think many people can find it useful if we have working example built on this sample code....