From 23f5a4fb275686810daaa9ad300e1709e8f12408 Mon Sep 17 00:00:00 2001 From: aitormurgu Date: Fri, 21 Jun 2024 07:44:04 +0000 Subject: [PATCH] deploy: 5556a391b2141ba45912c936f7a63b80b1de8102 --- 404.html | 2 +- about.html | 2 +- ...ggers-013cc3b4c4ba368837039873dadc32ca.png | Bin 0 -> 12070 bytes ...igger-946e9b5936d374848785ffdf86d3d9de.png | Bin 0 -> 23369 bytes ...-user-18a55047740179573ffdeae6b53c41d2.png | Bin 0 -> 11219 bytes ...ation-bb3024fee6bcec263baabe0e53b8ab6b.png | Bin 0 -> 22511 bytes ...ables-92f0f92646733fea74ffb0fff1b9e6d5.png | Bin 0 -> 16681 bytes assets/js/498d4d26.029a96c8.js | 1 + assets/js/498d4d26.6cc742f9.js | 1 - assets/js/75a8a8f3.587827f2.js | 1 - assets/js/75a8a8f3.ccbfd68f.js | 1 + assets/js/842fc954.6284c7eb.js | 1 - assets/js/842fc954.6c6b9684.js | 1 + ...46e3f.0cc3fb80.js => f5546e3f.00620e30.js} | 2 +- ...n.f83e6d4d.js => runtime~main.95748654.js} | 2 +- docs/Examples/MQTTX/Intro.html | 2 +- docs/Examples/MQTTX/MQTTX configuration.html | 2 +- docs/Examples/MQTTX/MQttx instalation.html | 2 +- docs/Examples/MQTTX/Message.html | 2 +- docs/Examples/POSTMAN/Getting the token.html | 2 +- docs/Examples/POSTMAN/Intro.html | 2 +- .../Examples/POSTMAN/Postman instalation.html | 2 +- .../Examples/POSTMAN/Sending the request.html | 2 +- ...nd trigger a remote action in devices.html | 2 +- .../How to create a dashboard.html | 5 ++-- .../How-to guides/How to create a schema.html | 22 ++++++++++++++++-- ...w to create developer API credentials.html | 2 +- ...ming from a device into the platform..html | 2 +- .../How to define alarm and triggers.html | 9 +++---- docs/How-to guides/How to invite users.html | 2 +- .../How to publish device data.html | 2 +- .../How to register devices.html | 2 +- .../How to update device firmware.html | 2 +- .../How to use dashboard variables.html | 7 ++++-- docs/Reference guides/Developer API.html | 2 +- docs/Reference guides/Glossary.html | 2 +- docs/Reference guides/MQTT broker.html | 2 +- .../Message-type Schema specification.html | 2 +- docs/Tutorials/Creating a biotz account.html | 2 +- docs/Tutorials/Getting started.html | 2 +- .../Step 1 - Creating a Device Type.html | 2 +- .../Step 2 - Creating a Message Type.html | 2 +- .../Step 3 - Creating a Schema.html | 2 +- .../Step 4 - Creating a device.html | 2 +- .../Step 5 - Authenticating a device.html | 2 +- ... 6 - Sending a data ingestion request.html | 2 +- .../Step 7 - Displaying the data.html | 2 +- docs/category/examples.html | 2 +- docs/category/how-to-guides.html | 2 +- docs/category/mqttx.html | 2 +- docs/category/reference-guides.html | 2 +- docs/category/tutorials.html | 2 +- index.html | 2 +- 53 files changed, 74 insertions(+), 51 deletions(-) create mode 100644 assets/images/alarm-triggers-013cc3b4c4ba368837039873dadc32ca.png create mode 100644 assets/images/new-alarm-trigger-946e9b5936d374848785ffdf86d3d9de.png create mode 100644 assets/images/select-user-18a55047740179573ffdeae6b53c41d2.png create mode 100644 assets/images/transformation-bb3024fee6bcec263baabe0e53b8ab6b.png create mode 100644 assets/images/with-variables-92f0f92646733fea74ffb0fff1b9e6d5.png create mode 100644 assets/js/498d4d26.029a96c8.js delete mode 100644 assets/js/498d4d26.6cc742f9.js delete mode 100644 assets/js/75a8a8f3.587827f2.js create mode 100644 assets/js/75a8a8f3.ccbfd68f.js delete mode 100644 assets/js/842fc954.6284c7eb.js create mode 100644 assets/js/842fc954.6c6b9684.js rename assets/js/{f5546e3f.0cc3fb80.js => f5546e3f.00620e30.js} (60%) rename assets/js/{runtime~main.f83e6d4d.js => runtime~main.95748654.js} (93%) diff --git a/404.html b/404.html index 15c5b13..8187713 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | Biotz Academy - + diff --git a/about.html b/about.html index ca28c7f..4c3fdf1 100644 --- a/about.html +++ b/about.html @@ -4,7 +4,7 @@ Markdown page example 1 | Biotz Academy - + diff --git a/assets/images/alarm-triggers-013cc3b4c4ba368837039873dadc32ca.png b/assets/images/alarm-triggers-013cc3b4c4ba368837039873dadc32ca.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb8593c935454d5bccd6578ea8aa7a5525529f5 GIT binary patch literal 12070 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

}M`RZb3Z{`-5H*f!oCrI&x#|ajR|SM? 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 AF8}}l literal 0 HcmV?d00001 diff --git a/assets/images/new-alarm-trigger-946e9b5936d374848785ffdf86d3d9de.png b/assets/images/new-alarm-trigger-946e9b5936d374848785ffdf86d3d9de.png new file mode 100644 index 0000000000000000000000000000000000000000..1de06481229e91f9c9d2882399c4ab0030f7e3f2 GIT binary patch literal 23369 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 literal 0 HcmV?d00001 diff --git a/assets/images/select-user-18a55047740179573ffdeae6b53c41d2.png b/assets/images/select-user-18a55047740179573ffdeae6b53c41d2.png new file mode 100644 index 0000000000000000000000000000000000000000..644860562d1213b30b82ade068102b36ae5c77bc GIT binary patch literal 11219 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

V0E58T2{f5{ApaIfj>;LlP>Vf;7Gw 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�Mb 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 BEfxR( literal 0 HcmV?d00001 diff --git a/assets/js/498d4d26.029a96c8.js b/assets/js/498d4d26.029a96c8.js new file mode 100644 index 0000000..b32508b --- /dev/null +++ b/assets/js/498d4d26.029a96c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[6246],{2165:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var t=n(4848),r=n(8453);const s={sidebar_position:8,sidebar_label:"How to define alarm triggers"},a="How to define alarm triggers",o={id:"How-to guides/How to define alarm and triggers",title:"How to define alarm triggers",description:"Introduction",source:"@site/docs/How-to guides/How to define alarm and triggers.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to define alarm and triggers",permalink:"/docs/How-to guides/How to define alarm and triggers",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,sidebar_label:"How to define alarm triggers"},sidebar:"tutorialSidebar",previous:{title:"How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables"},next:{title:"How to update device firmware",permalink:"/docs/How-to guides/How to update device firmware"}},d={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Alarm definition",id:"alarm-definition",level:2},{value:"General options",id:"general-options",level:3},{value:"Rule definition",id:"rule-definition",level:3},{value:"Notifications",id:"notifications",level:3}];function c(e){const i={code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h1,{id:"how-to-define-alarm-triggers",children:"How to define alarm triggers"}),"\n",(0,t.jsx)(i.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(i.p,{children:"Biotz provides alarm generation and notification capabilities based on the data received in the data ingestion flows. The alarm trigger or rules are evaluated against each received data observation, and when an alarm is triggered the corresponding users are notified."}),"\n",(0,t.jsx)(i.p,{children:"This guide explains how to define the rules that decide when an alarm is triggered and how to specify the list of users that must be notified."}),"\n",(0,t.jsx)(i.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsx)(i.p,{children:"In order to define the alarm triggers you need to have a device-type with at least one message-type and message type schema."}),"\n",(0,t.jsx)(i.p,{children:"The alarm trigger will apply to all the devices of a certain device type no matter if they were created before or after defining the trigger."}),"\n",(0,t.jsx)(i.h2,{id:"alarm-definition",children:"Alarm definition"}),"\n",(0,t.jsx)(i.p,{children:"The alarm triggers are defined in the \u201cAlarm triggers\u201d subsection under the \u201cSetup\u201d section."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)("div",{class:"tutorial-image-container",children:(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Creating panels",src:n(5641).A+"",width:"244",height:"248"})})}),"\n",(0,t.jsx)(i.p,{children:"To create the first alarm click on the \u201cNew alarm trigger\u201d button.If you want to create a new one you can also click on the top right hand corner."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)("div",{class:"tutorial-image-container",children:(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Creating panels",src:n(5417).A+"",width:"1562",height:"323"})})}),"\n",(0,t.jsx)(i.p,{children:"Defining an alarm requires three steps: general options, rule definition and notification settings."}),"\n",(0,t.jsx)(i.h3,{id:"general-options",children:"General options"}),"\n",(0,t.jsx)(i.p,{children:"The following fields have to be completed:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Name: an identifier for the trigger. This name will be displayed in the triggered alarm list and notifications."}),"\n",(0,t.jsx)(i.li,{children:"Level: the criticality or severity of the alarm. The possible values are: alert, critical, emergency, info and warning."}),"\n",(0,t.jsx)(i.li,{children:"Device type: the device type for which the alarm trigger will be evaluated. The trigger will apply to all the devices of a certain type."}),"\n",(0,t.jsx)(i.li,{children:"Message type: the message type that will be used to define the trigger rule. The trigger will only be evaluated when the devices send data for the selected message type."}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:""}),"\n",(0,t.jsx)(i.h3,{id:"rule-definition",children:"Rule definition"}),"\n",(0,t.jsx)(i.p,{children:"Each individual data observation is evaluated against the rule defined in this section. Those rules are composed of condition and group blocks:"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.strong,{children:"Conditions"})}),"\n",(0,t.jsx)(i.p,{children:"For each attribute in the message-type, one or more conditions can be specified. The \u201cattribute \u201c values are compared with the \u201cvalue\u201d using the \u201coperator\u201d."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"The available operators differ depending on the attribute type:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["numeric: ",(0,t.jsx)(i.code,{children:">, >=, <, <=, =, <>"})]}),"\n",(0,t.jsxs)(i.li,{children:["boolean: ",(0,t.jsx)(i.code,{children:"<>, ="})]}),"\n",(0,t.jsxs)(i.li,{children:["text: ",(0,t.jsx)(i.code,{children:"<>, ="})]}),"\n",(0,t.jsxs)(i.li,{children:["others: ",(0,t.jsx)(i.code,{children:"None"})]}),"\n"]}),"\n",(0,t.jsxs)(i.p,{children:["\u200d",(0,t.jsx)(i.strong,{children:"Groups"})]}),"\n",(0,t.jsx)(i.p,{children:"Multiple conditions can be grouped. When doing so, a logical operator has to be chosen to define the relation between the grouped conditions."}),"\n",(0,t.jsx)(i.p,{children:"The following are the available logical operators:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"AND: The group is considered truthy if all the individual conditions are met."}),"\n",(0,t.jsx)(i.li,{children:"OR: The group is considered truthy if at least one individual condition is met."}),"\n",(0,t.jsx)(i.li,{children:"NOT AND: The group is considered truthy if none or some, but not all individual conditions are met\n-NOT OR: The group is considered truthy if none of the individual conditions is met."}),"\n"]}),"\n",(0,t.jsx)("div",{class:"tutorial-image-container",children:(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Groups",src:n(1602).A+"",width:"1600",height:"322"})})}),"\n",(0,t.jsx)(i.p,{children:"Conditions and groups can be nested to build complex rules."}),"\n",(0,t.jsx)(i.h3,{id:"notifications",children:"Notifications"}),"\n",(0,t.jsx)(i.p,{children:"By default no users will be notified when an alarm is triggered. The triggered alarm will be persisted and viewable in the alarms list, but none of the users will get a message. To change that, the \u201cEdit users\u201d button can be used. Pressing the button will open a sidebar where the list of users to be notified can be selected."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"The selected users will get a web notification and an email when an alarm is triggered."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)("div",{class:"tutorial-image-container",children:(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Groups",src:n(3108).A+"",width:"394",height:"197"})})}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"To avoid overwhelming the user with notifications, a rate limit is applied to the notifications sent to the users. The users will be notified at most once every 15 minutes for each device an alarm trigger definition. Additional notifications will be ignored, but the alarm will be persisted and viewable in the alarms list."})]})}function h(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},5641:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/alarm-triggers-013cc3b4c4ba368837039873dadc32ca.png"},1602:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/groups-9026e0e02903e812c56b2d95612349d9.png"},5417:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/new-alarm-trigger-946e9b5936d374848785ffdf86d3d9de.png"},3108:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/select-user-18a55047740179573ffdeae6b53c41d2.png"},8453:(e,i,n)=>{n.d(i,{R:()=>a,x:()=>o});var t=n(6540);const r={},s=t.createContext(r);function a(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/498d4d26.6cc742f9.js b/assets/js/498d4d26.6cc742f9.js deleted file mode 100644 index cf3d148..0000000 --- a/assets/js/498d4d26.6cc742f9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[6246],{2165:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var t=n(4848),r=n(8453);const s={sidebar_position:8,sidebar_label:"How to define alarm triggers"},o="How to define alarm triggers",a={id:"How-to guides/How to define alarm and triggers",title:"How to define alarm triggers",description:"Introduction",source:"@site/docs/How-to guides/How to define alarm and triggers.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to define alarm and triggers",permalink:"/docs/How-to guides/How to define alarm and triggers",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,sidebar_label:"How to define alarm triggers"},sidebar:"tutorialSidebar",previous:{title:"How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables"},next:{title:"How to update device firmware",permalink:"/docs/How-to guides/How to update device firmware"}},d={},l=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Alarm definition",id:"alarm-definition",level:2},{value:"General options",id:"general-options",level:3},{value:"Rule definition",id:"rule-definition",level:3},{value:"Notifications",id:"notifications",level:3}];function c(e){const i={code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h1,{id:"how-to-define-alarm-triggers",children:"How to define alarm triggers"}),"\n",(0,t.jsx)(i.h2,{id:"introduction",children:"Introduction"}),"\n",(0,t.jsx)(i.p,{children:"Biotz provides alarm generation and notification capabilities based on the data received in the data ingestion flows. The alarm trigger or rules are evaluated against each received data observation, and when an alarm is triggered the corresponding users are notified."}),"\n",(0,t.jsx)(i.p,{children:"This guide explains how to define the rules that decide when an alarm is triggered and how to specify the list of users that must be notified."}),"\n",(0,t.jsx)(i.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsx)(i.p,{children:"In order to define the alarm triggers you need to have a device-type with at least one message-type and message type schema."}),"\n",(0,t.jsx)(i.p,{children:"The alarm trigger will apply to all the devices of a certain device type no matter if they were created before or after defining the trigger."}),"\n",(0,t.jsx)(i.h2,{id:"alarm-definition",children:"Alarm definition"}),"\n",(0,t.jsx)(i.p,{children:"The alarm triggers are defined in the \u201cAlarm triggers\u201d subsection under the \u201cSetup\u201d section."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:""}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:""}),"\n",(0,t.jsx)(i.p,{children:"Defining an alarm requires three steps: general options, rule definition and notification settings."}),"\n",(0,t.jsx)(i.h3,{id:"general-options",children:"General options"}),"\n",(0,t.jsx)(i.p,{children:"The following fields have to be completed:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"Name: an identifier for the trigger. This name will be displayed in the triggered alarm list and notifications."}),"\n",(0,t.jsx)(i.li,{children:"Level: the criticality or severity of the alarm. The possible values are: alert, critical, emergency, info and warning."}),"\n",(0,t.jsx)(i.li,{children:"Device type: the device type for which the alarm trigger will be evaluated. The trigger will apply to all the devices of a certain type."}),"\n",(0,t.jsx)(i.li,{children:"Message type: the message type that will be used to define the trigger rule. The trigger will only be evaluated when the devices send data for the selected message type."}),"\n"]}),"\n",(0,t.jsx)(i.p,{children:""}),"\n",(0,t.jsx)(i.h3,{id:"rule-definition",children:"Rule definition"}),"\n",(0,t.jsx)(i.p,{children:"Each individual data observation is evaluated against the rule defined in this section. Those rules are composed of condition and group blocks:"}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.strong,{children:"Conditions"})}),"\n",(0,t.jsx)(i.p,{children:"For each attribute in the message-type, one or more conditions can be specified. The \u201cattribute \u201c values are compared with the \u201cvalue\u201d using the \u201coperator\u201d."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"The available operators differ depending on the attribute type:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsxs)(i.li,{children:["numeric: ",(0,t.jsx)(i.code,{children:">, >=, <, <=, =, <>"})]}),"\n",(0,t.jsxs)(i.li,{children:["boolean: ",(0,t.jsx)(i.code,{children:"<>, ="})]}),"\n",(0,t.jsxs)(i.li,{children:["text: ",(0,t.jsx)(i.code,{children:"<>, ="})]}),"\n",(0,t.jsxs)(i.li,{children:["others: ",(0,t.jsx)(i.code,{children:"None"})]}),"\n"]}),"\n",(0,t.jsxs)(i.p,{children:["\u200d",(0,t.jsx)(i.strong,{children:"Groups"})]}),"\n",(0,t.jsx)(i.p,{children:"Multiple conditions can be grouped. When doing so, a logical operator has to be chosen to define the relation between the grouped conditions."}),"\n",(0,t.jsx)(i.p,{children:"The following are the available logical operators:"}),"\n",(0,t.jsxs)(i.ul,{children:["\n",(0,t.jsx)(i.li,{children:"AND: The group is considered truthy if all the individual conditions are met."}),"\n",(0,t.jsx)(i.li,{children:"OR: The group is considered truthy if at least one individual condition is met."}),"\n",(0,t.jsx)(i.li,{children:"NOT AND: The group is considered truthy if none or some, but not all individual conditions are met\n-NOT OR: The group is considered truthy if none of the individual conditions is met."}),"\n"]}),"\n",(0,t.jsx)("div",{class:"tutorial-image-container",children:(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Groups",src:n(1602).A+"",width:"1600",height:"322"})})}),"\n",(0,t.jsx)(i.p,{children:"Conditions and groups can be nested to build complex rules."}),"\n",(0,t.jsx)(i.h3,{id:"notifications",children:"Notifications"}),"\n",(0,t.jsx)(i.p,{children:"By default no users will be notified when an alarm is triggered. The triggered alarm will be persisted and viewable in the alarms list, but none of the users will get a message. To change that, the \u201cEdit users\u201d button can be used. Pressing the button will open a sidebar where the list of users to be notified can be selected."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"The selected users will get a web notification and an email when an alarm is triggered."}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:""}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)(i.p,{children:"To avoid overwhelming the user with notifications, a rate limit is applied to the notifications sent to the users. The users will be notified at most once every 15 minutes for each device an alarm trigger definition. Additional notifications will be ignored, but the alarm will be persisted and viewable in the alarms list."})]})}function h(e={}){const{wrapper:i}={...(0,r.R)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1602:(e,i,n)=>{n.d(i,{A:()=>t});const t=n.p+"assets/images/groups-9026e0e02903e812c56b2d95612349d9.png"},8453:(e,i,n)=>{n.d(i,{R:()=>o,x:()=>a});var t=n(6540);const r={},s=t.createContext(r);function o(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/75a8a8f3.587827f2.js b/assets/js/75a8a8f3.587827f2.js deleted file mode 100644 index 30c73fe..0000000 --- a/assets/js/75a8a8f3.587827f2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[9814],{9015:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>o,contentTitle:()=>h,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>i});var d=t(4848),r=t(8453);const s={sidebar_position:7,sidebar_label:"How to use dashboard variables"},h="How to use dashboard variables",n={id:"How-to guides/How to use dashboard variables",title:"How to use dashboard variables",description:"Introduction",source:"@site/docs/How-to guides/How to use dashboard variables.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7,sidebar_label:"How to use dashboard variables"},sidebar:"tutorialSidebar",previous:{title:"How to create a dashboard",permalink:"/docs/How-to guides/How to create a dashboard"},next:{title:"How to define alarm triggers",permalink:"/docs/How-to guides/How to define alarm and triggers"}},o={},i=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Define dashboard variables",id:"define-dashboard-variables",level:2},{value:"Use dashboard variables",id:"use-dashboard-variables",level:2}];function l(e){const a={h1:"h1",h2:"h2",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a.h1,{id:"how-to-use-dashboard-variables",children:"How to use dashboard variables"}),"\n",(0,d.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,d.jsx)(a.p,{children:"Dashboard variables allow users to make dashboard panels more dynamic. Instead of hardcoding specific devices in the panels, device selectors can be added to the dashboard. Those selectors are displayed in the main dashboard view, and the selected value can be changed by the final users at any time. Changing the value updates the data for all the panels that are using that variable."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"The dashboard variables are defined at dashboard level. Then they can be used when defining the panel queries."}),"\n",(0,d.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,d.jsx)(a.p,{children:"The dashboard has to be pre-created, and at least one device is needed."}),"\n",(0,d.jsx)(a.h2,{id:"define-dashboard-variables",children:"Define dashboard variables"}),"\n",(0,d.jsx)(a.p,{children:"The variables are created from the dashboard edition view. For that click on the \u201cpencil\u201d icon in the dashboard toolbar."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Dashboard Toolbars",src:t(6626).A+"",width:"537",height:"135"})})}),"\n",(0,d.jsx)(a.p,{children:"Creating a variable only requires specifying a name and selecting a device-type."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"The dashboard variables are always device-type specific to ensure that all the selectable devices are compatible with the dashboard panel queries in which the variable is used."}),"\n",(0,d.jsx)(a.p,{children:"When entering the device type, the panels that use this variable will use this device by default. But in the dashboard toolbar you can select any other device of the same type, and display the data of that other device instead."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Documentation Dasboard",src:t(8889).A+"",width:"480",height:"270"})})}),"\n",(0,d.jsx)(a.p,{children:"Up to 4 variables can be defined."}),"\n",(0,d.jsx)(a.h2,{id:"use-dashboard-variables",children:"Use dashboard variables"}),"\n",(0,d.jsx)(a.p,{children:"Once a dashboard variable is defined it can be used when defining dashboard panel queries. The same variable can be used in multiple queries and panels."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"For that, click on the \u201cVariable, select a variable defined in the dashboard\u201d in the query builder. Then select a specific variable from the list. Continue with the rest of the form as when selecting a specific device."}),"\n",(0,d.jsx)(a.p,{children:"The dashboard variable is now ready to use. Changing the device in the dashboard view will update the corresponding panels."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Creating panels",src:t(8738).A+"",width:"1148",height:"358"})})}),"\n",(0,d.jsx)(a.p,{children:"\u200d"})]})}function c(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,d.jsx)(a,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},6626:(e,a,t)=>{t.d(a,{A:()=>d});const d="data:image/png;base64,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"},8889:(e,a,t)=>{t.d(a,{A:()=>d});const d=t.p+"assets/images/documentation-dashboard-bd03c54ca3bd1c340036cd2959c69e10.png"},8738:(e,a,t)=>{t.d(a,{A:()=>d});const d=t.p+"assets/images/variable-selector-325584b3bed50c0d21980b618e372947.png"},8453:(e,a,t)=>{t.d(a,{R:()=>h,x:()=>n});var d=t(6540);const r={},s=d.createContext(r);function h(e){const a=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function n(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:h(e.components),d.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/75a8a8f3.ccbfd68f.js b/assets/js/75a8a8f3.ccbfd68f.js new file mode 100644 index 0000000..23f5f51 --- /dev/null +++ b/assets/js/75a8a8f3.ccbfd68f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[9814],{9015:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>h,contentTitle:()=>i,default:()=>c,frontMatter:()=>s,metadata:()=>n,toc:()=>o});var d=t(4848),r=t(8453);const s={sidebar_position:7,sidebar_label:"How to use dashboard variables"},i="How to use dashboard variables",n={id:"How-to guides/How to use dashboard variables",title:"How to use dashboard variables",description:"Introduction",source:"@site/docs/How-to guides/How to use dashboard variables.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7,sidebar_label:"How to use dashboard variables"},sidebar:"tutorialSidebar",previous:{title:"How to create a dashboard",permalink:"/docs/How-to guides/How to create a dashboard"},next:{title:"How to define alarm triggers",permalink:"/docs/How-to guides/How to define alarm and triggers"}},h={},o=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Define dashboard variables",id:"define-dashboard-variables",level:2},{value:"Use dashboard variables",id:"use-dashboard-variables",level:2}];function l(e){const a={h1:"h1",h2:"h2",img:"img",p:"p",...(0,r.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a.h1,{id:"how-to-use-dashboard-variables",children:"How to use dashboard variables"}),"\n",(0,d.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,d.jsx)(a.p,{children:"Dashboard variables allow users to make dashboard panels more dynamic. Instead of hardcoding specific devices in the panels, device selectors can be added to the dashboard. Those selectors are displayed in the main dashboard view, and the selected value can be changed by the final users at any time. Changing the value updates the data for all the panels that are using that variable."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"The dashboard variables are defined at dashboard level. Then they can be used when defining the panel queries."}),"\n",(0,d.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,d.jsx)(a.p,{children:"The dashboard has to be pre-created, and at least one device is needed."}),"\n",(0,d.jsx)(a.h2,{id:"define-dashboard-variables",children:"Define dashboard variables"}),"\n",(0,d.jsx)(a.p,{children:"The variables are created from the dashboard edition view. For that click on the \u201cpencil\u201d icon in the dashboard toolbar."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Dashboard Toolbars",src:t(6626).A+"",width:"537",height:"135"})})}),"\n",(0,d.jsx)(a.p,{children:"Creating a variable only requires specifying a name and selecting a device-type."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"The dashboard variables are always device-type specific to ensure that all the selectable devices are compatible with the dashboard panel queries in which the variable is used."}),"\n",(0,d.jsx)(a.p,{children:"When entering the device type, the panels that use this variable will use this device by default. But in the dashboard toolbar you can select any other device of the same type, and display the data of that other device instead."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Documentation Dasboard",src:t(8889).A+"",width:"480",height:"270"})})}),"\n",(0,d.jsx)(a.p,{children:"Up to 4 variables can be defined."}),"\n",(0,d.jsx)(a.h2,{id:"use-dashboard-variables",children:"Use dashboard variables"}),"\n",(0,d.jsx)(a.p,{children:"Once a dashboard variable is defined it can be used when defining dashboard panel queries. The same variable can be used in multiple queries and panels."}),"\n",(0,d.jsx)("br",{}),"\n",(0,d.jsx)(a.p,{children:"For that, click on the \u201cVariable, select a variable defined in the dashboard\u201d in the query builder. Then select a specific variable from the list. Continue with the rest of the form as when selecting a specific device."}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Creating panels",src:t(8738).A+"",width:"1148",height:"358"})})}),"\n",(0,d.jsx)(a.p,{children:"\u200d\nThe dashboard variable is now ready to use. Changing the device in the dashboard view will update the corresponding panels."}),"\n",(0,d.jsx)(a.p,{children:"This is what a new panel would look like using variables:"}),"\n",(0,d.jsx)("div",{class:"tutorial-image-container",children:(0,d.jsx)(a.p,{children:(0,d.jsx)(a.img,{alt:"Creating panels",src:t(6814).A+"",width:"452",height:"313"})})}),"\n",(0,d.jsx)(a.p,{children:"\u200d"})]})}function c(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,d.jsx)(a,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}},6626:(e,a,t)=>{t.d(a,{A:()=>d});const d="data:image/png;base64,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"},8889:(e,a,t)=>{t.d(a,{A:()=>d});const d=t.p+"assets/images/documentation-dashboard-bd03c54ca3bd1c340036cd2959c69e10.png"},8738:(e,a,t)=>{t.d(a,{A:()=>d});const d=t.p+"assets/images/variable-selector-325584b3bed50c0d21980b618e372947.png"},6814:(e,a,t)=>{t.d(a,{A:()=>d});const d=t.p+"assets/images/with-variables-92f0f92646733fea74ffb0fff1b9e6d5.png"},8453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>n});var d=t(6540);const r={},s=d.createContext(r);function i(e){const a=d.useContext(s);return d.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function n(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),d.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/842fc954.6284c7eb.js b/assets/js/842fc954.6284c7eb.js deleted file mode 100644 index 6e3d42d..0000000 --- a/assets/js/842fc954.6284c7eb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[4712],{6155:(e,A,t)=>{t.r(A),t.d(A,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>i,metadata:()=>r,toc:()=>o});var a=t(4848),n=t(8453);const i={sidebar_position:3,sidebar_label:"How to create a schema - setup apllication to ingest certain data"},s="How to create a schema",r={id:"How-to guides/How to create a schema",title:"How to create a schema",description:"Introduction",source:"@site/docs/How-to guides/How to create a schema.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to create a schema",permalink:"/docs/How-to guides/How to create a schema",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"How to create a schema - setup apllication to ingest certain data"},sidebar:"tutorialSidebar",previous:{title:"How to register devices",permalink:"/docs/How-to guides/How to register devices"},next:{title:"How to publish device data using MQTT - setup devices to send data",permalink:"/docs/How-to guides/How to publish device data"}},c={},o=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Creating a schema",id:"creating-a-schema",level:2},{value:"Create a schema using the text editor",id:"create-a-schema-using-the-text-editor",level:2}];function d(e){const A={h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(A.h1,{id:"how-to-create-a-schema",children:"How to create a schema"}),"\n",(0,a.jsx)(A.h2,{id:"introduction",children:"Introduction"}),"\n",(0,a.jsx)(A.p,{children:"When data arrives into Biotz's ingestion system, the received package of data is checked against schemas defined in Biotz. These schemas are the definition of the content of the data package and the user must take care of defining them in the system."}),"\n",(0,a.jsx)(A.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,a.jsx)(A.p,{children:"In order to create a schema having a deceive-type with at least one message type is required. A schema is directly related to device-type, there can be zero to many schemas."}),"\n",(0,a.jsx)(A.h2,{id:"creating-a-schema",children:"Creating a schema"}),"\n",(0,a.jsx)(A.p,{children:"Schemas are created from the Setup > Data ingestion flow > Device-type > Message-type \u201cNew schema\u201d"}),"\n",(0,a.jsx)("div",{class:"tutorial-image-container",children:(0,a.jsx)(A.p,{children:(0,a.jsx)(A.img,{alt:"Creating a schema",src:t(3655).A+"",width:"989",height:"461"})})}),"\n",(0,a.jsx)(A.p,{children:"When clicking on \u201cNew schema\u201d an empty schema is created."}),"\n",(0,a.jsx)("div",{class:"tutorial-image-container",children:(0,a.jsx)(A.p,{children:(0,a.jsx)(A.img,{alt:"New schema",src:t(764).A+"",width:"989",height:"418"})})}),"\n",(0,a.jsx)(A.p,{children:"First thing will be giving a name to the schema, the purpose of this is just to identify it, it is not further used in the communication or data sending."}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(A.p,{children:"After naming the schema the proper and important specification happens under the \u2018Schema definition\u2019 section. It is time to let Biotz know how the sending data is structured. Once \u2018Add new item\u2019 is selected, a set of different item types are offered to cover almost all the data sending options:"}),"\n",(0,a.jsx)("div",{class:"tutorial-image-container",children:(0,a.jsx)(A.p,{children:(0,a.jsx)(A.img,{alt:"Item types",src:t(3051).A+"",width:"1206",height:"640"})})}),"\n",(0,a.jsxs)(A.p,{children:["Detailed specification of the item types is shared in ",(0,a.jsx)("a",{href:"/docs/Reference guides/Message-type Schema specification",target:"_self",children:"here"}),".\n\u200d"]}),"\n",(0,a.jsxs)(A.ul,{children:["\n",(0,a.jsx)(A.li,{children:"Collection of identical items: collection of more than one identical item. Being an item anything from an object/map/dictionary to singular element as a text, boolean, integer or decimal."}),"\n",(0,a.jsx)(A.li,{children:"Collection of unrelated items: collection of any kind of item, present just once."}),"\n",(0,a.jsx)(A.li,{children:"Object / Map / Dictionary: They are containers of the final properties, as the collection type items. 1 to n items can be added to this one, they are grouped in two types based on the data needed to define them:"}),"\n",(0,a.jsx)(A.li,{children:"Unix timestamp (integer)"}),"\n",(0,a.jsx)(A.li,{children:"Unix timestamp (text)"}),"\n",(0,a.jsx)(A.li,{children:"Unix timestamp RFC-3339"}),"\n",(0,a.jsx)(A.li,{children:"Text"}),"\n",(0,a.jsx)(A.li,{children:"Boolean"}),"\n",(0,a.jsx)(A.li,{children:"Integer"}),"\n",(0,a.jsx)(A.li,{children:"Integer, as text"}),"\n",(0,a.jsx)(A.li,{children:"Integer, as hexadecimal text"}),"\n",(0,a.jsx)(A.li,{children:"Decimal"}),"\n",(0,a.jsx)(A.li,{children:"Decimal, as text"}),"\n"]}),"\n",(0,a.jsx)(A.p,{children:"These are the descriptions of each of the parameters of an item:"}),"\n",(0,a.jsxs)(A.ul,{children:["\n",(0,a.jsx)(A.li,{children:"Item type: the type of the element in the payload."}),"\n",(0,a.jsx)(A.li,{children:"Key name: key name in the object/dictionary."}),"\n",(0,a.jsx)(A.li,{children:"Item name: the name of the column where this data will be stored."}),"\n",(0,a.jsx)(A.li,{children:"Mandatory?"}),"\n",(0,a.jsx)(A.li,{children:"Can be null?"}),"\n"]}),"\n",(0,a.jsx)("div",{class:"tutorial-image-container",children:(0,a.jsx)(A.p,{children:(0,a.jsx)(A.img,{alt:"parameters",src:t(3418).A+"",width:"979",height:"136"})})}),"\n",(0,a.jsx)(A.p,{children:"Timestamp ones, the same as the rest with an extra one:"}),"\n",(0,a.jsxs)(A.ul,{children:["\n",(0,a.jsx)(A.li,{children:"Payload timestamp?: to be marked if this is the timestamp Biotz should use for the time series date mark."}),"\n"]}),"\n",(0,a.jsx)("div",{class:"tutorial-image-container",children:(0,a.jsx)(A.p,{children:(0,a.jsx)(A.img,{alt:"Payload Timestamp",src:t(6341).A+"",width:"979",height:"136"})})}),"\n",(0,a.jsx)(A.p,{children:"Once the schema is totally represented the \u2018save\u2019 button will register the schema. This will create the necessary machinery for the data validation and ingestion, it will also create the needed database structure for the data to be stored."}),"\n",(0,a.jsx)(A.h2,{id:"create-a-schema-using-the-text-editor",children:"Create a schema using the text editor"}),"\n",(0,a.jsx)(A.p,{children:"Apart from the interactive user interface to register a schema, there is a editor mode to perform the same task."}),"\n",(0,a.jsx)(A.p,{children:"The editor mode provides a more flexible way of registering a schema, but requires advanced knowledge of the structure it must follow."}),"\n",(0,a.jsx)(A.p,{children:"It can also be used to get a plain text description of the schema that can be copied and saved to local files."}),"\n",(0,a.jsx)(A.p,{children:"The scheme must be a valid schema to be able to 'save' it."}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsxs)(A.p,{children:["Next step should be setting up the other piece of the communication, the device. This ",(0,a.jsx)("a",{href:"./How to publish device data",target:"_self",children:"other"}),"\nhow-to guide talks about it."]}),"\n",(0,a.jsx)(A.p,{children:"\u200d"})]})}function l(e={}){const{wrapper:A}={...(0,n.R)(),...e.components};return A?(0,a.jsx)(A,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},3655:(e,A,t)=>{t.d(A,{A:()=>a});const a=t.p+"assets/images/creating-schema-5f711220394c7af9927d860f5f60e65f.png"},3051:(e,A,t)=>{t.d(A,{A:()=>a});const a=t.p+"assets/images/item-types-8cbacb7885eed1e065059a63cb7ac6ea.png"},764:(e,A,t)=>{t.d(A,{A:()=>a});const a=t.p+"assets/images/new-schema-8501d9e7e576be722e3a335942a3a475.png"},3418:(e,A,t)=>{t.d(A,{A:()=>a});const a="data:image/png;base64,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"},6341:(e,A,t)=>{t.d(A,{A:()=>a});const a=t.p+"assets/images/payload-timestamp-f3c66893dd165c2646d87dfef87dcd2e.png"},8453:(e,A,t)=>{t.d(A,{R:()=>s,x:()=>r});var a=t(6540);const n={},i=a.createContext(n);function s(e){const A=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(A):{...A,...e}}),[A,e])}function r(e){let A;return A=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),a.createElement(i.Provider,{value:A},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/842fc954.6c6b9684.js b/assets/js/842fc954.6c6b9684.js new file mode 100644 index 0000000..2e86df9 --- /dev/null +++ b/assets/js/842fc954.6c6b9684.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[4712],{6155:(e,t,A)=>{A.r(t),A.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>o});var n=A(4848),i=A(8453);const a={sidebar_position:3,sidebar_label:"How to create a schema - setup apllication to ingest certain data"},s="How to create a schema",r={id:"How-to guides/How to create a schema",title:"How to create a schema",description:"Introduction",source:"@site/docs/How-to guides/How to create a schema.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to create a schema",permalink:"/docs/How-to guides/How to create a schema",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,sidebar_label:"How to create a schema - setup apllication to ingest certain data"},sidebar:"tutorialSidebar",previous:{title:"How to register devices",permalink:"/docs/How-to guides/How to register devices"},next:{title:"How to publish device data using MQTT - setup devices to send data",permalink:"/docs/How-to guides/How to publish device data"}},d={},o=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Creating a schema",id:"creating-a-schema",level:2},{value:"Data tranformation",id:"data-tranformation",level:3},{value:"Create a schema using the text editor",id:"create-a-schema-using-the-text-editor",level:2}];function c(e){const t={h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"how-to-create-a-schema",children:"How to create a schema"}),"\n",(0,n.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.p,{children:"When data arrives into Biotz's ingestion system, the received package of data is checked against schemas defined in Biotz. These schemas are the definition of the content of the data package and the user must take care of defining them in the system."}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsx)(t.p,{children:"In order to create a schema having a deceive-type with at least one message type is required. A schema is directly related to device-type, there can be zero to many schemas."}),"\n",(0,n.jsx)(t.h2,{id:"creating-a-schema",children:"Creating a schema"}),"\n",(0,n.jsx)(t.p,{children:"Schemas are created from the Setup > Data ingestion flow > Device-type > Message-type \u201cNew schema\u201d"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Creating a schema",src:A(3655).A+"",width:"989",height:"461"})})}),"\n",(0,n.jsx)(t.p,{children:"When clicking on \u201cNew schema\u201d an empty schema is created."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"New schema",src:A(764).A+"",width:"989",height:"418"})})}),"\n",(0,n.jsx)(t.p,{children:"First thing will be giving a name to the schema, the purpose of this is just to identify it, it is not further used in the communication or data sending."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(t.p,{children:"After naming the schema the proper and important specification happens under the \u2018Schema definition\u2019 section. It is time to let Biotz know how the sending data is structured. Once \u2018Add new item\u2019 is selected, a set of different item types are offered to cover almost all the data sending options:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Item types",src:A(3051).A+"",width:"1206",height:"640"})})}),"\n",(0,n.jsxs)(t.p,{children:["Detailed specification of the item types is shared in ",(0,n.jsx)("a",{href:"/docs/Reference guides/Message-type Schema specification",target:"_self",children:"here"}),".\n\u200d"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Collection of identical items: collection of more than one identical item. Being an item anything from an object/map/dictionary to singular element as a text, boolean, integer or decimal."}),"\n",(0,n.jsx)(t.li,{children:"Collection of unrelated items: collection of any kind of item, present just once."}),"\n",(0,n.jsx)(t.li,{children:"Object / Map / Dictionary: They are containers of the final properties, as the collection type items. 1 to n items can be added to this one, they are grouped in two types based on the data needed to define them:"}),"\n",(0,n.jsx)(t.li,{children:"Unix timestamp (integer)"}),"\n",(0,n.jsx)(t.li,{children:"Unix timestamp (text)"}),"\n",(0,n.jsx)(t.li,{children:"Unix timestamp RFC-3339"}),"\n",(0,n.jsx)(t.li,{children:"Text"}),"\n",(0,n.jsx)(t.li,{children:"Boolean"}),"\n",(0,n.jsx)(t.li,{children:"Integer"}),"\n",(0,n.jsx)(t.li,{children:"Integer, as text"}),"\n",(0,n.jsx)(t.li,{children:"Integer, as hexadecimal text"}),"\n",(0,n.jsx)(t.li,{children:"Decimal"}),"\n",(0,n.jsx)(t.li,{children:"Decimal, as text"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"These are the descriptions of each of the parameters of an item:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Item type: the type of the element in the payload."}),"\n",(0,n.jsx)(t.li,{children:"Key name: key name in the object/dictionary."}),"\n",(0,n.jsx)(t.li,{children:"Item name: the name of the column where this data will be stored."}),"\n",(0,n.jsx)(t.li,{children:"Mandatory?"}),"\n",(0,n.jsx)(t.li,{children:"Can be null?"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"parameters",src:A(3418).A+"",width:"979",height:"136"})})}),"\n",(0,n.jsx)(t.p,{children:"Timestamp ones, the same as the rest with an extra one:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Payload timestamp?: to be marked if this is the timestamp Biotz should use for the time series date mark."}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Payload Timestamp",src:A(6341).A+"",width:"979",height:"136"})})}),"\n",(0,n.jsx)(t.h3,{id:"data-tranformation",children:"Data tranformation"}),"\n",(0,n.jsx)(t.p,{children:"This would be a data transformation functionality during ingestion, which now includes advanced options such as the application of scaling and offsetting. This feature allows users to adjust their data more precisely during the ingestion process, this will be applicable to integers and decimals."}),"\n",(0,n.jsx)(t.p,{children:"How to Use the Functionality"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Step 1: Access the Ingestion Configuration"}),'\nNavigate to the data ingestion module in the Biotz platform.\nSelect the "Data Transformation" option clicking where it says "fx": will only appear on click when having selected, integer, integer as text, integer as hexadecimal text, decimal and decimal as text.']}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Creating panels",src:A(3986).A+"",width:"528",height:"119"})})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Step 2: Define Transformation Rules with Scale and Offset"})}),"\n",(0,n.jsx)(t.p,{children:'Click on "Tranformation type".\nSelect the type of transformation you want to apply, you can only choose scale and offset.\nConfigure the specific parameters of the transformation.'}),"\n",(0,n.jsx)(t.p,{children:"For example:"}),"\n",(0,n.jsx)(t.p,{children:"Scale: 1.5\nOffset: -2\nThis means that each data value will be multiplied by 1.5 and then 2 will be subtracted."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Creating panels",src:A(9569).A+"",width:"692",height:"276"})})}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"Step 3: Apply Transformations"})}),"\n",(0,n.jsx)(t.p,{children:"Associate the defined transformation rules with the data ingestion flow."}),"\n",(0,n.jsx)(t.p,{children:"Once the schema is totally represented the \u2018save\u2019 button will register the schema. This will create the necessary machinery for the data validation and ingestion, it will also create the needed database structure for the data to be stored."}),"\n",(0,n.jsx)(t.h2,{id:"create-a-schema-using-the-text-editor",children:"Create a schema using the text editor"}),"\n",(0,n.jsx)(t.p,{children:"Apart from the interactive user interface to register a schema, there is a editor mode to perform the same task."}),"\n",(0,n.jsx)(t.p,{children:"The editor mode provides a more flexible way of registering a schema, but requires advanced knowledge of the structure it must follow."}),"\n",(0,n.jsx)(t.p,{children:"It can also be used to get a plain text description of the schema that can be copied and saved to local files."}),"\n",(0,n.jsx)(t.p,{children:"The scheme must be a valid schema to be able to 'save' it."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsxs)(t.p,{children:["Next step should be setting up the other piece of the communication, the device. This ",(0,n.jsx)("a",{href:"./How to publish device data",target:"_self",children:"other"}),"\nhow-to guide talks about it."]}),"\n",(0,n.jsx)(t.p,{children:"\u200d"})]})}function l(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},3986:(e,t,A)=>{A.d(t,{A:()=>n});const n="data:image/png;base64,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"},3655:(e,t,A)=>{A.d(t,{A:()=>n});const n=A.p+"assets/images/creating-schema-5f711220394c7af9927d860f5f60e65f.png"},3051:(e,t,A)=>{A.d(t,{A:()=>n});const n=A.p+"assets/images/item-types-8cbacb7885eed1e065059a63cb7ac6ea.png"},764:(e,t,A)=>{A.d(t,{A:()=>n});const n=A.p+"assets/images/new-schema-8501d9e7e576be722e3a335942a3a475.png"},3418:(e,t,A)=>{A.d(t,{A:()=>n});const n="data:image/png;base64,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"},6341:(e,t,A)=>{A.d(t,{A:()=>n});const n=A.p+"assets/images/payload-timestamp-f3c66893dd165c2646d87dfef87dcd2e.png"},9569:(e,t,A)=>{A.d(t,{A:()=>n});const n=A.p+"assets/images/transformation-bb3024fee6bcec263baabe0e53b8ab6b.png"},8453:(e,t,A)=>{A.d(t,{R:()=>s,x:()=>r});var n=A(6540);const i={},a=n.createContext(i);function s(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f5546e3f.0cc3fb80.js b/assets/js/f5546e3f.00620e30.js similarity index 60% rename from assets/js/f5546e3f.0cc3fb80.js rename to assets/js/f5546e3f.00620e30.js index 4703622..2a7e4a2 100644 --- a/assets/js/f5546e3f.0cc3fb80.js +++ b/assets/js/f5546e3f.00620e30.js @@ -1 +1 @@ -"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[6363],{250:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>d,contentTitle:()=>s,default:()=>o,frontMatter:()=>l,metadata:()=>r,toc:()=>h});var n=i(4848),t=i(8453);const l={sidebar_position:6,sidebar_label:"How to create a dashboard"},s="How to create a dashboard",r={id:"How-to guides/How to create a dashboard",title:"How to create a dashboard",description:"Introduction",source:"@site/docs/How-to guides/How to create a dashboard.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to create a dashboard",permalink:"/docs/How-to guides/How to create a dashboard",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,sidebar_label:"How to create a dashboard"},sidebar:"tutorialSidebar",previous:{title:"How to configure and trigger a remote action in devices",permalink:"/docs/How-to guides/How to configure and trigger a remote action in devices"},next:{title:"How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables"}},d={},h=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Creating a dashboard",id:"creating-a-dashboard",level:2},{value:"Creating panels",id:"creating-panels",level:2},{value:"General information",id:"general-information",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Time series",id:"time-series",level:3},{value:"Query builder",id:"query-builder",level:5},{value:"Appearance",id:"appearance",level:4},{value:"Gauge",id:"gauge",level:3},{value:"Query builder",id:"query-builder-1",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods",level:5},{value:"Appearance",id:"appearance-1",level:4},{value:"Pie chart",id:"pie-chart",level:3},{value:"Query builder",id:"query-builder-2",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods-1",level:4},{value:"Appearance",id:"appearance-2",level:4},{value:"State chart",id:"state-chart",level:3},{value:"Query builder",id:"query-builder-3",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods-2",level:5},{value:"Appearance",id:"appearance-3",level:4},{value:"Device map",id:"device-map",level:3},{value:"Query builder",id:"query-builder-4",level:4},{value:"Query Builder Functionality:",id:"query-builder-functionality",level:5},{value:"Device Type Selection:",id:"device-type-selection",level:5}];function c(e){const a={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.h1,{id:"how-to-create-a-dashboard",children:"How to create a dashboard"}),"\n",(0,n.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(a.p,{children:"Biotz provides a dashboarding tool that can be used to visualize the data coming from the devices."}),"\n",(0,n.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsx)(a.p,{children:"In order to create a dashboard having a device-type with at least one message type and schema is required. Having a device that has already sent some data is also recommended to visualize the created panels straight away and have a faster feedback loop."}),"\n",(0,n.jsx)(a.h2,{id:"creating-a-dashboard",children:"Creating a dashboard"}),"\n",(0,n.jsx)(a.p,{children:"Dashboards are created from the \u201cDashboards\u201d list. Just a name and an optional description are requested."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Dashboards",src:i(7173).A+"",width:"681",height:"430"})})}),"\n",(0,n.jsx)(a.p,{children:"When clicking on \u201ccreate\u201d an empty dashboard is created."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Empty dashboard",src:i(2968).A+"",width:"1600",height:"460"})})}),"\n",(0,n.jsx)(a.h2,{id:"creating-panels",children:"Creating panels"}),"\n",(0,n.jsx)(a.p,{children:"A dashboard is composed of one or more panels. To create a new one use the \u201cNew panel\u201d button and select the type of panel to create."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"At the moment the available panel types are the following: time-series, pie chart, gauge and device map."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(5395).A+"",width:"1600",height:"698"})})}),"\n",(0,n.jsx)(a.h3,{id:"general-information",children:"General information"}),"\n",(0,n.jsx)(a.p,{children:"Name the panel and optionally set a description."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.h3,{id:"configuration",children:"Configuration"}),"\n",(0,n.jsx)(a.p,{children:"(make this type dependent)"}),"\n",(0,n.jsx)(a.h3,{id:"time-series",children:"Time series"}),"\n",(0,n.jsx)(a.h5,{id:"query-builder",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the panel display. The x-axis will always be the time, and the y axis will contain one or more time-series lines. Each line is defined by an independent query."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"Defining a query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each line in the chart can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each line in the chart can show the data of a single message type attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The method used to aggregate the devices data to adapt the number of displayed points to the user's screen size and zoom level."}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.strong,{children:"Attribute type and Available aggregation methods"})}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, and sum."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count"}),"\n",(0,n.jsx)(a.li,{children:"Text: Count"}),"\n"]}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"The reason for aggregating the data is performance. Lets say a certain device is sending data observations every second, and the user wants to display the data of a whole month. That would result in 2,678,400 data points. Displaying so many data points would be technically impossible for the browser because of the limited amount of pixels that a screen can display. Also, it would be very CPU heavy. To avoid that, the dashboard panel aggregates data to adapt to the screen size and chosen zoom level."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(3618).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.h4,{id:"appearance",children:"Appearance"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7728).A+"",width:"1210",height:"613"})})}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"X axis title"}),"\n",(0,n.jsx)(a.li,{children:"Y axis title"}),"\n",(0,n.jsx)(a.li,{children:"Series appearance (configurable for each of them)"}),"\n",(0,n.jsx)(a.li,{children:"Display name"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n",(0,n.jsx)(a.li,{children:"Dash style"}),"\n",(0,n.jsx)(a.li,{children:"Marker symbol"}),"\n",(0,n.jsx)(a.li,{children:"Enable/disable legend"}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"This woul be an example of a time series panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7987).A+"",width:"461",height:"335"})})}),"\n",(0,n.jsx)(a.h3,{id:"gauge",children:"Gauge"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-1",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the gauge display. A gauge shows the aggregation of a certain device message-type attribute in the selected time-frame period."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(5736).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each gauge can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each gauge can work with a single attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"attribute-type-and-available-aggregation-methods",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-1",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Min value"}),"\n",(0,n.jsx)(a.li,{children:"Max value"}),"\n",(0,n.jsx)(a.li,{children:"Unit"}),"\n",(0,n.jsx)(a.li,{children:"Thresholds: the gauge can represent multiple threshold values using colors."}),"\n",(0,n.jsx)(a.li,{children:"Percentage"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7710).A+"",width:"1152",height:"299"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an exaple of a gauge panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(2634).A+"",width:"457",height:"317"})})}),"\n",(0,n.jsx)(a.h3,{id:"pie-chart",children:"Pie chart"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-2",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the pie chart display. Each segment of the pie is defined by an independent query that displays the aggregation of a certain device message type attribute."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(4776).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each pie segment can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable\n(see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each pie segment can work with a single attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"attribute-type-and-available-aggregation-methods-1",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-2",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Enable/disable legend"}),"\n",(0,n.jsx)(a.li,{children:"Enable/disable data-labels"}),"\n",(0,n.jsx)(a.li,{children:"Segments appearance"}),"\n",(0,n.jsx)(a.li,{children:"Display name"}),"\n",(0,n.jsx)(a.li,{children:"Color\n\u200d"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(1606).A+"",width:"1152",height:"299"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a pie chart panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(2093).A+"",width:"461",height:"344"})})}),"\n",(0,n.jsx)(a.h3,{id:"state-chart",children:"State chart"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-3",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the state chart display. Each chart can show the data from one variable."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6077).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"attribute-type-and-available-aggregation-methods-2",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-3",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Enable/disable value with unit marker."}),"\n",(0,n.jsx)(a.li,{children:"Conditions for different styles, applies the first that's true"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n",(0,n.jsx)(a.li,{children:"Text to display"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6407).A+"",width:"1164",height:"362"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a state chart panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6331).A+"",width:"462",height:"341"})})}),"\n",(0,n.jsx)(a.h3,{id:"device-map",children:"Device map"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-4",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the device map show."}),"\n",(0,n.jsx)(a.h5,{id:"query-builder-functionality",children:"Query Builder Functionality:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(514).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"In the query builder, you can first choose the type of device or have the option to select all devices. If you choose to select a specific device, you can name the type of device."}),"\n",(0,n.jsx)(a.li,{children:"In the appearance section, you cannot make any changes because The appearance of the panel cannot be configured."}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"device-type-selection",children:"Device Type Selection:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"After choosing the device type you want, you can save the panel, and it should appear on the dashboard with a map and the selected device types."}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a device map panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(7109).A+"",width:"620",height:"451"})})}),"\n",(0,n.jsx)(a.p,{children:"After creating one of these panels, you should select the dashboard for which you have created the panel, and you should see all the panels you have created for that dashboard. The panels vary depending on the type of panel and its configuration."})]})}function o(e={}){const{wrapper:a}={...(0,t.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},7710:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-gauge-840e14449c4e81361c2e1995628f9b00.png"},1606:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-pie-chart-2de0d52a02b4fefdb8ff5697b1111735.png"},6407:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-state-chart-bb2c541fda01a18ca96f91cfa4c98a74.png"},7728:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-12c7bb21cf25f28de36f919329a9886c.png"},5395:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/creating-panels-d690a4852755653dc95ba94237e71e5f.png"},7173:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/dashboards-fe506ed19f8bd0d7466a73e9365b4df2.png"},7109:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/device-map-c0afd4af6a8f7be21e7e3c0dadafeb59.png"},2968:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/empty-dashboard-8e6228026c297301c9ed2d262d10a1a0.png"},2634:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/gauge-52ae6f7980253334b74409783f763040.png"},2093:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/pie-chart-06c856df0d257654cd544c2195fdfaf4.png"},514:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-device-map-28de35f7a0a6bafea5becce573256993.png"},5736:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-gauge-a8b95a5cb9cf5bca0e31fb40a2bd9d07.png"},4776:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-pie-chart-40b85d3548fd3637e7d2f15e33986bfc.png"},6077:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-state-chart-1bfe6c538aece965dba410358f263839.png"},3618:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-time-series-bddd971e0a35d433ace8721861687447.png"},6331:(e,a,i)=>{i.d(a,{A:()=>n});const n="data:image/png;base64,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"},7987:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/time-series-ccd82d7b9d1311e8f87c44192bb9a82d.png"},8453:(e,a,i)=>{i.d(a,{R:()=>s,x:()=>r});var n=i(6540);const t={},l=n.createContext(t);function s(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkacademy=self.webpackChunkacademy||[]).push([[6363],{250:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>d,contentTitle:()=>s,default:()=>o,frontMatter:()=>l,metadata:()=>r,toc:()=>h});var n=i(4848),t=i(8453);const l={sidebar_position:6,sidebar_label:"How to create a dashboard"},s="How to create a dashboard",r={id:"How-to guides/How to create a dashboard",title:"How to create a dashboard",description:"Introduction",source:"@site/docs/How-to guides/How to create a dashboard.md",sourceDirName:"How-to guides",slug:"/How-to guides/How to create a dashboard",permalink:"/docs/How-to guides/How to create a dashboard",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,sidebar_label:"How to create a dashboard"},sidebar:"tutorialSidebar",previous:{title:"How to configure and trigger a remote action in devices",permalink:"/docs/How-to guides/How to configure and trigger a remote action in devices"},next:{title:"How to use dashboard variables",permalink:"/docs/How-to guides/How to use dashboard variables"}},d={},h=[{value:"Introduction",id:"introduction",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Creating a dashboard",id:"creating-a-dashboard",level:2},{value:"Creating panels",id:"creating-panels",level:2},{value:"General information",id:"general-information",level:3},{value:"Configuration",id:"configuration",level:3},{value:"Time series",id:"time-series",level:3},{value:"Query builder",id:"query-builder",level:5},{value:"Appearance",id:"appearance",level:4},{value:"Gauge",id:"gauge",level:3},{value:"Query builder",id:"query-builder-1",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods",level:5},{value:"Appearance",id:"appearance-1",level:4},{value:"Pie chart",id:"pie-chart",level:3},{value:"Query builder",id:"query-builder-2",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods-1",level:4},{value:"Appearance",id:"appearance-2",level:4},{value:"State chart",id:"state-chart",level:3},{value:"Query builder",id:"query-builder-3",level:4},{value:"Attribute type and Available aggregation methods",id:"attribute-type-and-available-aggregation-methods-2",level:5},{value:"Appearance",id:"appearance-3",level:4},{value:"Device map",id:"device-map",level:3},{value:"Query builder",id:"query-builder-4",level:4},{value:"Query Builder Functionality:",id:"query-builder-functionality",level:5},{value:"Device Type Selection:",id:"device-type-selection",level:5}];function c(e){const a={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.h1,{id:"how-to-create-a-dashboard",children:"How to create a dashboard"}),"\n",(0,n.jsx)(a.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(a.p,{children:"Biotz provides a dashboarding tool that can be used to visualize the data coming from the devices."}),"\n",(0,n.jsx)(a.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsx)(a.p,{children:"In order to create a dashboard having a device-type with at least one message type and schema is required. Having a device that has already sent some data is also recommended to visualize the created panels straight away and have a faster feedback loop."}),"\n",(0,n.jsx)(a.h2,{id:"creating-a-dashboard",children:"Creating a dashboard"}),"\n",(0,n.jsx)(a.p,{children:"Dashboards are created from the \u201cDashboards\u201d list. Just a name and an optional description are requested."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Dashboards",src:i(7173).A+"",width:"681",height:"430"})})}),"\n",(0,n.jsx)(a.p,{children:"When clicking on \u201ccreate\u201d an empty dashboard is created."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Empty dashboard",src:i(2968).A+"",width:"1600",height:"460"})})}),"\n",(0,n.jsx)(a.h2,{id:"creating-panels",children:"Creating panels"}),"\n",(0,n.jsx)(a.p,{children:"A dashboard is composed of one or more panels. To create a new one use the \u201cNew panel\u201d button and select the type of panel to create."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"At the moment the available panel types are the following: time-series, pie chart, gauge and device map."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(5395).A+"",width:"1600",height:"698"})})}),"\n",(0,n.jsx)(a.h3,{id:"general-information",children:"General information"}),"\n",(0,n.jsx)(a.p,{children:"Name the panel and optionally set a description."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.h3,{id:"configuration",children:"Configuration"}),"\n",(0,n.jsx)(a.p,{children:"(make this type dependent)"}),"\n",(0,n.jsx)(a.h3,{id:"time-series",children:"Time series"}),"\n",(0,n.jsx)(a.h5,{id:"query-builder",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the panel display. The x-axis will always be the time, and the y axis will contain one or more time-series lines. Each line is defined by an independent query."}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"Defining a query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each line in the chart can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each line in the chart can show the data of a single message type attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The method used to aggregate the devices data to adapt the number of displayed points to the user's screen size and zoom level."}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.strong,{children:"Attribute type and Available aggregation methods"})}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, and sum."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count"}),"\n",(0,n.jsx)(a.li,{children:"Text: Count"}),"\n"]}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(a.p,{children:"The reason for aggregating the data is performance. Lets say a certain device is sending data observations every second, and the user wants to display the data of a whole month. That would result in 2,678,400 data points. Displaying so many data points would be technically impossible for the browser because of the limited amount of pixels that a screen can display. Also, it would be very CPU heavy. To avoid that, the dashboard panel aggregates data to adapt to the screen size and chosen zoom level."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(3618).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.h4,{id:"appearance",children:"Appearance"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7728).A+"",width:"1210",height:"613"})})}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"X axis title"}),"\n",(0,n.jsx)(a.li,{children:"Y axis title"}),"\n",(0,n.jsx)(a.li,{children:"Series appearance (configurable for each of them)"}),"\n",(0,n.jsx)(a.li,{children:"Display name"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n",(0,n.jsx)(a.li,{children:"Dash style"}),"\n",(0,n.jsx)(a.li,{children:"Marker symbol"}),"\n",(0,n.jsx)(a.li,{children:"Enable/disable legend"}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"This woul be an example of a time series panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7987).A+"",width:"461",height:"335"})})}),"\n",(0,n.jsx)(a.h3,{id:"gauge",children:"Gauge"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-1",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the gauge display. A gauge shows the aggregation of a certain device message-type attribute in the selected time-frame period."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(5736).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each gauge can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each gauge can work with a single attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"attribute-type-and-available-aggregation-methods",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-1",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Min value"}),"\n",(0,n.jsx)(a.li,{children:"Max value"}),"\n",(0,n.jsx)(a.li,{children:"Unit"}),"\n",(0,n.jsx)(a.li,{children:"Thresholds: the gauge can represent multiple threshold values using colors."}),"\n",(0,n.jsx)(a.li,{children:"Percentage"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(7710).A+"",width:"1152",height:"299"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an exaple of a gauge panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(2634).A+"",width:"457",height:"317"})})}),"\n",(0,n.jsx)(a.h3,{id:"pie-chart",children:"Pie chart"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-2",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the pie chart display. Each segment of the pie is defined by an independent query that displays the aggregation of a certain device message type attribute."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(4776).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. Each pie segment can show the data of a single device. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable\n(see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute. Each pie segment can work with a single attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"attribute-type-and-available-aggregation-methods-1",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-2",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Enable/disable legend"}),"\n",(0,n.jsx)(a.li,{children:"Enable/disable data-labels"}),"\n",(0,n.jsx)(a.li,{children:"Segments appearance"}),"\n",(0,n.jsx)(a.li,{children:"Display name"}),"\n",(0,n.jsx)(a.li,{children:"Color\n\u200d"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(1606).A+"",width:"1152",height:"299"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a pie chart panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(2093).A+"",width:"461",height:"344"})})}),"\n",(0,n.jsx)(a.h3,{id:"state-chart",children:"State chart"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-3",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the state chart display. Each chart can show the data from one variable."}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6077).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Selecting a device or device variable. The device to be used can be fixed and defined at panel creation time, or determined by a dashboard variable (see ",(0,n.jsx)("a",{href:"./How to use dashboard variables",target:"_self",children:"this"})," for more info)."]}),"\n",(0,n.jsx)(a.li,{children:"Message type and attribute."}),"\n",(0,n.jsx)(a.li,{children:"Aggregation method. The data for the selected device and attribute will be aggregated using this method. Note that the special \u201cfirst\u201d and \u201clast\u201d aggregation methods are also available that show a single data point.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"attribute-type-and-available-aggregation-methods-2",children:"Attribute type and Available aggregation methods"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Numeric: Count, maximum, minimum, mean, standard deviation, sum, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Boolean: Count, first and last."}),"\n",(0,n.jsx)(a.li,{children:"Text: Count, first and last.\n\u200d"}),"\n"]}),"\n",(0,n.jsx)(a.h4,{id:"appearance-3",children:"Appearance"}),"\n",(0,n.jsx)(a.p,{children:"The following appearance related options are available:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"Enable/disable value with unit marker."}),"\n",(0,n.jsx)(a.li,{children:"Conditions for different styles, applies the first that's true"}),"\n",(0,n.jsx)(a.li,{children:"Color"}),"\n",(0,n.jsx)(a.li,{children:"Text to display"}),"\n"]}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6407).A+"",width:"1164",height:"362"})})}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a state chart panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"appearance",src:i(6331).A+"",width:"462",height:"341"})})}),"\n",(0,n.jsx)(a.h3,{id:"device-map",children:"Device map"}),"\n",(0,n.jsx)(a.h4,{id:"query-builder-4",children:"Query builder"}),"\n",(0,n.jsx)(a.p,{children:"The query builder is used to define which data will the device map show."}),"\n",(0,n.jsx)(a.h5,{id:"query-builder-functionality",children:"Query Builder Functionality:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(514).A+"",width:"1162",height:"462"})})}),"\n",(0,n.jsx)(a.p,{children:"Defining the query requires the following configuration:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"In the query builder, you can first choose the type of device or have the option to select all devices. If you choose to select a specific device, you can name the type of device."}),"\n",(0,n.jsx)(a.li,{children:"In the appearance section, you cannot make any changes because The appearance of the panel cannot be configured."}),"\n"]}),"\n",(0,n.jsx)(a.h5,{id:"device-type-selection",children:"Device Type Selection:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsx)(a.li,{children:"After choosing the device type you want, you can save the panel, and it should appear on the dashboard with a map and the selected device types."}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:"This would be an example of a device map panel:"}),"\n",(0,n.jsx)("div",{class:"tutorial-image-container",children:(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Creating panels",src:i(7109).A+"",width:"620",height:"451"})})}),"\n",(0,n.jsx)(a.p,{children:"After creating one of these panels, you should select the dashboard for which you have created the panel, and you should see all the panels you have created for that dashboard. The panels vary depending on the type of panel and its configuration.\nd"})]})}function o(e={}){const{wrapper:a}={...(0,t.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},7710:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-gauge-840e14449c4e81361c2e1995628f9b00.png"},1606:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-pie-chart-2de0d52a02b4fefdb8ff5697b1111735.png"},6407:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-state-chart-bb2c541fda01a18ca96f91cfa4c98a74.png"},7728:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/appearance-12c7bb21cf25f28de36f919329a9886c.png"},5395:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/creating-panels-d690a4852755653dc95ba94237e71e5f.png"},7173:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/dashboards-fe506ed19f8bd0d7466a73e9365b4df2.png"},7109:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/device-map-c0afd4af6a8f7be21e7e3c0dadafeb59.png"},2968:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/empty-dashboard-8e6228026c297301c9ed2d262d10a1a0.png"},2634:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/gauge-52ae6f7980253334b74409783f763040.png"},2093:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/pie-chart-06c856df0d257654cd544c2195fdfaf4.png"},514:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-device-map-28de35f7a0a6bafea5becce573256993.png"},5736:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-gauge-a8b95a5cb9cf5bca0e31fb40a2bd9d07.png"},4776:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-pie-chart-40b85d3548fd3637e7d2f15e33986bfc.png"},6077:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-state-chart-1bfe6c538aece965dba410358f263839.png"},3618:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/query-builder-time-series-bddd971e0a35d433ace8721861687447.png"},6331:(e,a,i)=>{i.d(a,{A:()=>n});const n="data:image/png;base64,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"},7987:(e,a,i)=>{i.d(a,{A:()=>n});const n=i.p+"assets/images/time-series-ccd82d7b9d1311e8f87c44192bb9a82d.png"},8453:(e,a,i)=>{i.d(a,{R:()=>s,x:()=>r});var n=i(6540);const t={},l=n.createContext(t);function s(e){const a=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(l.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.f83e6d4d.js b/assets/js/runtime~main.95748654.js similarity index 93% rename from assets/js/runtime~main.f83e6d4d.js rename to assets/js/runtime~main.95748654.js index 5493afc..5ac38b3 100644 --- a/assets/js/runtime~main.f83e6d4d.js +++ b/assets/js/runtime~main.95748654.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,f,t,r,c={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var f=b[e]={exports:{}};return c[e].call(f.exports,f,f.exports,d),f.exports}d.m=c,e=[],d.O=(a,f,t,r)=>{if(!f){var c=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](f[o])))?f.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[f,t,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var c={};a=a||[null,f({}),f([]),f(f)];for(var b=2&t&&e;"object"==typeof b&&!~a.indexOf(b);b=f(b))Object.getOwnPropertyNames(b).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,d.d(r,c),r},d.d=(e,a)=>{for(var f in a)d.o(a,f)&&!d.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,f)=>(d.f[f](e,a),a)),[])),d.u=e=>"assets/js/"+({635:"b9a9e23a",748:"94375d41",1471:"de5aeb7c",1563:"e72b9bb3",1943:"519f47fb",1981:"1be0d2c3",2710:"e829bf52",2741:"8ebf884c",2750:"356a0ac6",3093:"3f776845",3338:"b5796db6",3438:"fbacb533",3473:"3c01fd32",3488:"8cb4ad27",3576:"3987870c",3590:"578ed02f",3832:"8f9e59a2",4224:"a5caed1a",4246:"f59d81ac",4300:"4cd738bd",4502:"4a070847",4541:"c4c20b15",4583:"1df93b7f",4712:"842fc954",4972:"bde2094a",5331:"c16f5663",5794:"303209e1",5968:"15c5b2e6",6061:"1f391b9e",6246:"498d4d26",6271:"ffd52dfa",6363:"f5546e3f",6583:"a165d0ef",6759:"f9aaae36",6875:"f760b48e",6969:"14eb3368",7098:"a7bd4aaa",8360:"0fea52e5",8401:"17896441",8581:"935f2afb",8767:"142bacfa",8837:"9fb72dca",8962:"4f6f0beb",9048:"a94703ab",9118:"ca79eafe",9476:"4ac74e3d",9647:"5e95c892",9814:"75a8a8f3"}[e]||e)+"."+{635:"0715ae2a",748:"58b4f9bf",1471:"d8e470f0",1563:"bd1a796a",1943:"4530d296",1981:"35e761f5",2237:"29ed07f9",2674:"862bdbf7",2710:"58752515",2741:"c2e474fa",2750:"b39a960b",3093:"3ae09d59",3338:"fe390bd2",3438:"e8c76029",3473:"6488b8bc",3488:"4e682ddc",3576:"c97af649",3590:"39c8bd1e",3832:"c87ee121",4224:"02237783",4246:"1e53bf09",4300:"ac79276c",4502:"9d22865b",4541:"a5e71ddc",4583:"b93928f5",4712:"6284c7eb",4972:"e94c9456",5331:"4338ba60",5794:"eb67fee4",5968:"571daa57",6061:"80ff34b9",6246:"6cc742f9",6271:"98e8f274",6363:"0cc3fb80",6583:"8616763f",6759:"f7588003",6875:"6860c039",6969:"9f439c7c",7098:"b2fb0e4e",8360:"59041bec",8401:"817d95ee",8581:"8eb606ef",8767:"38bd8473",8837:"82319d32",8962:"9af595e2",9048:"d2a4c9ab",9118:"585b4089",9476:"a9595a26",9647:"1ae668ac",9814:"587827f2"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="academy:",d.l=(e,a,f,c)=>{if(t[e])t[e].push(a);else{var b,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/",d.gca=function(e){return e={17896441:"8401",b9a9e23a:"635","94375d41":"748",de5aeb7c:"1471",e72b9bb3:"1563","519f47fb":"1943","1be0d2c3":"1981",e829bf52:"2710","8ebf884c":"2741","356a0ac6":"2750","3f776845":"3093",b5796db6:"3338",fbacb533:"3438","3c01fd32":"3473","8cb4ad27":"3488","3987870c":"3576","578ed02f":"3590","8f9e59a2":"3832",a5caed1a:"4224",f59d81ac:"4246","4cd738bd":"4300","4a070847":"4502",c4c20b15:"4541","1df93b7f":"4583","842fc954":"4712",bde2094a:"4972",c16f5663:"5331","303209e1":"5794","15c5b2e6":"5968","1f391b9e":"6061","498d4d26":"6246",ffd52dfa:"6271",f5546e3f:"6363",a165d0ef:"6583",f9aaae36:"6759",f760b48e:"6875","14eb3368":"6969",a7bd4aaa:"7098","0fea52e5":"8360","935f2afb":"8581","142bacfa":"8767","9fb72dca":"8837","4f6f0beb":"8962",a94703ab:"9048",ca79eafe:"9118","4ac74e3d":"9476","5e95c892":"9647","75a8a8f3":"9814"}[e]||e,d.p+d.u(e)},(()=>{var e={5354:0,1869:0};d.f.j=(a,f)=>{var t=d.o(e,a)?e[a]:void 0;if(0!==t)if(t)f.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var r=new Promise(((f,r)=>t=e[a]=[f,r]));f.push(t[2]=r);var c=d.p+d.u(a),b=new Error;d.l(c,(f=>{if(d.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+c+")",b.name="ChunkLoadError",b.type=r,b.request=c,t[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,f)=>{var t,r,c=f[0],b=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(t in b)d.o(b,t)&&(d.m[t]=b[t]);if(o)var i=o(d)}for(a&&a(f);n{"use strict";var e,a,f,t,r,c={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var f=b[e]={exports:{}};return c[e].call(f.exports,f,f.exports,d),f.exports}d.m=c,e=[],d.O=(a,f,t,r)=>{if(!f){var c=1/0;for(i=0;i=r)&&Object.keys(d.O).every((e=>d.O[e](f[o])))?f.splice(o--,1):(b=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[f,t,r]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);d.r(r);var c={};a=a||[null,f({}),f([]),f(f)];for(var b=2&t&&e;"object"==typeof b&&!~a.indexOf(b);b=f(b))Object.getOwnPropertyNames(b).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,d.d(r,c),r},d.d=(e,a)=>{for(var f in a)d.o(a,f)&&!d.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((a,f)=>(d.f[f](e,a),a)),[])),d.u=e=>"assets/js/"+({635:"b9a9e23a",748:"94375d41",1471:"de5aeb7c",1563:"e72b9bb3",1943:"519f47fb",1981:"1be0d2c3",2710:"e829bf52",2741:"8ebf884c",2750:"356a0ac6",3093:"3f776845",3338:"b5796db6",3438:"fbacb533",3473:"3c01fd32",3488:"8cb4ad27",3576:"3987870c",3590:"578ed02f",3832:"8f9e59a2",4224:"a5caed1a",4246:"f59d81ac",4300:"4cd738bd",4502:"4a070847",4541:"c4c20b15",4583:"1df93b7f",4712:"842fc954",4972:"bde2094a",5331:"c16f5663",5794:"303209e1",5968:"15c5b2e6",6061:"1f391b9e",6246:"498d4d26",6271:"ffd52dfa",6363:"f5546e3f",6583:"a165d0ef",6759:"f9aaae36",6875:"f760b48e",6969:"14eb3368",7098:"a7bd4aaa",8360:"0fea52e5",8401:"17896441",8581:"935f2afb",8767:"142bacfa",8837:"9fb72dca",8962:"4f6f0beb",9048:"a94703ab",9118:"ca79eafe",9476:"4ac74e3d",9647:"5e95c892",9814:"75a8a8f3"}[e]||e)+"."+{635:"0715ae2a",748:"58b4f9bf",1471:"d8e470f0",1563:"bd1a796a",1943:"4530d296",1981:"35e761f5",2237:"29ed07f9",2674:"862bdbf7",2710:"58752515",2741:"c2e474fa",2750:"b39a960b",3093:"3ae09d59",3338:"fe390bd2",3438:"e8c76029",3473:"6488b8bc",3488:"4e682ddc",3576:"c97af649",3590:"39c8bd1e",3832:"c87ee121",4224:"02237783",4246:"1e53bf09",4300:"ac79276c",4502:"9d22865b",4541:"a5e71ddc",4583:"b93928f5",4712:"6c6b9684",4972:"e94c9456",5331:"4338ba60",5794:"eb67fee4",5968:"571daa57",6061:"80ff34b9",6246:"029a96c8",6271:"98e8f274",6363:"00620e30",6583:"8616763f",6759:"f7588003",6875:"6860c039",6969:"9f439c7c",7098:"b2fb0e4e",8360:"59041bec",8401:"817d95ee",8581:"8eb606ef",8767:"38bd8473",8837:"82319d32",8962:"9af595e2",9048:"d2a4c9ab",9118:"585b4089",9476:"a9595a26",9647:"1ae668ac",9814:"ccbfd68f"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="academy:",d.l=(e,a,f,c)=>{if(t[e])t[e].push(a);else{var b,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{b.onerror=b.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],b.parentNode&&b.parentNode.removeChild(b),r&&r.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),o&&document.head.appendChild(b)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/",d.gca=function(e){return e={17896441:"8401",b9a9e23a:"635","94375d41":"748",de5aeb7c:"1471",e72b9bb3:"1563","519f47fb":"1943","1be0d2c3":"1981",e829bf52:"2710","8ebf884c":"2741","356a0ac6":"2750","3f776845":"3093",b5796db6:"3338",fbacb533:"3438","3c01fd32":"3473","8cb4ad27":"3488","3987870c":"3576","578ed02f":"3590","8f9e59a2":"3832",a5caed1a:"4224",f59d81ac:"4246","4cd738bd":"4300","4a070847":"4502",c4c20b15:"4541","1df93b7f":"4583","842fc954":"4712",bde2094a:"4972",c16f5663:"5331","303209e1":"5794","15c5b2e6":"5968","1f391b9e":"6061","498d4d26":"6246",ffd52dfa:"6271",f5546e3f:"6363",a165d0ef:"6583",f9aaae36:"6759",f760b48e:"6875","14eb3368":"6969",a7bd4aaa:"7098","0fea52e5":"8360","935f2afb":"8581","142bacfa":"8767","9fb72dca":"8837","4f6f0beb":"8962",a94703ab:"9048",ca79eafe:"9118","4ac74e3d":"9476","5e95c892":"9647","75a8a8f3":"9814"}[e]||e,d.p+d.u(e)},(()=>{var e={5354:0,1869:0};d.f.j=(a,f)=>{var t=d.o(e,a)?e[a]:void 0;if(0!==t)if(t)f.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var r=new Promise(((f,r)=>t=e[a]=[f,r]));f.push(t[2]=r);var c=d.p+d.u(a),b=new Error;d.l(c,(f=>{if(d.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;b.message="Loading chunk "+a+" failed.\n("+r+": "+c+")",b.name="ChunkLoadError",b.type=r,b.request=c,t[1](b)}}),"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,f)=>{var t,r,c=f[0],b=f[1],o=f[2],n=0;if(c.some((a=>0!==e[a]))){for(t in b)d.o(b,t)&&(d.m[t]=b[t]);if(o)var i=o(d)}for(a&&a(f);n Intro | Biotz Academy - + diff --git a/docs/Examples/MQTTX/MQTTX configuration.html b/docs/Examples/MQTTX/MQTTX configuration.html index 3f503b9..4bb0902 100644 --- a/docs/Examples/MQTTX/MQTTX configuration.html +++ b/docs/Examples/MQTTX/MQTTX configuration.html @@ -4,7 +4,7 @@ MQTTX configuration | Biotz Academy - + diff --git a/docs/Examples/MQTTX/MQttx instalation.html b/docs/Examples/MQTTX/MQttx instalation.html index 5c7dc45..0665401 100644 --- a/docs/Examples/MQTTX/MQttx instalation.html +++ b/docs/Examples/MQTTX/MQttx instalation.html @@ -4,7 +4,7 @@ MQttx instalation | Biotz Academy - + diff --git a/docs/Examples/MQTTX/Message.html b/docs/Examples/MQTTX/Message.html index d700bf9..05676d7 100644 --- a/docs/Examples/MQTTX/Message.html +++ b/docs/Examples/MQTTX/Message.html @@ -4,7 +4,7 @@ Publish data to Biotz | Biotz Academy - + diff --git a/docs/Examples/POSTMAN/Getting the token.html b/docs/Examples/POSTMAN/Getting the token.html index 766ec9c..c3466ff 100644 --- a/docs/Examples/POSTMAN/Getting the token.html +++ b/docs/Examples/POSTMAN/Getting the token.html @@ -4,7 +4,7 @@ Getting the token | Biotz Academy - + diff --git a/docs/Examples/POSTMAN/Intro.html b/docs/Examples/POSTMAN/Intro.html index cd45541..0594970 100644 --- a/docs/Examples/POSTMAN/Intro.html +++ b/docs/Examples/POSTMAN/Intro.html @@ -4,7 +4,7 @@ Intro | Biotz Academy - + diff --git a/docs/Examples/POSTMAN/Postman instalation.html b/docs/Examples/POSTMAN/Postman instalation.html index 0e12438..fd35042 100644 --- a/docs/Examples/POSTMAN/Postman instalation.html +++ b/docs/Examples/POSTMAN/Postman instalation.html @@ -4,7 +4,7 @@ Postman instalation | Biotz Academy - + diff --git a/docs/Examples/POSTMAN/Sending the request.html b/docs/Examples/POSTMAN/Sending the request.html index 7b8a90c..3d96a07 100644 --- a/docs/Examples/POSTMAN/Sending the request.html +++ b/docs/Examples/POSTMAN/Sending the request.html @@ -4,7 +4,7 @@ Sending the request | Biotz Academy - + diff --git a/docs/How-to guides/How to configure and trigger a remote action in devices.html b/docs/How-to guides/How to configure and trigger a remote action in devices.html index 47491d0..63fdd9d 100644 --- a/docs/How-to guides/How to configure and trigger a remote action in devices.html +++ b/docs/How-to guides/How to configure and trigger a remote action in devices.html @@ -4,7 +4,7 @@ Configure and trigger a 'remote actioning' | Biotz Academy - + diff --git a/docs/How-to guides/How to create a dashboard.html b/docs/How-to guides/How to create a dashboard.html index 3a9cc44..96ca0da 100644 --- a/docs/How-to guides/How to create a dashboard.html +++ b/docs/How-to guides/How to create a dashboard.html @@ -4,7 +4,7 @@ How to create a dashboard | Biotz Academy - + @@ -170,7 +170,8 @@

Device

This would be an example of a device map panel:

Creating panels

-

After creating one of these panels, you should select the dashboard for which you have created the panel, and you should see all the panels you have created for that dashboard. The panels vary depending on the type of panel and its configuration.