OH Drive - A new experimental openHAB app for Android Auto (APK + Sitemap Examples)

Hi everyone,

First of all, special thanks and greetings to @scooter_seh for his idea and the solution.
As I cannot develop code, ChatGPT was helping me with Android Studio and the stuff around.

I would like to share a small personal project that I have been working on: OH Drive, an experimental Android Auto application for openHAB.

The idea was simple: I wanted to access selected openHAB devices and information directly from my car’s Android Auto display, using a clean interface with large buttons and minimal interaction.

After several development and testing sessions, OH Drive has reached version 1.6. I have tested it using the Android Auto Desktop Head Unit (DHU) and in my Mercedes with a Samsung Galaxy S23 Ultra.

I thought other openHAB enthusiasts might enjoy experimenting with it as well.

What is OH Drive?

OH Drive is a standalone Android Auto application that connects to an existing openHAB installation through the REST API.

Its main feature is a dynamically generated Android Auto interface based on a dedicated openHAB Sitemap.

You decide which Items appear in your car by editing the Sitemap on your openHAB server.

There is no need to rebuild the APK whenever you add, remove, or rename an Item.

Current features in version 1.6

  • Dynamic loading of selected openHAB Sitemap entries

  • Android Auto grid layout with large buttons and icons
    The icon are here listet with their names:
    Icons | openHAB

  • Display of sensor values, temperatures, weather information and other Item states

  • Switch controls with visual command feedback

  • Special impulse handling for relay-based controls

  • Roller shutter submenu with Up, Stop and Down

  • Automatic roller shutter position updates approximately every two seconds while the submenu is open

  • Live monitoring of configured relay events

  • Visual command feedback: orange hourglass, green checkmark and red error symbol

  • Automatic German/English interface language selection based on the Android system language

  • Custom Sitemap labels are preserved exactly as configured by the user

The application uses openHAB’s existing REST API and does not require an additional openHAB binding.

How is OH Drive different from OH Auto?

OH Drive is not intended to replace OH Auto or compete with its development.

My focus was specifically on a Sitemap-driven approach.

Instead of maintaining a separate, fixed selection of devices inside the Android application, OH Drive reads a dedicated Sitemap and builds its Android Auto interface dynamically.

For example, adding a temperature Item or another supported switch only requires changing the Sitemap on the openHAB server.

Other particular design choices include:

  • A dedicated roller shutter control screen

  • A simple dashboard with dynamically loaded icons

  • Live relay feedback and command status indicators

  • German and English interface localization

I have not performed a comprehensive feature-by-feature comparison with the latest OH Auto release. I would be interested to hear from users who have experience with both approaches.

Example Sitemap

Create a file called ohdrive.sitemap in your openHAB Sitemap directory.

Here is a simplified example using fictional Item names:

sitemap ohdrive label="OH Drive"
{
    Text item=Outdoor_Temperature
        label="Outside temperature [%.1f °C]"
        icon="temperature"

    Text item=Weather_Condition
        label="Weather [%s]"
        icon="sun"

    Switch item=Hall_Power
        label="Hall power"
        icon="poweroutlet"

    Slider item=Bedroom_Roller
        label="Bedroom roller shutter"
        icon="rollershutter"
}

Replace these Item names with your own existing openHAB Items.

The Sitemap controls the displayed Item selection and labels. OH Drive currently supports a selected subset of Sitemap widgets, not the complete openHAB Sitemap specification.

Important: Special impulse relay handling in this version uses predefined Item names in the application. It is not a generic, automatically configurable safety system for arbitrary garage doors or other actuators. Do not assume that simply adding a relay to the Sitemap enables the same safeguards.

Installation

OH Drive is currently distributed as an experimental APK, not through the Google Play Store.

For my setup, installation requires AA Enabler to make the application available in Android Auto.

General procedure:

  1. Download the OH Drive APK.

  2. Install it using the AA Enabler procedure.

  3. Configure the connection to your openHAB server.

  4. Create the dedicated ohdrive.sitemap.

  5. Start Android Auto and open OH Drive.

AA Enabler is a third-party tool, is not included with OH Drive, and may be restricted or blocked by Android or Google Play Protect. Compatibility is not guaranteed and depends on the Android and Android Auto versions.

Please use a trusted source for any installation tools and understand the risks of sideloading applications.

Language support

OH Drive 1.6 includes English and German interface resources.

The application automatically uses the appropriate language based on the Android system settings.

However, labels coming from the openHAB Sitemap are deliberately not translated. Each user can define those labels in their preferred language.

Testing and limitations

This is an early experimental version developed and tested primarily for my personal environment.

It has been tested with:

  • openHAB 5.2.1

  • Samsung Galaxy S23 Ultra

  • Android 16

  • Android Auto Desktop Head Unit

  • Mercedes Android Auto display

  • An active, working VPN Tunnel, that the you mobile have direct access to your OH Server

Other Android devices, head units, openHAB versions and network configurations have not been comprehensively tested.

A network connection to the openHAB server is required. Remote access, if used, must be configured and secured by the user.

The roller shutter position display reflects the state reported by openHAB. Depending on the openHAB Item configuration, optimistic state updates may temporarily display the requested end position rather than the actual physical position.

Important disclaimer – experimental software, use entirely at your own risk

OH Drive is an unofficial personal hobby project, provided for fun, experimentation and educational purposes only.

It is not an official openHAB application and is not affiliated with or endorsed by the openHAB project, Google, Android Auto or any vehicle manufacturer.

The application and APK are provided AS IS, without any warranty or guarantee of functionality, reliability, availability, compatibility, safety or fitness for a particular purpose.

I accept no responsibility or liability, to the extent permitted by applicable law, for damage, loss, malfunction, unintended device activation, incorrect status information or other consequences arising from installation or use.

Do not rely on OH Drive for safety-critical functions.

Controlling physical equipment such as garage doors, gates, shutters or other actuators can be dangerous. Software feedback does not guarantee the actual physical state of a device.

Users are solely responsible for evaluating their own configuration, implementing appropriate independent safety measures and complying with applicable laws and road-safety requirements.

Never operate the application in a way that distracts you while driving.

If you decide to try OH Drive, please understand that it is experimental software and use it entirely at your own risk.

Downloads and examples

I am attaching the following files to this post:

  • ohdrive.sitemap – example Sitemap

  • Screenshots showing the main dashboard and roller shutter controls

I would be happy to hear whether the application works in other Android Auto environments and what improvements might be useful.

This started as a fun personal experiment. Perhaps it will also be interesting for other openHAB users.

Have fun experimenting!

Tell me if you have interesst, you will get the apk it via PM

OH Drive 1.9 – Experimental openHAB Client for Android Auto

Hi everyone,

I’d like to share a small experimental project I’ve been working on: OH Drive, an Android Auto client for openHAB.

The idea is simple: provide access to selected openHAB items directly from the Android Auto display, using a dedicated sitemap.

The application currently supports displaying item states, controlling switches, sending configured impulse commands, and operating rollershutters and awnings.

New in version 1.9 – Rollershutters and awnings

OH Drive now supports different display and control descriptions for rollershutters and awnings, even though both use the standard openHAB Rollershutter item type.

The distinction is configured through an optional OH Drive-specific marker in the sitemap label.

For example:

Rollershutter:

Slider item=LivingRoom_Shutter label="Living Room Shutter [%s]" icon="rollershutter"

Awning (0% = open, 100% = closed):

Slider item=Terrace_Awning label="Terrace Awning [ohdrive:markise:0offen] [%s]" icon="rollershutter"

Awning with reversed percentage interpretation:

Slider item=Terrace_Awning label="Terrace Awning [ohdrive:markise:100offen] [%s]" icon="rollershutter"

The optional markers are:

  • [ohdrive:markise:0offen] – Awning, 0% open and 100% closed

  • [ohdrive:markise:100offen] – Awning, 100% open and 0% closed

  • [ohdrive:rollo:0offen] – Rollershutter, 0% open and 100% closed

  • [ohdrive:rollo:100offen] – Rollershutter, 100% open and 0% closed

Without a marker, OH Drive uses its existing rollershutter behaviour.

These markers are interpreted by OH Drive and hidden from the displayed item title.

Independent icon selection

Icons are not used to identify the device type.

Users can select any supported openHAB Classic icon for their items. An awning does not need a special icon, and a rollershutter does not need to use rollershutter.

This keeps the sitemap flexible and compatible with existing openHAB installations.

Control interface

Both device types use the standard openHAB commands:

  • UP

  • STOP

  • DOWN

For awnings, OH Drive provides descriptions such as Extend awning and Retract awning. For rollershutters, it uses the corresponding raise/lower descriptions.

The underlying commands are not modified by the device marker or percentage setting.

The dashboard also displays the position in a human-readable format, such as Fully open, 81% closed, or Fully closed.

Other features

OH Drive currently includes:

  • A dashboard generated from a dedicated openHAB sitemap

  • Display of temperatures, item states and other sensor values

  • Switch and impulse-command support

  • Rollershutter and awning controls

  • Position updates for rollershutter items

  • German and English interface texts

  • Support for connecting to an openHAB server over an existing network or VPN connection

The application is intended to work with standard openHAB REST API functionality.

Installation and testing

This is currently an experimental APK, not a Google Play release.

My testing setup includes Android 16, Android Auto, the Desktop Head Unit emulator, and openHAB 5.2.x.

Installation in my test environment uses AA Enabler. This is not an officially approved Android Auto distribution method, and compatibility with other phones, Android Auto versions, or vehicles is not guaranteed.

Version 1.9 has been tested in the Android Auto emulator for dashboard rendering, awning recognition, icon independence, and the displayed control descriptions.

The reversed percentage configuration and actual movement directions have not yet been fully validated across different devices.

Safety and limitations

Please consider this project experimental.

It can send real commands to connected devices. Be particularly careful with garage doors, gates, shutters, awnings and other moving equipment.

Do not operate equipment unless you can safely observe it, and do not interact with the application while driving.

The project is shared for testing and discussion, without any guarantee of suitability, reliability, compatibility or safety, to the extent permitted by applicable law.

Feedback welcome

I’m interested in feedback from other openHAB users, particularly regarding:

  • Different rollershutter and awning configurations

  • Sitemap compatibility

  • Icon handling

  • Android Auto behaviour across different devices

  • Possible improvements for a future public release

This is a personal experimental project developed for fun and to explore how openHAB can be integrated into Android Auto.

Thanks, and I look forward to your feedback!

First of all thanks for the development… I would love to test it, but, where can I found the Apk file? There is also an “official” place for AA Enabler?

Thanks in advance!

Ruben

Hello please check the current latest version and the readme here:

AAenabler could be found here:

Oh. Version 2.7..

Nice.

I’ll test…

Same feature set as 2.5, was trying to do some development for a camera support with
a image to be take and shown under AA, but the size is to small to be usefull under AA.

→ Newest version 2.7 :slight_smile:

I have installed with no problem… but I don’t understand german… so… I don’t know what the app is saying to me :frowning: :sweat_smile:

On the other part, I have put the myopenhab cloud as server, but it doesn’t work and there aren’t any place for auth… so, I think that actually only works with local no auth or some VPN. Is that true?

Thanks in any case.

Ruben

Hello,

The app speaks German and English, depending what language you are using on your phone.

But all the Icon name can be used in whatever language you would like.

All information comes from the ohdrive.sitemap file were you OH installation is stored.

e.g. /etc/openhab/sitemaps/ohdrive.sitemap

The definition of the items is done only in the file on you OH installation

Now the App only works when you have an active VPN connection to you OH installation.

A cloud connection is not implemented now. Perhaps coming later.

So, you need to a VPM establish to your local network, where you OH installation is running, e.g. with wire guard, etc.

I will explain my test. My phone is a Xiaomi 14T Pro, I have installed version 2.7 of OH Drive using AA Enabler. All works correctly during installations.

My phone uses catalan as primary language, also spanish and english as prefered languages, but OH Drive appears on german language, so I don’t know what it says :sweat_smile:. I have created a sample sitemap bassed on documentation sample but using my items.

I have put my local OH server on OH Auto configuration, it seems to work as “Verbindung prüfen” display a “green message” (Although I use OH cloud, also have Tailscale, so I think could use it outside local network).

In any case, the problem now is that the program doesn’t appear on Android Auto as allowed application. Firstly it doesn’t appear on car screen apps, and I have gone to Android Auto apps selection and OH Auto doesn’t appear.

Android Auto version is 17.9.664044 and Android 16 (HyperOS 3.0.303.0)

I hope that could be used to improve app.

Thanks

Ruben

Use the new 2.8 of OH Drive.
I made a new version, were you can select the language you want to use. at the moment, German and English is supported.
To see the App under Android Auto, you need to copy the file to you phone.
To install the ohdrive, that it will be visible in the AA launcher, you need to install it via the App called AAenabler. Only installation with this App the ohdrive will get visible under Android Auto.
Tailscale is a classic VPN tunnel App, which brings you mobile into you homenetwork, as you would be at home and connected via WIFI to you local network. It is, than should work.
You need to have access from your mobile via classic IP adresses.
e.g. 192.168.0.10 is your OH server, use this IP in OHdrive as your server IP.

Overseen, that you have already installed via AAenabler…

Have you enabled your AA in developer mode, and have selected, allow unknown sources?

I will try the new version later, thanks.

And yes, I have installed using AA Enabler with no problems (my phone has developer mode because I teach .NET MAUI and tests apps in my phone).

Can I check something more?

I send you some snapshots.

Installed again with AAEnabler. The language selector didn’t work for me neither closing and reopening it. And continue without appearing on Android Auto allowed apps.

Please try with 2.8, but this will solve your not visible problem in AA launcher.
Perhaps ChatGPT could help here…
For me it works with A16 on my older SG23U.

As you can see on snapshots… last test was with 2.8 :frowning:
Maybe is mandatory to bought AAEnabler licence to work it?

Hi,

First of all, thank you very much for testing OH Drive and for providing such detailed feedback and screenshots! I really appreciate your help.

I’ve investigated the Android Auto visibility issue and found something interesting in the AAEnabler GitHub project.

It appears that AAEnabler can successfully recognize and install an Android Auto-compatible APK without necessarily guaranteeing that Android Auto will display the application.

There are also reports of similar problems on Xiaomi devices running HyperOS, where applications installed through AAEnabler do not appear in the Android Auto app launcher.

This could explain what you’re experiencing with your Xiaomi 14T Pro running Android 16 and HyperOS 3.

Could you please check one thing?

In Android Auto’s developer settings, make sure “Unknown sources” is enabled. This is different from the regular Android setting that allows APK installation.

If it is already enabled, the issue might be related to Xiaomi’s installation process or HyperOS restrictions rather than OH Drive itself.

I’ve also identified the language issue you reported. OH Drive 2.8 introduces German and English language selection, but your screenshots suggest that the selected language isn’t being applied correctly to the settings screen. I’ll investigate this for the next update.

For unsupported system languages such as Catalan, OH Drive should automatically fall back to English rather than German.

For now, I don’t want to change the Android Auto integration without understanding the underlying issue.

Thanks again for your support and for helping improve OH Drive!

Last check: I have checked the option of “Allow unkown sources” in Android Auto. I don’t know that that option exists! I have to enable “Developer Mode” in Android Auto that is different from “Developer Mode” in the phone.

Reinstalled version 2.8, and now, surpringnsly, the app allows me to change language and save it, so now is in english.

But actlually the App still doesn’t appear on Android Auto “apps to show”. I have rebooted the phone, but still doesn’t show in that list (second snapshow before). Tomorrow test with the car itself.

Ruben
PD: Edited: Tested on the car and also doesn’t appear :frowning:

Edit 2; very strange, now app appears at Android Auto version info that in theory displays all AA enabled apps… But still refuses to show it. Attach screenshot.

Please check the OH Drive installation on your Xiaomi phone

We’re comparing your phone with mine because OH Drive 2.8 appears in Android Auto’s Customize launcher on my phone, but not on yours. On my phone, Android reports OH Drive as installed by Google Play, version 2.8, and as a debuggable build. The same checks on your Xiaomi will show whether your installation source or app build is different. If they match, we can investigate a Xiaomi or Android Auto-specific issue next.

This check only reads app information. It does not change or reinstall anything. You do not need Android Studio.

1. Download ADB for Windows

Download Google’s official SDK Platform-Tools for Windows from the Android Developers website. The ZIP includes adb.exe. developer.android.com

Extract the ZIP. Open the extracted platform-tools folder in File Explorer, click the address bar, type powershell, and press Enter. PowerShell should open in that folder.

2. Enable USB debugging on your phone

On your Xiaomi:

  1. Open Settings and search for Developer options. If you can’t find it, go to About phone and tap the OS version/HyperOS version repeatedly until Developer options are enabled. The exact menu names can vary.
  2. Open Developer options and turn on USB debugging.
  3. Connect the phone to your computer with a USB data cable and unlock the phone.
  4. If prompted, allow USB debugging for this computer.

This is the phone’s Developer options, separate from Android Auto’s Developer Mode. Google’s ADB instructions describe enabling USB debugging and accepting the phone’s authorization prompt. developer.android.com

3. Confirm that ADB sees the phone

In the PowerShell window opened in the platform-tools folder, run:

.\adb.exe devices

The phone should appear with the status device. If the status is unauthorized, unlock the phone and accept the USB-debugging prompt, then run the command again. If no device appears, try a different USB data cable or USB port.

4. Collect the OH Drive information

Run these commands one at a time in the same PowerShell window:

.\adb.exe shell pm list packages -i | findstr /i "de.ohdrive.app"
.\adb.exe shell dumpsys package de.ohdrive.app | findstr /i "versionName versionCode pkgFlags"
.\adb.exe shell run-as de.ohdrive.app id

Please send me the output of these three commands. You can leave out the device serial number shown by adb devices.

We’re comparing the installer, version, and build flags. If they match my phone’s results, the way the app was installed is less likely to explain why it is missing from your launcher. If they differ, that gives us a specific lead.

I have sent that all information to you. I hope it can help.

Ruben

I have just updated to 3.0 version… much more things on app… but it still refuse to show on my Xiaomi phone… are there other people with same problem?

Thanks @scheuerer for the development!

Ruben

Edited: I have read the change log… and the problem is still present. If you need or if I could help you with more tests and logs, tell me. If you want, you can send me a “logging debug version” that can save extra informatión to resolve the issue.

Hi Ruben,

Just a quick update!

I’ve opened a new issue in the AAEnabler GitHub project regarding the problem with OHDrive on your Xiaomi 14T Pro.

I’ve included all the technical information and diagnostic results from our previous tests, including the comparison between your Xiaomi and my Samsung Galaxy S23 Ultra.

I also explained that OHDrive works perfectly on my Samsung but is not recognized by Android Auto on your Xiaomi, despite being installed successfully.

I’ve asked the AAEnabler developer to investigate whether this could be related to HyperOS 3, Android Auto, or the installation process, and whether a new version of AAEnabler might solve the problem.

I also mentioned that you would probably be happy to support the developer with additional tests and logs if needed. I hope that’s okay with you!

Let’s see what the developer says. I’ll keep you informed, and hopefully we can solve this together.

Thanks again for all your help and testing!