Files
esphome/tests/integration/fixtures/text_sensor_raw_state.yaml

182 lines
4.6 KiB
YAML

esphome:
name: test-text-sensor-raw-state
host:
api:
batch_delay: 0ms # Disable batching to receive all state updates
logger:
level: DEBUG
# Text sensor WITHOUT filters - get_raw_state() should return same as state
text_sensor:
- platform: template
name: "No Filter Sensor"
id: no_filter_sensor
# Text sensor WITH filter - get_raw_state() should return original value
- platform: template
name: "With Filter Sensor"
id: with_filter_sensor
filters:
- to_upper
# StringRef-based filters (append, prepend, substitute, map)
- platform: template
name: "Append Sensor"
id: append_sensor
filters:
- append: " suffix"
- platform: template
name: "Prepend Sensor"
id: prepend_sensor
filters:
- prepend: "prefix "
- platform: template
name: "Substitute Sensor"
id: substitute_sensor
filters:
- substitute:
- foo -> bar
- hello -> world
- platform: template
name: "Map Sensor"
id: map_sensor
filters:
- map:
- ON -> Active
- OFF -> Inactive
- platform: template
name: "Chained Sensor"
id: chained_sensor
filters:
- prepend: "["
- append: "]"
# Button to publish values and log raw_state vs state
button:
- platform: template
name: "Test No Filter Button"
id: test_no_filter_button
on_press:
- text_sensor.template.publish:
id: no_filter_sensor
state: "hello world"
- delay: 50ms
# Log both state and get_raw_state() to verify they match
- logger.log:
format: "NO_FILTER: state='%s' raw_state='%s'"
args:
- id(no_filter_sensor).state.c_str()
- id(no_filter_sensor).get_raw_state().c_str()
- platform: template
name: "Test With Filter Button"
id: test_with_filter_button
on_press:
- text_sensor.template.publish:
id: with_filter_sensor
state: "hello world"
- delay: 50ms
# Log both state and get_raw_state() to verify filter works
# state should be "HELLO WORLD" (filtered), raw_state should be "hello world" (original)
- logger.log:
format: "WITH_FILTER: state='%s' raw_state='%s'"
args:
- id(with_filter_sensor).state.c_str()
- id(with_filter_sensor).get_raw_state().c_str()
- platform: template
name: "Test Append Button"
id: test_append_button
on_press:
- text_sensor.template.publish:
id: append_sensor
state: "test"
- delay: 50ms
- logger.log:
format: "APPEND: state='%s'"
args:
- id(append_sensor).state.c_str()
- platform: template
name: "Test Prepend Button"
id: test_prepend_button
on_press:
- text_sensor.template.publish:
id: prepend_sensor
state: "test"
- delay: 50ms
- logger.log:
format: "PREPEND: state='%s'"
args:
- id(prepend_sensor).state.c_str()
- platform: template
name: "Test Substitute Button"
id: test_substitute_button
on_press:
- text_sensor.template.publish:
id: substitute_sensor
state: "foo says hello"
- delay: 50ms
- logger.log:
format: "SUBSTITUTE: state='%s'"
args:
- id(substitute_sensor).state.c_str()
- platform: template
name: "Test Map ON Button"
id: test_map_on_button
on_press:
- text_sensor.template.publish:
id: map_sensor
state: "ON"
- delay: 50ms
- logger.log:
format: "MAP_ON: state='%s'"
args:
- id(map_sensor).state.c_str()
- platform: template
name: "Test Map OFF Button"
id: test_map_off_button
on_press:
- text_sensor.template.publish:
id: map_sensor
state: "OFF"
- delay: 50ms
- logger.log:
format: "MAP_OFF: state='%s'"
args:
- id(map_sensor).state.c_str()
- platform: template
name: "Test Map Unknown Button"
id: test_map_unknown_button
on_press:
- text_sensor.template.publish:
id: map_sensor
state: "UNKNOWN"
- delay: 50ms
- logger.log:
format: "MAP_UNKNOWN: state='%s'"
args:
- id(map_sensor).state.c_str()
- platform: template
name: "Test Chained Button"
id: test_chained_button
on_press:
- text_sensor.template.publish:
id: chained_sensor
state: "value"
- delay: 50ms
- logger.log:
format: "CHAINED: state='%s'"
args:
- id(chained_sensor).state.c_str()