@@ -63,6 +63,8 @@ service APIConnection {
6363 rpc subscribe_voice_assistant (SubscribeVoiceAssistantRequest ) returns (void ) {}
6464
6565 rpc alarm_control_panel_command (AlarmControlPanelCommandRequest ) returns (void ) {}
66+
67+ rpc water_heater_command (WaterHeaterCommandRequest ) returns (void ) {}
6668}
6769
6870
@@ -1899,3 +1901,64 @@ message UpdateCommandRequest {
18991901 fixed32 key = 1 ;
19001902 bool install = 2 ;
19011903}
1904+
1905+ // ==================== WATER HEATER ====================
1906+ enum WaterHeaterMode {
1907+ WATER_HEATER_MODE_OFF = 0 ;
1908+ WATER_HEATER_MODE_ECO = 1 ;
1909+ WATER_HEATER_MODE_ELECTRIC = 2 ;
1910+ WATER_HEATER_MODE_PERFORMANCE = 3 ;
1911+ WATER_HEATER_MODE_HIGH_DEMAND = 4 ;
1912+ WATER_HEATER_MODE_HEAT_PUMP = 5 ;
1913+ WATER_HEATER_MODE_GAS = 6 ;
1914+ }
1915+ message ListEntitiesWaterHeaterResponse {
1916+ option (id) = 119 ;
1917+ option (source) = SOURCE_SERVER ;
1918+ option (ifdef) = "USE_WATER_HEATER" ;
1919+
1920+ string object_id = 1 ;
1921+ fixed32 key = 2 ;
1922+ string name = 3 ;
1923+ string unique_id = 4 ;
1924+
1925+ bool supports_current_temperature = 5 ;
1926+ bool supports_two_point_target_temperature = 6 ;
1927+ repeated WaterHeaterMode supported_modes = 7 ;
1928+ float visual_min_temperature = 8 ;
1929+ float visual_max_temperature = 9 ;
1930+ float visual_target_temperature_step = 10 ;
1931+ bool disabled_by_default = 11 ;
1932+ string icon = 12 ;
1933+ EntityCategory entity_category = 13 ;
1934+ float visual_current_temperature_step = 14 ;
1935+ }
1936+ message WaterHeaterStateResponse {
1937+ option (id) = 120 ;
1938+ option (source) = SOURCE_SERVER ;
1939+ option (ifdef) = "USE_WATER_HEATER" ;
1940+ option (no_delay) = true ;
1941+
1942+ fixed32 key = 1 ;
1943+ WaterHeaterMode mode = 2 ;
1944+ float current_temperature = 3 ;
1945+ float target_temperature = 4 ;
1946+ float target_temperature_low = 5 ;
1947+ float target_temperature_high = 6 ;
1948+ }
1949+ message WaterHeaterCommandRequest {
1950+ option (id) = 121 ;
1951+ option (source) = SOURCE_CLIENT ;
1952+ option (ifdef) = "USE_WATER_HEATER" ;
1953+ option (no_delay) = true ;
1954+
1955+ fixed32 key = 1 ;
1956+ bool has_mode = 2 ;
1957+ WaterHeaterMode mode = 3 ;
1958+ bool has_target_temperature = 4 ;
1959+ float target_temperature = 5 ;
1960+ bool has_target_temperature_low = 6 ;
1961+ float target_temperature_low = 7 ;
1962+ bool has_target_temperature_high = 8 ;
1963+ float target_temperature_high = 9 ;
1964+ }
0 commit comments