HomeKit, Starling hub, Service.InputSource and temperature sensor selection

Hollo, I have a Starling hub, which is an homekit bridge for Nest devices. It is very nice cause it allows easy access to many Nest sensors / features that the HA Nest integration do not provide (cause of lack of support from Google APIs)

Starling hub has support to select which temperature sensor the thermostat uses and I would like to automate that. For some reason, the input selection does not appear in HA.

According to Starling, the expose the temperature sensor selection as a set of Service.InputSource, which is a standard HomeKit service.

Is there anything missing with the HA homekit integration? Am I missing anything else?

Also running Starling Hub, Something has changed along the way.

In my new install of HA, temp sensors selections are being pulled into a media_player entity and each sensor as a source so maybe that’s what you are seeing as well.

image

I think something is wrong(or it is how it is) because its not displaying the default sensor of the Nest Thermostat so when you swap sensors from default you get into a “problem” state. Only way i found that works for me is to go into the nest app pick a non-default sensor and then select a source from a sensor that’s also in media_player source in HA

I am experiencing the same issue. It appears when the default temperature sensor is being used the media player in HA shows as off, however there is no support for turning on the media player through HA. Has anyone found a workaround for this?

Just curious if you (or anyone else) figured out how to change the active temp sensor via HA?

Thanks to @Ramias in Nest Protect motion sensors with Starling Hub I figured out a way to do this in an admittedly somewhat hacky way (or at least it shouldn’t require this).

Basically, go set up SDC access on the StarlingHub local site if you havent done so already.
Afterwards, you can add a restful command (see RESTful Command - Home Assistant).

The SDC API Guide gives you examples for getting the device list, and status. I.e. go to [STARLING HUB IP]/sdc/#getdevices. Depending on your setup, you can probably do something easily like:

http://[STARLING HUB IP]:3080/api/connect/v1/devices?key=[KEY YOU SET UP]

For my upstairs thermostat, the line I added to my configuration.yaml was:

 rest_command:
  set_upstairs_thermostat:
    url: "http://[STARLING HUB IP]/api/connect/v1/devices/[DEVICE ID FOR THERMOSTAT]?key=[SDC KEY YOU CREATED]"
    method: post
    payload: '{ "sensorSelected" : "{{ sensor }}" }'
    content_type: application/json

Assuming you did that correctly, following a reboot you should get a service in your developer tools. In my example, I need to provide it a sensor id (so I can switch to one of the several I have)

service: rest_command.set_upstairs_thermostat
data:
  sensor: [either "" for the thermostat, or a sensor ID]

It looks like when you set it to the thermostat, it still turns ‘off’ the media player, but I can successfully update and turn it on with the valid ids from other sensors.