diff --git a/datasets/assetData/assetData.json b/datasets/assetData/assetData.json index 4123e1a..acd7d01 100644 --- a/datasets/assetData/assetData.json +++ b/datasets/assetData/assetData.json @@ -24,11 +24,11 @@ "models": [ { "name": "VegaPressure 10", - "units": ["bar", "m WC", "psi"] + "units": ["bar", "mbar", "psi"] }, { "name": "VegaPressure 20", - "units": ["bar", "m WC", "psi"] + "units": ["bar", "mbar", "psi"] } ] }, @@ -60,10 +60,8 @@ "models": [ { "id": "hidrostal-pump-001", - "name": "H05K-S03R+HGM1X-X280KO", - "units": ["m³/h", "gpm", "l/min"], - "hasCurveData": true, - "curveDataFile": "/data/curves/hidrostal-H05K-S03R.json" + "name": "hidrostal-H05K-S03R", + "units": ["m³/h", "gpm", "l/min"] } ] } diff --git a/datasets/assetData/curves/hidrostal-H05K-S03R.json b/datasets/assetData/curves/hidrostal-H05K-S03R.json index 5b68286..3c381a7 100644 --- a/datasets/assetData/curves/hidrostal-H05K-S03R.json +++ b/datasets/assetData/curves/hidrostal-H05K-S03R.json @@ -1,1064 +1,1062 @@ { - "curve": { - "np": { - "700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 12.962460720759278, - 20.65443723573673, - 31.029351002816465, - 44.58926412111886, - 62.87460150792057 - ] - }, - "800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 13.035157335397209, - 20.74906989186132, - 31.029351002816465, - 44.58926412111886, - 62.87460150792057 - ] - }, - "900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 13.064663380158798, - 20.927197054134297, - 31.107126521989933, - 44.58926412111886, - 62.87460150792057 - ] - }, - "1000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 13.039271391128953, - 21.08680188366637, - 31.30899920405947, - 44.58926412111886, - 62.87460150792057 - ] - }, - "1100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 12.940075520572446, - 21.220547481589954, - 31.51468295656385, - 44.621326083982, - 62.87460150792057 - ] - }, - "1200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 12.784378070157494, - 21.287467135615458, - 31.736145492247378, - 44.833460637148086, - 62.87460150792057 - ] - }, - "1300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 12.586915243939579, - 21.276682281369446, - 31.930487772749828, - 45.09147841519212, - 62.87460150792057 - ] - }, - "1400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 12.072531459639976, - 21.236263402754997, - 31.98957228629009, - 45.343639823277805, - 62.948551456696194 - ] - }, - "1500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 11.498673648884504, - 20.996631954252725, - 31.954252725886462, - 45.54353714625641, - 63.22528016894755 - ] - }, - "1600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 52.14679487594751, - 20.746724065725342, - 31.960270693111905, - 45.6989826531509, - 63.50000000000001 - ] - }, - "1700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 10.785741081439639, - 20.410520957192535, - 31.950197200275465, - 45.844022293894504, - 63.800401477703126 - ] - }, - "1800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 10.26507140279083, - 20.02134876415971, - 31.90474593035864, - 45.99882821699525, - 64.10190222175436 - ] - }, - "1900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.844493687783078, - 19.615126745440445, - 31.784477814504157, - 46.121518686299474, - 64.37205899496851 - ] - }, - "2000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.42546845395214, - 19.224613161465353, - 31.3852031134771, - 46.15771544706397, - 64.55065634962911 - ] - }, - "2100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.977806634186596, - 18.777333452839002, - 31.231492686456505, - 46.13420576468383, - 64.64634734417953 - ] - }, - "2200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.5551220832516, - 18.192271683023783, - 31.21886730567425, - 46.10526642440768, - 64.7459373335406 - ] - }, - "2300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.224790390000274, - 17.635073073073073, - 30.69719637959011, - 46.04336860563764, - 64.87880030950727 - ] - }, - "2400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 17.235714899207412, - 30.206677994537266, - 45.90194286632148, - 65.00133289948793 - ] - }, - "2500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 16.699519153953943, - 29.81226369335321, - 45.68999350609509, - 65.08194121217663 - ] - }, - "2600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 16.128295133509337, - 29.372650465392372, - 45.440269896240885, - 65.1262338514688 - ] - }, - "2700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 15.655831107176521, - 28.888887637256676, - 45.14580957087996, - 65.13308230125698 - ] - }, - "2800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 15.218098933011891, - 28.362864023341317, - 44.807426250648106, - 65.10511931024406 - ] - }, - "2900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 14.727036592419225, - 27.800257499369994, - 44.41688206158469, - 65.01783815190142 - ] - }, - "3000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 14.220778455429796, - 27.231492686456505, - 44.05531409059111, - 64.84454626378002 - ] - }, - "3100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.791032481569887, - 26.655487058053755, - 43.47550152847766, - 64.61338781598111 - ] - }, - "3200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 57.998168647814666, - 42.997354839160536, - 64.33911122026377 - ] - }, - "3300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 53.35067019159144, - 42.48429874246399, - 64.03769740244357 - ] - }, - "3400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 24.605489108239045, - 41.93544657954916, - 63.75332312922636 - ] - }, - "3500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 24.02776812223464, - 41.3462311518563, - 63.43861799695663 - ] - }, - "3600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 23.461492562203443, - 40.66666743038082, - 63.03442493367597 - ] - }, - "3700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 22.83964444901582, - 39.93227924494096, - 62.58510941648396 - ] - }, - "3800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 22.224853190033304, - 39.26854818553173, - 62.120049154943764 - ] - }, - "3900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 8.219999984177646, - 13.426327986363882, - 21.72969647212158, - 38.65394379517984, - 61.64012936635131 - ] - } - }, - "nq": { - "700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 119.13938764447377, - 150.12178608265387, - 178.82698019104356, - 202.3699313222398, - 227.06382297856618 - ] - }, - "800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 112.59072109293984, - 148.15847460389205, - 178.82698019104356, - 202.3699313222398, - 227.06382297856618 - ] - }, - "900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 105.6217241180404, - 144.00502117747064, - 177.15212647335034, - 202.3699313222398, - 227.06382297856618 - ] - }, - "1000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 97.96933385655602, - 139.33203004341362, - 172.8335214963562, - 202.3699313222398, - 227.06382297856618 - ] - }, - "1100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 89.46890733013123, - 133.63746503107248, - 168.6757638770697, - 201.51457815731206, - 227.06382297856618 - ] - }, - "1200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 81.7102176307068, - 127.54746478805862, - 164.86083942366332, - 197.9278536516828, - 227.06382297856618 - ] - }, - "1300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 73.54434350844221, - 121.17569010344418, - 160.74497886055957, - 194.59764221140935, - 227.06382297856618 - ] - }, - "1400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 65.44062943901834, - 114.06019126455426, - 155.75252082246928, - 191.17149532208072, - 226.18795889319966 - ] - }, - "1500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 58.16022827241729, - 106.8304040176964, - 150.34769411635546, - 187.41150790422392, - 223.01071026385065 - ] - }, - "1600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 52.14679487594751, - 99.83305618056556, - 144.95937497345926, - 183.42837752248894, - 219.8652102448096 - ] - }, - "1700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 46.01552158918748, - 93.03792449348434, - 139.34246720444983, - 179.30356404990695, - 216.85840103402688 - ] - }, - "1800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 39.891102390431755, - 86.36278038299652, - 133.36260934920088, - 175.064220776007, - 213.87502962516638 - ] - }, - "1900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 34.11562677513334, - 79.92122861259746, - 127.3583046971797, - 170.60370417418847, - 210.68808498795732 - ] - }, - "2000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 28.23139893028536, - 74.27239543161777, - 121.3852031134771, - 165.77656329385528, - 207.11383345844555 - ] - }, - "2100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 22.028625643397625, - 68.52803664413138, - 115.60209814095579, - 160.766567321836, - 203.25772755139087 - ] - }, - "2200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 15.99225052287954, - 62.252556641890656, - 109.75606164153551, - 155.8982054779732, - 199.33642607507025 - ] - }, - "2300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 10.057512077941812, - 56.78739880947559, - 103.28490253306859, - 150.87040317632852, - 195.3712838183181 - ] - }, - "2400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 51.89879972018922, - 97.49411123502856, - 145.15861930790484, - 191.3102286463588 - ] - }, - "2500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 46.49650512979005, - 92.5946794216408, - 139.3607940098774, - 187.1228895952043 - ] - }, - "2600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 40.96259596169048, - 87.48581221097406, - 134.10330733835585, - 182.81452539519677 - ] - }, - "2700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 35.97902929973601, - 82.22524681851449, - 129.0407272627695, - 178.46909993743765 - ] - }, - "2800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 31.23575309746966, - 77.15557437941118, - 124.12760990251361, - 174.10587281860919 - ] - }, - "2900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 26.43435480236642, - 72.24738368847274, - 119.17501218716764, - 169.57138175798616 - ] - }, - "3000": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 21.604008702139296, - 67.42496298247559, - 114.05531409059111, - 164.73832634582294 - ] - }, - "3100": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 16.57058014337364, - 62.68624249227209, - 109.06006424231046, - 159.88207336974 - ] - }, - "3200": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 57.998168647814666, - 104.24541477723719, - 155.19789417429632 - ] - }, - "3300": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 53.35067019159144, - 99.62632764730057, - 150.4942891087851 - ] - }, - "3400": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 48.8526661624979, - 95.33061875213433, - 145.56922638322362 - ] - }, - "3500": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 44.55023162119764, - 91.08960051646183, - 140.69583687494227 - ] - }, - "3600": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 40.31135640023136, - 86.51969834209932, - 136.26067387204347 - ] - }, - "3700": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 36.07819040356928, - 81.84472835862138, - 132.05652400156956 - ] - }, - "3800": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 31.85665211119843, - 77.5230204653733, - 127.71198568555374 - ] - }, - "3900": { - "x": [ - 0, - 24.59, - 49.18, - 73.77, - 100 - ], - "y": [ - 9.542570302282291, - 11.584188419724269, - 27.623838938465713, - 73.46672821834078, - 123.26611832311883 - ] - } - } + "np": { + "700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 12.962460720759278, + 20.65443723573673, + 31.029351002816465, + 44.58926412111886, + 62.87460150792057 + ] + }, + "800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 13.035157335397209, + 20.74906989186132, + 31.029351002816465, + 44.58926412111886, + 62.87460150792057 + ] + }, + "900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 13.064663380158798, + 20.927197054134297, + 31.107126521989933, + 44.58926412111886, + 62.87460150792057 + ] + }, + "1000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 13.039271391128953, + 21.08680188366637, + 31.30899920405947, + 44.58926412111886, + 62.87460150792057 + ] + }, + "1100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 12.940075520572446, + 21.220547481589954, + 31.51468295656385, + 44.621326083982, + 62.87460150792057 + ] + }, + "1200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 12.784378070157494, + 21.287467135615458, + 31.736145492247378, + 44.833460637148086, + 62.87460150792057 + ] + }, + "1300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 12.586915243939579, + 21.276682281369446, + 31.930487772749828, + 45.09147841519212, + 62.87460150792057 + ] + }, + "1400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 12.072531459639976, + 21.236263402754997, + 31.98957228629009, + 45.343639823277805, + 62.948551456696194 + ] + }, + "1500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 11.498673648884504, + 20.996631954252724, + 31.954252725886462, + 45.54353714625641, + 63.22528016894755 + ] + }, + "1600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 52.14679487594751, + 20.746724065725342, + 31.960270693111905, + 45.6989826531509, + 63.50000000000001 + ] + }, + "1700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 10.785741081439639, + 20.410520957192535, + 31.950197200275465, + 45.844022293894504, + 63.800401477703126 + ] + }, + "1800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 10.26507140279083, + 20.02134876415971, + 31.90474593035864, + 45.99882821699525, + 64.10190222175436 + ] + }, + "1900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.844493687783078, + 19.615126745440445, + 31.784477814504157, + 46.121518686299474, + 64.37205899496851 + ] + }, + "2000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.42546845395214, + 19.224613161465353, + 31.3852031134771, + 46.15771544706397, + 64.55065634962911 + ] + }, + "2100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.977806634186596, + 18.777333452839002, + 31.231492686456505, + 46.13420576468383, + 64.64634734417953 + ] + }, + "2200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.5551220832516, + 18.192271683023783, + 31.21886730567425, + 46.10526642440768, + 64.7459373335406 + ] + }, + "2300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.224790390000274, + 17.635073073073073, + 30.69719637959011, + 46.04336860563764, + 64.87880030950727 + ] + }, + "2400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 17.235714899207412, + 30.206677994537266, + 45.90194286632148, + 65.00133289948793 + ] + }, + "2500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 16.699519153953943, + 29.81226369335321, + 45.68999350609509, + 65.08194121217663 + ] + }, + "2600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 16.128295133509337, + 29.372650465392372, + 45.440269896240885, + 65.1262338514688 + ] + }, + "2700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 15.655831107176521, + 28.888887637256676, + 45.14580957087996, + 65.13308230125698 + ] + }, + "2800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 15.218098933011891, + 28.362864023341317, + 44.807426250648106, + 65.10511931024406 + ] + }, + "2900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 14.727036592419225, + 27.800257499369994, + 44.41688206158469, + 65.01783815190142 + ] + }, + "3000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 14.220778455429796, + 27.231492686456505, + 44.05531409059111, + 64.84454626378002 + ] + }, + "3100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.791032481569887, + 26.655487058053755, + 43.47550152847766, + 64.61338781598111 + ] + }, + "3200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 57.998168647814666, + 42.997354839160536, + 64.33911122026377 + ] + }, + "3300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 53.35067019159144, + 42.48429874246399, + 64.03769740244357 + ] + }, + "3400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 24.605489108239045, + 41.93544657954916, + 63.75332312922636 + ] + }, + "3500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 24.02776812223464, + 41.3462311518563, + 63.43861799695663 + ] + }, + "3600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 23.461492562203443, + 40.66666743038082, + 63.03442493367597 + ] + }, + "3700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 22.83964444901582, + 39.93227924494096, + 62.58510941648396 + ] + }, + "3800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 22.224853190033304, + 39.26854818553173, + 62.120049154943764 + ] + }, + "3900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 8.219999984177646, + 13.426327986363882, + 21.72969647212158, + 38.65394379517984, + 61.64012936635131 + ] } - } \ No newline at end of file + }, + "nq": { + "700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 119.13938764447377, + 150.12178608265387, + 178.82698019104356, + 202.3699313222398, + 227.06382297856618 + ] + }, + "800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 112.59072109293984, + 148.15847460389205, + 178.82698019104356, + 202.3699313222398, + 227.06382297856618 + ] + }, + "900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 105.6217241180404, + 144.00502117747064, + 177.15212647335034, + 202.3699313222398, + 227.06382297856618 + ] + }, + "1000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 97.96933385655602, + 139.33203004341362, + 172.8335214963562, + 202.3699313222398, + 227.06382297856618 + ] + }, + "1100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 89.46890733013123, + 133.63746503107248, + 168.6757638770697, + 201.51457815731206, + 227.06382297856618 + ] + }, + "1200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 81.7102176307068, + 127.54746478805862, + 164.86083942366332, + 197.9278536516828, + 227.06382297856618 + ] + }, + "1300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 73.54434350844221, + 121.17569010344418, + 160.74497886055957, + 194.59764221140935, + 227.06382297856618 + ] + }, + "1400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 65.44062943901834, + 114.06019126455426, + 155.75252082246928, + 191.17149532208072, + 226.18795889319966 + ] + }, + "1500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 58.16022827241729, + 106.8304040176964, + 150.34769411635546, + 187.41150790422392, + 223.01071026385065 + ] + }, + "1600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 52.14679487594751, + 99.83305618056556, + 144.95937497345926, + 183.42837752248894, + 219.8652102448096 + ] + }, + "1700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 46.01552158918748, + 93.03792449348434, + 139.34246720444983, + 179.30356404990695, + 216.85840103402688 + ] + }, + "1800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 39.891102390431755, + 86.36278038299652, + 133.36260934920088, + 175.064220776007, + 213.87502962516638 + ] + }, + "1900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 34.11562677513334, + 79.92122861259746, + 127.3583046971797, + 170.60370417418847, + 210.68808498795732 + ] + }, + "2000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 28.23139893028536, + 74.27239543161777, + 121.3852031134771, + 165.77656329385528, + 207.11383345844555 + ] + }, + "2100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 22.028625643397625, + 68.52803664413138, + 115.60209814095579, + 160.766567321836, + 203.25772755139087 + ] + }, + "2200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 15.99225052287954, + 62.252556641890656, + 109.75606164153551, + 155.8982054779732, + 199.33642607507025 + ] + }, + "2300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 10.057512077941812, + 56.78739880947559, + 103.28490253306859, + 150.87040317632852, + 195.3712838183181 + ] + }, + "2400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 51.89879972018922, + 97.49411123502856, + 145.15861930790484, + 191.3102286463588 + ] + }, + "2500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 46.49650512979005, + 92.5946794216408, + 139.3607940098774, + 187.1228895952043 + ] + }, + "2600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 40.96259596169048, + 87.48581221097406, + 134.10330733835585, + 182.81452539519677 + ] + }, + "2700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 35.97902929973601, + 82.22524681851449, + 129.0407272627695, + 178.46909993743765 + ] + }, + "2800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 31.23575309746966, + 77.15557437941118, + 124.12760990251361, + 174.10587281860919 + ] + }, + "2900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 26.43435480236642, + 72.24738368847274, + 119.17501218716764, + 169.57138175798616 + ] + }, + "3000": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 21.604008702139296, + 67.42496298247559, + 114.05531409059111, + 164.73832634582294 + ] + }, + "3100": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 16.57058014337364, + 62.68624249227209, + 109.06006424231046, + 159.88207336974 + ] + }, + "3200": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 57.998168647814666, + 104.24541477723719, + 155.19789417429632 + ] + }, + "3300": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 53.35067019159144, + 99.62632764730057, + 150.4942891087851 + ] + }, + "3400": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 48.8526661624979, + 95.33061875213433, + 145.56922638322362 + ] + }, + "3500": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 44.55023162119764, + 91.08960051646183, + 140.69583687494227 + ] + }, + "3600": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 40.31135640023136, + 86.51969834209932, + 136.26067387204347 + ] + }, + "3700": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 36.07819040356928, + 81.84472835862138, + 132.05652400156956 + ] + }, + "3800": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 31.85665211119843, + 77.5230204653733, + 127.71198568555374 + ] + }, + "3900": { + "x": [ + 0, + 24.59, + 49.18, + 73.77, + 100 + ], + "y": [ + 9.542570302282291, + 11.584188419724269, + 27.623838938465713, + 73.46672821834078, + 123.26611832311883 + ] + } + } +} \ No newline at end of file diff --git a/index.js b/index.js index 7fd2457..d542a17 100644 --- a/index.js +++ b/index.js @@ -23,7 +23,7 @@ const MenuManager = require('./src/menu/index.js'); const predict = require('./src/predict/predict_class.js'); const interpolation = require('./src/predict/interpolation.js'); const childRegistrationUtils = require('./src/helper/childRegistrationUtils.js'); - +const { loadCurve } = require('./datasets/assetData/curves/index.js'); // Export everything module.exports = { @@ -39,5 +39,6 @@ module.exports = { state, convert, MenuManager, - childRegistrationUtils + childRegistrationUtils, + loadCurve }; \ No newline at end of file diff --git a/src/configs/machineGroupControl.json b/src/configs/machineGroupControl.json new file mode 100644 index 0000000..b087858 --- /dev/null +++ b/src/configs/machineGroupControl.json @@ -0,0 +1,216 @@ +{ + "general": { + "name": { + "default": "Machine Group Configuration", + "rules": { + "type": "string", + "description": "A human-readable name or label for this machine group configuration." + } + }, + "id": { + "default": null, + "rules": { + "type": "string", + "nullable": true, + "description": "A unique identifier for this configuration. If not provided, defaults to null." + } + }, + "unit": { + "default": "m3/h", + "rules": { + "type": "string", + "description": "The default measurement unit for this configuration (e.g., 'meters', 'seconds', 'unitless')." + } + }, + "logging": { + "logLevel": { + "default": "info", + "rules": { + "type": "enum", + "values": [ + { + "value": "debug", + "description": "Log messages are printed for debugging purposes." + }, + { + "value": "info", + "description": "Informational messages are printed." + }, + { + "value": "warn", + "description": "Warning messages are printed." + }, + { + "value": "error", + "description": "Error messages are printed." + } + ] + } + }, + "enabled": { + "default": true, + "rules": { + "type": "boolean", + "description": "Indicates whether logging is active. If true, log messages will be generated." + } + } + } + }, + "functionality": { + "softwareType": { + "default": "machineGroup", + "rules": { + "type": "string", + "description": "Logical name identifying the software type." + } + }, + "role": { + "default": "GroupController", + "rules": { + "type": "string", + "description": "Controls a group of machines within the system." + } + }, + "positionVsParent":{ + "default":"atEquipment", + "rules": { + "type": "enum", + "values": [ + { + "value": "atEquipment", + "description": "The node is connected at the equipment level and is responsible for controlling or monitoring the equipment as a whole." + }, + { + "value": "upstream", + "description": "The node is connected in a downstream position, indicating it is responsible for monitoring or controlling processes that occur after the equipment's operation, such as product flow or output." + }, + { + "value": "downstream", + "description": "The node is connected in an upstream position, indicating it is responsible for monitoring or controlling processes that occur before the equipment's operation, such as input flow or supply." + } + ], + "description": "Defines the position of the measurement relative to its parent equipment or system." + } + } + }, + "mode": { + "current": { + "default": "optimalControl", + "rules": { + "type": "enum", + "values": [ + { + "value": "optimalControl", + "description": "The group controller selects the most optimal combination of machines based on their real-time performance curves." + }, + { + "value": "priorityControl", + "description": "Machines are controlled sequentially from minimum to maximum output until each is maxed out, then additional machines are added." + }, + { + "value": "prioritypercentagecontrol", + "description": "Machines are controlled sequentially from minimum to maximum output until each is maxed out, then additional machines are added based on a percentage of the total demand." + }, + { + "value": "maintenance", + "description": "The group is in maintenance mode with limited actions (monitoring only)." + } + ], + "description": "The operational mode of the machine group controller." + } + }, + "allowedActions": { + "default": {}, + "rules": { + "type": "object", + "schema": { + "optimalControl": { + "default": ["statusCheck", "execOptimalCombination", "balanceLoad", "emergencyStop"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Actions allowed in optimalControl mode." + } + }, + "priorityControl": { + "default": ["statusCheck", "execSequentialControl", "balanceLoad", "emergencyStop"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Actions allowed in priorityControl mode." + } + }, + "prioritypercentagecontrol": { + "default": ["statusCheck", "execSequentialControl", "balanceLoad", "emergencyStop"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Actions allowed in manualOverride mode." + } + }, + "maintenance": { + "default": ["statusCheck"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Actions allowed in maintenance mode." + } + } + }, + "description": "Defines the actions available for each operational mode of the machine group controller." + } + }, + "allowedSources": { + "default": {}, + "rules": { + "type": "object", + "schema": { + "optimalcontrol": { + "default": ["parent", "GUI", "physical", "API"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Command sources allowed in optimalControl mode." + } + }, + "prioritycontrol": { + "default": ["parent", "GUI", "physical", "API"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Command sources allowed in priorityControl mode." + } + }, + "prioritypercentagecontrol": { + "default": ["parent", "GUI", "physical", "API"], + "rules": { + "type": "set", + "itemType": "string", + "description": "Command sources allowed " + } + } + }, + "description": "Specifies the valid command sources recognized by the machine group controller for each mode." + } + } + }, + "scaling": { + "current": { + "default": "normalized", + "rules": { + "type": "enum", + "values": [ + { + "value": "normalized", + "description": "Scales the demand between 0–100% of the total flow capacity, interpolating to calculate the effective demand." + }, + { + "value": "absolute", + "description": "Uses the absolute demand value directly, capped between the min and max machine flow capacities." + } + ], + "description": "The scaling mode for demand calculations." + } + } + } + } diff --git a/src/configs/rotatingMachine.json b/src/configs/rotatingMachine.json index b44280d..2c83be7 100644 --- a/src/configs/rotatingMachine.json +++ b/src/configs/rotatingMachine.json @@ -102,6 +102,14 @@ "description": "A universally unique identifier for this asset. May be null if not assigned." } }, + "tagCode":{ + "default": null, + "rules": { + "type": "string", + "nullable": true, + "description": "Asset tag code which is a unique identifier for this asset. May be null if not assigned." + } + }, "geoLocation": { "default": {}, "rules": { @@ -139,14 +147,14 @@ "description": "The supplier or manufacturer of the asset." } }, - "type": { + "category": { "default": "pump", "rules": { "type": "string", "description": "A general classification of the asset tied to the specific software. This is not chosen from the asset dropdown menu." } }, - "subType": { + "type": { "default": "Centrifugal", "rules": { "type": "string", @@ -160,6 +168,13 @@ "description": "A user-defined or manufacturer-defined model identifier for the asset." } }, + "unit": { + "default": "unitless", + "rules": { + "type": "string", + "description": "The unit of measurement for this asset (e.g., 'meters', 'seconds', 'unitless')." + } + }, "accuracy": { "default": null, "rules": { diff --git a/src/helper/childRegistrationUtils.js b/src/helper/childRegistrationUtils.js index a7181a0..201314c 100644 --- a/src/helper/childRegistrationUtils.js +++ b/src/helper/childRegistrationUtils.js @@ -6,6 +6,7 @@ class ChildRegistrationUtils { } async registerChild(child, positionVsParent) { + const { softwareType } = child.config.functionality; const { name, id, unit } = child.config.general; const { type = "", subType = "" } = child.config.asset || {}; @@ -28,24 +29,6 @@ class ChildRegistrationUtils { this.mainClass.child[softwareType][type][subType] = []; } - // Update the child in the cloud when available and supply the new child on base of tagcode OLIFANT WE NEED TO FIX THIS SO ITS DYNAMIC! - /* - try{ - const url = "https://pimmoerman.nl/rdlab/tagcode.app/v2.1/api/asset/create_asset.php?"; - const TagCode = child.config.asset.tagCode; - //console.log(`Register child => ${TagCode}`); - const completeURL = url + `asset_product_model_id=1&asset_product_model_uuid=123456789&asset_name=AssetNaam&asset_description=Beschrijving&asset_status=actief&asset_profile_id=1&asset_location_id=1&asset_process_id=11&asset_tag_number=${TagCode}&child_assets=[L6616]`; - - await fetch(completeURL, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - } - }); - - }catch(e){ - console.log("Error saving assetID and tagnumber", e); - }*/ // Push the new child to the array of the mainclass so we can track the childs this.mainClass.child[softwareType][type][subType].push({ diff --git a/src/menu/physicalPosition.js b/src/menu/physicalPosition.js index 82b8a6f..191dd79 100644 --- a/src/menu/physicalPosition.js +++ b/src/menu/physicalPosition.js @@ -6,9 +6,9 @@ class PhysicalPositionMenu { return { positionGroups: [ { group: 'Positional', options: [ - { value: 'upstream', label: '⬅ Upstream' }, - { value: 'atEquipment', label: '⚙️ At Equipment' }, - { value: 'downstream', label: '➡ Downstream' } + { value: 'upstream', label: '← Upstream', icon: '←'}, + { value: 'atEquipment', label: '⊥ in place' , icon: '⊥' }, + { value: 'downstream', label: '→ Downstream' , icon: '→' } ] } ] @@ -61,6 +61,7 @@ class PhysicalPositionMenu { const opt = document.createElement('option'); opt.value = o.value; opt.textContent = o.label; + opt.setAttribute('data-icon', o.icon); optg.appendChild(opt); }); sel.appendChild(optg); @@ -88,6 +89,8 @@ class PhysicalPositionMenu { window.EVOLV.nodes.${nodeName}.positionMenu.saveEditor = function(node) { const sel = document.getElementById('node-input-positionVsParent'); node.positionVsParent = sel? sel.value : 'atEquipment'; + node.positionLabel = sel? sel.options[sel.selectedIndex].textContent : 'At Equipment'; + node.positionIcon = sel? sel.options[sel.selectedIndex].getAttribute('data-icon') : 'fa fa-cog'; return true; }; `;