Naming of Alexa-controlled items

Do some of you guys have “Best Practises” in naming Alexa-controlled items?
I do have some struggles, having Alexa distinguish between multiple items in the same room, and often she simply refuses to use the smarthome devices’ names and just jump outside…

for example, I usually have this setup in a room (e.g. kitchen)

  • ceiling lights “kitchen lights”
  • wall lights “kitchen wall light”
  • rollershutters “kitchen rollershutters”
  • current temperature “kitchen temperature”
  • target temperature “kitchen target temperature”

So, now if I ask Alexa "Alexa, what is the temperature of kitchen temperature", she will tell me the outside temp from my weather location. Or if I say “Alexa, set kitchen target temperature to 21”, she will say, that device doesn’t support that (obviously the target temperature has the correct alexa notations and is listed as “thermostat”, but I suspect her chosing kitchen light"

So, I hope my struggles are clear and I’d like to know, if someone came up with a better solution of naming devices than I did here? :wink:

The issue here is that your request is not natural in the first place (2x temperature term). Usually when formulating a request that already indicates a specific capability, there is no need to include that term again. Have you tried asking Alexa, what is the Kitchen’s temperature?

Also, keep in mind that temperature sensor is one of the few capabilities that can be set as part of an Alexa-enabled group (aka room awareness). Once setup on the Alexa side, you would be able to just ask Alexa, what’s the temperature? from your echo device located in your kitchen.

I am confused on how you setup your thermostat endpoint. Maybe if you include your item definition, it would be easier to understand. You shouldn’t have to request the specific target temperature item name if it was setup properly. It should be the actual thermostat group item name. Alexa, set Kitchen temperature to 21

I found out, that Alexa doesn’t ask my “current temperature” item, but the echo in the kitchen, which of course can’t answer for the temperature. But even as I deleted all other devices in Alexa and only let the “current temperature” item in there, she would still go and tell me the local weather service information…
Perhaps I don’t have it set up correctly:

Me, too! :wink:
so, I’m using the GUI and the semantic model for all my items, so here it is:

* home (location)
** groundfloor (location)
*** kitchen (location)
**** KNXKueche (equipment)
***** KNXCurrentTemp (Point)
***** KNXSetTemp (Point)
***** KNXHvac (Point)

That means, all three items are in the same Group and therefore I could use the “Building Block API” features, don’t I?
so here’s the items metadata

KNXCurrentTemp "kitchen Current Temperature":
value: CurrentTemperature
config:
  category: TEMPERATURE_SENSOR

KNXSetTemp "kitchen Target Temperature":
value: TargetTemperature
config:
  category: THERMOSTAT

KNXHvac "kitchen Thermostat":
value: ThermostatController.thermostatMode
config:
  ECO: "2"
  HEAT: "1"
  COOL: "3"
  supportsSetpointMode: true
  category: THERMOSTAT
  supportedModes: '[HEAT="Komfort", ECO="Standby", COOL="Nacht", OFF="Frost"]'
  OFF: "4"

So, just to be sure:

  • current temperature is a data point, which I get from the room
  • target temperature is a data point, which I can set for that room
  • thermostat is the modes in which I can set my heating

They’re all set in KNX and the items are assigned to the respective channels.

The actual concept you should be looking is group endpoint and not building block API. The latter is reserved for the ModeController, RangeController and ToggleController interfaces only and refer to modeling a specific functionality opposed to a device.

So you need to configure your thermostat group as an endpoint. That way, all the thermostat functionalities you defined will roll under one single device on the Alexa side.

1 Like

ok, now we’re talking… I was thinking, if Alexa finds the items in the same group, she will automagically put them together.
so, one big step further! I added a new group for “kitchen heating”, added the three items and added Alexa metadata to the group
had to do it manually, cause there’s no “endpoint.x” dropdown value available in the GUI:

value: Endpoint.Thermostat
config:
  category: THERMOSTAT
  scale: Celsius

(it won’t show in the GUI normally, only in CODE…)

now I can ask

  • Alexa set kitchen heating to 20 degrees; and she answers, that she done that
  • Alexa raise (or increase) kitchen heating by 2 degrees; she’ll do that, too
  • Alexa set kitchen heating to HEAT or COOL; she’ll do that, BUT
    she won’t accept my (german) translations for that and she (or I?) don’t seem to know ECO or OFF

So, I guess, that’s it - except I can’t set the Mode to other than comfort or standby (but that’s ok, I don’t want to use nightmode or frostmode anyways.

This should answer your question:

1 Like