When using fuzzy matching to match entity names for intents, whichever
entity is first is preferred in the case of equal matches. This leads
to situations where entities with similar names (such as entities named
for their area and then specific area location) may be used when the
whole area is wanted.
I ran into this with the my Phillips Hue lights. I have each individual
light named such that its room is the first part of the name, and its
location within the room after. So my living room has:
Living Room West
Living Room Northwest
Living Room North
Living Room Northeast
I then have a group for the whole room:
Living Room
Because the group is the last of the entities, trying to adjust the
whole room only activates one light, because all of the lights match
equally well.
By preferring the shortest of equal matches, we prefer keys that have
the least amount of extra information, causing "Living Room" to match
the group instead of an individual light.
This adds a `cycle` attribute to select_previous/next, and
select_first and select_last services.
This is quite useful for streamlining using input_select via
automations, such as when they represent a list of states to step
through; if the first option is the dimmest and the last the brightest,
one may not want to accidentally cycle from the first to the last, for
example.
Similarly, being able to directly select the first or last removes
adjustment in related automations.
* Add typing information
* Small improvments
* Use %r for exceptions
* Added exception handlers for aiohttp.ClientError
* Added testcase
* Changes after review
* Bugfixes
* Add WiLight Fan
Add fan to WiLigt integration
* Updated fan.py and test_fan.py
* Creating new fan test
* Update homeassistant/components/wilight/__init__.py
OK!
Done!
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/wilight/fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/wilight/fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update homeassistant/components/wilight/fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* As MartinHjelmare requested
* Update fan.py
* Update tests/components/wilight/test_fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update tests/components/wilight/test_fan.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update test_fan.py
As Martin Hjelmare suggested
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>