Öppna en WebSocket mot /api/ws med din API-nyckel som Bearer-token i handskakningen (eller ?access_token= om klienten inte kan sätta headers). Kanalen följer alla hubbar du äger: du får ett hello med hubbar och datatyper, därefter endpoint när en kanal ändras (state är typat: bool för strömbrytare, text för jalusi, tal annars; rawState är det råa värdet) och hub när en hubb kopplar upp eller tappar kontakten. Alla tider är UTC.
wss://qtrl.me/api/ws Authorization: Bearer {token}
wss://qtrl.me/api/ws?access_token={token}
← { "cmd": "hello", "server": "MasterPortal", "time": "2026-03-07T10:00:00Z",
"hubs": [ { "hubId": 12, "mac": "A1B2C3D4E5F6", "name": "Hemma", "online": true } ],
"dataTypes": [ { "id": 1, "name": "Temperature", "unit": "°C" }, ... ] }
← { "cmd": "endpoint", "hubId": 12, "mac": "A1B2C3D4E5F6", "brandId": 1, "addr": 12345, "nr": 1,
"typeId": 5, "state": true, "rawState": "on", "deviceId": 991, "endpointId": 4411,
"lastUpdated": "2026-03-07T10:00:05Z" }
← { "cmd": "hub", "hubId": 12, "mac": "A1B2C3D4E5F6", "name": "Hemma", "online": false }
→ { "cmd": "ping" } ← { "cmd": "pong", "time": "..." }
→ { "cmd": "refresh" } ← hello