# Zebra FX9600 (8 porter) → lego.invig.no

FX9600 kan sende avlesninger på to måter. Begge havner på samme sted i portalen.

- **MQTT:** leseren publiserer til vår egen Mosquitto. Anbefalt for sykehusdemoen.
- **HTTP POST:** til `https://lego.invig.no/api/rfid`.

## Antenneporter i sykehusdemoen

| Port | Rom |
|---|---|
| 1 | Vaskerom og sterilsentral |
| 2 | Lager senger og rullestoler |
| 3 | Operasjonssal |
| 4 | Pasientrom 1 |
| 5 | Kontor og lager |
| 6 | Pasientrom 2 |
| 7–8 | Ikke i bruk. Lesinger ignoreres til et rom får porten under Oppsett → Stasjoner. |

Slå av port 7 og 8 i leseren (Antenna Configuration), så de ikke bruker lesetid.

## 1. MQTT (anbefalt)

**Communication → Zebra IoT Connector → Configuration → Endpoint Configurations → Add → MQTT**

| Felt | Verdi |
|---|---|
| Server / Host | `lego.invig.no` |
| Port | `8884` |
| Protocol | `SSL` / `TLS` (MQTT over TLS) |
| Client ID | f.eks. `fx9600-sykehus` (unik per leser) |
| Username | `fx9600` |
| Password | `MQTT_READER_PASSWORD` fra `moicon.env` (hemmelig, står ikke i portalen) |
| Clean session | På |
| Keep alive | 60 s |
| Verify server certificate / host name | På. Sertifikatet er Let's Encrypt for lego.invig.no. |
| **Tag Data topic** | `invig/rfid/sykehus/tagdata` |
| Management/Control/Events topics | `invig/rfid/sykehus/mgmt`, `…/control`, `…/events` (valgfritt) |
| QoS | 0 eller 1 |

**Interface Configuration:** Tag Data Interface 1 = MQTT-endepunktet.

**Operating Mode → Tag Meta Data:** slå på **Antenna** og **PeakRSSI**.

**Batching:** Reporting Interval 0–500 ms. Både én hendelse per melding og lister med hendelser fungerer.

Aktiver med Update og deretter Stop → Start under Connection.

### Hvilken demo får lesingene?

- Topic `invig/rfid/<demo>/tagdata` styrer det. `sykehus` gir sykehusdemoen, og et ukjent eller manglende demonavn går til demoen som er valgt under Oppsett → RFID-leser.
- Portalen viser MQTT-status, antall meldinger og siste melding under Oppsett → RFID-leser.

### Brannmur

Leseren må nå `lego.invig.no:8884` utgående. Gjestenett blokkerer ofte andre porter enn 80 og 443. Da kan du bruke HTTP POST (port 443) med de samme antenneinnstillingene.

## 2. HTTP POST (alternativ)

| Felt | Verdi |
|---|---|
| URL | `https://lego.invig.no/sykehus/api/rfid` (fast til sykehus) eller `https://lego.invig.no/api/rfid` (valgt mottaker) |
| Authentication | `NONE` |
| Reporting Interval | 0–500 ms |

## Formatet

```json
{ "type": "SIMPLE", "timestamp": "2026-11-05T10:00:00Z",
  "data": { "idHex": "3435afbc0c000000000dbc05", "antenna": 4, "peakRssi": -48 } }
```

- `antennaPort` og `antennaId` godtas også.
- Samme tag på flere antenner i samme melding: sterkeste RSSI vinner.
- «Pause mellom flytt» og «Min. RSSI» stilles under Oppsett. Rommene er skjermet med aluminiumsfolie, så start med −85 dBm.

## Koble taggene

Oppsett → Tagger → **Lær**, og hold taggen ved en antenne. Eller velg EPC-en under «Ukjente tagger».

## Test uten leser

```bash
mosquitto_pub -h lego.invig.no -p 8884 --capath /etc/ssl/certs -u fx9600 -P '<passord>' \
  -t invig/rfid/sykehus/tagdata \
  -m '{"type":"SIMPLE","data":{"idHex":"3435AFBC0C000000000DBC05","antenna":4,"peakRssi":-50}}'
```
