Typy Atribútov digitálnych entít
Sú situácie, keď potrebné aby sa vizuálny Atribút ešte viac priblížil k predmetu jeho použitia. Napríklad ak chcete prepínač, tak nechce Atribút kde meníte hodnotu na 0 alebo 1. Chcete prepínač (grafický komponent). Toto pri tak genericky navrhnutom systéme ako je WorkSys je vždy výzva. V tejto časti si ukážeme ako hravo vie tieto potreby riešiť WorkSys.
Presne za týmto účelom vznikol Parameter Atribútu rich_type, ktorý takýmto spôsobom dáva informáciu forntendu, ako má vizualizovať daný Atribút na web používateľskom rozhraní.
Ako sme už písali v predchádzajúcej kapitole tak rozšírenie parametru value_type o ďalší parameter rich_type umožňuje zobraziť špeciálny prvok používateľského rozhrania alebo formátovanie. Paramater rich_type je voliteľný a dopĺňa sa len v prípade potreby.
Zoznam možnosti je nasledovný:
color
Tento parameter sa definuje ak je value_type „string“. Hodnota Atribútu je potom hexadecimálne vyjadrenie farby (pozri Color HEX)
...
"fill_color": {
"type": "static",
"unit": null,
"trans": {
"cs": "Barva výplně",
"de": "Füllfarbe",
"en": "Fill color",
"sk": "Farba vyplnenia"
},
"rich_type": "color",
"value_type": "string",
"value_default": "#ff2a00"
},
...
url
Tento parameter sa definuje ak je value_type „string“. Hodnota Atribútu je potom URL linka, ktorá je z detailu entitiy kliknuteľná ako hypertextový odkaz.
...
"atribute_url": {
"type": "static",
"unit": " ",
"trans": {
"cs": "Popis attribute_url v cs jazyku",
"de": "Popis attribute_url v de jazyku",
"en": "Popis attribute_url v en jazyku",
"sk": "Popis attribute_url v sk jazyku"
},
"rich_type": "url",
"value_type": "string",
"value_default": "https://online.worksys.space/worksys/"
}
...
switcher
Tento parameter sa definuje ak je value_type „bool“. Hodnota Atribútu je potom vizuálny prepínač.
...
"state_of_contactor": {
"type": "telemetry",
"unit": "",
"trans": {
"cz": "Stav stykače",
"de": "Zustand des Schützes",
"en": "State of contactor",
"sk": "Stav stýkača"
},
"rich_type": "switcher",
"value_type": "bool",
"controllable": {
"method": "set_command",
"command": "switch",
"maintenance_by": "local_energy"
},
"value_default": false
},
...
datetime
Tento parameter sa definuje ak je value_type „number“. Transformuje časovú pečiatku z UNIX formátu (Epoch formát) do formátu požadovaného používateľom. Výstup je formátovaný na napr.: „RRRR-MM-DDTHH:mm:ssZ“, používa metódu formátovania z moment.js)
...
"maintenance_date": {
"type": "static",
"unit": null,
"trans": {
"cz": "Datum údržby",
"de": "Wartungsdatum",
"en": "Maintenance date",
"sk": "Dátum údržby"
},
"rich_type": "datetime",
"value_type": "number",
"value_default": 0
},
...
duration
Tento parameter sa definuje ak je value_type „number“. Transformuje výsledok rozdielu časov v UNIX formáte (Epoch formát) na zrozumiteľné vyjadrenie časového rozdielu napr. 12:43:18 .
Výstup je formátovaný na napr.: „RRRR-MM-DDTHH:mm:ssZ“, používa metódu moment.js duration extension)
...
"duration": {
"type": "telemetry",
"unit": null,
"trans": {
"cz": "Doba trvání",
"de": "Dauer",
"en": "Duration",
"sk": "Trvanie"
},
"format": "HH:mm:ss",
"rich_type": "duration",
"value_type": "number",
"value_default": 0
},
...
Dalším parametrom format môžete nastaviť očakávaný formát výstupu.
switch_profile_select
Tento parameter sa definuje ak je value_type „string“. Zobrazuje výber na zmenu profilov prepínača. Komponent bez oprávnení nie je aktívny a nemôže byť ovládaný používateľom.
...
"profile_line": {
"type": "telemetry",
"unit": null,
"rich_type": "switch_profile_select",
"value_type": "number",
"controllable": {
"method": "set_profile",
"maintenance_by": "local_setup"
},
"value_default": null
},
...
dimming_profile_select
Tento parameter sa definuje ak je value_type „string“. Zobrazuje výber na zmenu profilov prepínača. Komponent bez oprávnení nie je aktívny a nemôže byť ovládaný používateľom.
...
"dimming_profile": {
"type": "telemetry",
"unit": null,
"rich_type": "dimming_profile_select",
"value_type": "string",
"controllable": {
"method": "set_profile",
"maintenance_by": "local_setup"
},
"value_default": ""
},
...
attribute_rules
Tento parameter obsahuje podmienky pre modul pravidiel. Pozri: RuleEngine . Najčastejšie sa používa pri nastavovaní farebnej vizualizácií v závislosti od hodnoty Atribútu.
...
"status": {
"type": "telemetry",
"unit": null,
"trans": {
"en": "Status",
"sk": "Stav",
"de": "Status",
"cz": "Stav"
},
"value_type": "string",
"value_default": "virtual",
"attribute_rules": {
"fill_color": [
{
"value": "#adadad",
"condition": "virtual"
},
{
"value": "#1eff00",
"condition": "OK"
},
{
"value": "#ff2a00",
"condition": "NOK"
}
]
}
...
Alebo napríklad pri interpretácii úrovne svietenia, kde sa farba určuje intervalom hodnôt.
...
"dimming": {
...
"attribute_rules": {
"fill_color": [
{
"condition": "(,50]",
"value": "#fcfeff"
},
{
"condition": "(50,80]",
"value": "#f0f7ff"
},
{
"condition": "(80,)",
"value": "#deebf7"
}
]
}
...
}
...
controllable
Tento parameter umožňuje k aktívnym autorizačným prvkom vložiť podmienky dodatočnej autorizácie potrebnej priamo v definícií profilu používateľa pre aktívne použitia daného grafického prvku.
...
"controllable": {
"maintenance_by": "lighting",
"method": "set_command",
"command": "dimming"
},
...
Ďalšími Parametrami „method“ a „command“ nastavujeme grafický prvok, ktorý má byť ovplyvnený. Podporované „command“ hodnoty sú:
- dimming
- switch
...
"controllable": {
"maintenance_by": "lighting",
"method": "set_command",
"command": "switch"
},
...
Rule Engine
Rule Engine nastaví atribút entity na základe definovaných pravidiel podmienok. Podmienkou môže byť pravidlo intervalu (napr.: (50,80]) alebo akákoľvek platná hodnota JSON na porovnanie (napr.: true, „notokstring“, 12, …)
- ( <hodnota> , <hodnota> ) – otvorený interval
- [ <hodnota> , <hodnota> ] – uzavretý interval (vrátane koncového bodu)