How-to integrate HomePod Mini Sensors into Home Assistant When Direct Integration Isn't Possible

How to get this beta version? Thanks

https://beta.apple.com

I’m not sure if other beta users have similar issues, but it seems like 18.4 beta 1 was good. However, since then I have been seeing “updating” problems with some devices, thus causing my Shortcuts to time-out and prevent all of the sensors from passing data to HA.

Have a look here: How to install the HomePod beta software to test new features

I’m running HomePod OS 18.4 (22L5240e). No issues so far.

Looks like a hard power cycle of devices having said issues seemed to resolve my problems. Looking into a method to ignore/skip those devices that have “no reponse” so the rest of the shortcut runs successfully. So far it looks like a x-callback-url is the current method people are using to work around shortcut process failures. Now just need to wrap my head around how – or even if – it can be implemented. Really wish Shortcut’s Home integration allowed variables to select HomeKit devices.

Thank you very much! I will have a look.

Hello community

I wondered if this approach still worked. I have tried to follow all the steps but to no avail. Could anyone help me?

Had a little trouble getting it to work until I figured out which parts posted corresponded with other parts. Other hurdle I ran into was the homepod by default sends the temp as a string with °C in it so my automation strips it to just the number then converts to fahrenheit. Not near a computer so phone screenshots for you. Colored boxes all correspond to parts that match across the Shortcuts app automation and Home Assistant’s automation.

At a desktop now, here’s my automation yaml:

alias: HomePod Temp and Humidity
description: Process temperature and humidity from HomePod Mini
triggers:
  - webhook_id: homekit_sensors
    allowed_methods:
      - POST
    local_only: true
    id: WebHook
    trigger: webhook
  - minutes: /2
    id: time
    trigger: time_pattern
    enabled: true
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - WebHook
        sequence:
          - data_template:
              entity_id: input_number.{{ trigger.json.sensor }}_temperature
              value: >-
                {{ (trigger.json.temperature| replace('°C',''))|float * 1.8
                +32}}
            action: input_number.set_value
          - data_template:
              entity_id: input_number.{{ trigger.json.sensor }}_humidity
              value: "{{ trigger.json.humidity }}"
            action: input_number.set_value
      - conditions:
          - condition: trigger
            id:
              - time
        sequence:
          - data: {}
            target:
              entity_id: input_boolean.homekit_sensors_update
            action: input_boolean.turn_on
          - delay:
              hours: 0
              minutes: 0
              seconds: 5
              milliseconds: 0
          - data: {}
            target:
              entity_id: input_boolean.homekit_sensors_update
            action: input_boolean.turn_off
mode: parallel
max: 10

And input helper yaml:

input_boolean:
  homekit_sensors_update:
    name: Collection of HomeKit sensors
    initial: off

input_number:
  homepodmini_bedroom_temperature:
    name: "Bedroom HomePodMini Temperature"
    initial: 60
    min: 0
    max: 100
    unit_of_measurement: "°F"

  homepodmini_bedroom_humidity:
    name: "Bedroom HomePodMini humidity"
    initial: 50
    min: 0
    max: 100
    unit_of_measurement: "%"

Hi, I’m doing method B and I’m stuck on step 3.

Where do I add these JSON? When I get to the stage where I convert the automation to a shortcut, I don’t seem to see the temperature of humidity exposed.

Could someone please provided clearer steps? Thank you

Look at their picture directly after that. It’s in the Headers section for your step in the shortcuts app: “Get contents of http://homeassistant:8123/api/webhook/{WEBHOOK_ID}”, with WEBHOOK_ID being “homepodmini_temperature” in their picture. Headers is directly below Method, and directly above Request Body in that Shortcuts action.

To get the authorization token you need to put there, go to your Hass in a browser, click your user at the bottom of the sidebar, go to the Security tab, and scroll to the bottom section Long-lived access tokens. Then create a token. That token is what you’d put in that Headers key that you’ll name Authorization, with the format “Bearer {TOKEN_HERE}”. There’s a link there in that long lived access tokens section with documentation on making authorized POST requests.

I just can’t get this to work. The steps feel incomplete for those who are not super familiar with HA and there’s half-answers throughout the thread that don’t necessarily fix one’s issue. I literally wish there was an explain to me like I’m 5 yo step by step guide of the non-python guide at this point :melting_face:

1 Like

Hi all, I wrote an article that goes into details on how to setup the temperature and humidity sensors of the HomePods in Home Assistant. I cited this thread multiple times since a variation of “Method B” is what I have been using for the last 2 years and it worked well. I also put in references to solve some of the most common issues and how tos. Hope it helps somebody!

3 Likes

HomePod Mini Sensor Integration via iOS Shortcuts Automation Stopped Working Automatically After iOS 18 - Only Updates with Manual Trigger

Problem Description:

I'm using the workaround method to integrate HomePod Mini temperature and humidity sensors into Home Assistant via iOS Shortcuts and webhooks (following the community guide). The setup worked perfectly before iOS 18, but now the automation only updates when I manually toggle the input boolean helper - it no longer runs automatically despite being configured to trigger every minute.

My Setup:

Home Assistant Automation:

alias: Homekit - Sensor Collection
description: Processes temperature and humidity data from the HomePod Mini
triggers:
  - id: time
    trigger: time_pattern
    minutes: /1
actions:
  - data: {}
    action: input_boolean.turn_on
    target:
      entity_id: input_boolean.input_boolean_homepod_sensor_trigger
  - delay: "00:00:05"
  - target:
      entity_id: input_boolean.homekit_sensors_update
    data: {}
    action: input_boolean.turn_off
mode: single

iOS Shortcuts Setup:

  • Shortcut gets temperature and humidity sensor data from HomePod Mini
  • Sets AuthToken variable with bearer token
  • Makes HTTP POST requests to Home Assistant webhook endpoints:
    • http://192.168.86.23:8123/api/events/homepod_temperature
    • http://192.168.86.23:8123/api/events/homepod_humidity

HomeKit Automation:

  • Trigger: When input_boolean.homepod_sensor_trigger turns ON
  • Action: Run the iOS Shortcut
  • Settings: "Ask Before Running" is OFF, "Enable This Automation" is ON

Current Behavior:

  • Home Assistant automation runs every minute and toggles the input boolean
  • The input boolean shows as "On" and updates timestamp correctly
  • However, the iOS Shortcuts automation doesn't execute automatically
  • Dashboard entities only update when I manually toggle the input boolean in Home Assistant
  • When manually triggered, the shortcut works perfectly and data flows correctly

What I've Tried:

  • Recreated the HomeKit automation multiple times
  • Verified all settings are correct
  • Confirmed the shortcut works when run manually
  • Checked that "Ask Before Running" is disabled

Environment:

  • iOS 18.5 on iPhone 14 Pro Max
  • HomePod Mini as Home Hub
  • Home Assistant version: Latest version

Question:

Has anyone else experienced iOS Shortcuts automations not running automatically after iOS 18 updates? Are there any workarounds or alternative methods to reliably get HomePod Mini sensor data into Home Assistant without relying on iOS Shortcuts automations?

The core issue seems to be that iOS 18 has broken automatic execution of shortcuts in HomeKit automations, particularly those involving network requests.

Any suggestions would be greatly appreciated!

Thanks Nicolas… It works pretty well now :slight_smile:

Same problem for me. I am able to send the flow only manually, by clicking verify automation. Anyway, via webhook automation and triggering the button, IOS shortcuts seems not working. Anyone the same problem, how to solve in case? Thank you

UPDATE: i was able to post via non local setting local_only: false and using https external url on HA.

Now i am able and to post all the value of my 5 homepod in my house. Is it possibile to create an helper making the median value of the sensor in order to have for example the median temperature value of my house?

Confused on some of the settings folks are using. If I’m using Method B with a template sensor that sets device_class, unit_of_measurement, etc. why would I include those as attributes in the Home Automation Shortcut?

Hi there

First of all thanks a lot for the nice article. I would describe myself as a more or less experienced HA-user, however I cannot get this thing to run :frowning: I spent several hours including reading this whole thread and asking Chat GPT.

UPDATE: I have created like the 4th token and now it works like a charm :slight_smile:

Here is what I have configured so far:

template:
  - trigger:
      - platform: event
        event_type: homepodmini_livingroom_temperature
    sensor:
      - name: "Livingroom Temperature"
        unique_id: homepodmini_livingroom_temperature
        state: "{{ trigger.event.data.state }}"
        unit_of_measurement: "°C"
        device_class: temperature
        state_class: measurement

Home-App automation looks like:


As you can see I get an 401:Unauthorized error. I created 3 new API long-living keys, however none of them works.

I payed extra attention on the text-field: Bearer eyJh… (only one space between Bearer and the key)

When I send a GET-request to 192.168.1.116:8123/api I get a response:

Would appreciate any help, I really dont understand why I get the 401-error.

Best,
Andrew

Just a few notes… for method B.

1- In HA, Create an input_boolean Exposed to HomeKit
2- In HA, Add this input to Homekit Bridge and restart
3- Create an Automation in Home Assistant
4- In Home, Set Up an Automation in the HomeKit App
5- Authorization = Bearer xxxxxxxxxx (xxxxxxxxxx = Profile, security, Long-lived access tokens, create token, copy)
6- state = numeric (You can click on the variable to see if it is a numeric value.)
7- no need to create sensor templates
8- To verify, run the automation in HA and not the script in Home
9- Check if the values ​​appear in Developer tools, States, sensor name
10- Sometimes, in the Home app, the trigger for your automation disappears. Make sure it’s the right one.

Thank FermedePommerieux !