advanced
Segway
IoT
Integration

Segway IoT-Integration

Vollstaendige technische Anleitung zur nativen Segway IoT-Integration - unterstuetzte Befehle, Telemetriedaten, Sperr-/Entsperrvorgaenge, Fehlercodes und Konfiguration fuer Segway-betriebene Fahrzeuge.

Levy Fleets TeamDecember 25, 202520 min read

Segway IoT-Integration

Levy Fleets bietet native Integration mit Segway IoT-Geraeten unter Verwendung des Segway TCP Telemetrie-Protokolls. Diese Anleitung behandelt die vollstaendige Integration einschliesslich unterstuetzter Befehle, Telemetrieverarbeitung, Fehlerbehandlung und Fehlerbehebung.

Protokollversion

Levy Fleets implementiert das Segway TCP-Protokoll v1.4.4 und unterstuetzt 38+ Befehle ueber alle Betriebskategorien.

Ueberblick

Segway IoT-Geraete kommunizieren mit Levy Fleets ueber ein TCP-basiertes Protokoll, das folgendes bietet:

  • Echtzeit-GPS-Tracking mit NMEA-Format-Standortdaten
  • Batterieueberwachung einschliesslich Dual-Batterie-Unterstuetzung
  • Sperr-/Entsperrsteuerung mit Bestaetigung
  • Heartbeat-Ueberwachung fuer Konnektivitaetsstatus
  • Umfassender Fahrzeugstatus einschliesslich Geschwindigkeit, Kilometerstand und Temperatur
  • Fehler- und Alarmbehandlung mit Schweregrad-Klassifizierung
  • OTA-Firmware-Updates per HTTP oder FTP
  • Mechanische Sperrenunterstuetzung fuer Kabel-/Radschloss

Geraetekonfiguration

Servereinstellungen

Konfigurieren Sie Ihr Segway-Geraet fuer die Kommunikation mit Levy Fleets:

EinstellungWert
Server-IP/DomainIhr Levy Fleets IoT-Endpunkt
PortWie bei der Einrichtung angegeben
ProtokollTCP

Authentifizierung

Segway-Geraete authentifizieren sich per API-Schluessel. Stellen Sie sicher, dass Ihre Bereitstellung den korrekten API-Schluessel im x-api-key-Header fuer alle Kommunikationen enthaelt.

Geraeteidentifikation

Geraete werden durch IMEI identifiziert. Das Nachrichtenformat enthaelt die Geraete-IMEI im Header:

*HBCR,NB,{IMEI},{COMMAND},...#

Unterstuetzte Befehle

Kernoperationen

BefehlBeschreibungRichtung
R0Operationsschluessel-AustauschGeraet → Server
L0EntsperrbestaetigungGeraet → Server
L1SperrbestaetigungGeraet → Server
H0Heartbeat mit StatusGeraet → Server
Q0Geraete-Check-inGeraet → Server
Q1Sperrschluessel-AbfrageGeraet → Server

Sperr-/Entsperrprotokoll

Der Segway Sperr-/Entsperrprozess beinhaltet einen Schluesselaustausch:

1

Schluessel anfordern (R0)

Server fordert einen Operationsschluessel vom Geraet an. Geraet antwortet mit Operationscode, Schluessel, Benutzer-ID und Sequenznummer.

2

Befehl senden

Server sendet Sperr- (L1) oder Entsperrbefehl (L0) mit dem Schluessel

3

Bestaetigung empfangen

Geraet fuehrt den Befehl aus und sendet Bestaetigung mit Statuscode

Bestaetigung-Statuscodes

CodeStatusBeschreibung
0ErfolgBefehl erfolgreich ausgefuehrt
1FehlgeschlagenAllgemeiner Fehler
2Schluessel ungueltigAuthentifizierungsschluessel abgelehnt
3Fahrt laeuftKann waehrend aktiver Fahrt nicht sperren
4ECU fehlgeschlagenFahrzeugcontroller-Fehler
5Strategie abgelehntGeschaeftslogik verhinderte Vorgang

Fahrzeugstatus (S-Serie)

BefehlBeschreibung
S1Geschwindigkeitslimit-Einstellungen
S2Stromsteuerungsantwort
S4Scooter-Einstellungen Block 2 (Tempomat, Tasten, Geschwindigkeitslimits)
S5Geraeteeinstellungen (Intervalle, Beschleunigungssensor)
S6Echtzeit-Status (Batterie, Geschwindigkeit, Kilometerstand, Sperre)
S7Scooter-Einstellungen Block 1 (Lichter, Geschwindigkeitsmodus)
S8Erweiterter Status (Temperaturen, Dual-Batterie, Fehlercodes)
S9Zusaetzliche Einstellungen (Auto-Sperre, Leerlauf-Warnung)
S20Umgebungslicht-Einstellungen

Standort & Tracking (D-Serie)

BefehlBeschreibung
D0GPS-Standortbericht (NMEA-Format)
D1Tracking-Konfiguration
D2Tracking-Abkuehlzeit-Einstellungen

D0 GPS-Format

Der D0-Befehl verwendet NMEA-aehnliches Format:

*HBCR,NB,{IMEI},D0,,{TIME},A,{LAT},{LAT_DIR},{LON},{LON_DIR},{SPEED},{COURSE},{DATE},{ALT},...#
  • TIME: HHMMSS.sss
  • A/V: Gueltig/Ungueltig Fix
  • LAT: DDMM.MMMM (Grad und Dezimalminuten)
  • LAT_DIR: N/S
  • LON: DDDMM.MMMM
  • LON_DIR: E/W
  • SPEED: Knoten (umgerechnet in km/h)
  • DATE: TTMMJJ

Netzwerkkonfiguration (N-Serie)

BefehlBeschreibung
N2MAC/IMEI-Konfiguration
N3Netzwerkparameter
N7APN-Einstellungen
N8Server-Domain/IP-Konfiguration

Geraetefunktionen (Verschiedene)

BefehlBeschreibung
V0Sprachansage-Bestaetigung
V1Sprachkonfiguration
G0Firmware-Versionsinformationen
E0Fehlercodes/Alarme
K0BLE-Schluesselverwaltung
P2Vollstaendiger Geraetestatus (30+ Felder)

Mechanische Sperre (C-Serie)

BefehlBeschreibung
C0Kabelschloss-Batteriestatus
C1Kabelloses Laden Status
C2Mechanischer Sperrstatus
C3Mechanische Sperr-Steuerungsantwort
C4Mechanische Sperr-Parameter

Unterstuetzte Sperrtypen:

  • Typ 1: Kabelschloss
  • Typ 6: Radschloss
  • Typ 8: Helm-/Kabel-Kombischloss

OTA-Updates (U-Serie)

BefehlBeschreibung
U5HTTP OTA-Update-Status
U6FTP OTA-Update-Status

Update-Statuscodes:

  • 0: Gestartet
  • 1: Herunterladend/Verbindend
  • 2: Download abgeschlossen
  • 3: Installierend
  • 4: Erfolgreich
  • 5: Fehlgeschlagen
  • 6: Abgebrochen

Erweiterte Berichte

BefehlBeschreibung
JR5Ladedatenbericht (Spannung, Strom)

Telemetrieverarbeitung

Heartbeat (H0)

Der H0-Heartbeat ist das primaere Keep-Alive-Signal und beinhaltet:

  • Sperrstatus: 0 (entsperrt) oder 1 (gesperrt)
  • IoT-Spannung: Rohspannung in Zentivolt-Einheiten
  • Signalstaerke: Mobilfunk-Signalpegel
  • Batterieprozent: Fahrzeugbatterie (0-100%)
  • Ladezustand: 0 (laedt nicht) oder 1 (laedt)

Das System berechnet den IoT-Batterieprozentsatz aus der Spannung:

IoT-Batterie % = ((spannung_mv - 3200) / (4200 - 3200)) * 100

Statusbericht (S6)

Bietet umfassenden Echtzeit-Status:

FeldBeschreibung
BatterieprozentHauptbatteriestand
GeschwindigkeitsmodusAktuelle Geschwindigkeitsmodus-Einstellung
Geschwindigkeit (km/h)Aktuelle Fahrzeuggeschwindigkeit
GesamtkilometerstandLebenslanger Kilometerstand in Metern
RestreichweiteGeschaetzte Reichweite in 10-Meter-Einheiten
FahrtdauerAktuelle Fahrtzeit in Sekunden
SperrflagSperrzustand
LadezustandLadeanzeige
Batterie eingestecktBatterie verbunden-Anzeige

Erweiterter Status (S8)

Detaillierte Fahrzeugdiagnose:

FeldBeschreibung
LadeflagLaedt derzeit (0/1)
Controller-SpannungECU-Spannung
Batterie 1 ZyklenPrimaerbatterie-Ladezyklen
Batterie 1 SOCPrimaerbatterie-Ladezustand
Batterie 2 SOCSekundaerbatterie (bei Dual-Batterie)
Batterie 1/2 Interne TempBatteriepack-Temperaturen
Batterie 1/2 Externe TempUmgebungs-Batterietemperaturen
FehlercodeAktueller ECU-Fehlercode
GasgriffprozentGasgriffposition
BremsenstatusBremse betaetigt-Anzeige

Vollstaendiger Status (P2)

Der P2-Befehl gibt 30+ Felder fuer vollstaendige Fahrzeugdiagnose zurueck:

  • Geraetemodell, Firmware-, Hardware-Versionen
  • Batterie: Prozent, Spannung, Strom, Temperatur
  • Motor- und Controller-Temperaturen
  • Geschwindigkeit: Aktuell, Durchschnitt, Maximum
  • Kilometerstand: Gesamt und Fahrt
  • GPS: Koordinaten, Geschwindigkeit, Signal
  • GSM-Signalstaerke
  • Beschleunigungssensor-Daten (X, Y, Z)

Fehlercode-Behandlung

Fehlercode-Uebersetzung

Segway E0-Fehlercodes werden automatisch in lesbare Meldungen uebersetzt. Das System:

  1. Parst die Fehlercodes aus der E0-Nachricht
  2. Uebersetzt jeden Code mit der Segway-Fehlercode-Zuordnung
  3. Bestimmt den Schweregrad (Warnung, Fehler, Kritisch)
  4. Formatiert eine benutzerfreundliche Meldung
  5. Aktualisiert den Fahrzeugdatensatz mit Fehlerstatus

Schweregrade

GradBeschreibungAuswirkung
WarnungGeringfuegiges Problem, Fahrzeug betriebsbereitZur Ueberpruefung protokolliert
FehlerErhebliches Problem, kann Betrieb beeintraechtigenWarnung generiert
KritischSchwerwiegender Fehler, Fahrzeug sollte nicht benutzt werdenFahrt blockiert, sofortige Warnung

Vollstaendige Alarmcode-Referenz

Levy Fleets uebersetzt Segway-Alarmcodes in handlungsrelevante Warnungen. Unten die vollstaendige Referenz:

Sicherheitsalarme

CodeAlarmSchweregradBenutzermeldung
1Illegale Bewegung-AlarmWarnungUnautorisierte Bewegung erkannt
3Illegale Demontage-AlarmKritischManipulation erkannt
22Fahrzeug steht waehrend entsperrtWarnungFahrzeug steht waehrend entsperrt

Sicherheitsalarme

CodeAlarmSchweregradBenutzermeldung
2Sturz-AlarmFehlerFahrzeug ist umgefallen
4Sturz-Alarm (bestaetigt)FehlerFahrzeugsturz bestaetigt
13Bremsleitung-FehlerKritischBremsleitungsfehler - nicht fahren
14TandemfahrenWarnungMehrere Fahrer erkannt
21Reifenbrand-EreignisKritischReifenueberhitzung - sofort anhalten

Batteriealarme

CodeAlarmSchweregradBenutzermeldung
7Abnormale BatteriefunktionFehlerBatteriefunktion abnormal
12Niedrige BatterieWarnungBatterie niedrig - bitte laden
30BMS-Passcode-Format ungueltigFehlerBatterie-Passcode-Formatfehler
31BMS-Passcode falsch verifiziertFehlerBatterie-Passcode inkorrekt
41Zellenspannungsdifferenz (hoch/hoch)FehlerBatteriezellen-Ungleichgewicht
42Zellenspannungsdifferenz (niedrig/klein)FehlerBatteriezellen-Ungleichgewicht
43Zellenspannungsdifferenz (hoch/hoher Strom)FehlerBatteriezellen-Ungleichgewicht
44Zellenspannungsdifferenz (niedrig/hoher Strom)FehlerBatteriezellen-Ungleichgewicht
45Zellenspannung zu hochFehlerBatteriezellenspannung hoch
46Zellentemperaturdifferenz abnormalWarnungBatterietemperatur-Ungleichgewicht
47MOS-Temperatur zu hochKritischBatterieelektronik ueberhitzt
48Zellentemperatur hoch bei gesperrtWarnungBatterietemperatur hoch im Stillstand
49Zellentemperatur hoch bei entsperrtKritischBatterie ueberhitzt - Fahrt beenden

Kommunikationsalarme

CodeAlarmSchweregradBenutzermeldung
8Helmschloss-KommunikationsfehlerWarnungHelmschloss-Kommunikationsfehler
9Kabelschloss-KommunikationsfehlerWarnungKabelschloss-Kommunikationsfehler
15KI-Kommunikation fehlgeschlagenWarnungKI-Box-Kommunikationsfehler

Hardware-Alarme

CodeAlarmSchweregradBenutzermeldung
16Gasgriff-Hall-Sensor abnormalKritischGasgriff-Sensorfehler - nicht fahren
17Momentachse abnormalFehlerDrehmomentsensor abnormal
18ECU hohe TemperaturKritischController ueberhitzt - Fahrt beenden
99ECU-Alarm erkanntFehlerController-Alarm - Fahrzeug pruefen

Alarmkategorien

Das System kategorisiert Alarme in folgende Gruppen:

KategorieBeschreibungTypische Reaktion
SicherheitDiebstahl-/ManipulationserkennungWarnung und Tracking
SicherheitFahrersicherheitsbedenkenKann Fahrt blockieren
BatterieBatteriezustandsproblemeWartung planen
KommunikationSchloss-/Zubehoer-KonnektivitaetWiederholen/Untersuchen
HardwareKomponentenfehlerService erforderlich
KIKI-Box-KommunikationKonnektivitaet pruefen

Automatisch aufloesbare Alarme

Einige Alarme (wie Sturzerkennung) werden automatisch aufgeloest, wenn der Zustand sich aendert. Nicht automatisch aufloesbare Alarme (wie Batterieprobleme) erfordern manuelle Bestaetigung oder physische Inspektion.

E-Mail-Benachrichtigungen

Fuer Fehlercodes mit Schweregrad "Fehler" oder "Kritisch":

  1. System generiert eine E-Mail-Benachrichtigung
  2. E-Mail wird an konfigurierte Flottenmanager gesendet
  3. Enthaelt: Fahrzeug-ID, IMEI, Fehlercode, Beschreibung, Schweregrad
  4. Asynchron gesendet, um Telemetrieverarbeitung nicht zu blockieren

Kritische Fehler

Fahrzeuge mit kritischen Fehlern haben ride_precluded_by_error auf true gesetzt, was neue Fahrten verhindert, bis das Problem behoben ist.

Standortverarbeitung

GPS-Datenkonvertierung

D0-Nachrichten enthalten NMEA-Format-Koordinaten, die in Dezimalgrad umgerechnet werden:

// DDMM.MMMM in Dezimalgrad umrechnen
degrees = floor(coordinate / 100)
minutes = coordinate - (degrees * 100)
decimal = degrees + (minutes / 60)
// Richtung anwenden (negativ fuer S/W)

Fahrt-Standortverlauf

Waehrend aktiver Fahrten fuehren D0-Nachrichten zu:

  1. Einfuegen in die Tabelle ride_locations
  2. Enthalten: Koordinaten, Geschwindigkeit, Hoehe, Bewegungsstatus
  3. Ausloesen der Zonendurchsetzungspruefung
  4. Aktualisierung der Fahrtstatistiken

Zonendurchsetzung

Nach der D0-Standortverarbeitung waehrend einer aktiven Fahrt:

  1. Pruefen, ob Koordinaten innerhalb definierter Zonen liegen
  2. Geschwindigkeitslimits fuer Langsamzonen anwenden
  3. Gasgriff in Verbotszonen deaktivieren
  4. Fahrtstatistiken-RPC aktualisieren

Fahrzeugaktualisierungen

Durch Telemetrie aktualisierte Felder

QuelleAktualisierte Felder
H0battery_level, lock_status, charging, iot_battery_pct, iot_last_update
S6battery_level, speed, odometer_m, lock_status, ignition_status
S8battery_level, is_charging, last_error_code, has_error
D0latitude, longitude, last_location_update, speed
G0firmware_version, controller_version
E0has_error, last_error_codes, error_message, ride_precluded_by_error
P2Umfassendes Update (20+ Felder)

Zeitstempel

Jede Telemetrie-Aktualisierung setzt:

  • updated_at - Allgemeiner Update-Zeitstempel
  • iot_last_update - Letzte IoT-Kommunikation
  • last_signal_at - Letztes empfangenes Signal

Standort-Updates setzen auch:

  • last_location_update - Letzter GPS-Fix

Befehle senden

IoT-Passwort

Konfigurieren Sie das Segway-Passwort in den Einstellungen:

Einstellungen > Fahrzeuge > IoT-Passwoerter > Segway

Standard-Passwort: 0000

Verfuegbare Dashboard-Befehle

BefehlAktion
SperrenL1-Sperrbefehl senden
EntsperrenL0-Entsperrbefehl senden
TonWarnton abspielen
OrtenLichter blinken lassen

Befehlssequenz

Fuer Sperren/Entsperren:

  1. Dashboard sendet R0 (Schluessel anfordern)
  2. Geraet antwortet mit Operationsschluessel
  3. Dashboard sendet L0/L1 mit Schluessel
  4. Geraet fuehrt aus und sendet Bestaetigung
  5. Dashboard aktualisiert Fahrzeugstatus

Konfigurationsreferenz

Geraeteeinstellungen (S5)

ParameterBeschreibung
Beschleunigungssensor-EmpfindlichkeitBewegungserkennungsschwelle
Upload-SchalterDaten-Upload aktivieren/deaktivieren
Heartbeat-IntervallSekunden zwischen H0-Nachrichten
Fahr-Upload-IntervallGPS-Intervall bei entsperrt/fahrend
Entsperrt-Upload-IntervallGPS-Intervall bei entsperrt/Leerlauf
Einschalt-Upload-IntervallGPS-Intervall beim Einschalten

Tracking-Einstellungen (D1/D2)

ParameterBeschreibung
Entsperrt-IntervallGPS-Berichterstattung bei entsperrt
Gesperrt-Still-IntervallGPS bei gesperrt, nicht bewegend
Gesperrt-Bewegend-IntervallGPS bei gesperrt, aber bewegend
Niedrige-Batterie-Still-IntervallGPS bei niedriger Batterie, still
Niedrige-Batterie-Bewegend-IntervallGPS bei niedriger Batterie, bewegend
Bewegungs-AbkuehlzeitSekunden bevor Bewegung erkannt
Niedrige-Batterie-SchwelleBatterie-% fuer Niedrigbatterie-Modus

Geschwindigkeitseinstellungen (S1/S4)

ParameterBeschreibung
Niedriges GeschwindigkeitslimitModus 1 max. Geschwindigkeit (km/h)
Mittleres GeschwindigkeitslimitModus 2 max. Geschwindigkeit (km/h)
Hohes GeschwindigkeitslimitModus 3 max. Geschwindigkeit (km/h)
Geschwindigkeitseinheitkm/h oder mph
TempomatAktivieren/Deaktivieren
SchiebehilfeAktivieren/Deaktivieren

Fehlerbehebung

Geraet verbindet nicht

Symptome: Keine Heartbeats empfangen, Geraet offline

Loesungen:

  1. Server-IP und Port-Konfiguration ueberpruefen
  2. Mobilfunk-Konnektivitaet und SIM-Aktivierung pruefen
  3. APN-Einstellungen mit Anbieteranforderungen bestaetigen
  4. Fahrzeug aus- und einschalten
  5. Auf Firewall-Blockierung von TCP-Verbindungen pruefen

Sperrbefehle schlagen fehl

Symptome: Sperren/Entsperren gibt Fehlerstatus zurueck

Statuscode pruefen:

  • Code 2 (Schluessel ungueltig): Passwort-Nichtubereinstimmung - IoT-Passwort in Einstellungen ueberpruefen
  • Code 3 (Fahrt laeuft): Aktuelle Fahrt zuerst beenden
  • Code 4 (ECU fehlgeschlagen): Fahrzeugcontroller-Problem - E0-Fehler pruefen
  • Code 5 (Strategie abgelehnt): Geschaeftslogik-Blockierung - Fahrzeugstatus pruefen

GPS aktualisiert nicht

Symptome: Standort bleibt am selben Punkt oder zeigt (0,0)

Loesungen:

  1. Auf "V" (ungueltig) Fix-Indikator in D0-Nachrichten pruefen
  2. Sicherstellen, dass Fahrzeug freie Sicht zum Himmel hat
  3. Auf GPS-Satellitenerfassung warten (bis zu 5 Min. Kaltstart)
  4. D1-Tracking-Intervalle ueberpruefen, ob nicht zu lang
  5. Pruefen, ob Geraet im Energiesparmodus ist

Batterieanzeige falsch

Symptome: Batterie zeigt 0%, falschen Wert oder aendert sich nicht

Loesungen:

  1. Bei Dual-Batterie-Fahrzeugen beide SOC-Werte in S8 pruefen
  2. BMS-Kommunikation verifizieren (Batteriezyklen pruefen)
  3. Einige Werte erfordern Fahrzeugstrom (nicht nur IoT)
  4. Pruefen, ob Batterie korrekt angeschlossen ist

Fehlercodes erscheinen

Symptome: E0-Nachrichten zeigen Fehlercodes

Massnahmen:

  1. Fehlercode-Nummer notieren
  2. E-Mail-Benachrichtigungen auf Uebersetzung pruefen
  3. Fahrzeugdatensatz auf error_message-Feld ueberpruefen
  4. Kritische Fehler erfordern physische Inspektion
  5. Fehler durch Aus-/Einschalten loeschen, wenn angemessen

Datenspeicherung

Telemetriedatensaetze

Alle Segway-Nachrichten werden gespeichert mit:

  • vehicle_uuid - Zugeordnetes Fahrzeug
  • vehicle_number - Lesbare ID
  • imei - Geraetekennung
  • raw_payload - Vollstaendige Nachricht als JSON
  • message_type - Befehlstyp (z.B. "H0_HEARTBEAT")
  • timestamp - Nachrichtenzeitstempel
  • idempotency_key - Deduplizierungsschluessel

Idempotenz

Jeder Telemetriedatensatz enthaelt einen generierten Idempotenzschluessel:

{vehicleId}-{imei}-{timestamp}-{messageType}

Dies verhindert doppelte Eintraege bei wiederholten Nachrichten.

API-Referenz

Endpunkt

POST /api/iot/segway
x-api-key: your-iot-api-key
Content-Type: application/json

Anfragebody

{
  "imei": "867648045123456",
  "cmd": "H0",
  "raw": "*HBCR,NB,867648045123456,H0,1,420,25,85,0#",
  "timestamp": "2025-12-25T12:00:00Z",
  "parsed": {}
}

Antwort

{
  "success": true,
  "vehicle_number": "LV-001",
  "ride_number": null,
  "command": "H0",
  "cmd": "H0"
}

Health Check

GET /api/iot/segway

Gibt zurueck:

{
  "service": "Segway TCP Telemetry Ingestion",
  "status": "healthy",
  "timestamp": "2025-12-25T12:00:00Z",
  "supported_commands": ["R0", "L0", "L1", "H0", ...]
}

Technischer Support

Bei Segway-Integrationsproblemen kontaktieren Sie support@levyelectric.com mit:

  • Geraete-IMEI
  • Roh-Nachrichtendaten (falls verfuegbar)
  • Zeitstempel des Problems
  • Erwartetes vs. tatsaechliches Verhalten