# Package lynx

# Funktioner

# apiCall

Genomför ett autentiserat anrop till API:et med gatewayens användarnamn och lösenord. Svara med ett LUA objekt.

# Parametrar

Namn Valfri Beskrivning
Method Nej HTTP Metod att använda.
Path Nej Path of the URL to request.
Body Ja Body i requester.
IoTCfg Ja En config att ladda parametrar och autentisering ifrån.

# Exempel

local res = lynx.apiCall("POST", "/api/v2/functionx/1", {
    type = "test",
    meta = {key1 = "val1"}
})

# apiCallRaw

Gör en GET request till API:et med gatewayens eller angiven autentisering. Resultatet ges tillbaka som en sträng vid okej eller error som objekt.

# Parametrar

Namn Valfri Beskrivning
Path Nej Path i IoT Open API:et att använda.
IoTCfg Ja En config att ladda parametrar och autentisering ifrån.

# Exempel

local resRaw = lynx.apiCallRaw("/api/vw/functionx/1")

# getFunctions

Hämta en lista på funktioner för den här installationen genom API:et.

Se API Specification

# Parametrar

Name Optional Description
Filter Ja Metadata eller type för att filtrera listan på funktioner.

# Exempel

local functions = lynx.getFunctions({
    key1 = "value1",
    key2 = "value2"
})

# createFunction

Skapa en ny funktion för tillhörande installation via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
fn Nej Hela funktionsobjektet som skal skapas.

# Exempel

local fn = {
    type = "example",
    installation_id = 12,
    meta = {
        name = "My exmaple",
        topic_read = "obj/example/sensor/1/value"
    }
}
lynx.createFunction(fn)

# deleteFunction

Ta bort en funktion på tillhörande installation via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
id Nej ID på funktionen som skall tas bort.

# Exempel

lynx.deleteFunction(7)

# getApps

Hämtar alla configurerade edge-appar för tillhörande installation.

Se API Specification

# Exempel

local apps = lynx.getApps()

# downloadApp

Laddar ner den exekverbara koden som fil för en app. Svaret ges som exekverbara koden i en textsträng.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
App-ID Ja ID på appen som ska laddas ner.
Version Ja Version på appen som ska laddas ner.

# Exempel

local appCode = lynx.downloadApp(1, "0.3.5")

# getStatus

Hämta senaste kända värde för specifierade topics eller alla topics vid nil. Observera att det finns ett kort avbrott mellan ett publicerat värde och att det kan hämtas från API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
topics Ja Lista med topics att hämta data för.

# Exempel

local statuses = lynx.getStatus()

# getLog

Hämnta historisk data av MQTT värden från den tillhörande installationen. Ger ofta stora mängder data.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
to Nej Hämta loggar fram till detta unix-timestamp.
from Nej Hämta loggar från detta unix-timestamp.
limit Nej Begränsa antalet rader med svar.

# Exempel

local logs = lynx.getLog(1603365159, 1603355159, 100)

# getDevices

Hämta en lista på enheter för installationen via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
Filter Ja Metadata eller type för att filtrera listan på enheter.

# Exempel

local devices = lynx.getDevices({
    key1 = "value1",
    key2 = "value2"
})

# createDevice

Skapa en nu enhet för tillhörande installation via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
dev Nej Hela enhets-objektet som skall skapas.

# Exempel

local dev = {
    type = "example",
    installation_id = 12,
    meta = {
        name = "A device",
        serial = "ABCD1234"
    }
}
lynx.createDevice(fn)

# deleteDevice

Ta bort en enhet på tillhörande installation via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
id Nej ID på enheten som skall tas bort.

# Exempel

lynx.deleteDevice(7)

# notify(id, body)

Gör så att backendet använder ett notifieringsutskick via API:et.

Se API Specification

# Parametrar

Namn Valfri Beskrivning
id Nej ID för utskick att använda.
body Ja Data som inkluderas till servern, kan användas i mallar.

# Exempel

local myData = {
    value = 23.5,
    action = "over"
}
lynx.notify(12, myData)