1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-01 10:52:19 +01:00
Files
esphome/tests/integration/fixtures/multi_device_preferences.yaml

166 lines
5.0 KiB
YAML

esphome:
name: multi-device-preferences-test
# Define multiple devices for testing preference storage
devices:
- id: device_a
name: Device A
- id: device_b
name: Device B
host:
api: # Port will be automatically injected
logger:
level: DEBUG
# Test entities with restore modes to verify preference storage
# Switches with same name on different devices - test restore mode
switch:
- platform: template
name: Light
id: light_device_a
device_id: device_a
restore_mode: RESTORE_DEFAULT_OFF
turn_on_action:
- lambda: |-
ESP_LOGI("test", "Device A Light turned ON");
turn_off_action:
- lambda: |-
ESP_LOGI("test", "Device A Light turned OFF");
- platform: template
name: Light
id: light_device_b
device_id: device_b
restore_mode: RESTORE_DEFAULT_ON # Different default to test uniqueness
turn_on_action:
- lambda: |-
ESP_LOGI("test", "Device B Light turned ON");
turn_off_action:
- lambda: |-
ESP_LOGI("test", "Device B Light turned OFF");
- platform: template
name: Light
id: light_main
restore_mode: RESTORE_DEFAULT_OFF
turn_on_action:
- lambda: |-
ESP_LOGI("test", "Main Light turned ON");
turn_off_action:
- lambda: |-
ESP_LOGI("test", "Main Light turned OFF");
# Numbers with restore to test preference storage
number:
- platform: template
name: Setpoint
id: setpoint_device_a
device_id: device_a
min_value: 10.0
max_value: 30.0
step: 0.5
restore_value: true
initial_value: 20.0
set_action:
- lambda: |-
ESP_LOGI("test", "Device A Setpoint set to %.1f", x);
id(setpoint_device_a).state = x;
- platform: template
name: Setpoint
id: setpoint_device_b
device_id: device_b
min_value: 10.0
max_value: 30.0
step: 0.5
restore_value: true
initial_value: 25.0 # Different initial to test uniqueness
set_action:
- lambda: |-
ESP_LOGI("test", "Device B Setpoint set to %.1f", x);
id(setpoint_device_b).state = x;
- platform: template
name: Setpoint
id: setpoint_main
min_value: 10.0
max_value: 30.0
step: 0.5
restore_value: true
initial_value: 22.0
set_action:
- lambda: |-
ESP_LOGI("test", "Main Setpoint set to %.1f", x);
id(setpoint_main).state = x;
# Selects with restore to test preference storage
select:
- platform: template
name: Mode
id: mode_device_a
device_id: device_a
options:
- "Auto"
- "Manual"
- "Off"
restore_value: true
initial_option: "Auto"
set_action:
- lambda: |-
ESP_LOGI("test", "Device A Mode set to %s", x.c_str());
id(mode_device_a).state = x;
- platform: template
name: Mode
id: mode_device_b
device_id: device_b
options:
- "Auto"
- "Manual"
- "Off"
restore_value: true
initial_option: "Manual" # Different initial to test uniqueness
set_action:
- lambda: |-
ESP_LOGI("test", "Device B Mode set to %s", x.c_str());
id(mode_device_b).state = x;
- platform: template
name: Mode
id: mode_main
options:
- "Auto"
- "Manual"
- "Off"
restore_value: true
initial_option: "Off"
set_action:
- lambda: |-
ESP_LOGI("test", "Main Mode set to %s", x.c_str());
id(mode_main).state = x;
# Button to trigger preference logging test
button:
- platform: template
name: Test Preferences
on_press:
- lambda: |-
ESP_LOGI("test", "Testing preference storage uniqueness:");
ESP_LOGI("test", "Device A Light state: %s", id(light_device_a).state ? "ON" : "OFF");
ESP_LOGI("test", "Device B Light state: %s", id(light_device_b).state ? "ON" : "OFF");
ESP_LOGI("test", "Main Light state: %s", id(light_main).state ? "ON" : "OFF");
ESP_LOGI("test", "Device A Setpoint: %.1f", id(setpoint_device_a).state);
ESP_LOGI("test", "Device B Setpoint: %.1f", id(setpoint_device_b).state);
ESP_LOGI("test", "Main Setpoint: %.1f", id(setpoint_main).state);
ESP_LOGI("test", "Device A Mode: %s", id(mode_device_a).state.c_str());
ESP_LOGI("test", "Device B Mode: %s", id(mode_device_b).state.c_str());
ESP_LOGI("test", "Main Mode: %s", id(mode_main).state.c_str());
// Log preference hashes for entities that actually store preferences
ESP_LOGI("test", "Device A Switch Pref Hash: %u", id(light_device_a).get_preference_hash());
ESP_LOGI("test", "Device B Switch Pref Hash: %u", id(light_device_b).get_preference_hash());
ESP_LOGI("test", "Main Switch Pref Hash: %u", id(light_main).get_preference_hash());
ESP_LOGI("test", "Device A Number Pref Hash: %u", id(setpoint_device_a).get_preference_hash());
ESP_LOGI("test", "Device B Number Pref Hash: %u", id(setpoint_device_b).get_preference_hash());
ESP_LOGI("test", "Main Number Pref Hash: %u", id(setpoint_main).get_preference_hash());