mirror of
https://github.com/esphome/esphome.git
synced 2025-07-30 15:16:37 +00:00
cover
This commit is contained in:
parent
6cd2a80224
commit
3765058813
@ -210,6 +210,15 @@ sensor:
|
||||
name: "Test Sensor 50"
|
||||
lambda: return 50.0;
|
||||
update_interval: 0.1s
|
||||
# Temperature sensor for the thermostat
|
||||
- platform: template
|
||||
name: "Temperature Sensor"
|
||||
id: temp_sensor
|
||||
lambda: return 22.5;
|
||||
unit_of_measurement: "°C"
|
||||
device_class: temperature
|
||||
state_class: measurement
|
||||
update_interval: 5s
|
||||
|
||||
# Mixed entity types for comprehensive batching test
|
||||
binary_sensor:
|
||||
@ -285,6 +294,50 @@ valve:
|
||||
stop_action:
|
||||
- logger.log: "Valve stopping"
|
||||
|
||||
output:
|
||||
- platform: template
|
||||
id: heater_output
|
||||
type: binary
|
||||
write_action:
|
||||
- logger.log: "Heater output changed"
|
||||
- platform: template
|
||||
id: cooler_output
|
||||
type: binary
|
||||
write_action:
|
||||
- logger.log: "Cooler output changed"
|
||||
|
||||
climate:
|
||||
- platform: thermostat
|
||||
name: "Test Thermostat"
|
||||
sensor: temp_sensor
|
||||
default_preset: Home
|
||||
on_boot_restore_from: default_preset
|
||||
min_heating_off_time: 1s
|
||||
min_heating_run_time: 1s
|
||||
min_cooling_off_time: 1s
|
||||
min_cooling_run_time: 1s
|
||||
min_idle_time: 1s
|
||||
heat_action:
|
||||
- output.turn_on: heater_output
|
||||
cool_action:
|
||||
- output.turn_on: cooler_output
|
||||
idle_action:
|
||||
- output.turn_off: heater_output
|
||||
- output.turn_off: cooler_output
|
||||
preset:
|
||||
- name: Home
|
||||
default_target_temperature_low: 20
|
||||
default_target_temperature_high: 24
|
||||
mode: heat_cool
|
||||
- name: Away
|
||||
default_target_temperature_low: 16
|
||||
default_target_temperature_high: 26
|
||||
mode: heat_cool
|
||||
- name: Sleep
|
||||
default_target_temperature_low: 18
|
||||
default_target_temperature_high: 22
|
||||
mode: heat_cool
|
||||
|
||||
alarm_control_panel:
|
||||
- platform: template
|
||||
name: "Test Alarm"
|
||||
|
@ -4,7 +4,7 @@ from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
|
||||
from aioesphomeapi import EntityState, SensorState
|
||||
from aioesphomeapi import ClimateInfo, ClimateState, EntityState, SensorState
|
||||
import pytest
|
||||
|
||||
from .types import APIClientConnectedFactory, RunCompiledFunction
|
||||
@ -70,3 +70,28 @@ async def test_host_mode_many_entities(
|
||||
assert len(sensor_states) >= 50, (
|
||||
f"Expected at least 50 sensor states, got {len(sensor_states)}"
|
||||
)
|
||||
|
||||
# Verify we received the climate entity
|
||||
climate_states = [s for s in states.values() if isinstance(s, ClimateState)]
|
||||
assert len(climate_states) >= 1, (
|
||||
f"Expected at least 1 climate state, got {len(climate_states)}"
|
||||
)
|
||||
|
||||
# Get entity info to verify climate entity details
|
||||
entities = await client.list_entities_services()
|
||||
climate_infos = [e for e in entities[0] if isinstance(e, ClimateInfo)]
|
||||
assert len(climate_infos) >= 1, "Expected at least 1 climate entity"
|
||||
|
||||
climate_info = climate_infos[0]
|
||||
# Verify the thermostat has presets
|
||||
assert len(climate_info.supported_presets) > 0, (
|
||||
"Expected climate to have presets"
|
||||
)
|
||||
# The thermostat platform uses standard presets (Home, Away, Sleep)
|
||||
# which should be transmitted properly without string copies
|
||||
|
||||
# Verify specific presets exist
|
||||
preset_names = [p.name for p in climate_info.supported_presets]
|
||||
assert "HOME" in preset_names, f"Expected 'HOME' preset, got {preset_names}"
|
||||
assert "AWAY" in preset_names, f"Expected 'AWAY' preset, got {preset_names}"
|
||||
assert "SLEEP" in preset_names, f"Expected 'SLEEP' preset, got {preset_names}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user