Typy Atributů digitálních entit
Jsou situace, kdy je třeba aby se vizuální Atribut ještě více přiblížil k předmětu jeho použití. Například pokud chcete přepínač, tak nechce Atribut kde měníte hodnotu na 0 nebo 1. Chcete přepínač (grafický komponent). Toto u tak genericky navrženého systému jako je WorkSys je vždy výzva. V této části si ukážeme, jak hravě umí tyto potřeby řešit WorkSys.
Přesně za tímto účelem vznikl Parametr Atributu rich_type, který takovýmto způsobem dává informaci forntendu, jak má vizualizovat daný Atribut na web uživatelském rozhraní.
Jak jsme již psali v předchozí kapitole, tak rozšíření parametru value_type o další parametr rich_type umožňuje zobrazit speciální prvek uživatelského rozhraní nebo formátování. Paramater rich_type je volitelný a doplňuje se jen v případě potřeby.
Seznam možnosti je následující:
color
Tento parametr je definován, pokud je value_type “string“. Hodnota Atributu je pak hexadecimální vyjádření barvy (viz 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 parametr je definován, pokud je value_type “string“. Hodnota Atributu je pak URL linka, která je z detailu entitiy kliknutelná jako 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 parametr je definován, pokud je value_type “bool“. Hodnota Atributu je pak vizuální přepí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 parametr je definován, pokud je value_type “number“. Transformuje časové razítko z UNIX formátu (Epoch formát) do formátu požadovaného uživatelem. Výstup je formátován na např.: “RRRR-MM-DDTHH:mm:ssZ”, používá metodu formátování 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 parametrem format můžete nastavit očekávaný formát výstupu.
switch_profile_select
Tento parametr je definován, pokud je value_type “string“. Zobrazuje výběr pro změnu profilů přepínače. Součást bez oprávnění není aktivní a nemůže být ovládán uživatelem.
...
"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 parametr je definován, pokud je value_type “string“. Zobrazuje výběr pro změnu profilů přepínače. Součást bez oprávnění není aktivní a nemůže být ovládán uživatelem.
...
"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 parametr obsahuje podmínky pro modul pravidel. Viz: RuleEngine . Nejčastěji se používá při nastavování barevné vizualizací v závislosti na hodnotě Atributu.
...
"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"
}
]
}
...
Nebo například při interpretaci úrovně svícení, kde se barva určuje intervalem hodnot.
...
"dimming": {
...
"attribute_rules": {
"fill_color": [
{
"condition": "(,50]",
"value": "#fcfeff"
},
{
"condition": "(50,80]",
"value": "#f0f7ff"
},
{
"condition": "(80,)",
"value": "#deebf7"
}
]
}
...
}
...
controllable
Tento parametr umožňuje k aktivním autorizačním prvkům vložit podmínky dodatečné autorizace potřebné přímo v definici profilu uživatele pro aktivní použití daného grafického prvku.
...
"controllable": {
"maintenance_by": "lighting",
"method": "set_command",
"command": "dimming"
},
...
Dalšími Parametry „method“ a „command“ nastavujeme grafický prvek, který má být ovlivněn. Podporované “command” hodnoty jsou:
- dimming
- switch
...
"controllable": {
"maintenance_by": "lighting",
"method": "set_command",
"command": "switch"
},
...
Rule Engine
Rule Engine nastaví atribut entity na základě definovaných pravidel podmínek. Podmínkou může být pravidlo intervalu (např.: (50,80)) nebo jakákoli platná hodnota JSON pro srovnání (např.: true, “notokstring”, 12, …)
- (<hodnota> , <hodnota> ) – otevřený interval
- [ <hodnota> , <hodnota> ] – uzavřený interval (včetně koncového bodu)