1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 08:41:59 +00:00
Files
esphome/tests/integration/fixtures/object_id_api_verification.yaml

126 lines
3.1 KiB
YAML

esphome:
name: object-id-test
friendly_name: Test Device
# Enable MAC suffix - host MAC is 98:35:69:ab:f6:79, suffix is "abf679"
# friendly_name becomes "Test Device abf679"
name_add_mac_suffix: true
# Sub-devices for testing empty-name entities on devices
devices:
- id: sub_device_1
name: Sub Device One
- id: sub_device_2
name: Sub Device Two
host:
api:
logger:
sensor:
# Test 1: Basic name -> object_id = "temperature_sensor"
- platform: template
name: "Temperature Sensor"
id: sensor_basic
lambda: return 42.0;
update_interval: 60s
# Test 2: Uppercase name -> object_id = "uppercase_name"
- platform: template
name: "UPPERCASE NAME"
id: sensor_uppercase
lambda: return 43.0;
update_interval: 60s
# Test 3: Special characters -> object_id = "special__chars_"
- platform: template
name: "Special!@Chars#"
id: sensor_special
lambda: return 44.0;
update_interval: 60s
# Test 4: Hyphen preserved -> object_id = "temp-sensor"
- platform: template
name: "Temp-Sensor"
id: sensor_hyphen
lambda: return 45.0;
update_interval: 60s
# Test 5: Underscore preserved -> object_id = "temp_sensor"
- platform: template
name: "Temp_Sensor"
id: sensor_underscore
lambda: return 46.0;
update_interval: 60s
# Test 6: Mixed case with spaces -> object_id = "living_room_temperature"
- platform: template
name: "Living Room Temperature"
id: sensor_mixed
lambda: return 47.0;
update_interval: 60s
# Test 7: Empty name - uses friendly_name with MAC suffix
# friendly_name = "Test Device abf679" -> object_id = "test_device_abf679"
- platform: template
name: ""
id: sensor_empty_name
lambda: return 48.0;
update_interval: 60s
binary_sensor:
# Test 8: Different platform same conversion rules
- platform: template
name: "Door Open"
id: binary_door
lambda: return true;
# Test 9: Numbers in name -> object_id = "sensor_123"
- platform: template
name: "Sensor 123"
id: binary_numbers
lambda: return false;
switch:
# Test 10: Long name with multiple spaces
- platform: template
name: "My Very Long Switch Name Here"
id: switch_long
lambda: return false;
turn_on_action:
- logger.log: "on"
turn_off_action:
- logger.log: "off"
text_sensor:
# Test 11: Name starting with number (should work fine)
- platform: template
name: "123 Start"
id: text_num_start
lambda: return {"test"};
update_interval: 60s
button:
# Test 12: Named entity on sub-device -> object_id from entity name
- platform: template
name: "Device Button"
id: button_on_device
device_id: sub_device_1
on_press: []
# Test 13: Empty name on sub-device -> object_id from device name
# Device name "Sub Device One" -> object_id = "sub_device_one"
- platform: template
name: ""
id: button_empty_on_device1
device_id: sub_device_1
on_press: []
# Test 14: Empty name on different sub-device
# Device name "Sub Device Two" -> object_id = "sub_device_two"
- platform: template
name: ""
id: button_empty_on_device2
device_id: sub_device_2
on_press: []