Obsah

Komunikace se serverem

Požadavek na server - FW 3.0+

V rámci URL zařízení v prvním kontaktování serveru zasílá příznak "timestamp_check", v hlavičce requestu je obsažený 'X-Api-Key' s číselným kódem vygenerovaným na zařízení, který se při párování zařízení ukládá na server a přidává entropii, aby nebylo jednoduše možné iterovat MAC adresy zařízení a snažit se ze serveru stáhnout cizí obrazovky.

Zařízení na server posílá data metodou POST, v hlavičce uvádí že se jedná o JSON a v těle požadavku je potom JSON o struktuře navržené Patrikem Novákem v rámci issue: https://github.com/MultiTricker/zivyobraz-fw/issues/45 kdy se zatím nepočítá s uzly customValues a backlog, napětí se přesunulo pod system do 'vccVoltage'' a pár drobností:

{
    "apiVersion": "3.0",
    "board": "ESPink_V2",
    "fwVersion": "3.0",
    "system": {
        "cpuTemp": 44.3,
        "resetReason": "deepsleep",
        "vccVoltage": 4.10
    },
    "network": {
        "ssid": "ssid",
        "rssi": -60,
        "mac": "macaddr",
        "apRetries": 0,
        "lastDownloadDuration": 5,
        "ipAddress": "192.168.0.2"
    },
    "display": {
        "type": "GDEMxxx",
        "width": 800,
        "height": 480,
        "colorType": "4C",
        "lastRefreshDuration": 23
    },
    "sensors": [
        {
            "type": "SHT40",
            "temp": 23.4,
            "hum": 60.2
        }
    ]
}

Požadavek na server - FW verze do 2.4

První požadavek se děje s parametrem "timestamp_check" a případnými naměřenými hodnotami z volitelného čidla teploty/vlhkosti/tlaku. Server vrátí aktuální timestamp obsahu na serveru a pokud je novější než jaký je uložený timestamp v paměti zařízení, tak se stáhne nový obsah. Pro ten se již používají volání bez timestamp_check a naměřených hodnot.

Parametr Příklad Popis
mac DA:AB:CA:04:A5:65 MAC adresa zařízení, která slouží jako jeho identifikátor.
b ESPInk_v2 Typ desky
d GDEW042BW Typ displeje
timestamp_check 1 Parametr se uvádí pouze při prvním připojení kdy se zjišťuje, jestli je na serveru nový obsah.
rssi -51 Síla signálu na Wi-Fi.
ssid MOJE_APCKO_DOMA Název AP na které se zařízení připojuje.
v 3.92 Napětí na baterii.
x 800 Rozlišení - šířka.
y 480 Rozlišení - výška.
c 4G Barevnost ePaperu - viz tabulka níže.
fw 2.3 Verze FW.
ap_retries 0 Kolik bylo potřeba pokusů na připojená se k AP (pro pozdější debuging).
temp 21.53 Teplota.
hum 53 Vlhkost.
pres 1025 Tlak.

Rozlišení a barevnost slouží především k prvotnímu spárování ePaperu, následně se při sestavení vraceného obrázku používá nastavení uvedené u zavedeného zařízení.

Barevnost Popis
BW Černá, bílá
GRAYSCALE Stupně šedi (4 barvy)
8G Stupně šedi (8 barev)
RBW Tříbarevný s červenou
YBW Tříbarevný se žlutou
4C Čtyřbarevný (červená a žlutá)
7color 7 barev

Typ resetu desky:

Value Meaning
0 UNKNOWN
1 POWERON (power-on reset or flash upload)
2 EXT (external reset button)
3 SW (software reset)
4 PANIC (software panic/exception)
5 INT_WDT (interrupt watchdog)
6 TASK_WDT (task watchdog)
7 WDT (other watchdog)
8 DEEPSLEEP (wake from deep sleep)
9 BROWNOUT (brownout reset)
10 SDIO (reset over SDIO)

Odpověď ze serveru

< HTTP/1.1 200 OK
< Date: Sat, 24 May 2025 19:16:46 GMT
< Server: Apache
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Content-Disposition: attachment; filename=348518974bc0/obrazovka.z2
< Data-Length: 58211
< Content-Description: File Transfer
< Sleep: 44
< PreciseSleep: 2642
< Timestamp: 05242116
< PartialRefresh: 1
< Rotate: 1
< Connection: close
< Content-Type: image/z2

V odpovědi najdeme informace pro zařízení:

V hlavičce "Content-Type" je sice uvedené, zda se jedná o formát zX nebo PNG, ale to se v kódu detekuje a řeší načtením prvních bytů z těla odpovědi.