Skip to content

Commit e2c2815

Browse files
authored
Expose the entity_id of an entity to LLMs (#149428)
1 parent 051e472 commit e2c2815

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

homeassistant/helpers/llm.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ def _get_exposed_entities(
681681
info: dict[str, Any] = {
682682
"names": ", ".join(names),
683683
"domain": state.domain,
684+
"entity_id": state.entity_id,
684685
}
685686

686687
if include_state:

tests/components/mcp_server/test_http.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
EXPECTED_PROMPT_SUFFIX = """
6161
- names: Kitchen Light
6262
domain: light
63+
entity_id: light.kitchen
6364
areas: Kitchen
6465
"""
6566

tests/helpers/test_llm.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,83 +579,105 @@ def create_entity(
579579
exposed_entities_prompt = """Live Context: An overview of the areas and the devices in this smart home:
580580
- names: '1'
581581
domain: light
582+
entity_id: light.1
582583
state: unavailable
583584
areas: Test Area 2
584585
- names: Kitchen
585586
domain: light
587+
entity_id: light.kitchen
586588
state: 'on'
587589
attributes:
588590
temperature: '0.9'
589591
humidity: '65'
590592
- names: Living Room
591593
domain: light
594+
entity_id: light.living_room
592595
state: 'on'
593596
areas: Test Area, Alternative name
594597
- names: Test Device, my test light
595598
domain: light
599+
entity_id: light.test_device
596600
state: unavailable
597601
areas: Test Area, Alternative name
598602
- names: Test Device 2
599603
domain: light
604+
entity_id: light.test_device_2
600605
state: unavailable
601606
areas: Test Area 2
602607
- names: Test Device 3
603608
domain: light
609+
entity_id: light.test_device_3
604610
state: unavailable
605611
areas: Test Area 2
606612
- names: Test Device 4
607613
domain: light
614+
entity_id: light.test_device_4
608615
state: unavailable
609616
areas: Test Area 2
610617
- names: Test Service
611618
domain: light
619+
entity_id: light.test_service
612620
state: unavailable
613621
areas: Test Area, Alternative name
614622
- names: Test Service
615623
domain: light
624+
entity_id: light.test_service_2
616625
state: unavailable
617626
areas: Test Area, Alternative name
618627
- names: Test Service
619628
domain: light
629+
entity_id: light.test_service_3
620630
state: unavailable
621631
areas: Test Area, Alternative name
622632
- names: Unnamed Device
623633
domain: light
634+
entity_id: light.unnamed_device
624635
state: unavailable
625636
areas: Test Area 2
626637
"""
627638
stateless_exposed_entities_prompt = """Static Context: An overview of the areas and the devices in this smart home:
628639
- names: '1'
629640
domain: light
641+
entity_id: light.1
630642
areas: Test Area 2
631643
- names: Kitchen
632644
domain: light
645+
entity_id: light.kitchen
633646
- names: Living Room
634647
domain: light
648+
entity_id: light.living_room
635649
areas: Test Area, Alternative name
636650
- names: Test Device, my test light
637651
domain: light
652+
entity_id: light.test_device
638653
areas: Test Area, Alternative name
639654
- names: Test Device 2
640655
domain: light
656+
entity_id: light.test_device_2
641657
areas: Test Area 2
642658
- names: Test Device 3
643659
domain: light
660+
entity_id: light.test_device_3
644661
areas: Test Area 2
645662
- names: Test Device 4
646663
domain: light
664+
entity_id: light.test_device_4
647665
areas: Test Area 2
648666
- names: Test Service
649667
domain: light
668+
entity_id: light.test_service
650669
areas: Test Area, Alternative name
651670
- names: Test Service
652671
domain: light
672+
entity_id: light.test_service_2
653673
areas: Test Area, Alternative name
654674
- names: Test Service
655675
domain: light
676+
entity_id: light.test_service_3
656677
areas: Test Area, Alternative name
657678
- names: Unnamed Device
658679
domain: light
680+
entity_id: light.unnamed_device
659681
areas: Test Area 2
660682
"""
661683
first_part_prompt = (

0 commit comments

Comments
 (0)