aboutsummaryrefslogtreecommitdiffstats
path: root/build/resources/main/VehicleRemoteHvac.proto
diff options
context:
space:
mode:
Diffstat (limited to 'build/resources/main/VehicleRemoteHvac.proto')
-rw-r--r--build/resources/main/VehicleRemoteHvac.proto96
1 files changed, 96 insertions, 0 deletions
diff --git a/build/resources/main/VehicleRemoteHvac.proto b/build/resources/main/VehicleRemoteHvac.proto
new file mode 100644
index 0000000..38afaae
--- /dev/null
+++ b/build/resources/main/VehicleRemoteHvac.proto
@@ -0,0 +1,96 @@
+syntax = "proto3"; /**
+* <h2>Cabin Preconditioning</h2>
+* <p>This set of messages define how to acquire vehicle location, either on demand or by interval and events.</p>
+*
+* <h3>Message Orchestration</h3>
+* <p>[TO-DO]</p>
+*
+* <h3>MQTT Topic Design</h3>
+* <table>
+* <thead>
+* <tr>
+* <th>Direction</th>
+* <th>Subscribe Topic</th>
+* <th>Publish Topic</th>
+* </tr>
+* </thead>
+* <tbody>
+* <tr>
+* <td>Vehicle to Cloud</td>
+* <td>cabin/#</td>
+* <td>cabin/&lt;device_id&gt;</td>
+* </tr>
+* <tr>
+* <td>Cloud to Vehicle</td>
+* <td>&lt;device_id&gt;/cabin</td>
+* <td>&lt;device_id&gt;/cabin</td>
+* </tr>
+* </tbody>
+* </table>
+*/
+import "google/protobuf/timestamp.proto";
+package messages;
+message CabinConditionStatusPublish {
+
+ google.protobuf.Timestamp event_time = 1; // Time of the event
+ HVACState hvac_state = 2; // Current state of the HVAC
+ CabinTemperature cabin_temperature = 3; // Current cabin temperature
+}
+
+message PreconditionRequest {
+
+ repeated HVACZone hvac_zones = 1; // List of HVAC zones to precondition
+ // For scheduled preconditioning, set the start_time to the desired future time.
+ // For on-demand preconditioning, leave the start_time unset.
+ google.protobuf.Timestamp start_time = 2;
+}
+
+message PreconditionResponse {
+ enum Status {
+ SUCCESS = 0;
+ FAILURE = 1;
+ PENDING = 2;
+ }
+
+ Status status = 1; // Status of the precondition request
+ string message = 2; // Optional message
+}
+
+message CabinTemperature {
+ Temperature temperature = 1; // Current cabin temperature
+ HVACZone zone = 2; // Zone of the reported temperature
+}
+
+
+message Temperature {
+ float value = 1; // Temperature value
+ string unit = 2; // Temperature unit (e.g., "Celsius", "Fahrenheit")
+}
+
+message HVACZone {
+ enum Zone {
+ DRIVER = 0;
+ PASSENGER = 1;
+ REAR_LEFT = 2;
+ REAR_RIGHT = 3;
+ }
+
+ Zone zone = 1; // HVAC Zone
+ Temperature target_temperature = 2; // Target temperature
+}
+
+
+message HVACState {
+ enum State {
+ OFF = 0;
+ HEATING = 1;
+ COOLING = 2;
+ IDLE = 3;
+ }
+
+ State state = 1; // Current state of the HVAC
+ HVACZone current_zone = 2; // Current active zone
+}
+
+
+