Hoppa till huvudinnehåll

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ärdFörfråganVid lyckat anrop
Lista dina dashboardsGET /dashboards200, lista med hela widgets
En dashboardGET /dashboards/{dashboardId}200, med hela widgets
Skapa (eller importera) en dashboardPOST /dashboards201
Ändra namn, rubrik eller layoutPATCH /dashboards/{dashboardId}200
Duplicera en dashboardPOST /dashboards/{dashboardId}/duplicate201
Ta bort en dashboard och dess widgetsDELETE /dashboards/{dashboardId}204
Lägg till en widgetPOST /dashboards/{dashboardId}/widgets201, den nya widgeten
Ändra en widgets inställningarPUT /dashboards/{dashboardId}/widgets/{widgetId}201, tom body
Duplicera en widgetPOST /dashboards/{dashboardId}/widgets/{widgetId}/duplicate201
Ta bort en widgetDELETE /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.

RollVad den tillåter för dashboards
AdminAllt
EditorGET, 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 FullBara GET
Egen rollDe 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ältRegler
nameKrävs, högst 50 tecken. Visas i listan över dashboards
titleValfritt, högst 100 tecken. Rubriken på dashboarden
descriptionValfritt, högst 200 tecken. Underrubriken
headerSettingsValfritt, se nedan
widgetsWidgetarna med sin plats i rutnätet

headerSettings styr hur rubriken ser ut. Alla fält är valfria:

FältTyp
titleFontSizeTal, 10 till 72
titleFontWeightSträng
titleColorSträng, högst 50 tecken
descriptionFontSizeTal, 8 till 36
descriptionColorSträng, högst 50 tecken
fontFamilySträng, högst 100 tecken
alignleft, center eller right

Widgets och rutnätet​

En widget har två delar:

  • Var den sitter. x, y, width och height sparas på dashboarden.
  • Vad den är. template (widgettypen) och settings sparas 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"}}'
  • template måste vara samma som förut. Att byta ger 403 Cannot change widget template. Vill du byta typ tar du bort widgeten och lägger till en ny.
  • x, y, width och height läses inte här. Använd PATCH på dashboarden.
  • Svaret är 201 med 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 _id som inte finns på dashboarden ger 404.
  • PATCH kan inte lägga till eller ta bort widgets. Använd widget-ändpunkterna för det.
  • template och settings i 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​

VadFörfråganResultat
En widgetPOST /dashboards/{dashboardId}/widgets/{widgetId}/duplicateEn kopia med samma inställningar, storlek och plats, på samma dashboard. Svaret innehåller dess _id
En dashboardPOST /dashboards/{dashboardId}/duplicateEn 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: true märker widgeten. error säger vilka inställningar som inte godkändes och varför.
  • En widget vars sparade data saknas kommer tillbaka med template: "unknown" och error: "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​

StatusVanlig orsak
401Token saknas, är ogiltig eller har gått ut
403Din roll tillåter inte metoden (texten Forbidden), du saknar skrivrätt till dashboarden, eller template har ändrats
404Dashboarden finns inte eller så kan du inte se den, eller så finns widgeten inte på den dashboarden
422Body 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. image och floorPlan tar bort okända inställningar utan fel.
  • Id:n kontrolleras inte. API:et kontrollerar inte att ett deviceId, imageId, ruleV2Id eller targetDashboardId finns eller att du kommer åt det. Ett felaktigt id sparas, och widgeten visar ingenting.
  • Vilka id:n. deviceId är enhetens _id från GET /api/iotnodes. field är sökvägen till ett värde på enheten, till exempel temperature eller contextMap.room. För diagram listar GET /api/iotnodes/{_id}/stats/fields de fält som har historik. Bilder kommer från POST /api/images (se image).
  • Färger är strängar. Kontrollpanelen använder färgnamn som blue och hexvärden som #2169a8.
  • Tröskelvärden färgar ett värde efter intervall: en lista med {"value": 25, "color": "red"}, med en valfri operator (gt, gte, eq, lte, lt) för de typer som stöder det.
MallWidgetBehöver id förStandardstorlek (minst)
deviceValueDevice valueEn enhet3 x 4 (3 x 4)
deviceChartDevice chartEn enhet8 x 8 (4 x 5)
multiDeviceChartMulti-device chartEnheter18 x 14 (6 x 6)
multiDeviceValueMulti-device valueEnheter8 x 8 (3 x 3)
dataTableData tableEnheter8 x 12 (6 x 6)
equalizerEqualizerEnheter6 x 6 (2 x 3)
swimlaneSwimlaneEnheter8 x 8 (3 x 3)
pieChartPie chartEnheter6 x 8 (3 x 3)
geomapGeomapEnheter8 x 8 (3 x 3)
floorPlanFloor planEn bild, enheter10 x 12 (6 x 4)
mapMapValfritt: en bild, en kartvy16 x 14 (4 x 3)
commandButtonsCommand buttonsRegler (rule v2)4 x 4 (2 x 2)
navigationNavigationEn dashboard4 x 2 (3 x 2)
resourceCountResource countInga4 x 4 (3 x 4)
logsLogsInga14 x 14 (6 x 6)
textTextInga7 x 2 (3 x 2)
imageImageEn bild6 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ävsVärden
deviceIdEnhetens _id
fieldFältets sökväg, inte tom
displaytext, circle, bar eller gauge
colorFärg
shouldShowHeadingBoolean
shouldShowSubheadingBoolean

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ävsVärden
deviceIdEnhetens _id
fieldFältets sökväg, inte tom
timePeriodfiftenMinutes, thirtyMinutes, hour, threeHours, sixHours, twelveHours, day, week, month, threeMonths, sixMonths, year eller custom
resolutionfull, oneMinute, fiveMinutes, fifteenMinutes, thirtyMinutes, hour, threeHours, sixHours, twelveHours, day, week, month eller custom
curveTypestep, linear eller monotone
yAxisRangeauto eller fromZero
calculationmean, timeWeightedMean, min, max, first, last, count, sum eller difference
shouldShowHeadingBoolean
shouldShowSubheadingBoolean

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ävsVärden
deviceFieldPairsMinst en {"deviceId": ..., "field": ...}
timePeriod, resolution, curveType, yAxisRange, calculationSom för deviceChart
shouldShowHeadingBoolean
shouldShowLegendBoolean

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ävsVärden
itemsMinst 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ävsVärden
devicesMinst en {"deviceId": ..., "fields": [...]}, med minst ett fält var
shouldShowHeadingBoolean

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ävsVärden
itemsMinst 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ävsVärden
signalsMinst 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ävsVärden
fieldFältets sökväg, inte tom
devicesMinst 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ävsVärden
devicesMinst 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ävsVärden
imageIdBildens _id, se image för hur du laddar upp
name1 till 30 tecken
devicesLista med {"deviceId": ..., "x": ..., "y": ...}. x och y kan vara null för en enhet som inte är placerad än. Får vara tom
deviceValuesLista med {"field": ..., "thresholds": [...], "isStarred": ...}, värdena som visas för varje enhet. Får vara tom
deviceMarkerTypecircle, ring, dot, square eller seat
shouldSnapToGridBoolean
gridCellSizeHeltal, 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.

ValfrittVärden
viewIdId för en sparad kartvy. Kartvyer sparas av kontrollpanelen, inte av REST-API:et, så välj en där
imageIdBildens _id för en överlagrad bild
createGeofenceEnabledBoolean
{"width": 16, "height": 14, "template": "map", "settings": {}}

commandButtons​

Knappar som startar en regel. Användarguide: Command buttons.

KrävsVärden
buttonsMinst en knapp, var och en med ruleV2Id, triggerNodeId och label
  • ruleV2Id är regelns _id från GET /api/rules-v2.
  • triggerNodeId är id för en nod i regelns definition.nodes med type: "trigger" och config.resourceType: "button". Bara regler med en sådan nod går att använda.
  • Varje knapp kan också ha icon, color (standard blue), iconOnly och textAlign.

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"}
]
}
}

En knapp som öppnar en annan dashboard. Användarguide: Navigation.

KrävsVä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ävsVärden
resourcedevices, 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.

ValfrittVärden
resourceTypedevice (standard), connector, userGroup, organization eller ruleV2
typeLista med error, warning, info, verbose, debug
priorityLista med severe, high, medium, low
categoryupdate, command, status, access, analytics, rule eller system
timeRangeTill exempel {"start": {"type": "relative", "amount": 24, "unit": "hours"}, "end": {"type": "now"}}
titleSträng
{
"width": 14, "height": 14,
"template": "logs",
"settings": {"type": ["error", "warning"], "priority": ["severe", "high"]}
}

text​

Fri text. Användarguide: Text.

KrävsVärden
textInte tom
alignmentleft, center eller right
colorFärg
fontSizexs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl eller 6xl
decorationnone, 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ävsVärden
imageIdBildens _id
imageSizesmall, medium eller large
shapenone, rounded eller full
backgroundno-background eller background
horizontalAlignmentleft, center eller right
verticalAlignmentupp, 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​