CarHA — Control Home Assistant from Apple CarPlay

Hi Lucian,

Does this app also support Home Assistant scripts? For example, for turning the heating or air conditioning on and off?

Ted

Hi Ted,

Yes, CarHA fully supports Home Assistant scripts!

When adding a button, simply enter the entity ID of your script (e.g. script.turn_on_heating) and set the type to “Toggle Button”. Tapping the button in CarPlay will trigger the script directly.

This works for any HA entity, including scripts for heating, air conditioning, lights, or any other automation you have set up.

Let me know if you need any help setting it up!

Best regards,
Lucian

Hi Denis,

Thank you so much for the detailed feedback — it was extremely helpful and led to significant improvements!

Here’s what was fixed in version 1.6, now submitted for Apple review:

  1. Configuration reset after update — fixed. Your settings will now be preserved across app updates.

  2. Geofence radius sliders — fixed. Outer and inner radius can now be adjusted directly from the interface.

  3. Import from file — you can now import your configuration directly from a JSON file, in addition to clipboard.

  4. Timer entities — timer entities from Home Assistant are now supported in the dashboard, showing active/paused/idle status.

  5. App language — all remaining Romanian text has been replaced with English.

  6. Custom notification message — the geofence notification message now saves correctly from the interface.

Regarding the icon issue: the icon is stored in the configuration and should be retained after import. If you’re editing the JSON manually and the icon is reverting, please make sure the “icon” field is present in each button entry in your JSON.

Version 1.6 should be available within 24-48 hours.

Thanks again for helping make CarHA better!

Best regards,
Lucian

Hi Denis,

Regarding your geofence configuration: I noticed the coordinates in your export show latitude 99.49, which is invalid (latitude must be between -90 and 90). I understand you changed them for privacy, but please make sure your actual saved location in the app uses your real home coordinates.

Also, a few things to verify:

  1. Go to iPhone Settings → Privacy & Security → Location Services → CarHA and make sure it is set to “Always”.

  2. With mode set to “Assist” and delay 0, you should receive a notification when entering the outer radius (100m). Tap “Yes, open” to trigger the action.

  3. Make sure the zone is enabled (toggle is ON in the Geofence tab).

  4. iOS geofencing has a minimum accuracy of about 100m, so very small radii (under 100m) may not trigger reliably. Try setting the outer radius to at least 200-300m for testing.

Let me know if it works after checking these points!

Best regards,
Lucian

Hello Lucian,

In my settings for Location services, I have only two options: “Never” and “When sharing content”. "Always is not an option.

Also,is it possible to chose our “Current position” when ading a zone? It currently defaults to Bucarest. Furthermore, there is no possibllity to change the radius from the app, it can only be done by changing the json file. It currently defaults to 1m.

Thanks

Denis

Hi Denis,

Thanks for the detailed feedback! All three issues are fixed in version 1.7, currently under Apple review (24-48h):

  1. Location permission — “Always” option will now appear correctly after the update
  2. Current position — new zones now default to your current GPS location instead of a fixed coordinate
  3. Radius sliders — fixed, sliders now work correctly in the app

And since this is a major update, here’s everything else that’s new in v1.7:

  • :blue_square: Read-Only Tile — new button type to display sensor values (temperature, power, battery…) as colored tiles in the CarPlay grid without any tap action
  • :label: Custom ON/OFF labels — per button (e.g. Open/Close, Locked/Unlocked, Active/Idle)
  • :triangular_ruler: Sensor units — display %, °C, W, kWh etc. next to sensor values
  • :thermometer: Temperature rounding — values like 25.6666 now show as 25.7
  • :performing_arts: Scene fix — scenes no longer show OFF permanently; they now display “Active” when triggered
  • :shuffle_tracks_button: Dual Action — now supports a separate state entity for display
  • :bar_chart: Grid layout for all tabs — tabs with sensors and read-only tiles can now also use the grid layout

Hope this helps your setup!

Lucian

Hello Lucian,

Just installed v2.0. It gets better every time!

Location permission now shows Always, which I selected.

The geofence option does work, but with some problems.

The HA action was triggered automatically when I entered my Home zone, although my mode was Assist.

The notification message never appeared on my Carplay screen, but I noticed when I came home that it had appeared on my phone. CarHA did not wait for my reply and triggered the action.

This is my setup:

Any suggestions?

Denis

Hi Denis,

Thanks for the detailed report — that’s exactly the kind of feedback that helps.

You found a real bug: in Assist mode the inner geofence radius was still triggering the action automatically, instead of waiting for your confirmation. That’s now fixed — Assist mode always asks before running anything.

I’ve also fixed CarPlay notifications: the geofence prompt wasn’t allowed to show on the car screen. It now can (make sure notifications for CarHA are enabled in CarPlay, Settings).

Both fixes, plus a couple of other improvements, are in version 2.1, which I just submitted for review. Once Apple approves it you’ll get it as an update.

What’s New in 2.1:
• The geofence and other fixes above
• New integrations: eWeLink/Sonoff, Tuya/Smart Life and Shelly (control devices without Home Assistant)
• Fixed the tab that kept jumping back to the first one in CarPlay
• Fixed sensor units (%, °C, W) and button colors in list view
• Redesigned Backup screen and expanded in-app Help

Thanks again — please let me know if the Assist mode behaves as expected after the update.

Lucian