home-services/proto/ha/v1/climate.proto
Nik Afiq 8f7024edfa
All checks were successful
CI / changes (push) Successful in 19s
CI / test (push) Successful in 24s
CI / build-ai-gateway (push) Successful in 1m6s
CI / build-ha-gateway (push) Successful in 1m3s
CI / build-discord-bot (push) Successful in 1m4s
CI / build-alexa-bridge (push) Successful in 1m15s
CI / build-tts-gateway (push) Successful in 1m5s
CI / build-tts-sidecar (push) Has been skipped
CI / build-tts-model (push) Has been skipped
feat(climate): add SetTemperature method to ClimateService
- Implemented SetTemperature in ClimateService for setting an absolute target temperature.
- Updated ClimateServiceClient and ClimateServiceServer interfaces to include SetTemperature.
- Added corresponding handler and tests for SetTemperature in ClimateGRPC.
- Modified ClimateApp to handle SetTemperature requests without clamping.
- Updated climate.proto to define SetTemperatureRequest message.
- Adjusted Dockerfiles to include alexa-bridge dependencies.
2026-07-25 12:08:24 +09:00

51 lines
1.8 KiB
Protocol Buffer

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;
}