Warum Beacon-Protokolle wichtig sind

Ein Bluetooth Beacon ist kein einzelner Standard. „Beacon“ ist ein Bereitstellungsmuster; die tatsaechlichen Bytes in der Luft werden von einem von drei Werbeformaten definiert. Die falsche Rahmenwahl verschwendet Akku, bricht die plattformuebergreifende Unterstuetzung oder sperrt dich in ein Hersteller-SDK. Dieser Artikel zerlegt iBeacon, Eddystone und AltBeacon auf Byte-Ebene.

Der gemeinsame Rahmen: BLE-Werbung

Alle drei laufen ueber nicht verbindbare ungerichtete Werbung (ADV_NONCONN_IND) oder scannabare Werbung (ADV_SCAN_IND). Ein Beacon-Paket traegt eine 31-Byte Werbedatenstruktur (AD):

Feld Groesse Hinweis
Preamble 1 B 0xAA bei nicht verbindbar
Access Address 4 B 0x8E89BED6
Header 2 B PDU-Typ + Laenge
AdvA 6 B Beacon-MAC
AdvData <=31 B die Rahmen unten
CRC 3 B

Die effektive Nutzlast ist der 31-Byte AdvData, aufgebaut aus AD-Strukturen: [Len][AD Type][Value]. Jedes Beacon-Format ist nur ein bestimmter AD-Type plus Value.

iBeacon (Apple)

AD-Type 0xFF (Manufacturer Specific), Company-ID Apple 0x004C.

Length:  0x1A (26)
AD Type: 0xFF
Company: 0x004C
Type:    0x02 (iBeacon)
Len:     0x15 (21)
UUID:    16 bytes
Major:   2 bytes
Minor:   2 bytes
Tx Power: 1 byte (gemessene Leistung bei 1 m, vorzeichenbehaftet)
  • Die UUID partitioniert ein Deployment (z. B. eine pro Gebaeude).
  • Major/Minor adressieren Unterzonen (Etage / Raum).
  • Gemessene Leistung = RSSI bei 1 m, genutzt fuer Distanz: `d = 10^((Measured – RSSI)/(10*n))`, n ~ 2.0-4.0.
  • Proprietaer, aber trivial decodierbar; keine Telemetrie, keine URL.

Eddystone (Google)

Offenes Format, vier Rahmentypen teilen sich AD-Type 0x16 (Service Data) mit UUID 0xFEAA:

Rahmen Code Nutzlast
UID 0x00 10 B Namespace + 6 B Instance
URL 0x10 komprimierte URL (Scheme/Host-Kodierung)
TLM 0x20 Akku, Temperatur, ADV-Zaehler, Laufzeit
EID 0x30 kurzlebige rotierende ID (Datenschutz)

TLM wird abwechselnd mit UID/URL gesendet, damit ein Gateway die Gesundheit ohne Verbindung liest. EID rotiert nach einem mit einem Resolver-Server geteilten Zeitplan, nuetzlich gegen Spoofing.

AltBeacon (Radius Networks)

Offen und herstellerneutral. AD-Type 0xFF, MFG-ID 0x0118 (Radius).

Length:  0x1B (27)
AD Type: 0xFF
MFG:     0x0118
Type:    0xBE (AltBeacon)
Len:     0x14 (20)
MFG Code: 2 B
ID1:     20 B (UUID-aehnlich)
ID2:     2 B (Beacon Code)
Ref Power: 1 B
MFG Reserved: 1 B

Funktional wie iBeacon, aber mit 20-Byte ID-Raum und einem freien Herstellercode-Feld.

Vergleich

Merkmal iBeacon Eddystone AltBeacon
Besitzer Apple Google Offen
ID-Modell UUID/Major/Minor Namespace/Instance ID1 (20 B)
URL Nein Ja (komprimiert) Nein
Telemetrie Nein Ja (TLM) Nein
Privatsphaere/EID Nein Ja Nein
Aufwand Gering Mittel Gering

Auswahl

  • Innenpositionierung / iOS -> iBeacon (beste iOS-Unterstuetzung).
  • Web-Fallback / keine App -> Eddystone-URL (oeffnet im Browser).
  • Plattformuebergreifend OSS -> AltBeacon.
  • Gesundheitsueberwachung -> Eddystone-TLM.

Praktische Fallen

  • Tx-Power-Kalibrierung bei 1 m im echten Gehaeuse messen; Kunststoff oder Metall verschieben sie 2-4 dB.
  • Werbeintervall: 100-1000 ms. Schneller heisst bessere Erkennung, aber weniger Akku. Ein CR2032 bei 500 ms haelt etwa 1-2 Jahre.
  • Paketkollisionen: Bei N Beacons auf demselben Kanal steigt die Kollisionswahrscheinlichkeit etwa mit N quadratisch; Staffeln der Intervalle.
  • AdvData nicht ueber 31 B, sonst wird der Rahmen verworfen.

Das gewaehlte Bluetooth Beacon-Format bestimmt alles danach. Waehle nach Plattform und Anwendungsfall, nicht nach Hype.