Přeskočit na hlavní obsah

Specifikace MQTT API

Zařízení TAPPER může komunikovat přes MQTT pomocí JSON zpráv.

Topic

Každý MQTT Topic začíná tapper/$id/, kde id je hardwarová adresa zařízení TAPPER.

Payload

TAPPER používá payloady ve formátu JSON.

Každý payload obsahuje časovou značku.

Události

TAPPER má v API definováno několik událostí.

TopicPayload
tapper/$id/event/boot{"timestamp": float}
tapper/$id/event/tamper{"timestamp": float, "state": "active" | "inactive"}
tapper/$id/event/tag{"timestamp": float, "id": str}
Tagy

TAPPER odesílá UID NFC tagu jako hexadecimální řetězec v pořadí big-endian.

Rozhraní

TAPPER má RGB LED a bzučák pro interakci s uživatelem.

Ty lze aktivovat požadavkem odeslaným přes MQTT podle této specifikace.

Požadavek

Topic požadavku je tapper/$id/control/request.

Payload požadavku:

{
"timestamp": 1747951200,
"id": 1,
"output": {
"command": "activate"|"deactivate"|"pulse",
"duration": int
},
"visual": {
"state": "off" | "on/red" | "on/green" | "on/blue" | "on/yellow",
"pattern": "p1/red" | "p2/red" | "p3/red" | "p4/red" |
"p1/green" | "p2/green" | "p3/green" | "p4/green" |
"p1/blue" | "p2/blue" | "p3/blue" | "p4/blue" |
"p1/yellow" | "p2/yellow" | "p3/yellow" | "p4/yellow"
},
"acoustic": {
"pattern": "p1" | "p2" | "p3" | "p4"
}
}

Timestamp

Toto je unixová časová značka požadavku, očekává se float/integer.

ID

Toto je ID požadavku, očekává se integer.

Output

Tato sekce se týká reléového výstupu.

  • Command může být: activate, deactivate nebo pulse
    • Příkaz pulse vyžaduje také nastavení prvku duration (v sekundách), očekává se integer.
"output": {
"command": "activate"|"deactivate"|"pulse",
"duration": int
}
info

Relé přichází s hardwarem r2.

Visual

Tato sekce se týká LED na desce.

Může obsahovat buď prvek state", nebo "pattern.

  • State může mít následující hodnoty: off, nebo on/ s následující barvou red/green/blue/yellow.
    Příklad: on/red

    "visual": {
    "state": "off" | "on/red" | "on/green" | "on/blue" | "on/yellow",
    }
  • Prvek pattern je velmi podobný, s možnostmi p1/, p2/, p3/ nebo p4/ s následující barvou red/green/blue/yellow.
    Příklad: p4/blue

    VzorPopis
    p1jedno dlouhé bliknutí
    p2dvě dlouhá bliknutí
    p3tři dlouhá bliknutí
    p4čtyři dlouhá bliknutí
    "visual": {
    "pattern": "p1/red" | "p2/red" | "p3/red" | "p4/red" |
    "p1/green" | "p2/green" | "p3/green" | "p4/green" |
    "p1/blue" | "p2/blue" | "p3/blue" | "p4/blue" |
    "p1/yellow" | "p2/yellow" | "p3/yellow" | "p4/yellow"
    }

Acoustic

Tato sekce se týká bzučáku.

Jediným prvkem je pattern, který může mít hodnotu p1, p2, p3 nebo p4.

VzorPopis
p1jedno dlouhé pípnutí
p2dvě dlouhá pípnutí
p3tři dlouhá pípnutí
p4čtyři dlouhá pípnutí
"acoustic": {
"pattern": "p1" | "p2" | "p3" | "p4"
}

Příklad

{
"timestamp": 1747951200,
"id": 1,
"output": {
"command": "pulse",
"duration": 2
},
"visual": {
"pattern": "p4/blue"
},
"acoustic": {
"pattern": "p1"
}
}

Odpověď

Topic pro odpověď je tapper/$id/control/response.

Payloady odpovědi jsou:

VýsledekPayload
Úspěch{"timestamp": float, "id": int, "result": "success"}
Chyba{"timestamp": float, "id": int, "result": "error", "error": str}

Příklad

{
"timestamp": 1747951200,
"id": 1,
"result": "success"
}