syntax = "proto3"; package ha.v1; option go_package = "gitea.nik4nao.com/nik/home-services/gen/ha/v1;hav1"; import "ha/v1/common.proto"; service ClimateService { rpc TurnOn(ClimateRequest) returns (ClimateResponse); rpc TurnOff(ClimateRequest) returns (ClimateResponse); rpc IncreaseTemperature(ClimateRequest) returns (ClimateResponse); rpc DecreaseTemperature(ClimateRequest) returns (ClimateResponse); rpc SetTemperature(SetTemperatureRequest) returns (ClimateResponse); rpc SetHVACMode(SetHVACModeRequest) returns (ClimateResponse); rpc ListClimates(ListClimatesRequest) returns (ListClimatesResponse); } message ClimateRequest { string entity_id = 1; } message ClimateResponse { EntityState state = 1; } message SetHVACModeRequest { string entity_id = 1; string hvac_mode = 2; } // SetTemperature sets an absolute target temperature. Single-setpoint only — // there is no target_temp_high/target_temp_low pair here, since no climate // entity in this deployment uses range mode (see alexa-bridge/plan.md). message SetTemperatureRequest { string entity_id = 1; double target_temperature = 2; } message ClimateEntity { string entity_id = 1; string friendly_name = 2; string state = 3; repeated string hvac_modes = 4; string fan_mode = 5; repeated string fan_modes = 6; optional float current_temperature = 7; optional float target_temperature = 8; float target_temp_step = 9; float min_temp = 10; float max_temp = 11; } message ListClimatesRequest {} message ListClimatesResponse { repeated ClimateEntity climates = 1; }