OBDWidget_Auto/README.md
2026-01-24 16:29:50 +01:00

5.1 KiB

OBD Widgets - Android Widgets für OBD2-Daten

Eine Android-App zur Anzeige von OBD2-Daten als Widgets auf dem Home-Screen. Unterstützt verschiedene Widget-Typen (Analog, Digital, Balken) und kann mit Bluetooth OBD2-Adaptern verbunden werden.

Features

  • Verschiedene Widget-Typen: Analog (Tacho), Digital, Balken, Gauge
  • Konfigurierbare OBD-Parameter: Speed, RPM, Batteriespannung, Kühlmitteltemperatur, etc.
  • Bluetooth OBD2-Integration: Unterstützt ELM327-kompatible Adapter
  • Automatische Wiederverbindung: Verbindet sich automatisch wieder bei Verbindungsabbruch
  • Testmodus: Simuliert OBD-Daten ohne Bluetooth-Verbindung
  • Tasker/MacroDroid Integration: Sendet Broadcasts bei Verbindung/Trennung
  • Skalierbare Widgets: Widgets können in der Größe angepasst werden
  • Keine Background-App nötig: Service läuft im Hintergrund, keine App muss geöffnet bleiben

Anforderungen

  • Android 14+ (API Level 34)
  • Bluetooth-fähiges Gerät
  • ELM327-kompatibler OBD2-Adapter

Installation

  1. Projekt in Android Studio öffnen
  2. Gradle Sync durchführen
  3. App auf Gerät oder Emulator installieren

Verwendung

Erste Einrichtung

  1. Bluetooth-Gerät auswählen:

    • Öffnen Sie die App
    • Gehen Sie zu Einstellungen
    • Wählen Sie Ihr OBD2 Bluetooth-Gerät aus
  2. Widget hinzufügen:

    • Long-Press auf Home-Screen
    • "Widgets" auswählen
    • "OBD Widgets" auswählen
    • Widget auf Home-Screen platzieren
  3. Widget konfigurieren:

    • Tippen Sie auf das Widget
    • Wählen Sie Widget-Typ (Analog, Digital, Balken)
    • Wählen Sie OBD-Parameter (Speed, RPM, etc.)
    • Setzen Sie Min/Max-Werte
    • Optional: Benutzerdefinierte Bezeichnung

Einstellungen

  • Testmodus: Aktivieren Sie den Testmodus, um simulierte Daten ohne BT-Verbindung zu sehen
  • Automatisch verbinden: Service verbindet sich automatisch beim Start
  • Wiederverbindungs-Intervall: Zeit zwischen Verbindungsversuchen (Standard: 5 Sekunden)

Widget-Typen

  • Analog: Runder Tacho mit Nadel (vereinfacht als ProgressBar dargestellt)
  • Digital: Große digitale Anzeige
  • Balken: Horizontale Balkenanzeige mit Prozentanzeige
  • Gauge: Ähnlich wie Analog

OBD-Parameter

Verfügbare Parameter:

  • Speed: Geschwindigkeit (km/h)
  • RPM: Drehzahl (RPM)
  • Voltage: Batteriespannung (V)
  • Coolant Temp: Kühlmitteltemperatur (°C)
  • Intake Temp: Ansauglufttemperatur (°C)
  • MAF: Mass Air Flow (g/s)
  • Throttle: Drosselklappenstellung (%)
  • Fuel Level: Kraftstoffstand (%)

Tasker/MacroDroid Integration

Die App sendet folgende Broadcasts:

  • com.obdwidgets.CONNECTED: Wenn Verbindung hergestellt wurde
  • com.obdwidgets.DISCONNECTED: Wenn Verbindung getrennt wurde
  • com.obdwidgets.CONNECTION_STATUS_CHANGED: Bei Statusänderung (Extra: status)

Tasker Beispiel

  1. Erstellen Sie ein neues Profil
  2. Event → System → Intent Received
  3. Action: com.obdwidgets.CONNECTED
  4. Fügen Sie Aktionen hinzu (z.B. Benachrichtigung, Task starten)

Erweiterbarkeit

Die App ist für Erweiterungen ausgelegt:

Neue OBD-Parameter hinzufügen

  1. Öffnen Sie OBDParameter.kt
  2. Fügen Sie einen neuen Enum-Wert hinzu:
NEW_PARAMETER(
    pid = "01XX",
    name = "New Parameter",
    unit = "unit",
    minValue = 0f,
    maxValue = 100f,
    formula = { bytes -> /* Berechnung */ }
)

Neue Widget-Typen hinzufügen

  1. Fügen Sie einen neuen Wert zu WidgetType Enum hinzu
  2. Erstellen Sie ein neues Layout in res/layout/widget_xxx.xml
  3. Implementieren Sie die Widget-Erstellung in OBDWidgetProvider.kt

Neue OBD-Protokolle hinzufügen

  1. Implementieren Sie das OBDProtocol Interface
  2. Erstellen Sie eine neue Klasse (z.B. STN11xxProtocol.kt)
  3. Verwenden Sie die neue Implementierung im OBDService

Architektur

app/
├── model/              # Datenmodelle (OBDParameter, WidgetConfig, etc.)
├── obd/               # OBD-Protokoll-Implementierungen
├── service/           # OBDService (Foreground Service)
├── widget/            # Widget Provider
├── ui/                # Activities (Settings, Configuration)
└── receiver/          # Broadcast Receiver (Boot)

Bekannte Einschränkungen

  • Der analoge Tacho verwendet aktuell eine vereinfachte Darstellung (ProgressBar statt echter Tacho-Nadel)
  • Widgets aktualisieren sich alle 1 Sekunde (konfigurierbar in obd_widget_info.xml)
  • Bluetooth-Berechtigungen müssen manuell erteilt werden (Android 12+)

Lizenz

Dieses Projekt ist für den persönlichen Gebrauch erstellt.

Vergleich mit Torque Pro

Im Gegensatz zu Torque Pro:

  • Keine Background-App muss geöffnet bleiben
  • Widgets funktionieren unabhängig
  • Service läuft im Hintergrund
  • Automatische Wiederverbindung
  • ⚠️ Aktuell weniger Parameter (aber erweiterbar)
  • ⚠️ Keine Logging-Funktion (kann hinzugefügt werden)

Support

Bei Problemen:

  1. Prüfen Sie die Bluetooth-Verbindung
  2. Aktivieren Sie den Testmodus zum Testen
  3. Prüfen Sie die App-Berechtigungen
  4. Starten Sie den Service manuell in den Einstellungen