Bygg dashboards med API:et
Allt du gör med dashboards i kontrollpanelen går via REST-API:et, så du kan lika gärna göra det med ett skript: skapa en dashboard, fyll den med widgets, placera dem i rutnätet och kopiera den till andra konton. Den här sidan visar hur, och slutar med en referens över alla widgettyper.
Hur varje widget ser ut och hur den används står i användarguiden för dashboards. Alla fält och statuskoder finns under Dashboards i Swagger.
Innan du börjar
Hämta en token enligt Åtkomst till API:et och skicka med den i varje anrop. Exemplen nedan använder de här variablerna:
export YGGIO_URL="staging.yggio.net"
export YGGIO_TOKEN=$(curl -sS -X POST "https://$YGGIO_URL/api/auth/local" \
-H "Content-Type: application/json" \
-d '{"username":"USER","password":"PASS"}' | jq -r .token)
Ändpunkter
Alla sökvägar börjar med https://staging.yggio.net/api.
| Åtgärd | Förfrågan | Vid lyckat anrop |
|---|---|---|
| Lista dina dashboards | GET /dashboards | 200, lista med hela widgets |
| En dashboard | GET /dashboards/{dashboardId} | 200, med hela widgets |
| Skapa (eller importera) en dashboard | POST /dashboards | 201 |
| Ändra namn, rubrik eller layout | PATCH /dashboards/{dashboardId} | 200 |
| Duplicera en dashboard | POST /dashboards/{dashboardId}/duplicate | 201 |
| Ta bort en dashboard och dess widgets | DELETE /dashboards/{dashboardId} | 204 |
| Lägg till en widget | POST /dashboards/{dashboardId}/widgets | 201, den nya widgeten |
| Ändra en widgets inställningar | PUT /dashboards/{dashboardId}/widgets/{widgetId} | 201, tom body |
| Duplicera en widget | POST /dashboards/{dashboardId}/widgets/{widgetId}/duplicate | 201 |
| Ta bort en widget | DELETE /dashboards/{dashboardId}/widgets/{widgetId} | 204 |
Det finns ingen ändpunkt som läser eller skriver en widget för sig. En widget hör alltid till en dashboard, och du når den via den dashboarden.
Roller och åtkomsträttigheter
Två kontroller görs i varje anrop.
Din roll avgör vilka HTTP-metoder du får använda på resursen dashboard. Se
Roller.
| Roll | Vad den tillåter för dashboards |
|---|---|
| Admin | Allt |
| Editor | GET, PATCH, PUT. Alltså läsa, flytta och ändra storlek på widgets, ändra inställningar och rubrik. Inte skapa, duplicera eller ta bort, eftersom de använder POST och DELETE |
| Installer, Viewer Basic, Viewer Standard, Viewer Full | Bara GET |
| Egen roll | De metoder rollen anger för Dashboard |
En metod som din roll inte tillåter ger 403 med texten Forbidden.
Dina åtkomsträttigheter avgör vilka dashboards du kommer åt. Du behöver läsrätt för att se en
dashboard och skrivrätt för att ändra den, lägga till eller ta bort widgets, duplicera den eller ta
bort den. En dashboard du inte kan se ger 404. En som du kan se men inte skriva till ger 403. När
du skapar en dashboard får du full åtkomst till den. Dela den som vilken annan resurs som helst, se
Åtkomsträttigheter.
Att dela en dashboard delar inte enheterna på den. En widget visar ingenting för en enhet som mottagaren saknar åtkomst till.
Dashboard-objektet
{
"_id": "66f1c0ffee0000000000d001",
"name": "Hus A",
"title": "Hus A, plan 2",
"description": "Inomhusklimat och beläggning",
"headerSettings": {"titleFontSize": 32, "align": "left"},
"widgets": [
{
"_id": "66f1c0ffee0000000000a001",
"x": 0, "y": 0, "width": 3, "height": 4,
"template": "deviceValue",
"settings": {"deviceId": "...", "field": "temperature", "...": "..."}
}
]
}
| Fält | Regler |
|---|---|
name | Krävs, högst 50 tecken. Visas i listan över dashboards |
title | Valfritt, högst 100 tecken. Rubriken på dashboarden |
description | Valfritt, högst 200 tecken. Underrubriken |
headerSettings | Valfritt, se nedan |
widgets | Widgetarna med sin plats i rutnätet |
headerSettings styr hur rubriken ser ut. Alla fält är valfria:
| Fält | Typ |
|---|---|
titleFontSize | Tal, 10 till 72 |
titleFontWeight | Sträng |
titleColor | Sträng, högst 50 tecken |
descriptionFontSize | Tal, 8 till 36 |
descriptionColor | Sträng, högst 50 tecken |
fontFamily | Sträng, högst 100 tecken |
align | left, center eller right |
Widgets och rutnätet
En widget har två delar:
- Var den sitter.
x,y,widthochheightsparas på dashboarden. - Vad den är.
template(widgettypen) ochsettingssparas i själva widgeten.
GET slår ihop de två, så varje widget i svaret har alla sex fälten plus sitt _id. Svaren från
POST och PATCH på dashboarden innehåller bara platsen i rutnätet (_id, x, y, width,
height).
Kontrollpanelen ritar rutnätet 24 kolumner brett, med rader som är 25 px höga och 10 px mellan
widgetarna. x och width räknas i kolumner, y och height i rader, och x: 0, y: 0 är övre
vänstra hörnet. Håll x + width på högst 24. Rutnätet packar widgetarna uppåt, så ett tomrum ovanför
en widget försvinner när dashboarden visas.
Varje widgettyp har en minsta storlek i kontrollpanelen. En mindre storlek sparas, men rutnätet förstorar widgeten till minsta storleken när du redigerar layouten. Storlekarna står i widgetreferensen.
Skapa en dashboard
Bara name krävs.
curl -sS -X POST "https://$YGGIO_URL/api/dashboards" \
-H "Authorization: Bearer $YGGIO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Hus A", "title": "Hus A, plan 2"}'
Svaret är den nya dashboarden med sitt _id.
Skapa en dashboard med widgets (import)
POST /dashboards tar också emot en lista widgets. Varje post har x, y, width, height,
template och settings, men inget _id. Alla widgets skapas och placeras i samma anrop.
{
"name": "Hus A",
"widgets": [
{
"x": 0, "y": 0, "width": 7, "height": 2,
"template": "text",
"settings": {"text": "Plan 2", "alignment": "left", "color": "#000000",
"fontSize": "xl", "decoration": "none"}
},
{
"x": 0, "y": 2, "width": 3, "height": 4,
"template": "resourceCount",
"settings": {"resource": "devices"}
}
]
}
Det är så Importera dashboard fungerar i kontrollpanelen. Exportsträngen från Exportera dashboard är
GET-svaret för dashboarden, som JSON kodad i base64. Avkoda den och skicka den till
POST /dashboards för att kopiera en dashboard till ett annat konto. Fälten _id i den ignoreras.
Kontrollera två saker först:
- Id:n för enheter, bilder, regler och dashboards i inställningarna kopieras som de är. I ett annat konto pekar de oftast på ingenting, så byt ut dem innan du importerar eller rätta widgetarna efteråt.
- En widget som är märkt
_broken(se Trasiga widgets) klarar inte kontrollen och stoppar hela importen. Ta bort den eller rätta dess inställningar först.
Lägg till en widget
Skicka width, height, template och settings. API:et lägger widgeten på x: 0, y: 99, alltså
längst ner på dashboarden, under de andra.
curl -sS -X POST "https://$YGGIO_URL/api/dashboards/$DASHBOARD_ID/widgets" \
-H "Authorization: Bearer $YGGIO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"width": 3, "height": 4,
"template": "deviceValue",
"settings": {
"deviceId": "'"$DEVICE_ID"'", "field": "temperature",
"display": "text", "color": "blue",
"shouldShowHeading": true, "shouldShowSubheading": false
}
}'
Svaret är den sparade widgeten, {"_id": ..., "template": ..., "settings": ...}, med alla
standardvärden ifyllda. Vill du ha den på ett annat ställe, flytta den.
Ändra en widgets inställningar
PUT ersätter hela widgeten: skicka template och hela settings, inte bara fälten du ändrar. Ett
fält du utelämnar går tillbaka till sitt standardvärde, eller så misslyckas anropet om fältet krävs.
Enklast är att hämta widgeten med GET, ändra den och skicka tillbaka den.
curl -sS -X PUT "https://$YGGIO_URL/api/dashboards/$DASHBOARD_ID/widgets/$WIDGET_ID" \
-H "Authorization: Bearer $YGGIO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"template": "resourceCount", "settings": {"resource": "locations"}}'
templatemåste vara samma som förut. Att byta ger403 Cannot change widget template. Vill du byta typ tar du bort widgeten och lägger till en ny.x,y,widthochheightläses inte här. AnvändPATCHpå dashboarden.- Svaret är
201med tom body. Läs dashboarden igen för att se resultatet.
Flytta och ändra storlek
Layouten sparas på dashboarden. Skicka PATCH /dashboards/{dashboardId} med en lista widgets som
tar med alla widgets på dashboarden, var och en med _id, x, y, width och height. Det är
det kontrollpanelen skickar när du trycker på Spara i redigeringsläget.
curl -sS -X PATCH "https://$YGGIO_URL/api/dashboards/$DASHBOARD_ID" \
-H "Authorization: Bearer $YGGIO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"widgets": [
{"_id": "66f1c0ffee0000000000a001", "x": 0, "y": 0, "width": 6, "height": 4},
{"_id": "66f1c0ffee0000000000a002", "x": 6, "y": 0, "width": 18, "height": 14}
]
}'
- Om antalet widgets inte stämmer med dashboarden misslyckas anropet med
422 All existing widgets must be provided. Ett_idsom inte finns på dashboarden ger404. PATCHkan inte lägga till eller ta bort widgets. Använd widget-ändpunkterna för det.templateochsettingsi listan ignoreras.
Samma PATCH ändrar name, title, description och headerSettings. Skicka bara fälten du
ändrar. Andra fält på översta nivån ger 422.
{"title": "Hus A", "headerSettings": {"align": "center", "titleColor": "#1f2937"}}
Duplicera
| Vad | Förfrågan | Resultat |
|---|---|---|
| En widget | POST /dashboards/{dashboardId}/widgets/{widgetId}/duplicate | En kopia med samma inställningar, storlek och plats, på samma dashboard. Svaret innehåller dess _id |
| En dashboard | POST /dashboards/{dashboardId}/duplicate | En ny dashboard med namnet <namn> (copy) och en kopia av varje widget i samma layout |
Båda kräver skrivrätt till dashboarden du kopierar från. En duplicerad dashboard behåller inte
title, description eller headerSettings. Sätt dem igen med PATCH om du behöver dem.
Widgetkopian får samma plats som originalet, så rutnätet visar den ena under den andra. Flytta den
med PATCH.
Ta bort
DELETE /dashboards/{dashboardId}/widgets/{widgetId}tar bort widgeten från dashboarden och raderar den.DELETE /dashboards/{dashboardId}raderar dashboarden, alla dess widgets och dess åtkomsträttigheter.
Ingen av dem går att ångra.
Standard-dashboard
Sätt som standard-dashboard i kontrollpanelen är inte en del av REST-API:et. Kontrollpanelen sparar
valet i sin egen backend, på /control-panel-v2-backend/default-dashboards, ett val per användare.
Den tjänsten finns inte i Swagger och kan ändras utan förvarning, så bygg inte på den. Varje användare
väljer sin egen standard i kontrollpanelen.
Trasiga widgets
GET misslyckas inte när en widget inte längre följer reglerna för sin mall, till exempel en widget
som sparats av en äldre version eller ändrats direkt i databasen. I stället kommer widgeten tillbaka
så här:
{
"_id": "66f1c0ffee0000000000a003",
"x": 0, "y": 6, "width": 8, "height": 8,
"template": "floorPlan",
"settings": {"...": "de sparade inställningarna, oförändrade"},
"_broken": true,
"error": "settings.name: String must contain at least 1 character(s)"
}
_broken: truemärker widgeten.errorsäger vilka inställningar som inte godkändes och varför.- En widget vars sparade data saknas kommer tillbaka med
template: "unknown"ocherror: "Widget not found". - Resten av dashboarden fungerar. Kontrollpanelen visar en felruta där widgeten skulle ha varit.
- Laga den genom att skicka giltiga inställningar för samma mall med
PUT, eller ta bort widgeten. - Ta bort trasiga widgets innan du skickar tillbaka en dashboard till
POST /dashboards.
Fel
| Status | Vanlig orsak |
|---|---|
401 | Token saknas, är ogiltig eller har gått ut |
403 | Din roll tillåter inte metoden (texten Forbidden), du saknar skrivrätt till dashboarden, eller template har ändrats |
404 | Dashboarden finns inte eller så kan du inte se den, eller så finns widgeten inte på den dashboarden |
422 | Body klarar inte kontrollen. Meddelandet börjar med ERR - och anger det första fältet som inte godkändes och varför |
Widgetreferens
Ett avsnitt per widgettyp. Varje avsnitt listar de inställningar du måste skicka. Inställningar med standardvärde kan utelämnas, och standardvärdet sparas. Hela listan över valfria inställningar finns i Swagger.
Det här gäller alla typer:
- Okända inställningar avvisas. De flesta typer avvisar en inställning de inte känner till med
422.imageochfloorPlantar bort okända inställningar utan fel. - Id:n kontrolleras inte. API:et kontrollerar inte att ett
deviceId,imageId,ruleV2IdellertargetDashboardIdfinns eller att du kommer åt det. Ett felaktigt id sparas, och widgeten visar ingenting. - Vilka id:n.
deviceIdär enhetens_idfrånGET /api/iotnodes.fieldär sökvägen till ett värde på enheten, till exempeltemperatureellercontextMap.room. För diagram listarGET /api/iotnodes/{_id}/stats/fieldsde fält som har historik. Bilder kommer frånPOST /api/images(se image). - Färger är strängar. Kontrollpanelen använder färgnamn som
blueoch hexvärden som#2169a8. - Tröskelvärden färgar ett värde efter intervall: en lista med
{"value": 25, "color": "red"}, med en valfrioperator(gt,gte,eq,lte,lt) för de typer som stöder det.
| Mall | Widget | Behöver id för | Standardstorlek (minst) |
|---|---|---|---|
deviceValue | Device value | En enhet | 3 x 4 (3 x 4) |
deviceChart | Device chart | En enhet | 8 x 8 (4 x 5) |
multiDeviceChart | Multi-device chart | Enheter | 18 x 14 (6 x 6) |
multiDeviceValue | Multi-device value | Enheter | 8 x 8 (3 x 3) |
dataTable | Data table | Enheter | 8 x 12 (6 x 6) |
equalizer | Equalizer | Enheter | 6 x 6 (2 x 3) |
swimlane | Swimlane | Enheter | 8 x 8 (3 x 3) |
pieChart | Pie chart | Enheter | 6 x 8 (3 x 3) |
geomap | Geomap | Enheter | 8 x 8 (3 x 3) |
floorPlan | Floor plan | En bild, enheter | 10 x 12 (6 x 4) |
map | Map | Valfritt: en bild, en kartvy | 16 x 14 (4 x 3) |
commandButtons | Command buttons | Regler (rule v2) | 4 x 4 (2 x 2) |
navigation | Navigation | En dashboard | 4 x 2 (3 x 2) |
resourceCount | Resource count | Inga | 4 x 4 (3 x 4) |
logs | Logs | Inga | 14 x 14 (6 x 6) |
text | Text | Inga | 7 x 2 (3 x 2) |
image | Image | En bild | 6 x 8 (2 x 2) |
Storlekarna är bredd x höjd i rutnätsenheter.
deviceValue
Ett aktuellt värde från en enhet, som text, cirkel, stapel eller mätare. Användarguide: Device value.
| Krävs | Värden |
|---|---|
deviceId | Enhetens _id |
field | Fältets sökväg, inte tom |
display | text, circle, bar eller gauge |
color | Färg |
shouldShowHeading | Boolean |
shouldShowSubheading | Boolean |
Bra valfria inställningar: customHeading, customSubheading, unit, minValue, maxValue,
thresholds, barDirection (horizontal eller vertical), showSparkline (standard false).
{
"width": 3, "height": 4,
"template": "deviceValue",
"settings": {
"deviceId": "DEVICE_ID", "field": "temperature", "display": "gauge",
"color": "blue", "minValue": 0, "maxValue": 40,
"shouldShowHeading": true, "shouldShowSubheading": false
}
}
deviceChart
Ett fält från en enhet över tid, som en linje. Användarguide: Device chart.
| Krävs | Värden |
|---|---|
deviceId | Enhetens _id |
field | Fältets sökväg, inte tom |
timePeriod | fiftenMinutes, thirtyMinutes, hour, threeHours, sixHours, twelveHours, day, week, month, threeMonths, sixMonths, year eller custom |
resolution | full, oneMinute, fiveMinutes, fifteenMinutes, thirtyMinutes, hour, threeHours, sixHours, twelveHours, day, week, month eller custom |
curveType | step, linear eller monotone |
yAxisRange | auto eller fromZero |
calculation | mean, timeWeightedMean, min, max, first, last, count, sum eller difference |
shouldShowHeading | Boolean |
shouldShowSubheading | Boolean |
Observera stavningen fiftenMinutes för timePeriod. Det är det sparade värdet. Med
timePeriod: custom sätter du customFromTime och customToTime. Med resolution: custom sätter du
customResolution.
{
"width": 8, "height": 8,
"template": "deviceChart",
"settings": {
"deviceId": "DEVICE_ID", "field": "temperature",
"timePeriod": "day", "resolution": "hour", "curveType": "monotone",
"yAxisRange": "auto", "calculation": "mean",
"shouldShowHeading": true, "shouldShowSubheading": false
}
}
multiDeviceChart
Flera enheter och fält i samma diagram, som linjer, staplar eller staplade staplar. Användarguide: Multi-device chart.
| Krävs | Värden |
|---|---|
deviceFieldPairs | Minst en {"deviceId": ..., "field": ...} |
timePeriod, resolution, curveType, yAxisRange, calculation | Som för deviceChart |
shouldShowHeading | Boolean |
shouldShowLegend | Boolean |
chartType är line (standard om den utelämnas), area, bar eller stackedBar.
{
"width": 18, "height": 14,
"template": "multiDeviceChart",
"settings": {
"deviceFieldPairs": [
{"deviceId": "DEVICE_ID_1", "field": "temperature"},
{"deviceId": "DEVICE_ID_2", "field": "temperature"}
],
"timePeriod": "week", "resolution": "day", "curveType": "linear",
"yAxisRange": "auto", "calculation": "mean", "chartType": "bar",
"shouldShowHeading": true, "shouldShowLegend": true
}
}
multiDeviceValue
Aktuella värden från flera enheter i ett rutnät av rutor. Användarguide: Multi-device value.
| Krävs | Värden |
|---|---|
items | Minst en {"deviceId": ..., "field": ...}. Varje post kan också ha label, unit, color och thresholds |
Standardvärden: columns 3 (1 till 6), colorMode value (eller background),
shouldShowHeading true.
{
"width": 8, "height": 8,
"template": "multiDeviceValue",
"settings": {
"items": [
{"deviceId": "DEVICE_ID_1", "field": "temperature", "unit": "°C"},
{"deviceId": "DEVICE_ID_2", "field": "humidity", "unit": "%"}
],
"columns": 2
}
}
dataTable
En tabell med en rad per enhet och en kolumn per fält. Användarguide: Data table.
| Krävs | Värden |
|---|---|
devices | Minst en {"deviceId": ..., "fields": [...]}, med minst ett fält var |
shouldShowHeading | Boolean |
columnConfigs formaterar en kolumn, med fältet som nyckel: field (krävs, samma som nyckeln), displayName, displayMode (text
eller barGauge), thresholds, unit, min, max. showExportButton är true som standard.
{
"width": 8, "height": 12,
"template": "dataTable",
"settings": {
"devices": [
{"deviceId": "DEVICE_ID_1", "fields": ["temperature", "humidity"]},
{"deviceId": "DEVICE_ID_2", "fields": ["temperature", "humidity"]}
],
"shouldShowHeading": true,
"columnConfigs": {"temperature": {"field": "temperature", "displayName": "Temp", "unit": "°C"}}
}
}
equalizer
Aktuella värden som lodräta staplar på en gemensam skala. Användarguide: Equalizer.
| Krävs | Värden |
|---|---|
items | Minst en {"deviceId": ..., "field": ...}, samma form som i multiDeviceValue |
minValue och maxValue låser skalan. Utelämna dem för att skala efter de aktuella värdena.
{
"width": 6, "height": 6,
"template": "equalizer",
"settings": {
"items": [
{"deviceId": "DEVICE_ID_1", "field": "passengers", "label": "Tåg 1"},
{"deviceId": "DEVICE_ID_2", "field": "passengers", "label": "Tåg 2"}
],
"minValue": 0, "maxValue": 300
}
}
swimlane
Livevärden som strömmar fram i ett spår per signal. Inget sparas när sidan stängs. Användarguide: Swimlane.
| Krävs | Värden |
|---|---|
signals | Minst en {"deviceId": ..., "field": ...}, var och en med valfri label, unit, color |
windowSeconds är tidsfönstret som syns, 10 till 3600, standard 60.
{
"width": 8, "height": 8,
"template": "swimlane",
"settings": {
"signals": [{"deviceId": "DEVICE_ID", "field": "power", "unit": "W"}],
"windowSeconds": 120
}
}
pieChart
Ett fält från flera enheter, där varje tårtbit är en enhets andel av summan. Användarguide: Pie chart.
| Krävs | Värden |
|---|---|
field | Fältets sökväg, inte tom |
devices | Minst en {"deviceId": ...}, var och en med valfritt alias |
{
"width": 6, "height": 8,
"template": "pieChart",
"settings": {
"field": "passengers",
"devices": [{"deviceId": "DEVICE_ID_1", "alias": "Tåg 1"}, {"deviceId": "DEVICE_ID_2"}]
}
}
geomap
Var enheter har varit, var och en med ett spår på kartan. Användarguide: Geomap.
| Krävs | Värden |
|---|---|
devices | Minst en {"deviceId": ...}, var och en med valfritt alias |
trailLength är antalet punkter som sparas per enhet, 0 till 200, standard 20. tileLayer är
street som standard.
{
"width": 8, "height": 8,
"template": "geomap",
"settings": {"devices": [{"deviceId": "DEVICE_ID"}], "trailLength": 50}
}
floorPlan
Enhetsmarkörer placerade på en bakgrundsbild. Användarguide: Floor plan.
| Krävs | Värden |
|---|---|
imageId | Bildens _id, se image för hur du laddar upp |
name | 1 till 30 tecken |
devices | Lista med {"deviceId": ..., "x": ..., "y": ...}. x och y kan vara null för en enhet som inte är placerad än. Får vara tom |
deviceValues | Lista med {"field": ..., "thresholds": [...], "isStarred": ...}, värdena som visas för varje enhet. Får vara tom |
deviceMarkerType | circle, ring, dot, square eller seat |
shouldSnapToGrid | Boolean |
gridCellSize | Heltal, 1 eller mer, eller null |
Markörernas x och y är positioner på bilden. Det är enklare att placera markörer i
kontrollpanelen: skapa widgeten med en tom lista devices eller med positioner som är null, och dra
markörerna på plats där.
{
"width": 10, "height": 12,
"template": "floorPlan",
"settings": {
"imageId": "IMAGE_ID", "name": "Plan 2",
"devices": [{"deviceId": "DEVICE_ID", "x": null, "y": null}],
"deviceValues": [{"field": "temperature", "thresholds": [], "isStarred": true}],
"deviceMarkerType": "circle",
"shouldSnapToGrid": false, "gridCellSize": null
}
}
map
Enheter på en karta, med valfri sparad kartvy, överlagrad bild eller geofences. Användarguide: Map.
Inget krävs. {} ger en karta med dina enheter.
| Valfritt | Värden |
|---|---|
viewId | Id för en sparad kartvy. Kartvyer sparas av kontrollpanelen, inte av REST-API:et, så välj en där |
imageId | Bildens _id för en överlagrad bild |
createGeofenceEnabled | Boolean |
{"width": 16, "height": 14, "template": "map", "settings": {}}
commandButtons
Knappar som startar en regel. Användarguide: Command buttons.
| Krävs | Värden |
|---|---|
buttons | Minst en knapp, var och en med ruleV2Id, triggerNodeId och label |
ruleV2Idär regelns_idfrånGET /api/rules-v2.triggerNodeIdäridför en nod i regelnsdefinition.nodesmedtype: "trigger"ochconfig.resourceType: "button". Bara regler med en sådan nod går att använda.- Varje knapp kan också ha
icon,color(standardblue),iconOnlyochtextAlign.
När någon trycker på knappen anropas POST /api/rules-v2/{ruleV2Id}/execute för den triggern.
{
"width": 4, "height": 4,
"template": "commandButtons",
"settings": {
"buttons": [
{"ruleV2Id": "RULE_ID", "triggerNodeId": "TRIGGER_NODE_ID", "label": "Tänd", "color": "green"}
]
}
}
navigation
En knapp som öppnar en annan dashboard. Användarguide: Navigation.
| Krävs | Värden |
|---|---|
targetDashboardId | _id för dashboarden som ska öppnas |
Valfritt: largeText, smallText, icon, buttonStyle (filled, outline eller plain),
alignment.
{
"width": 4, "height": 2,
"template": "navigation",
"settings": {"targetDashboardId": "OTHER_DASHBOARD_ID", "largeText": "Plan 3"}
}
resourceCount
Hur många resurser av ett slag du har. Användarguide: Resource count.
| Krävs | Värden |
|---|---|
resource | devices, locations, organizations, apps eller rules |
{"width": 4, "height": 4, "template": "resourceCount", "settings": {"resource": "devices"}}
logs
De senaste loggposterna, filtrerade. Användarguide: Logs.
Inget krävs. {} visar enhetsloggar.
| Valfritt | Värden |
|---|---|
resourceType | device (standard), connector, userGroup, organization eller ruleV2 |
type | Lista med error, warning, info, verbose, debug |
priority | Lista med severe, high, medium, low |
category | update, command, status, access, analytics, rule eller system |
timeRange | Till exempel {"start": {"type": "relative", "amount": 24, "unit": "hours"}, "end": {"type": "now"}} |
title | Sträng |
{
"width": 14, "height": 14,
"template": "logs",
"settings": {"type": ["error", "warning"], "priority": ["severe", "high"]}
}
text
Fri text. Användarguide: Text.
| Krävs | Värden |
|---|---|
text | Inte tom |
alignment | left, center eller right |
color | Färg |
fontSize | xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl eller 6xl |
decoration | none, underline, overline eller line-through |
Valfria med standardvärden: bold, italic, fontFamily, backgroundColor, verticalAlignment,
opacity (10 till 100).
{
"width": 7, "height": 2,
"template": "text",
"settings": {"text": "Plan 2", "alignment": "left", "color": "#000000",
"fontSize": "2xl", "decoration": "none", "bold": true}
}
image
En bild, till exempel en logotyp eller ett foto. Användarguide: Image.
| Krävs | Värden |
|---|---|
imageId | Bildens _id |
imageSize | small, medium eller large |
shape | none, rounded eller full |
background | no-background eller background |
horizontalAlignment | left, center eller right |
verticalAlignment | upp, center eller low |
Ladda upp bilden först. Det är ett multipart-formulär med filen i image, ett name (3 till 256
tecken) och en category (widget här, floorPlan för en planritning, mapOverlay för en karta).
_id i svaret är ditt imageId.
curl -sS -X POST "https://$YGGIO_URL/api/images" \
-H "Authorization: Bearer $YGGIO_TOKEN" \
-F "image=@logo.png" -F "name=company-logo" -F "category=widget"
{
"width": 6, "height": 8,
"template": "image",
"settings": {
"imageId": "IMAGE_ID", "imageSize": "medium", "shape": "none",
"background": "no-background", "horizontalAlignment": "center", "verticalAlignment": "center"
}
}
Se även
- Åtkomst till API:et - token, curl och Postman.
- Användarguide för dashboards - varje widget, med bilder.
- Roller och Åtkomsträttigheter.
- Swagger - hela REST-API-referensen.