5.1 KiB
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
- Projekt in Android Studio öffnen
- Gradle Sync durchführen
- App auf Gerät oder Emulator installieren
Verwendung
Erste Einrichtung
-
Bluetooth-Gerät auswählen:
- Öffnen Sie die App
- Gehen Sie zu Einstellungen
- Wählen Sie Ihr OBD2 Bluetooth-Gerät aus
-
Widget hinzufügen:
- Long-Press auf Home-Screen
- "Widgets" auswählen
- "OBD Widgets" auswählen
- Widget auf Home-Screen platzieren
-
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 wurdecom.obdwidgets.DISCONNECTED: Wenn Verbindung getrennt wurdecom.obdwidgets.CONNECTION_STATUS_CHANGED: Bei Statusänderung (Extra:status)
Tasker Beispiel
- Erstellen Sie ein neues Profil
- Event → System → Intent Received
- Action:
com.obdwidgets.CONNECTED - Fügen Sie Aktionen hinzu (z.B. Benachrichtigung, Task starten)
Erweiterbarkeit
Die App ist für Erweiterungen ausgelegt:
Neue OBD-Parameter hinzufügen
- Öffnen Sie
OBDParameter.kt - 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
- Fügen Sie einen neuen Wert zu
WidgetTypeEnum hinzu - Erstellen Sie ein neues Layout in
res/layout/widget_xxx.xml - Implementieren Sie die Widget-Erstellung in
OBDWidgetProvider.kt
Neue OBD-Protokolle hinzufügen
- Implementieren Sie das
OBDProtocolInterface - Erstellen Sie eine neue Klasse (z.B.
STN11xxProtocol.kt) - 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:
- Prüfen Sie die Bluetooth-Verbindung
- Aktivieren Sie den Testmodus zum Testen
- Prüfen Sie die App-Berechtigungen
- Starten Sie den Service manuell in den Einstellungen