esphome 0.6.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/exe/esphome-monitor +16 -14
- data/exe/esphome-serial-proxy +132 -0
- data/lib/esphome/action.rb +55 -0
- data/lib/esphome/api/README.md +3 -0
- data/lib/esphome/api/api.proto +2756 -0
- data/lib/esphome/api/api_options.proto +120 -0
- data/lib/esphome/api/api_options_pb.rb +20 -0
- data/lib/esphome/api/api_pb.rb +229 -0
- data/lib/esphome/api.rb +182 -0
- data/lib/esphome/cli/colors.rb +44 -0
- data/lib/esphome/cli/completion.rb +48 -0
- data/lib/esphome/cli/entities/button.rb +18 -0
- data/lib/esphome/cli/entities/climate.rb +196 -0
- data/lib/esphome/cli/entities/cover.rb +116 -0
- data/lib/esphome/cli/entities/date.rb +27 -0
- data/lib/esphome/cli/entities/date_time.rb +29 -0
- data/lib/esphome/cli/entities/form.rb +111 -0
- data/lib/esphome/cli/entities/lock.rb +20 -0
- data/lib/esphome/cli/entities/menu.rb +83 -0
- data/lib/esphome/cli/entities/number.rb +37 -0
- data/lib/esphome/cli/entities/select.rb +16 -0
- data/lib/esphome/cli/entities/subfields.rb +63 -0
- data/lib/esphome/cli/entities/switch.rb +18 -0
- data/lib/esphome/cli/entities/text.rb +16 -0
- data/lib/esphome/cli/entities/time.rb +40 -0
- data/lib/esphome/cli/entity.rb +78 -0
- data/lib/esphome/cli/monitor.rb +441 -0
- data/lib/esphome/dashboard.rb +86 -0
- data/lib/esphome/device.rb +416 -0
- data/lib/esphome/entities/binary_sensor.rb +66 -0
- data/lib/esphome/entities/button.rb +13 -0
- data/lib/esphome/entities/climate.rb +259 -0
- data/lib/esphome/entities/cover.rb +135 -0
- data/lib/esphome/entities/date.rb +23 -0
- data/lib/esphome/entities/date_time.rb +21 -0
- data/lib/esphome/entities/fan.rb +89 -0
- data/lib/esphome/entities/light.rb +158 -0
- data/lib/esphome/entities/lock.rb +53 -0
- data/lib/esphome/entities/number.rb +56 -0
- data/lib/esphome/entities/select.rb +27 -0
- data/lib/esphome/entities/sensor.rb +49 -0
- data/lib/esphome/entities/switch.rb +24 -0
- data/lib/esphome/entities/text.rb +36 -0
- data/lib/esphome/entities/text_sensor.rb +10 -0
- data/lib/esphome/entities/time.rb +39 -0
- data/lib/esphome/entity.rb +146 -0
- data/lib/esphome/error.rb +28 -0
- data/lib/esphome/serial_proxy.rb +372 -0
- data/lib/esphome/version.rb +5 -0
- data/lib/esphome.rb +5 -0
- data/lib/httpx/plugins/websocket.rb +62 -0
- data/lib/websocket/driver/httpx.rb +74 -0
- metadata +55 -5
- data/exe/esphome-update-all +0 -66
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
import "google/protobuf/descriptor.proto";
|
|
3
|
+
|
|
4
|
+
option ruby_package = "ESPHome::Api";
|
|
5
|
+
|
|
6
|
+
enum APISourceType {
|
|
7
|
+
SOURCE_BOTH = 0;
|
|
8
|
+
SOURCE_SERVER = 1;
|
|
9
|
+
SOURCE_CLIENT = 2;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
message void {}
|
|
13
|
+
|
|
14
|
+
extend google.protobuf.MethodOptions {
|
|
15
|
+
optional bool needs_setup_connection = 1038 [default=true];
|
|
16
|
+
optional bool needs_authentication = 1039 [default=true];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
extend google.protobuf.MessageOptions {
|
|
20
|
+
optional uint32 id = 1036 [default=0];
|
|
21
|
+
optional APISourceType source = 1037 [default=SOURCE_BOTH];
|
|
22
|
+
optional string ifdef = 1038;
|
|
23
|
+
optional bool log = 1039 [default=true];
|
|
24
|
+
optional bool no_delay = 1040 [default=false];
|
|
25
|
+
optional string base_class = 1041;
|
|
26
|
+
optional bool inline_encode = 1042 [default=false];
|
|
27
|
+
optional bool speed_optimized = 1043 [default=false];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
extend google.protobuf.FieldOptions {
|
|
31
|
+
optional string field_ifdef = 1042;
|
|
32
|
+
optional uint32 fixed_array_size = 50007;
|
|
33
|
+
optional bool fixed_array_skip_zero = 50009 [default=false];
|
|
34
|
+
optional string fixed_array_size_define = 50010;
|
|
35
|
+
optional string fixed_array_with_length_define = 50011;
|
|
36
|
+
|
|
37
|
+
// pointer_to_buffer: Use pointer instead of array for fixed-size byte fields
|
|
38
|
+
// When set, the field will be declared as a pointer (const uint8_t *data)
|
|
39
|
+
// instead of an array (uint8_t data[N]). This allows zero-copy on decode
|
|
40
|
+
// by pointing directly to the protobuf buffer. The buffer must remain valid
|
|
41
|
+
// until the message is processed (which is guaranteed for stack-allocated messages).
|
|
42
|
+
optional bool pointer_to_buffer = 50012 [default=false];
|
|
43
|
+
|
|
44
|
+
// container_pointer: Zero-copy optimization for repeated fields.
|
|
45
|
+
//
|
|
46
|
+
// When container_pointer is set on a repeated field, the generated message will
|
|
47
|
+
// store a pointer to an existing container instead of copying the data into the
|
|
48
|
+
// message's own repeated field. This eliminates heap allocations and improves performance.
|
|
49
|
+
//
|
|
50
|
+
// Requirements for safe usage:
|
|
51
|
+
// 1. The source container must remain valid until the message is encoded
|
|
52
|
+
// 2. Messages must be encoded immediately (which ESPHome does by default)
|
|
53
|
+
// 3. The container type must match the field type exactly
|
|
54
|
+
//
|
|
55
|
+
// Supported container types:
|
|
56
|
+
// - "std::vector<T>" for most repeated fields
|
|
57
|
+
// - "std::set<T>" for unique/sorted data
|
|
58
|
+
// - Full type specification required for enums (e.g., "std::set<climate::ClimateMode>")
|
|
59
|
+
//
|
|
60
|
+
// Example usage in .proto file:
|
|
61
|
+
// repeated string supported_modes = 12 [(container_pointer) = "std::set"];
|
|
62
|
+
// repeated ColorMode color_modes = 13 [(container_pointer) = "std::set<light::ColorMode>"];
|
|
63
|
+
//
|
|
64
|
+
// The corresponding C++ code must provide const reference access to a container
|
|
65
|
+
// that matches the specified type and remains valid during message encoding.
|
|
66
|
+
// This is typically done through methods returning const T& or special accessor
|
|
67
|
+
// methods like get_options() or supported_modes_for_api_().
|
|
68
|
+
optional string container_pointer = 50001;
|
|
69
|
+
|
|
70
|
+
// fixed_vector: Use FixedVector instead of std::vector for repeated fields
|
|
71
|
+
// When set, the repeated field will use FixedVector<T> which requires calling
|
|
72
|
+
// init(size) before adding elements. This eliminates std::vector template overhead
|
|
73
|
+
// and is ideal when the exact size is known before populating the array.
|
|
74
|
+
optional bool fixed_vector = 50013 [default=false];
|
|
75
|
+
|
|
76
|
+
// container_pointer_no_template: Use a non-template container type for repeated fields
|
|
77
|
+
// Similar to container_pointer, but for containers that don't take template parameters.
|
|
78
|
+
// The container type is used as-is without appending element type.
|
|
79
|
+
// The container must have:
|
|
80
|
+
// - begin() and end() methods returning iterators
|
|
81
|
+
// - empty() method
|
|
82
|
+
// Example: [(container_pointer_no_template) = "light::ColorModeMask"]
|
|
83
|
+
// generates: const light::ColorModeMask *supported_color_modes{};
|
|
84
|
+
optional string container_pointer_no_template = 50014;
|
|
85
|
+
|
|
86
|
+
// packed_buffer: Expose raw packed buffer instead of decoding into container
|
|
87
|
+
// When set on a packed repeated field, the generated code stores a pointer
|
|
88
|
+
// to the raw protobuf buffer instead of decoding values. This enables
|
|
89
|
+
// zero-copy passthrough when the consumer can decode on-demand.
|
|
90
|
+
// The field must be a packed repeated field (packed=true).
|
|
91
|
+
// Generates three fields:
|
|
92
|
+
// - const uint8_t *<field>_data_{nullptr};
|
|
93
|
+
// - uint16_t <field>_length_{0};
|
|
94
|
+
// - uint16_t <field>_count_{0};
|
|
95
|
+
optional bool packed_buffer = 50015 [default=false];
|
|
96
|
+
|
|
97
|
+
// force: Always encode this field, even when its value equals the proto3 default.
|
|
98
|
+
// Skips the zero/empty check in calculate_size() and encode(), using the _force
|
|
99
|
+
// variant of the calc_ method. Use on fields that are almost always non-default
|
|
100
|
+
// to eliminate dead branches on hot paths.
|
|
101
|
+
optional bool force = 50016 [default=false];
|
|
102
|
+
|
|
103
|
+
// max_value: Maximum value a field can have.
|
|
104
|
+
// When max_value < 128, the code generator emits constant-size calculations
|
|
105
|
+
// and direct byte writes instead of varint branching, since the encoded varint
|
|
106
|
+
// is guaranteed to be 1 byte.
|
|
107
|
+
optional uint32 max_value = 50017;
|
|
108
|
+
|
|
109
|
+
// max_data_length: Maximum length of a string or bytes field.
|
|
110
|
+
// When max_data_length < 128, the code generator emits constant-size
|
|
111
|
+
// length varint calculations and direct byte writes, since the length
|
|
112
|
+
// varint is guaranteed to be 1 byte.
|
|
113
|
+
optional uint32 max_data_length = 50018;
|
|
114
|
+
|
|
115
|
+
// mac_address: Field is a 48-bit MAC address stored in a uint64.
|
|
116
|
+
// Emits encode_varint_raw_48bit which has a 7-byte fast path that avoids
|
|
117
|
+
// the per-byte loop when the upper bits are non-zero (the common case
|
|
118
|
+
// for real MAC addresses, since OUIs occupy the top 24 bits).
|
|
119
|
+
optional bool mac_address = 50019 [default=false];
|
|
120
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: api_options.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'google/protobuf/descriptor_pb'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
descriptor_data = "\n\x11\x61pi_options.proto\x1a google/protobuf/descriptor.proto\"\x06\n\x04void*F\n\rAPISourceType\x12\x0f\n\x0bSOURCE_BOTH\x10\x00\x12\x11\n\rSOURCE_SERVER\x10\x01\x12\x11\n\rSOURCE_CLIENT\x10\x02:E\n\x16needs_setup_connection\x12\x1e.google.protobuf.MethodOptions\x18\x8e\x08 \x01(\x08:\x04true:C\n\x14needs_authentication\x12\x1e.google.protobuf.MethodOptions\x18\x8f\x08 \x01(\x08:\x04true:/\n\x02id\x12\x1f.google.protobuf.MessageOptions\x18\x8c\x08 \x01(\r:\x01\x30:M\n\x06source\x12\x1f.google.protobuf.MessageOptions\x18\x8d\x08 \x01(\x0e\x32\x0e.APISourceType:\x0bSOURCE_BOTH:/\n\x05ifdef\x12\x1f.google.protobuf.MessageOptions\x18\x8e\x08 \x01(\t:3\n\x03log\x12\x1f.google.protobuf.MessageOptions\x18\x8f\x08 \x01(\x08:\x04true:9\n\x08no_delay\x12\x1f.google.protobuf.MessageOptions\x18\x90\x08 \x01(\x08:\x05\x66\x61lse:4\n\nbase_class\x12\x1f.google.protobuf.MessageOptions\x18\x91\x08 \x01(\t:>\n\rinline_encode\x12\x1f.google.protobuf.MessageOptions\x18\x92\x08 \x01(\x08:\x05\x66\x61lse:@\n\x0fspeed_optimized\x12\x1f.google.protobuf.MessageOptions\x18\x93\x08 \x01(\x08:\x05\x66\x61lse:3\n\x0b\x66ield_ifdef\x12\x1d.google.protobuf.FieldOptions\x18\x92\x08 \x01(\t:9\n\x10\x66ixed_array_size\x12\x1d.google.protobuf.FieldOptions\x18\xd7\x86\x03 \x01(\r:E\n\x15\x66ixed_array_skip_zero\x12\x1d.google.protobuf.FieldOptions\x18\xd9\x86\x03 \x01(\x08:\x05\x66\x61lse:@\n\x17\x66ixed_array_size_define\x12\x1d.google.protobuf.FieldOptions\x18\xda\x86\x03 \x01(\t:G\n\x1e\x66ixed_array_with_length_define\x12\x1d.google.protobuf.FieldOptions\x18\xdb\x86\x03 \x01(\t:A\n\x11pointer_to_buffer\x12\x1d.google.protobuf.FieldOptions\x18\xdc\x86\x03 \x01(\x08:\x05\x66\x61lse::\n\x11\x63ontainer_pointer\x12\x1d.google.protobuf.FieldOptions\x18\xd1\x86\x03 \x01(\t:<\n\x0c\x66ixed_vector\x12\x1d.google.protobuf.FieldOptions\x18\xdd\x86\x03 \x01(\x08:\x05\x66\x61lse:F\n\x1d\x63ontainer_pointer_no_template\x12\x1d.google.protobuf.FieldOptions\x18\xde\x86\x03 \x01(\t:=\n\rpacked_buffer\x12\x1d.google.protobuf.FieldOptions\x18\xdf\x86\x03 \x01(\x08:\x05\x66\x61lse:5\n\x05\x66orce\x12\x1d.google.protobuf.FieldOptions\x18\xe0\x86\x03 \x01(\x08:\x05\x66\x61lse:2\n\tmax_value\x12\x1d.google.protobuf.FieldOptions\x18\xe1\x86\x03 \x01(\r:8\n\x0fmax_data_length\x12\x1d.google.protobuf.FieldOptions\x18\xe2\x86\x03 \x01(\r:;\n\x0bmac_address\x12\x1d.google.protobuf.FieldOptions\x18\xe3\x86\x03 \x01(\x08:\x05\x66\x61lseB\x0f\xea\x02\x0c\x45SPHome::Api"
|
|
11
|
+
|
|
12
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
13
|
+
pool.add_serialized_file(descriptor_data)
|
|
14
|
+
|
|
15
|
+
module ESPHome
|
|
16
|
+
module Api
|
|
17
|
+
Void = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("void").msgclass
|
|
18
|
+
APISourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("APISourceType").enummodule
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: api.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require_relative 'api_options_pb'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
descriptor_data = "\n\tapi.proto\x1a\x11\x61pi_options.proto\"d\n\x0cHelloRequest\x12\x13\n\x0b\x63lient_info\x18\x01 \x01(\t\x12\x19\n\x11\x61pi_version_major\x18\x02 \x01(\r\x12\x19\n\x11\x61pi_version_minor\x18\x03 \x01(\r:\t\xe0@\x01\xe8@\x02\x80\x41\x01\"\x87\x01\n\rHelloResponse\x12\x19\n\x11\x61pi_version_major\x18\x01 \x01(\r\x12\x19\n\x11\x61pi_version_minor\x18\x02 \x01(\r\x12\x1d\n\x0bserver_info\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18 \x12\x16\n\x04name\x18\x04 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x1f:\t\xe0@\x02\xe8@\x01\x80\x41\x01\"6\n\x15\x41uthenticationRequest\x12\x10\n\x08password\x18\x01 \x01(\t:\x0b\x18\x01\xe0@\x03\xe8@\x02\x80\x41\x01\"?\n\x16\x41uthenticationResponse\x12\x18\n\x10invalid_password\x18\x01 \x01(\x08:\x0b\x18\x01\xe0@\x04\xe8@\x01\x80\x41\x01\"A\n\x11\x44isconnectRequest\x12!\n\x06reason\x18\x01 \x01(\x0e\x32\x11.DisconnectReason:\t\xe0@\x05\xe8@\x00\x80\x41\x01\"\x1f\n\x12\x44isconnectResponse:\t\xe0@\x06\xe8@\x00\x80\x41\x01\"\x15\n\x0bPingRequest:\x06\xe0@\x07\xe8@\x00\"\x16\n\x0cPingResponse:\x06\xe0@\x08\xe8@\x00\"\x1b\n\x11\x44\x65viceInfoRequest:\x06\xe0@\t\xe8@\x02\"3\n\x08\x41reaInfo\x12\x0f\n\x07\x61rea_id\x18\x01 \x01(\r\x12\x16\n\x04name\x18\x02 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\"H\n\nDeviceInfo\x12\x11\n\tdevice_id\x18\x01 \x01(\r\x12\x16\n\x04name\x18\x02 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x0f\n\x07\x61rea_id\x18\x03 \x01(\r\"H\n\x0fSerialProxyInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\'\n\tport_type\x18\x02 \x01(\x0e\x32\x14.SerialProxyPortType\"\x92\n\n\x12\x44\x65viceInfoResponse\x12\x19\n\ruses_password\x18\x01 \x01(\x08\x42\x02\x18\x01\x12\x16\n\x04name\x18\x02 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x1f\x12\x1d\n\x0bmac_address\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x11\x12!\n\x0f\x65sphome_version\x18\x04 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18 \x12\"\n\x10\x63ompilation_time\x18\x05 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x19\x12\x17\n\x05model\x18\x06 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x7f\x12)\n\x0ehas_deep_sleep\x18\x07 \x01(\x08\x42\x11\x92\x41\x0eUSE_DEEP_SLEEP\x12\x35\n\x0cproject_name\x18\x08 \x01(\tB\x1f\x92\x41\x14\x45SPHOME_PROJECT_NAME\x80\xb6\x18\x01\x90\xb6\x18\x7f\x12\x38\n\x0fproject_version\x18\t \x01(\tB\x1f\x92\x41\x14\x45SPHOME_PROJECT_NAME\x80\xb6\x18\x01\x90\xb6\x18\x7f\x12(\n\x0ewebserver_port\x18\n \x01(\rB\x10\x92\x41\rUSE_WEBSERVER\x12@\n\x1elegacy_bluetooth_proxy_version\x18\x0b \x01(\rB\x18\x18\x01\x92\x41\x13USE_BLUETOOTH_PROXY\x12=\n\x1d\x62luetooth_proxy_feature_flags\x18\x0f \x01(\rB\x16\x92\x41\x13USE_BLUETOOTH_PROXY\x12\x1e\n\x0cmanufacturer\x18\x0c \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18\x14\x12\x1f\n\rfriendly_name\x18\r \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12@\n\x1elegacy_voice_assistant_version\x18\x0e \x01(\rB\x18\x18\x01\x92\x41\x13USE_VOICE_ASSISTANT\x12=\n\x1dvoice_assistant_feature_flags\x18\x11 \x01(\rB\x16\x92\x41\x13USE_VOICE_ASSISTANT\x12,\n\x0esuggested_area\x18\x10 \x01(\tB\x14\x92\x41\tUSE_AREAS\x80\xb6\x18\x01\x90\xb6\x18x\x12=\n\x15\x62luetooth_mac_address\x18\x12 \x01(\tB\x1e\x92\x41\x13USE_BLUETOOTH_PROXY\x80\xb6\x18\x01\x90\xb6\x18\x11\x12\x32\n\x18\x61pi_encryption_supported\x18\x13 \x01(\x08\x42\x10\x92\x41\rUSE_API_NOISE\x12\x44\n\x07\x64\x65vices\x18\x14 \x03(\x0b\x32\x0b.DeviceInfoB&\x92\x41\x0bUSE_DEVICES\xd2\xb5\x18\x14\x45SPHOME_DEVICE_COUNT\x12<\n\x05\x61reas\x18\x15 \x03(\x0b\x32\t.AreaInfoB\"\x92\x41\tUSE_AREAS\xd2\xb5\x18\x12\x45SPHOME_AREA_COUNT\x12%\n\x04\x61rea\x18\x16 \x01(\x0b\x32\t.AreaInfoB\x0c\x92\x41\tUSE_AREAS\x12\x35\n\x19zwave_proxy_feature_flags\x18\x17 \x01(\rB\x12\x92\x41\x0fUSE_ZWAVE_PROXY\x12)\n\rzwave_home_id\x18\x18 \x01(\rB\x12\x92\x41\x0fUSE_ZWAVE_PROXY\x12S\n\x0eserial_proxies\x18\x19 \x03(\x0b\x32\x10.SerialProxyInfoB)\x92\x41\x10USE_SERIAL_PROXY\xd2\xb5\x18\x12SERIAL_PROXY_COUNT\x12\x36\n\x1c\x61pi_encryption_provisionable\x18\x1a \x01(\x08\x42\x10\x92\x41\rUSE_API_NOISE:\x06\xe0@\n\xe8@\x01\"\x1d\n\x13ListEntitiesRequest:\x06\xe0@\x0b\xe8@\x02\"%\n\x18ListEntitiesDoneResponse:\t\xe0@\x13\xe8@\x01\x80\x41\x01\" \n\x16SubscribeStatesRequest:\x06\xe0@\x14\xe8@\x02\"\xf4\x02\n ListEntitiesBinarySensorResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x1a\n\x0c\x64\x65vice_class\x18\x05 \x01(\tB\x04\x90\xb6\x18/\x12\x1f\n\x17is_status_binary_sensor\x18\x06 \x01(\x08\x12\x1b\n\x13\x64isabled_by_default\x18\x07 \x01(\x08\x12$\n\x04icon\x18\x08 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\t \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:5\xe0@\x0c\xe8@\x01\xf2@\x11USE_BINARY_SENSOR\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xb2\x01\n\x19\x42inarySensorStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:9\xe0@\x15\xe8@\x01\xf2@\x11USE_BINARY_SENSOR\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xa4\x03\n\x19ListEntitiesCoverResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x15\n\rassumed_state\x18\x05 \x01(\x08\x12\x19\n\x11supports_position\x18\x06 \x01(\x08\x12\x15\n\rsupports_tilt\x18\x07 \x01(\x08\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12\x1b\n\x13\x64isabled_by_default\x18\t \x01(\x08\x12$\n\x04icon\x18\n \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\x0b \x01(\x0e\x32\x0f.EntityCategory\x12\x15\n\rsupports_stop\x18\x0c \x01(\x08\x12!\n\tdevice_id\x18\r \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@\r\xe8@\x01\xf2@\tUSE_COVER\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xf6\x01\n\x12\x43overStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12+\n\x0clegacy_state\x18\x02 \x01(\x0e\x32\x11.LegacyCoverStateB\x02\x18\x01\x12\x10\n\x08position\x18\x03 \x01(\x02\x12\x0c\n\x04tilt\x18\x04 \x01(\x02\x12*\n\x11\x63urrent_operation\x18\x05 \x01(\x0e\x32\x0f.CoverOperation\x12!\n\tdevice_id\x18\x06 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:1\xe0@\x16\xe8@\x01\xf2@\tUSE_COVER\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x9f\x02\n\x13\x43overCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x1e\n\x12has_legacy_command\x18\x02 \x01(\x08\x42\x02\x18\x01\x12/\n\x0elegacy_command\x18\x03 \x01(\x0e\x32\x13.LegacyCoverCommandB\x02\x18\x01\x12\x14\n\x0chas_position\x18\x04 \x01(\x08\x12\x10\n\x08position\x18\x05 \x01(\x02\x12\x10\n\x08has_tilt\x18\x06 \x01(\x08\x12\x0c\n\x04tilt\x18\x07 \x01(\x02\x12\x0c\n\x04stop\x18\x08 \x01(\x08\x12!\n\tdevice_id\x18\t \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:+\xe0@\x1e\xe8@\x02\xf2@\tUSE_COVER\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xd4\x03\n\x17ListEntitiesFanResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x1c\n\x14supports_oscillation\x18\x05 \x01(\x08\x12\x16\n\x0esupports_speed\x18\x06 \x01(\x08\x12\x1a\n\x12supports_direction\x18\x07 \x01(\x08\x12\x1d\n\x15supported_speed_count\x18\x08 \x01(\x05\x12\x1b\n\x13\x64isabled_by_default\x18\t \x01(\x08\x12$\n\x04icon\x18\n \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\x0b \x01(\x0e\x32\x0f.EntityCategory\x12=\n\x16supported_preset_modes\x18\x0c \x03(\tB\x1d\xf2\xb5\x18\x19std::vector<const char *>\x12!\n\tdevice_id\x18\r \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:+\xe0@\x0e\xe8@\x01\xf2@\x07USE_FAN\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x87\x02\n\x10\x46\x61nStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12\x13\n\x0boscillating\x18\x03 \x01(\x08\x12\x1c\n\x05speed\x18\x04 \x01(\x0e\x32\t.FanSpeedB\x02\x18\x01\x12 \n\tdirection\x18\x05 \x01(\x0e\x32\r.FanDirection\x12\x13\n\x0bspeed_level\x18\x06 \x01(\x05\x12\x13\n\x0bpreset_mode\x18\x07 \x01(\t\x12!\n\tdevice_id\x18\x08 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:/\xe0@\x17\xe8@\x01\xf2@\x07USE_FAN\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x8e\x03\n\x11\x46\x61nCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x11\n\thas_state\x18\x02 \x01(\x08\x12\r\n\x05state\x18\x03 \x01(\x08\x12\x15\n\thas_speed\x18\x04 \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x05speed\x18\x05 \x01(\x0e\x32\t.FanSpeedB\x02\x18\x01\x12\x17\n\x0fhas_oscillating\x18\x06 \x01(\x08\x12\x13\n\x0boscillating\x18\x07 \x01(\x08\x12\x15\n\rhas_direction\x18\x08 \x01(\x08\x12 \n\tdirection\x18\t \x01(\x0e\x32\r.FanDirection\x12\x17\n\x0fhas_speed_level\x18\n \x01(\x08\x12\x13\n\x0bspeed_level\x18\x0b \x01(\x05\x12\x17\n\x0fhas_preset_mode\x18\x0c \x01(\x08\x12\x13\n\x0bpreset_mode\x18\r \x01(\t\x12!\n\tdevice_id\x18\x0e \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:)\xe0@\x1f\xe8@\x02\xf2@\x07USE_FAN\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xe6\x04\n\x19ListEntitiesLightResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x43\n\x15supported_color_modes\x18\x0c \x03(\x0e\x32\n.ColorModeB\x18\xf2\xb5\x18\x14light::ColorModeMask\x12&\n\x1alegacy_supports_brightness\x18\x05 \x01(\x08\x42\x02\x18\x01\x12\x1f\n\x13legacy_supports_rgb\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\'\n\x1blegacy_supports_white_value\x18\x07 \x01(\x08\x42\x02\x18\x01\x12-\n!legacy_supports_color_temperature\x18\x08 \x01(\x08\x42\x02\x18\x01\x12\x12\n\nmin_mireds\x18\t \x01(\x02\x12\x12\n\nmax_mireds\x18\n \x01(\x02\x12.\n\x07\x65\x66\x66\x65\x63ts\x18\x0b \x03(\tB\x1d\xf2\xb5\x18\x19\x46ixedVector<const char *>\x12\x1b\n\x13\x64isabled_by_default\x18\r \x01(\x08\x12$\n\x04icon\x18\x0e \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\x0f \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x10 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@\x0f\xe8@\x01\xf2@\tUSE_LIGHT\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xe6\x02\n\x12LightStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12\x12\n\nbrightness\x18\x03 \x01(\x02\x12\x1e\n\ncolor_mode\x18\x0b \x01(\x0e\x32\n.ColorMode\x12\x18\n\x10\x63olor_brightness\x18\n \x01(\x02\x12\x0b\n\x03red\x18\x04 \x01(\x02\x12\r\n\x05green\x18\x05 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x06 \x01(\x02\x12\r\n\x05white\x18\x07 \x01(\x02\x12\x19\n\x11\x63olor_temperature\x18\x08 \x01(\x02\x12\x12\n\ncold_white\x18\x0c \x01(\x02\x12\x12\n\nwarm_white\x18\r \x01(\x02\x12\x0e\n\x06\x65\x66\x66\x65\x63t\x18\t \x01(\t\x12!\n\tdevice_id\x18\x0e \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:1\xe0@\x18\xe8@\x01\xf2@\tUSE_LIGHT\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xb3\x05\n\x13LightCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x11\n\thas_state\x18\x02 \x01(\x08\x12\r\n\x05state\x18\x03 \x01(\x08\x12\x16\n\x0ehas_brightness\x18\x04 \x01(\x08\x12\x12\n\nbrightness\x18\x05 \x01(\x02\x12\x16\n\x0ehas_color_mode\x18\x16 \x01(\x08\x12\x1e\n\ncolor_mode\x18\x17 \x01(\x0e\x32\n.ColorMode\x12\x1c\n\x14has_color_brightness\x18\x14 \x01(\x08\x12\x18\n\x10\x63olor_brightness\x18\x15 \x01(\x02\x12\x0f\n\x07has_rgb\x18\x06 \x01(\x08\x12\x0b\n\x03red\x18\x07 \x01(\x02\x12\r\n\x05green\x18\x08 \x01(\x02\x12\x0c\n\x04\x62lue\x18\t \x01(\x02\x12\x11\n\thas_white\x18\n \x01(\x08\x12\r\n\x05white\x18\x0b \x01(\x02\x12\x1d\n\x15has_color_temperature\x18\x0c \x01(\x08\x12\x19\n\x11\x63olor_temperature\x18\r \x01(\x02\x12\x16\n\x0ehas_cold_white\x18\x18 \x01(\x08\x12\x12\n\ncold_white\x18\x19 \x01(\x02\x12\x16\n\x0ehas_warm_white\x18\x1a \x01(\x08\x12\x12\n\nwarm_white\x18\x1b \x01(\x02\x12\x1d\n\x15has_transition_length\x18\x0e \x01(\x08\x12\x19\n\x11transition_length\x18\x0f \x01(\r\x12\x18\n\x10has_flash_length\x18\x10 \x01(\x08\x12\x14\n\x0c\x66lash_length\x18\x11 \x01(\r\x12\x12\n\nhas_effect\x18\x12 \x01(\x08\x12\x0e\n\x06\x65\x66\x66\x65\x63t\x18\x13 \x01(\t\x12!\n\tdevice_id\x18\x1c \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:+\xe0@ \xe8@\x02\xf2@\tUSE_LIGHT\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xfc\x03\n\x1aListEntitiesSensorResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12!\n\x13unit_of_measurement\x18\x06 \x01(\tB\x04\x90\xb6\x18?\x12\x19\n\x11\x61\x63\x63uracy_decimals\x18\x07 \x01(\x05\x12\x14\n\x0c\x66orce_update\x18\x08 \x01(\x08\x12\x1a\n\x0c\x64\x65vice_class\x18\t \x01(\tB\x04\x90\xb6\x18/\x12&\n\x0bstate_class\x18\n \x01(\x0e\x32\x11.SensorStateClass\x12\x38\n\x16legacy_last_reset_type\x18\x0b \x01(\x0e\x32\x14.SensorLastResetTypeB\x02\x18\x01\x12\x1b\n\x13\x64isabled_by_default\x18\x0c \x01(\x08\x12(\n\x0f\x65ntity_category\x18\r \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x0e \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@\x10\xe8@\x01\xf2@\nUSE_SENSOR\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xa8\x01\n\x13SensorStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x02\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:5\xe0@\x19\xe8@\x01\xf2@\nUSE_SENSOR\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\x98\x41\x01\"\xdd\x02\n\x1aListEntitiesSwitchResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x15\n\rassumed_state\x18\x06 \x01(\x08\x12\x1b\n\x13\x64isabled_by_default\x18\x07 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x08 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\t \x01(\tB\x04\x90\xb6\x18/\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@\x11\xe8@\x01\xf2@\nUSE_SWITCH\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x8e\x01\n\x13SwitchStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:2\xe0@\x1a\xe8@\x01\xf2@\nUSE_SWITCH\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x89\x01\n\x14SwitchCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@!\xe8@\x02\xf2@\nUSE_SWITCH\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xcf\x02\n\x1eListEntitiesTextSensorResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12!\n\tdevice_id\x18\t \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:3\xe0@\x12\xe8@\x01\xf2@\x0fUSE_TEXT_SENSOR\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xae\x01\n\x17TextSensorStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\t\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:7\xe0@\x1b\xe8@\x01\xf2@\x0fUSE_TEXT_SENSOR\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"M\n\x14SubscribeLogsRequest\x12\x18\n\x05level\x18\x01 \x01(\x0e\x32\t.LogLevel\x12\x13\n\x0b\x64ump_config\x18\x02 \x01(\x08:\x06\xe0@\x1c\xe8@\x02\"_\n\x15SubscribeLogsResponse\x12\x1e\n\x05level\x18\x01 \x01(\x0e\x32\t.LogLevelB\x04\x80\xb6\x18\x01\x12\x15\n\x07message\x18\x03 \x01(\x0c\x42\x04\x80\xb6\x18\x01:\x0f\xe0@\x1d\xe8@\x01\xf8@\x00\x80\x41\x00\x98\x41\x01\"C\n\x1cNoiseEncryptionSetKeyRequest\x12\x0b\n\x03key\x18\x01 \x01(\x0c:\x16\xe0@|\xe8@\x02\xf2@\rUSE_API_NOISE\"H\n\x1dNoiseEncryptionSetKeyResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08:\x16\xe0@}\xe8@\x01\xf2@\rUSE_API_NOISE\"P\n%SubscribeHomeassistantServicesRequest:\'\xe0@\"\xe8@\x02\xf2@\x1eUSE_API_HOMEASSISTANT_SERVICES\"5\n\x17HomeassistantServiceMap\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xd2\x03\n\x1aHomeassistantActionRequest\x12\x0f\n\x07service\x18\x01 \x01(\t\x12,\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x18.HomeassistantServiceMapB\x04\xe8\xb5\x18\x01\x12\x35\n\rdata_template\x18\x03 \x03(\x0b\x32\x18.HomeassistantServiceMapB\x04\xe8\xb5\x18\x01\x12\x31\n\tvariables\x18\x04 \x03(\x0b\x32\x18.HomeassistantServiceMapB\x04\xe8\xb5\x18\x01\x12\x10\n\x08is_event\x18\x05 \x01(\x08\x12:\n\x07\x63\x61ll_id\x18\x06 \x01(\rB)\x92\x41&USE_API_HOMEASSISTANT_ACTION_RESPONSES\x12\x46\n\x0ewants_response\x18\x07 \x01(\x08\x42.\x92\x41+USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON\x12I\n\x11response_template\x18\x08 \x01(\tB.\x92\x41+USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON:*\xe0@#\xe8@\x01\xf2@\x1eUSE_API_HOMEASSISTANT_SERVICES\x80\x41\x01\"\xd2\x01\n\x1bHomeassistantActionResponse\x12\x0f\n\x07\x63\x61ll_id\x18\x01 \x01(\r\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12\x45\n\rresponse_data\x18\x04 \x01(\x0c\x42.\x92\x41+USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON:3\xe0@\x82\x01\xe8@\x02\xf2@&USE_API_HOMEASSISTANT_ACTION_RESPONSES\x80\x41\x01\"L\n#SubscribeHomeAssistantStatesRequest:%\xe0@&\xe8@\x02\xf2@\x1cUSE_API_HOMEASSISTANT_STATES\"\x80\x01\n#SubscribeHomeAssistantStateResponse\x12\x11\n\tentity_id\x18\x01 \x01(\t\x12\x11\n\tattribute\x18\x02 \x01(\t\x12\x0c\n\x04once\x18\x03 \x01(\x08:%\xe0@\'\xe8@\x01\xf2@\x1cUSE_API_HOMEASSISTANT_STATES\"{\n\x1aHomeAssistantStateResponse\x12\x11\n\tentity_id\x18\x01 \x01(\t\x12\r\n\x05state\x18\x02 \x01(\t\x12\x11\n\tattribute\x18\x03 \x01(\t:(\xe0@(\xe8@\x02\xf2@\x1cUSE_API_HOMEASSISTANT_STATES\x80\x41\x01\"\x18\n\x0eGetTimeRequest:\x06\xe0@$\xe8@\x01\"\x7f\n\x07\x44STRule\x12\x14\n\x0ctime_seconds\x18\x01 \x01(\x11\x12\x0b\n\x03\x64\x61y\x18\x02 \x01(\r\x12\x1a\n\x04type\x18\x03 \x01(\x0e\x32\x0c.DSTRuleType\x12\r\n\x05month\x18\x04 \x01(\r\x12\x0c\n\x04week\x18\x05 \x01(\r\x12\x13\n\x0b\x64\x61y_of_week\x18\x06 \x01(\r:\x03\xe8@\x02\"\x85\x01\n\x0eParsedTimezone\x12\x1a\n\x12std_offset_seconds\x18\x01 \x01(\x11\x12\x1a\n\x12\x64st_offset_seconds\x18\x02 \x01(\x11\x12\x1b\n\tdst_start\x18\x03 \x01(\x0b\x32\x08.DSTRule\x12\x19\n\x07\x64st_end\x18\x04 \x01(\x0b\x32\x08.DSTRule:\x03\xe8@\x02\"o\n\x0fGetTimeResponse\x12\x15\n\repoch_seconds\x18\x01 \x01(\x07\x12\x10\n\x08timezone\x18\x02 \x01(\t\x12(\n\x0fparsed_timezone\x18\x03 \x01(\x0b\x32\x0f.ParsedTimezone:\t\xe0@%\xe8@\x02\x80\x41\x01\"l\n\x1cListEntitiesServicesArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x04type\x18\x02 \x01(\x0e\x32\x0f.ServiceArgType:\x1f\xf2@\x1cUSE_API_USER_DEFINED_ACTIONS\"\xcb\x01\n\x1cListEntitiesServicesResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x31\n\x04\x61rgs\x18\x03 \x03(\x0b\x32\x1d.ListEntitiesServicesArgumentB\x04\xe8\xb5\x18\x01\x12\x30\n\x11supports_response\x18\x04 \x01(\x0e\x32\x15.SupportsResponseType:%\xe0@)\xe8@\x01\xf2@\x1cUSE_API_USER_DEFINED_ACTIONS\"\xfb\x01\n\x16\x45xecuteServiceArgument\x12\r\n\x05\x62ool_\x18\x01 \x01(\x08\x12\x12\n\nlegacy_int\x18\x02 \x01(\x05\x12\x0e\n\x06\x66loat_\x18\x03 \x01(\x02\x12\x0f\n\x07string_\x18\x04 \x01(\t\x12\x0c\n\x04int_\x18\x05 \x01(\x11\x12\x1a\n\nbool_array\x18\x06 \x03(\x08\x42\x06\x10\x00\xe8\xb5\x18\x01\x12\x19\n\tint_array\x18\x07 \x03(\x11\x42\x06\x10\x00\xe8\xb5\x18\x01\x12\x1b\n\x0b\x66loat_array\x18\x08 \x03(\x02\x42\x06\x10\x00\xe8\xb5\x18\x01\x12\x1a\n\x0cstring_array\x18\t \x03(\tB\x04\xe8\xb5\x18\x01:\x1f\xf2@\x1cUSE_API_USER_DEFINED_ACTIONS\"\xff\x01\n\x15\x45xecuteServiceRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12+\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x17.ExecuteServiceArgumentB\x04\xe8\xb5\x18\x01\x12\x39\n\x07\x63\x61ll_id\x18\x03 \x01(\rB(\x92\x41%USE_API_USER_DEFINED_ACTION_RESPONSES\x12\x41\n\x0freturn_response\x18\x04 \x01(\x08\x42(\x92\x41%USE_API_USER_DEFINED_ACTION_RESPONSES:(\xe0@*\xe8@\x02\xf2@\x1cUSE_API_USER_DEFINED_ACTIONS\x80\x41\x01\"\xcf\x01\n\x16\x45xecuteServiceResponse\x12\x0f\n\x07\x63\x61ll_id\x18\x01 \x01(\r\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x15\n\rerror_message\x18\x03 \x01(\t\x12H\n\rresponse_data\x18\x04 \x01(\x0c\x42\x31\x92\x41*USE_API_USER_DEFINED_ACTION_RESPONSES_JSON\xe0\xb5\x18\x01:2\xe0@\x83\x01\xe8@\x01\xf2@%USE_API_USER_DEFINED_ACTION_RESPONSES\x80\x41\x01\"\xaa\x02\n\x1aListEntitiesCameraResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x1b\n\x13\x64isabled_by_default\x18\x05 \x01(\x08\x12$\n\x04icon\x18\x06 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x08 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@+\xe8@\x01\xf2@\nUSE_CAMERA\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x98\x01\n\x13\x43\x61meraImageResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:/\xe0@,\xe8@\x01\xf2@\nUSE_CAMERA\x8a\x41\x19StateResponseProtoMessage\"L\n\x12\x43\x61meraImageRequest\x12\x0e\n\x06single\x18\x01 \x01(\x08\x12\x0e\n\x06stream\x18\x02 \x01(\x08:\x16\xe0@-\xe8@\x02\xf2@\nUSE_CAMERA\x80\x41\x01\"\xc7\t\n\x1bListEntitiesClimateResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x1csupports_current_temperature\x18\x05 \x01(\x08\x12-\n%supports_two_point_target_temperature\x18\x06 \x01(\x08\x12\x43\n\x0fsupported_modes\x18\x07 \x03(\x0e\x32\x0c.ClimateModeB\x1c\xf2\xb5\x18\x18\x63limate::ClimateModeMask\x12\x1e\n\x16visual_min_temperature\x18\x08 \x01(\x02\x12\x1e\n\x16visual_max_temperature\x18\t \x01(\x02\x12&\n\x1evisual_target_temperature_step\x18\n \x01(\x02\x12 \n\x14legacy_supports_away\x18\x0b \x01(\x08\x42\x02\x18\x01\x12\x17\n\x0fsupports_action\x18\x0c \x01(\x08\x12M\n\x13supported_fan_modes\x18\r \x03(\x0e\x32\x0f.ClimateFanModeB\x1f\xf2\xb5\x18\x1b\x63limate::ClimateFanModeMask\x12S\n\x15supported_swing_modes\x18\x0e \x03(\x0e\x32\x11.ClimateSwingModeB!\xf2\xb5\x18\x1d\x63limate::ClimateSwingModeMask\x12\x41\n\x1asupported_custom_fan_modes\x18\x0f \x03(\tB\x1d\xf2\xb5\x18\x19std::vector<const char *>\x12I\n\x11supported_presets\x18\x10 \x03(\x0e\x32\x0e.ClimatePresetB\x1e\xf2\xb5\x18\x1a\x63limate::ClimatePresetMask\x12?\n\x18supported_custom_presets\x18\x11 \x03(\tB\x1d\xf2\xb5\x18\x19std::vector<const char *>\x12\x1b\n\x13\x64isabled_by_default\x18\x12 \x01(\x08\x12$\n\x04icon\x18\x13 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12(\n\x0f\x65ntity_category\x18\x14 \x01(\x0e\x32\x0f.EntityCategory\x12\'\n\x1fvisual_current_temperature_step\x18\x15 \x01(\x02\x12!\n\x19supports_current_humidity\x18\x16 \x01(\x08\x12 \n\x18supports_target_humidity\x18\x17 \x01(\x08\x12\x1b\n\x13visual_min_humidity\x18\x18 \x01(\x02\x12\x1b\n\x13visual_max_humidity\x18\x19 \x01(\x02\x12!\n\tdevice_id\x18\x1a \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x15\n\rfeature_flags\x18\x1b \x01(\r\x12*\n\x10temperature_unit\x18\x1c \x01(\x0e\x32\x10.TemperatureUnit:/\xe0@.\xe8@\x01\xf2@\x0bUSE_CLIMATE\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xa4\x04\n\x14\x43limateStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x1a\n\x04mode\x18\x02 \x01(\x0e\x32\x0c.ClimateMode\x12\x1b\n\x13\x63urrent_temperature\x18\x03 \x01(\x02\x12\x1a\n\x12target_temperature\x18\x04 \x01(\x02\x12\x1e\n\x16target_temperature_low\x18\x05 \x01(\x02\x12\x1f\n\x17target_temperature_high\x18\x06 \x01(\x02\x12\x1e\n\x12unused_legacy_away\x18\x07 \x01(\x08\x42\x02\x18\x01\x12\x1e\n\x06\x61\x63tion\x18\x08 \x01(\x0e\x32\x0e.ClimateAction\x12!\n\x08\x66\x61n_mode\x18\t \x01(\x0e\x32\x0f.ClimateFanMode\x12%\n\nswing_mode\x18\n \x01(\x0e\x32\x11.ClimateSwingMode\x12\x17\n\x0f\x63ustom_fan_mode\x18\x0b \x01(\t\x12\x1e\n\x06preset\x18\x0c \x01(\x0e\x32\x0e.ClimatePreset\x12\x15\n\rcustom_preset\x18\r \x01(\t\x12\x18\n\x10\x63urrent_humidity\x18\x0e \x01(\x02\x12\x17\n\x0ftarget_humidity\x18\x0f \x01(\x02\x12!\n\tdevice_id\x18\x10 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:3\xe0@/\xe8@\x01\xf2@\x0bUSE_CLIMATE\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xfe\x05\n\x15\x43limateCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x10\n\x08has_mode\x18\x02 \x01(\x08\x12\x1a\n\x04mode\x18\x03 \x01(\x0e\x32\x0c.ClimateMode\x12\x1e\n\x16has_target_temperature\x18\x04 \x01(\x08\x12\x1a\n\x12target_temperature\x18\x05 \x01(\x02\x12\"\n\x1ahas_target_temperature_low\x18\x06 \x01(\x08\x12\x1e\n\x16target_temperature_low\x18\x07 \x01(\x02\x12#\n\x1bhas_target_temperature_high\x18\x08 \x01(\x08\x12\x1f\n\x17target_temperature_high\x18\t \x01(\x02\x12\"\n\x16unused_has_legacy_away\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1e\n\x12unused_legacy_away\x18\x0b \x01(\x08\x42\x02\x18\x01\x12\x14\n\x0chas_fan_mode\x18\x0c \x01(\x08\x12!\n\x08\x66\x61n_mode\x18\r \x01(\x0e\x32\x0f.ClimateFanMode\x12\x16\n\x0ehas_swing_mode\x18\x0e \x01(\x08\x12%\n\nswing_mode\x18\x0f \x01(\x0e\x32\x11.ClimateSwingMode\x12\x1b\n\x13has_custom_fan_mode\x18\x10 \x01(\x08\x12\x17\n\x0f\x63ustom_fan_mode\x18\x11 \x01(\t\x12\x12\n\nhas_preset\x18\x12 \x01(\x08\x12\x1e\n\x06preset\x18\x13 \x01(\x0e\x32\x0e.ClimatePreset\x12\x19\n\x11has_custom_preset\x18\x14 \x01(\x08\x12\x15\n\rcustom_preset\x18\x15 \x01(\t\x12\x1b\n\x13has_target_humidity\x18\x16 \x01(\x08\x12\x17\n\x0ftarget_humidity\x18\x17 \x01(\x02\x12!\n\tdevice_id\x18\x18 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@0\xe8@\x02\xf2@\x0bUSE_CLIMATE\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\x9d\x04\n\x1fListEntitiesWaterHeaterResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x04 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x05 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x06 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x07 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x17\n\x0fmin_temperature\x18\x08 \x01(\x02\x12\x17\n\x0fmax_temperature\x18\t \x01(\x02\x12\x1f\n\x17target_temperature_step\x18\n \x01(\x02\x12P\n\x0fsupported_modes\x18\x0b \x03(\x0e\x32\x10.WaterHeaterModeB%\xf2\xb5\x18!water_heater::WaterHeaterModeMask\x12\x1a\n\x12supported_features\x18\x0c \x01(\r\x12*\n\x10temperature_unit\x18\r \x01(\x0e\x32\x10.TemperatureUnit:5\xe0@\x84\x01\xe8@\x01\xf2@\x10USE_WATER_HEATER\x8a\x41\x18InfoResponseProtoMessage\"\xb4\x02\n\x18WaterHeaterStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x1b\n\x13\x63urrent_temperature\x18\x02 \x01(\x02\x12\x1a\n\x12target_temperature\x18\x03 \x01(\x02\x12\x1e\n\x04mode\x18\x04 \x01(\x0e\x32\x10.WaterHeaterMode\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\r\n\x05state\x18\x06 \x01(\r\x12\x1e\n\x16target_temperature_low\x18\x07 \x01(\x02\x12\x1f\n\x17target_temperature_high\x18\x08 \x01(\x02:9\xe0@\x85\x01\xe8@\x01\xf2@\x10USE_WATER_HEATER\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xa6\x02\n\x19WaterHeaterCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x12\n\nhas_fields\x18\x02 \x01(\r\x12\x1e\n\x04mode\x18\x03 \x01(\x0e\x32\x10.WaterHeaterMode\x12\x1a\n\x12target_temperature\x18\x04 \x01(\x02\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\r\n\x05state\x18\x06 \x01(\r\x12\x1e\n\x16target_temperature_low\x18\x07 \x01(\x02\x12\x1f\n\x17target_temperature_high\x18\x08 \x01(\x02:3\xe0@\x86\x01\xe8@\x02\xf2@\x10USE_WATER_HEATER\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xb8\x03\n\x1aListEntitiesNumberResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x11\n\tmin_value\x18\x06 \x01(\x02\x12\x11\n\tmax_value\x18\x07 \x01(\x02\x12\x0c\n\x04step\x18\x08 \x01(\x02\x12\x1b\n\x13\x64isabled_by_default\x18\t \x01(\x08\x12(\n\x0f\x65ntity_category\x18\n \x01(\x0e\x32\x0f.EntityCategory\x12!\n\x13unit_of_measurement\x18\x0b \x01(\tB\x04\x90\xb6\x18?\x12\x19\n\x04mode\x18\x0c \x01(\x0e\x32\x0b.NumberMode\x12\x1a\n\x0c\x64\x65vice_class\x18\r \x01(\tB\x04\x90\xb6\x18/\x12!\n\tdevice_id\x18\x0e \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@1\xe8@\x01\xf2@\nUSE_NUMBER\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xa5\x01\n\x13NumberStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x02\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:2\xe0@2\xe8@\x01\xf2@\nUSE_NUMBER\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x89\x01\n\x14NumberCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x02\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@3\xe8@\x02\xf2@\nUSE_NUMBER\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xda\x02\n\x1aListEntitiesSelectResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12.\n\x07options\x18\x06 \x03(\tB\x1d\xf2\xb5\x18\x19\x46ixedVector<const char *>\x12\x1b\n\x13\x64isabled_by_default\x18\x07 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x08 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\t \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@4\xe8@\x01\xf2@\nUSE_SELECT\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xa5\x01\n\x13SelectStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\t\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:2\xe0@5\xe8@\x01\xf2@\nUSE_SELECT\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x89\x01\n\x14SelectCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\t\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@6\xe8@\x02\xf2@\nUSE_SELECT\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\x8a\x03\n\x19ListEntitiesSirenResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12,\n\x05tones\x18\x07 \x03(\tB\x1d\xf2\xb5\x18\x19\x46ixedVector<const char *>\x12\x19\n\x11supports_duration\x18\x08 \x01(\x08\x12\x17\n\x0fsupports_volume\x18\t \x01(\x08\x12(\n\x0f\x65ntity_category\x18\n \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x0b \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@7\xe8@\x01\xf2@\tUSE_SIREN\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x8c\x01\n\x12SirenStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\x08\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:1\xe0@8\xe8@\x01\xf2@\tUSE_SIREN\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x86\x02\n\x13SirenCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x11\n\thas_state\x18\x02 \x01(\x08\x12\r\n\x05state\x18\x03 \x01(\x08\x12\x10\n\x08has_tone\x18\x04 \x01(\x08\x12\x0c\n\x04tone\x18\x05 \x01(\t\x12\x14\n\x0chas_duration\x18\x06 \x01(\x08\x12\x10\n\x08\x64uration\x18\x07 \x01(\r\x12\x12\n\nhas_volume\x18\x08 \x01(\x08\x12\x0e\n\x06volume\x18\t \x01(\x02\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:+\xe0@9\xe8@\x02\xf2@\tUSE_SIREN\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\x80\x03\n\x18ListEntitiesLockResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x15\n\rassumed_state\x18\x08 \x01(\x08\x12\x15\n\rsupports_open\x18\t \x01(\x08\x12\x15\n\rrequires_code\x18\n \x01(\x08\x12\x13\n\x0b\x63ode_format\x18\x0b \x01(\t\x12!\n\tdevice_id\x18\x0c \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@:\xe8@\x01\xf2@\x08USE_LOCK\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x96\x01\n\x11LockStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x19\n\x05state\x18\x02 \x01(\x0e\x32\n.LockState\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:0\xe0@;\xe8@\x01\xf2@\x08USE_LOCK\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xb5\x01\n\x12LockCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x1d\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\x0c.LockCommand\x12\x10\n\x08has_code\x18\x03 \x01(\x08\x12\x0c\n\x04\x63ode\x18\x04 \x01(\t\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:*\xe0@<\xe8@\x02\xf2@\x08USE_LOCK\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xc6\x02\n\x1aListEntitiesButtonResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12!\n\tdevice_id\x18\t \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@=\xe8@\x01\xf2@\nUSE_BUTTON\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"z\n\x14\x42uttonCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12!\n\tdevice_id\x18\x02 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@>\xe8@\x02\xf2@\nUSE_BUTTON\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xae\x01\n\x1aMediaPlayerSupportedFormat\x12\x0e\n\x06\x66ormat\x18\x01 \x01(\t\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12*\n\x07purpose\x18\x04 \x01(\x0e\x32\x19.MediaPlayerFormatPurpose\x12\x14\n\x0csample_bytes\x18\x05 \x01(\r:\x13\xf2@\x10USE_MEDIA_PLAYER\"\x9c\x03\n\x1fListEntitiesMediaPlayerResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x16\n\x0esupports_pause\x18\x08 \x01(\x08\x12\x36\n\x11supported_formats\x18\t \x03(\x0b\x32\x1b.MediaPlayerSupportedFormat\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x15\n\rfeature_flags\x18\x0b \x01(\r:4\xe0@?\xe8@\x01\xf2@\x10USE_MEDIA_PLAYER\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xcb\x01\n\x18MediaPlayerStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12 \n\x05state\x18\x02 \x01(\x0e\x32\x11.MediaPlayerState\x12\x0e\n\x06volume\x18\x03 \x01(\x02\x12\r\n\x05muted\x18\x04 \x01(\x08\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:8\xe0@@\xe8@\x01\xf2@\x10USE_MEDIA_PLAYER\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xbe\x02\n\x19MediaPlayerCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x13\n\x0bhas_command\x18\x02 \x01(\x08\x12$\n\x07\x63ommand\x18\x03 \x01(\x0e\x32\x13.MediaPlayerCommand\x12\x12\n\nhas_volume\x18\x04 \x01(\x08\x12\x0e\n\x06volume\x18\x05 \x01(\x02\x12\x15\n\rhas_media_url\x18\x06 \x01(\x08\x12\x11\n\tmedia_url\x18\x07 \x01(\t\x12\x18\n\x10has_announcement\x18\x08 \x01(\x08\x12\x14\n\x0c\x61nnouncement\x18\t \x01(\x08\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:2\xe0@A\xe8@\x02\xf2@\x10USE_MEDIA_PLAYER\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"X\n)SubscribeBluetoothLEAdvertisementsRequest\x12\r\n\x05\x66lags\x18\x01 \x01(\r:\x1c\xe0@B\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"O\n\x14\x42luetoothServiceData\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x17\n\x0blegacy_data\x18\x02 \x03(\rB\x02\x18\x01\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c:\x02\x18\x01\"\xfe\x01\n BluetoothLEAdvertisementResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\x0c\x12\x0c\n\x04rssi\x18\x03 \x01(\x11\x12\x15\n\rservice_uuids\x18\x04 \x03(\t\x12+\n\x0cservice_data\x18\x05 \x03(\x0b\x32\x15.BluetoothServiceData\x12\x30\n\x11manufacturer_data\x18\x06 \x03(\x0b\x32\x15.BluetoothServiceData\x12\x14\n\x0c\x61\x64\x64ress_type\x18\x07 \x01(\r:!\x18\x01\xe0@C\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\x80\x41\x01\"\x85\x01\n\x1b\x42luetoothLERawAdvertisement\x12\x19\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x42\x08\x80\xb6\x18\x01\x98\xb6\x18\x01\x12\x12\n\x04rssi\x18\x02 \x01(\x11\x42\x04\x80\xb6\x18\x01\x12\x1a\n\x0c\x61\x64\x64ress_type\x18\x03 \x01(\rB\x04\x88\xb6\x18\x04\x12\x16\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x42\x08\xb8\xb5\x18>\x80\xb6\x18\x01:\x03\x90\x41\x01\"\xae\x01\n$BluetoothLERawAdvertisementsResponse\x12\x62\n\x0e\x61\x64vertisements\x18\x01 \x03(\x0b\x32\x1c.BluetoothLERawAdvertisementB,\xda\xb5\x18(BLUETOOTH_PROXY_ADVERTISEMENT_BATCH_SIZE:\"\xe0@]\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\x80\x41\x01\x98\x41\x01\"\xaa\x01\n\x16\x42luetoothDeviceRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x31\n\x0crequest_type\x18\x02 \x01(\x0e\x32\x1b.BluetoothDeviceRequestType\x12\x18\n\x10has_address_type\x18\x03 \x01(\x08\x12\x14\n\x0c\x61\x64\x64ress_type\x18\x04 \x01(\r:\x1c\xe0@D\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"\x81\x01\n!BluetoothDeviceConnectionResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x11\n\tconnected\x18\x02 \x01(\x08\x12\x0b\n\x03mtu\x18\x03 \x01(\r\x12\r\n\x05\x65rror\x18\x04 \x01(\x05:\x1c\xe0@E\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"P\n\x1f\x42luetoothGATTGetServicesRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04:\x1c\xe0@F\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"U\n\x17\x42luetoothGATTDescriptor\x12\x16\n\x04uuid\x18\x01 \x03(\x04\x42\x08\xb8\xb5\x18\x02\xc8\xb5\x18\x01\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x12\n\nshort_uuid\x18\x03 \x01(\r\"\xa2\x01\n\x1b\x42luetoothGATTCharacteristic\x12\x16\n\x04uuid\x18\x01 \x03(\x04\x42\x08\xb8\xb5\x18\x02\xc8\xb5\x18\x01\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x12\n\nproperties\x18\x03 \x01(\r\x12\x33\n\x0b\x64\x65scriptors\x18\x04 \x03(\x0b\x32\x18.BluetoothGATTDescriptorB\x04\xe8\xb5\x18\x01\x12\x12\n\nshort_uuid\x18\x05 \x01(\r\"\x8f\x01\n\x14\x42luetoothGATTService\x12\x16\n\x04uuid\x18\x01 \x03(\x04\x42\x08\xb8\xb5\x18\x02\xc8\xb5\x18\x01\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12;\n\x0f\x63haracteristics\x18\x03 \x03(\x0b\x32\x1c.BluetoothGATTCharacteristicB\x04\xe8\xb5\x18\x01\x12\x12\n\nshort_uuid\x18\x04 \x01(\r\"z\n BluetoothGATTGetServicesResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\'\n\x08services\x18\x02 \x03(\x0b\x32\x15.BluetoothGATTService:\x1c\xe0@G\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"U\n$BluetoothGATTGetServicesDoneResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04:\x1c\xe0@H\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"Y\n\x18\x42luetoothGATTReadRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r:\x1c\xe0@I\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"h\n\x19\x42luetoothGATTReadResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c:\x1c\xe0@J\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"z\n\x19\x42luetoothGATTWriteRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x10\n\x08response\x18\x03 \x01(\x08\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c:\x1c\xe0@K\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"c\n\"BluetoothGATTReadDescriptorRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r:\x1c\xe0@L\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"r\n#BluetoothGATTWriteDescriptorRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c:\x1c\xe0@M\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"k\n\x1a\x42luetoothGATTNotifyRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x0e\n\x06\x65nable\x18\x03 \x01(\x08:\x1c\xe0@N\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"n\n\x1f\x42luetoothGATTNotifyDataResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c:\x1c\xe0@O\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"H\n(SubscribeBluetoothConnectionsFreeRequest:\x1c\xe0@P\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"\x99\x01\n BluetoothConnectionsFreeResponse\x12\x0c\n\x04\x66ree\x18\x01 \x01(\r\x12\r\n\x05limit\x18\x02 \x01(\r\x12:\n\tallocated\x18\x03 \x03(\x04\x42\'\xc8\xb5\x18\x01\xd2\xb5\x18\x1f\x42LUETOOTH_PROXY_MAX_CONNECTIONS:\x1c\xe0@Q\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"j\n\x1a\x42luetoothGATTErrorResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\x05:\x1c\xe0@R\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"[\n\x1a\x42luetoothGATTWriteResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r:\x1c\xe0@S\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"\\\n\x1b\x42luetoothGATTNotifyResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06handle\x18\x02 \x01(\r:\x1c\xe0@T\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"n\n\x1e\x42luetoothDevicePairingResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0e\n\x06paired\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\x05:\x1c\xe0@U\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"q\n BluetoothDeviceUnpairingResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\x05:\x1c\xe0@V\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"K\n+UnsubscribeBluetoothLEAdvertisementsRequest:\x1c\xe0@W\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"r\n!BluetoothDeviceClearCacheResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\r\n\x05\x65rror\x18\x03 \x01(\x05:\x1c\xe0@X\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"\xb9\x01\n\x1d\x42luetoothScannerStateResponse\x12%\n\x05state\x18\x01 \x01(\x0e\x32\x16.BluetoothScannerState\x12#\n\x04mode\x18\x02 \x01(\x0e\x32\x15.BluetoothScannerMode\x12.\n\x0f\x63onfigured_mode\x18\x03 \x01(\x0e\x32\x15.BluetoothScannerMode:\x1c\xe0@~\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY\"c\n\x1e\x42luetoothScannerSetModeRequest\x12#\n\x04mode\x18\x01 \x01(\x0e\x32\x15.BluetoothScannerMode:\x1c\xe0@\x7f\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"`\n\x1eSubscribeVoiceAssistantRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\r\n\x05\x66lags\x18\x02 \x01(\r:\x1c\xe0@Y\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"l\n\x1bVoiceAssistantAudioSettings\x12\x1f\n\x17noise_suppression_level\x18\x01 \x01(\r\x12\x11\n\tauto_gain\x18\x02 \x01(\r\x12\x19\n\x11volume_multiplier\x18\x03 \x01(\x02\"\xbc\x01\n\x15VoiceAssistantRequest\x12\r\n\x05start\x18\x01 \x01(\x08\x12\x17\n\x0f\x63onversation_id\x18\x02 \x01(\t\x12\r\n\x05\x66lags\x18\x03 \x01(\r\x12\x34\n\x0e\x61udio_settings\x18\x04 \x01(\x0b\x32\x1c.VoiceAssistantAudioSettings\x12\x18\n\x10wake_word_phrase\x18\x05 \x01(\t:\x1c\xe0@Z\xe8@\x01\xf2@\x13USE_VOICE_ASSISTANT\"S\n\x16VoiceAssistantResponse\x12\x0c\n\x04port\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\x08:\x1c\xe0@[\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"6\n\x17VoiceAssistantEventData\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\x8d\x01\n\x1bVoiceAssistantEventResponse\x12(\n\nevent_type\x18\x01 \x01(\x0e\x32\x14.VoiceAssistantEvent\x12&\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x18.VoiceAssistantEventData:\x1c\xe0@\\\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"i\n\x13VoiceAssistantAudio\x12\x12\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x42\x04\xe0\xb5\x18\x01\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x08\x12\x13\n\x05\x64\x61ta2\x18\x03 \x01(\x0c\x42\x04\xe0\xb5\x18\x01:\x1c\xe0@j\xe8@\x00\xf2@\x13USE_VOICE_ASSISTANT\"\xcf\x01\n VoiceAssistantTimerEventResponse\x12-\n\nevent_type\x18\x01 \x01(\x0e\x32\x19.VoiceAssistantTimerEvent\x12\x10\n\x08timer_id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\rtotal_seconds\x18\x04 \x01(\r\x12\x14\n\x0cseconds_left\x18\x05 \x01(\r\x12\x11\n\tis_active\x18\x06 \x01(\x08:\x1c\xe0@s\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"\x97\x01\n\x1dVoiceAssistantAnnounceRequest\x12\x10\n\x08media_id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1c\n\x14preannounce_media_id\x18\x03 \x01(\t\x12\x1a\n\x12start_conversation\x18\x04 \x01(\x08:\x1c\xe0@w\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"O\n\x1eVoiceAssistantAnnounceFinished\x12\x0f\n\x07success\x18\x01 \x01(\x08:\x1c\xe0@x\xe8@\x01\xf2@\x13USE_VOICE_ASSISTANT\"R\n\x16VoiceAssistantWakeWord\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\twake_word\x18\x02 \x01(\t\x12\x19\n\x11trained_languages\x18\x03 \x03(\t\"\xa3\x01\n\x1eVoiceAssistantExternalWakeWord\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\twake_word\x18\x02 \x01(\t\x12\x19\n\x11trained_languages\x18\x03 \x03(\t\x12\x12\n\nmodel_type\x18\x04 \x01(\t\x12\x12\n\nmodel_size\x18\x05 \x01(\r\x12\x12\n\nmodel_hash\x18\x06 \x01(\t\x12\x0b\n\x03url\x18\x07 \x01(\t\"\x80\x01\n\"VoiceAssistantConfigurationRequest\x12<\n\x13\x65xternal_wake_words\x18\x01 \x03(\x0b\x32\x1f.VoiceAssistantExternalWakeWord:\x1c\xe0@y\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"\xc5\x01\n#VoiceAssistantConfigurationResponse\x12\x35\n\x14\x61vailable_wake_words\x18\x01 \x03(\x0b\x32\x17.VoiceAssistantWakeWord\x12*\n\x11\x61\x63tive_wake_words\x18\x02 \x03(\tB\x0f\x8a\xb5\x18\x0bstd::vector\x12\x1d\n\x15max_active_wake_words\x18\x03 \x01(\r:\x1c\xe0@z\xe8@\x01\xf2@\x13USE_VOICE_ASSISTANT\"Y\n\x1eVoiceAssistantSetConfiguration\x12\x19\n\x11\x61\x63tive_wake_words\x18\x01 \x03(\t:\x1c\xe0@{\xe8@\x02\xf2@\x13USE_VOICE_ASSISTANT\"\x93\x03\n%ListEntitiesAlarmControlPanelResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x12supported_features\x18\x08 \x01(\r\x12\x15\n\rrequires_code\x18\t \x01(\x08\x12\x1c\n\x14requires_code_to_arm\x18\n \x01(\x08\x12!\n\tdevice_id\x18\x0b \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:;\xe0@^\xe8@\x01\xf2@\x17USE_ALARM_CONTROL_PANEL\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xbf\x01\n\x1e\x41larmControlPanelStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12&\n\x05state\x18\x02 \x01(\x0e\x32\x17.AlarmControlPanelState\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:?\xe0@_\xe8@\x01\xf2@\x17USE_ALARM_CONTROL_PANEL\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xd1\x01\n\x1f\x41larmControlPanelCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12/\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\x1e.AlarmControlPanelStateCommand\x12\x0c\n\x04\x63ode\x18\x03 \x01(\t\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:9\xe0@`\xe8@\x02\xf2@\x17USE_ALARM_CONTROL_PANEL\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xf8\x02\n\x18ListEntitiesTextResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x12\n\nmin_length\x18\x08 \x01(\r\x12\x12\n\nmax_length\x18\t \x01(\r\x12\x0f\n\x07pattern\x18\n \x01(\t\x12\x17\n\x04mode\x18\x0b \x01(\x0e\x32\t.TextMode\x12!\n\tdevice_id\x18\x0c \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@a\xe8@\x01\xf2@\x08USE_TEXT\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xa1\x01\n\x11TextStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\t\x12\x15\n\rmissing_state\x18\x03 \x01(\x08\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:0\xe0@b\xe8@\x01\xf2@\x08USE_TEXT\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x85\x01\n\x12TextCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\r\n\x05state\x18\x02 \x01(\t\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:*\xe0@c\xe8@\x02\xf2@\x08USE_TEXT\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xaf\x02\n\x18ListEntitiesDateResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x08 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:5\xe0@d\xe8@\x01\xf2@\x11USE_DATETIME_DATE\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xc5\x01\n\x11\x44\x61teStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x15\n\rmissing_state\x18\x02 \x01(\x08\x12\x0c\n\x04year\x18\x03 \x01(\r\x12\r\n\x05month\x18\x04 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x05 \x01(\r\x12!\n\tdevice_id\x18\x06 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:9\xe0@e\xe8@\x01\xf2@\x11USE_DATETIME_DATE\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xa9\x01\n\x12\x44\x61teCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x0c\n\x04year\x18\x02 \x01(\r\x12\r\n\x05month\x18\x03 \x01(\r\x12\x0b\n\x03\x64\x61y\x18\x04 \x01(\r\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:3\xe0@f\xe8@\x02\xf2@\x11USE_DATETIME_DATE\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xaf\x02\n\x18ListEntitiesTimeResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x08 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:5\xe0@g\xe8@\x01\xf2@\x11USE_DATETIME_TIME\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xc9\x01\n\x11TimeStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x15\n\rmissing_state\x18\x02 \x01(\x08\x12\x0c\n\x04hour\x18\x03 \x01(\r\x12\x0e\n\x06minute\x18\x04 \x01(\r\x12\x0e\n\x06second\x18\x05 \x01(\r\x12!\n\tdevice_id\x18\x06 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:9\xe0@h\xe8@\x01\xf2@\x11USE_DATETIME_TIME\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xad\x01\n\x12TimeCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x0c\n\x04hour\x18\x02 \x01(\r\x12\x0e\n\x06minute\x18\x03 \x01(\r\x12\x0e\n\x06second\x18\x04 \x01(\r\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:3\xe0@i\xe8@\x02\xf2@\x11USE_DATETIME_TIME\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xf8\x02\n\x19ListEntitiesEventResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12\x32\n\x0b\x65vent_types\x18\t \x03(\tB\x1d\xf2\xb5\x18\x19\x46ixedVector<const char *>\x12!\n\tdevice_id\x18\n \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@k\xe8@\x01\xf2@\tUSE_EVENT\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\x89\x01\n\rEventResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x12\n\nevent_type\x18\x02 \x01(\t\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@l\xe8@\x01\xf2@\tUSE_EVENT\x8a\x41\x19StateResponseProtoMessage\"\x8d\x03\n\x19ListEntitiesValveResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12\x15\n\rassumed_state\x18\t \x01(\x08\x12\x19\n\x11supports_position\x18\n \x01(\x08\x12\x15\n\rsupports_stop\x18\x0b \x01(\x08\x12!\n\tdevice_id\x18\x0c \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:-\xe0@m\xe8@\x01\xf2@\tUSE_VALVE\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xbb\x01\n\x12ValveStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x10\n\x08position\x18\x02 \x01(\x02\x12*\n\x11\x63urrent_operation\x18\x03 \x01(\x0e\x32\x0f.ValveOperation\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:1\xe0@n\xe8@\x01\xf2@\tUSE_VALVE\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\xae\x01\n\x13ValveCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x14\n\x0chas_position\x18\x02 \x01(\x08\x12\x10\n\x08position\x18\x03 \x01(\x02\x12\x0c\n\x04stop\x18\x04 \x01(\x08\x12!\n\tdevice_id\x18\x05 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:+\xe0@o\xe8@\x02\xf2@\tUSE_VALVE\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xb7\x02\n\x1cListEntitiesDateTimeResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x08 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:9\xe0@p\xe8@\x01\xf2@\x15USE_DATETIME_DATETIME\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xba\x01\n\x15\x44\x61teTimeStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x15\n\rmissing_state\x18\x02 \x01(\x08\x12\x15\n\repoch_seconds\x18\x03 \x01(\x07\x12!\n\tdevice_id\x18\x04 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:=\xe0@q\xe8@\x01\xf2@\x15USE_DATETIME_DATETIME\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x9e\x01\n\x16\x44\x61teTimeCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x15\n\repoch_seconds\x18\x02 \x01(\x07\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:7\xe0@r\xe8@\x02\xf2@\x15USE_DATETIME_DATETIME\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"\xc6\x02\n\x1aListEntitiesUpdateResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x05 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x06 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x07 \x01(\x0e\x32\x0f.EntityCategory\x12\x1a\n\x0c\x64\x65vice_class\x18\x08 \x01(\tB\x04\x90\xb6\x18/\x12!\n\tdevice_id\x18\t \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:.\xe0@t\xe8@\x01\xf2@\nUSE_UPDATE\x8a\x41\x18InfoResponseProtoMessageJ\x04\x08\x04\x10\x05\"\xc1\x02\n\x13UpdateStateResponse\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x15\n\rmissing_state\x18\x02 \x01(\x08\x12\x13\n\x0bin_progress\x18\x03 \x01(\x08\x12\x14\n\x0chas_progress\x18\x04 \x01(\x08\x12\x10\n\x08progress\x18\x05 \x01(\x02\x12\x17\n\x0f\x63urrent_version\x18\x06 \x01(\t\x12\x16\n\x0elatest_version\x18\x07 \x01(\t\x12\r\n\x05title\x18\x08 \x01(\t\x12\x17\n\x0frelease_summary\x18\t \x01(\t\x12\x13\n\x0brelease_url\x18\n \x01(\t\x12!\n\tdevice_id\x18\x0b \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:2\xe0@u\xe8@\x01\xf2@\nUSE_UPDATE\x80\x41\x01\x8a\x41\x19StateResponseProtoMessage\"\x9b\x01\n\x14UpdateCommandRequest\x12\x11\n\x03key\x18\x01 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x1f\n\x07\x63ommand\x18\x02 \x01(\x0e\x32\x0e.UpdateCommand\x12!\n\tdevice_id\x18\x03 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES:,\xe0@v\xe8@\x02\xf2@\nUSE_UPDATE\x80\x41\x01\x8a\x41\x13\x43ommandProtoMessage\"@\n\x0fZWaveProxyFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c:\x1f\xe0@\x80\x01\xe8@\x00\xf2@\x0fUSE_ZWAVE_PROXY\x80\x41\x01\x98\x41\x01\"b\n\x11ZWaveProxyRequest\x12$\n\x04type\x18\x01 \x01(\x0e\x32\x16.ZWaveProxyRequestType\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c:\x19\xe0@\x81\x01\xe8@\x00\xf2@\x0fUSE_ZWAVE_PROXY\"\xdb\x02\n\x1cListEntitiesInfraredResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x04 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x05 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x06 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x07 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x01(\r\x12\x1a\n\x12receiver_frequency\x18\t \x01(\r:1\xe0@\x87\x01\xe8@\x01\xf2@\x0cUSE_INFRARED\x8a\x41\x18InfoResponseProtoMessage\"\xe5\x01\n#InfraredRFTransmitRawTimingsRequest\x12!\n\tdevice_id\x18\x01 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x19\n\x11\x63\x61rrier_frequency\x18\x03 \x01(\r\x12\x14\n\x0crepeat_count\x18\x04 \x01(\r\x12\x17\n\x07timings\x18\x05 \x03(\x11\x42\x06\x10\x01\xf8\xb5\x18\x01\x12\x12\n\nmodulation\x18\x06 \x01(\r:*\xe0@\x88\x01\xe8@\x02\xf2@ USE_IR_RF || USE_RADIO_FREQUENCY\"\xad\x01\n\x16InfraredRFReceiveEvent\x12!\n\tdevice_id\x18\x01 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12+\n\x07timings\x18\x03 \x03(\x11\x42\x1a\x10\x01\xf2\xb5\x18\x14std::vector<int32_t>:0\xe0@\x89\x01\xe8@\x01\xf2@ USE_IR_RF || USE_RADIO_FREQUENCY\x80\x41\x01\x98\x41\x01\"\x99\x03\n\"ListEntitiesRadioFrequencyResponse\x12\x1b\n\tobject_id\x18\x01 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12\x11\n\x03key\x18\x02 \x01(\x07\x42\x04\x80\xb6\x18\x01\x12\x16\n\x04name\x18\x03 \x01(\tB\x08\x80\xb6\x18\x01\x90\xb6\x18x\x12$\n\x04icon\x18\x04 \x01(\tB\x16\x92\x41\x0fUSE_ENTITY_ICON\x90\xb6\x18?\x12\x1b\n\x13\x64isabled_by_default\x18\x05 \x01(\x08\x12(\n\x0f\x65ntity_category\x18\x06 \x01(\x0e\x32\x0f.EntityCategory\x12!\n\tdevice_id\x18\x07 \x01(\rB\x0e\x92\x41\x0bUSE_DEVICES\x12\x14\n\x0c\x63\x61pabilities\x18\x08 \x01(\r\x12\x15\n\rfrequency_min\x18\t \x01(\r\x12\x15\n\rfrequency_max\x18\n \x01(\r\x12\x1d\n\x15supported_modulations\x18\x0b \x01(\r:8\xe0@\x94\x01\xe8@\x01\xf2@\x13USE_RADIO_FREQUENCY\x8a\x41\x18InfoResponseProtoMessage\"\xbd\x01\n\x1bSerialProxyConfigureRequest\x12\x10\n\x08instance\x18\x01 \x01(\r\x12\x10\n\x08\x62\x61udrate\x18\x02 \x01(\r\x12\x14\n\x0c\x66low_control\x18\x03 \x01(\x08\x12\"\n\x06parity\x18\x04 \x01(\x0e\x32\x12.SerialProxyParity\x12\x11\n\tstop_bits\x18\x05 \x01(\r\x12\x11\n\tdata_size\x18\x06 \x01(\r:\x1a\xe0@\x8a\x01\xe8@\x02\xf2@\x10USE_SERIAL_PROXY\"[\n\x17SerialProxyDataReceived\x12\x10\n\x08instance\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c: \xe0@\x8b\x01\xe8@\x01\xf2@\x10USE_SERIAL_PROXY\x80\x41\x01\x98\x41\x01\"X\n\x17SerialProxyWriteRequest\x12\x10\n\x08instance\x18\x01 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c:\x1d\xe0@\x8c\x01\xe8@\x02\xf2@\x10USE_SERIAL_PROXY\x80\x41\x01\"c\n\x1eSerialProxySetModemPinsRequest\x12\x10\n\x08instance\x18\x01 \x01(\r\x12\x13\n\x0bline_states\x18\x02 \x01(\r:\x1a\xe0@\x8d\x01\xe8@\x02\xf2@\x10USE_SERIAL_PROXY\"N\n\x1eSerialProxyGetModemPinsRequest\x12\x10\n\x08instance\x18\x01 \x01(\r:\x1a\xe0@\x8e\x01\xe8@\x02\xf2@\x10USE_SERIAL_PROXY\"d\n\x1fSerialProxyGetModemPinsResponse\x12\x10\n\x08instance\x18\x01 \x01(\r\x12\x13\n\x0bline_states\x18\x02 \x01(\r:\x1a\xe0@\x8f\x01\xe8@\x01\xf2@\x10USE_SERIAL_PROXY\"i\n\x12SerialProxyRequest\x12\x10\n\x08instance\x18\x01 \x01(\r\x12%\n\x04type\x18\x02 \x01(\x0e\x32\x17.SerialProxyRequestType:\x1a\xe0@\x90\x01\xe8@\x02\xf2@\x10USE_SERIAL_PROXY\"\xac\x01\n\x1aSerialProxyRequestResponse\x12\x10\n\x08instance\x18\x01 \x01(\r\x12%\n\x04type\x18\x02 \x01(\x0e\x32\x17.SerialProxyRequestType\x12\"\n\x06status\x18\x03 \x01(\x0e\x32\x12.SerialProxyStatus\x12\x15\n\rerror_message\x18\x04 \x01(\t:\x1a\xe0@\x93\x01\xe8@\x01\xf2@\x10USE_SERIAL_PROXY\"\xa3\x01\n#BluetoothSetConnectionParamsRequest\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\x14\n\x0cmin_interval\x18\x02 \x01(\r\x12\x14\n\x0cmax_interval\x18\x03 \x01(\r\x12\x0f\n\x07latency\x18\x04 \x01(\r\x12\x0f\n\x07timeout\x18\x05 \x01(\r:\x1d\xe0@\x91\x01\xe8@\x02\xf2@\x13USE_BLUETOOTH_PROXY\"e\n$BluetoothSetConnectionParamsResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\x05:\x1d\xe0@\x92\x01\xe8@\x01\xf2@\x13USE_BLUETOOTH_PROXY*`\n\x10\x44isconnectReason\x12!\n\x1d\x44ISCONNECT_REASON_UNSPECIFIED\x10\x00\x12)\n%DISCONNECT_REASON_PROVISIONING_CLOSED\x10\x01*y\n\x13SerialProxyPortType\x12\x1e\n\x1aSERIAL_PROXY_PORT_TYPE_TTL\x10\x00\x12 \n\x1cSERIAL_PROXY_PORT_TYPE_RS232\x10\x01\x12 \n\x1cSERIAL_PROXY_PORT_TYPE_RS485\x10\x02*f\n\x0e\x45ntityCategory\x12\x18\n\x14\x45NTITY_CATEGORY_NONE\x10\x00\x12\x1a\n\x16\x45NTITY_CATEGORY_CONFIG\x10\x01\x12\x1e\n\x1a\x45NTITY_CATEGORY_DIAGNOSTIC\x10\x02*R\n\x10LegacyCoverState\x12\x1b\n\x17LEGACY_COVER_STATE_OPEN\x10\x00\x12\x1d\n\x19LEGACY_COVER_STATE_CLOSED\x10\x01\x1a\x02\x18\x01*j\n\x0e\x43overOperation\x12\x18\n\x14\x43OVER_OPERATION_IDLE\x10\x00\x12\x1e\n\x1a\x43OVER_OPERATION_IS_OPENING\x10\x01\x12\x1e\n\x1a\x43OVER_OPERATION_IS_CLOSING\x10\x02*v\n\x12LegacyCoverCommand\x12\x1d\n\x19LEGACY_COVER_COMMAND_OPEN\x10\x00\x12\x1e\n\x1aLEGACY_COVER_COMMAND_CLOSE\x10\x01\x12\x1d\n\x19LEGACY_COVER_COMMAND_STOP\x10\x02\x1a\x02\x18\x01*K\n\x08\x46\x61nSpeed\x12\x11\n\rFAN_SPEED_LOW\x10\x00\x12\x14\n\x10\x46\x41N_SPEED_MEDIUM\x10\x01\x12\x12\n\x0e\x46\x41N_SPEED_HIGH\x10\x02\x1a\x02\x18\x01*D\n\x0c\x46\x61nDirection\x12\x19\n\x15\x46\x41N_DIRECTION_FORWARD\x10\x00\x12\x19\n\x15\x46\x41N_DIRECTION_REVERSE\x10\x01*\xc7\x02\n\tColorMode\x12\x16\n\x12\x43OLOR_MODE_UNKNOWN\x10\x00\x12\x15\n\x11\x43OLOR_MODE_ON_OFF\x10\x01\x12 \n\x1c\x43OLOR_MODE_LEGACY_BRIGHTNESS\x10\x02\x12\x19\n\x15\x43OLOR_MODE_BRIGHTNESS\x10\x03\x12\x14\n\x10\x43OLOR_MODE_WHITE\x10\x07\x12 \n\x1c\x43OLOR_MODE_COLOR_TEMPERATURE\x10\x0b\x12\x1e\n\x1a\x43OLOR_MODE_COLD_WARM_WHITE\x10\x13\x12\x12\n\x0e\x43OLOR_MODE_RGB\x10#\x12\x18\n\x14\x43OLOR_MODE_RGB_WHITE\x10\'\x12$\n COLOR_MODE_RGB_COLOR_TEMPERATURE\x10/\x12\"\n\x1e\x43OLOR_MODE_RGB_COLD_WARM_WHITE\x10\x33*\xa1\x01\n\x10SensorStateClass\x12\x14\n\x10STATE_CLASS_NONE\x10\x00\x12\x1b\n\x17STATE_CLASS_MEASUREMENT\x10\x01\x12 \n\x1cSTATE_CLASS_TOTAL_INCREASING\x10\x02\x12\x15\n\x11STATE_CLASS_TOTAL\x10\x03\x12!\n\x1dSTATE_CLASS_MEASUREMENT_ANGLE\x10\x04*Y\n\x13SensorLastResetType\x12\x13\n\x0fLAST_RESET_NONE\x10\x00\x12\x14\n\x10LAST_RESET_NEVER\x10\x01\x12\x13\n\x0fLAST_RESET_AUTO\x10\x02\x1a\x02\x18\x01*\xb9\x01\n\x08LogLevel\x12\x12\n\x0eLOG_LEVEL_NONE\x10\x00\x12\x13\n\x0fLOG_LEVEL_ERROR\x10\x01\x12\x12\n\x0eLOG_LEVEL_WARN\x10\x02\x12\x12\n\x0eLOG_LEVEL_INFO\x10\x03\x12\x14\n\x10LOG_LEVEL_CONFIG\x10\x04\x12\x13\n\x0fLOG_LEVEL_DEBUG\x10\x05\x12\x15\n\x11LOG_LEVEL_VERBOSE\x10\x06\x12\x1a\n\x16LOG_LEVEL_VERY_VERBOSE\x10\x07*\x88\x01\n\x0b\x44STRuleType\x12\x16\n\x12\x44ST_RULE_TYPE_NONE\x10\x00\x12 \n\x1c\x44ST_RULE_TYPE_MONTH_WEEK_DAY\x10\x01\x12 \n\x1c\x44ST_RULE_TYPE_JULIAN_NO_LEAP\x10\x02\x12\x1d\n\x19\x44ST_RULE_TYPE_DAY_OF_YEAR\x10\x03*\x84\x02\n\x0eServiceArgType\x12\x19\n\x15SERVICE_ARG_TYPE_BOOL\x10\x00\x12\x18\n\x14SERVICE_ARG_TYPE_INT\x10\x01\x12\x1a\n\x16SERVICE_ARG_TYPE_FLOAT\x10\x02\x12\x1b\n\x17SERVICE_ARG_TYPE_STRING\x10\x03\x12\x1f\n\x1bSERVICE_ARG_TYPE_BOOL_ARRAY\x10\x04\x12\x1e\n\x1aSERVICE_ARG_TYPE_INT_ARRAY\x10\x05\x12 \n\x1cSERVICE_ARG_TYPE_FLOAT_ARRAY\x10\x06\x12!\n\x1dSERVICE_ARG_TYPE_STRING_ARRAY\x10\x07*\x8c\x01\n\x14SupportsResponseType\x12\x1a\n\x16SUPPORTS_RESPONSE_NONE\x10\x00\x12\x1e\n\x1aSUPPORTS_RESPONSE_OPTIONAL\x10\x01\x12\x1a\n\x16SUPPORTS_RESPONSE_ONLY\x10\x02\x12\x1c\n\x18SUPPORTS_RESPONSE_STATUS\x10\x64*m\n\x0fTemperatureUnit\x12\x1c\n\x18TEMPERATURE_UNIT_CELSIUS\x10\x00\x12\x1f\n\x1bTEMPERATURE_UNIT_FAHRENHEIT\x10\x01\x12\x1b\n\x17TEMPERATURE_UNIT_KELVIN\x10\x02*\xb5\x01\n\x0b\x43limateMode\x12\x14\n\x10\x43LIMATE_MODE_OFF\x10\x00\x12\x1a\n\x16\x43LIMATE_MODE_HEAT_COOL\x10\x01\x12\x15\n\x11\x43LIMATE_MODE_COOL\x10\x02\x12\x15\n\x11\x43LIMATE_MODE_HEAT\x10\x03\x12\x19\n\x15\x43LIMATE_MODE_FAN_ONLY\x10\x04\x12\x14\n\x10\x43LIMATE_MODE_DRY\x10\x05\x12\x15\n\x11\x43LIMATE_MODE_AUTO\x10\x06*\xf1\x01\n\x0e\x43limateFanMode\x12\x12\n\x0e\x43LIMATE_FAN_ON\x10\x00\x12\x13\n\x0f\x43LIMATE_FAN_OFF\x10\x01\x12\x14\n\x10\x43LIMATE_FAN_AUTO\x10\x02\x12\x13\n\x0f\x43LIMATE_FAN_LOW\x10\x03\x12\x16\n\x12\x43LIMATE_FAN_MEDIUM\x10\x04\x12\x14\n\x10\x43LIMATE_FAN_HIGH\x10\x05\x12\x16\n\x12\x43LIMATE_FAN_MIDDLE\x10\x06\x12\x15\n\x11\x43LIMATE_FAN_FOCUS\x10\x07\x12\x17\n\x13\x43LIMATE_FAN_DIFFUSE\x10\x08\x12\x15\n\x11\x43LIMATE_FAN_QUIET\x10\t*{\n\x10\x43limateSwingMode\x12\x15\n\x11\x43LIMATE_SWING_OFF\x10\x00\x12\x16\n\x12\x43LIMATE_SWING_BOTH\x10\x01\x12\x1a\n\x16\x43LIMATE_SWING_VERTICAL\x10\x02\x12\x1c\n\x18\x43LIMATE_SWING_HORIZONTAL\x10\x03*\xca\x01\n\rClimateAction\x12\x16\n\x12\x43LIMATE_ACTION_OFF\x10\x00\x12\x1a\n\x16\x43LIMATE_ACTION_COOLING\x10\x02\x12\x1a\n\x16\x43LIMATE_ACTION_HEATING\x10\x03\x12\x17\n\x13\x43LIMATE_ACTION_IDLE\x10\x04\x12\x19\n\x15\x43LIMATE_ACTION_DRYING\x10\x05\x12\x16\n\x12\x43LIMATE_ACTION_FAN\x10\x06\x12\x1d\n\x19\x43LIMATE_ACTION_DEFROSTING\x10\x07*\xdf\x01\n\rClimatePreset\x12\x17\n\x13\x43LIMATE_PRESET_NONE\x10\x00\x12\x17\n\x13\x43LIMATE_PRESET_HOME\x10\x01\x12\x17\n\x13\x43LIMATE_PRESET_AWAY\x10\x02\x12\x18\n\x14\x43LIMATE_PRESET_BOOST\x10\x03\x12\x1a\n\x16\x43LIMATE_PRESET_COMFORT\x10\x04\x12\x16\n\x12\x43LIMATE_PRESET_ECO\x10\x05\x12\x18\n\x14\x43LIMATE_PRESET_SLEEP\x10\x06\x12\x1b\n\x17\x43LIMATE_PRESET_ACTIVITY\x10\x07*\xe9\x01\n\x0fWaterHeaterMode\x12\x19\n\x15WATER_HEATER_MODE_OFF\x10\x00\x12\x19\n\x15WATER_HEATER_MODE_ECO\x10\x01\x12\x1e\n\x1aWATER_HEATER_MODE_ELECTRIC\x10\x02\x12!\n\x1dWATER_HEATER_MODE_PERFORMANCE\x10\x03\x12!\n\x1dWATER_HEATER_MODE_HIGH_DEMAND\x10\x04\x12\x1f\n\x1bWATER_HEATER_MODE_HEAT_PUMP\x10\x05\x12\x19\n\x15WATER_HEATER_MODE_GAS\x10\x06*\xf6\x02\n\x1aWaterHeaterCommandHasField\x12!\n\x1dWATER_HEATER_COMMAND_HAS_NONE\x10\x00\x12!\n\x1dWATER_HEATER_COMMAND_HAS_MODE\x10\x01\x12/\n+WATER_HEATER_COMMAND_HAS_TARGET_TEMPERATURE\x10\x02\x12&\n\x1eWATER_HEATER_COMMAND_HAS_STATE\x10\x04\x1a\x02\x08\x01\x12\x33\n/WATER_HEATER_COMMAND_HAS_TARGET_TEMPERATURE_LOW\x10\x08\x12\x34\n0WATER_HEATER_COMMAND_HAS_TARGET_TEMPERATURE_HIGH\x10\x10\x12%\n!WATER_HEATER_COMMAND_HAS_ON_STATE\x10 \x12\'\n#WATER_HEATER_COMMAND_HAS_AWAY_STATE\x10@*O\n\nNumberMode\x12\x14\n\x10NUMBER_MODE_AUTO\x10\x00\x12\x13\n\x0fNUMBER_MODE_BOX\x10\x01\x12\x16\n\x12NUMBER_MODE_SLIDER\x10\x02*\xc6\x01\n\tLockState\x12\x13\n\x0fLOCK_STATE_NONE\x10\x00\x12\x15\n\x11LOCK_STATE_LOCKED\x10\x01\x12\x17\n\x13LOCK_STATE_UNLOCKED\x10\x02\x12\x15\n\x11LOCK_STATE_JAMMED\x10\x03\x12\x16\n\x12LOCK_STATE_LOCKING\x10\x04\x12\x18\n\x14LOCK_STATE_UNLOCKING\x10\x05\x12\x16\n\x12LOCK_STATE_OPENING\x10\x06\x12\x13\n\x0fLOCK_STATE_OPEN\x10\x07*<\n\x0bLockCommand\x12\x0f\n\x0bLOCK_UNLOCK\x10\x00\x12\r\n\tLOCK_LOCK\x10\x01\x12\r\n\tLOCK_OPEN\x10\x02*\xe5\x01\n\x10MediaPlayerState\x12\x1b\n\x17MEDIA_PLAYER_STATE_NONE\x10\x00\x12\x1b\n\x17MEDIA_PLAYER_STATE_IDLE\x10\x01\x12\x1e\n\x1aMEDIA_PLAYER_STATE_PLAYING\x10\x02\x12\x1d\n\x19MEDIA_PLAYER_STATE_PAUSED\x10\x03\x12!\n\x1dMEDIA_PLAYER_STATE_ANNOUNCING\x10\x04\x12\x1a\n\x16MEDIA_PLAYER_STATE_OFF\x10\x05\x12\x19\n\x15MEDIA_PLAYER_STATE_ON\x10\x06*\xf7\x03\n\x12MediaPlayerCommand\x12\x1d\n\x19MEDIA_PLAYER_COMMAND_PLAY\x10\x00\x12\x1e\n\x1aMEDIA_PLAYER_COMMAND_PAUSE\x10\x01\x12\x1d\n\x19MEDIA_PLAYER_COMMAND_STOP\x10\x02\x12\x1d\n\x19MEDIA_PLAYER_COMMAND_MUTE\x10\x03\x12\x1f\n\x1bMEDIA_PLAYER_COMMAND_UNMUTE\x10\x04\x12\x1f\n\x1bMEDIA_PLAYER_COMMAND_TOGGLE\x10\x05\x12\"\n\x1eMEDIA_PLAYER_COMMAND_VOLUME_UP\x10\x06\x12$\n MEDIA_PLAYER_COMMAND_VOLUME_DOWN\x10\x07\x12 \n\x1cMEDIA_PLAYER_COMMAND_ENQUEUE\x10\x08\x12#\n\x1fMEDIA_PLAYER_COMMAND_REPEAT_ONE\x10\t\x12#\n\x1fMEDIA_PLAYER_COMMAND_REPEAT_OFF\x10\n\x12\'\n#MEDIA_PLAYER_COMMAND_CLEAR_PLAYLIST\x10\x0b\x12 \n\x1cMEDIA_PLAYER_COMMAND_TURN_ON\x10\x0c\x12!\n\x1dMEDIA_PLAYER_COMMAND_TURN_OFF\x10\r*q\n\x18MediaPlayerFormatPurpose\x12\'\n#MEDIA_PLAYER_FORMAT_PURPOSE_DEFAULT\x10\x00\x12,\n(MEDIA_PLAYER_FORMAT_PURPOSE_ANNOUNCEMENT\x10\x01*\xef\x02\n\x1a\x42luetoothDeviceRequestType\x12-\n%BLUETOOTH_DEVICE_REQUEST_TYPE_CONNECT\x10\x00\x1a\x02\x08\x01\x12,\n(BLUETOOTH_DEVICE_REQUEST_TYPE_DISCONNECT\x10\x01\x12&\n\"BLUETOOTH_DEVICE_REQUEST_TYPE_PAIR\x10\x02\x12(\n$BLUETOOTH_DEVICE_REQUEST_TYPE_UNPAIR\x10\x03\x12\x37\n3BLUETOOTH_DEVICE_REQUEST_TYPE_CONNECT_V3_WITH_CACHE\x10\x04\x12:\n6BLUETOOTH_DEVICE_REQUEST_TYPE_CONNECT_V3_WITHOUT_CACHE\x10\x05\x12-\n)BLUETOOTH_DEVICE_REQUEST_TYPE_CLEAR_CACHE\x10\x06*\xf3\x01\n\x15\x42luetoothScannerState\x12 \n\x1c\x42LUETOOTH_SCANNER_STATE_IDLE\x10\x00\x12$\n BLUETOOTH_SCANNER_STATE_STARTING\x10\x01\x12#\n\x1f\x42LUETOOTH_SCANNER_STATE_RUNNING\x10\x02\x12\"\n\x1e\x42LUETOOTH_SCANNER_STATE_FAILED\x10\x03\x12$\n BLUETOOTH_SCANNER_STATE_STOPPING\x10\x04\x12#\n\x1f\x42LUETOOTH_SCANNER_STATE_STOPPED\x10\x05*]\n\x14\x42luetoothScannerMode\x12\"\n\x1e\x42LUETOOTH_SCANNER_MODE_PASSIVE\x10\x00\x12!\n\x1d\x42LUETOOTH_SCANNER_MODE_ACTIVE\x10\x01*j\n\x1bVoiceAssistantSubscribeFlag\x12\"\n\x1eVOICE_ASSISTANT_SUBSCRIBE_NONE\x10\x00\x12\'\n#VOICE_ASSISTANT_SUBSCRIBE_API_AUDIO\x10\x01*\x8d\x01\n\x19VoiceAssistantRequestFlag\x12 \n\x1cVOICE_ASSISTANT_REQUEST_NONE\x10\x00\x12#\n\x1fVOICE_ASSISTANT_REQUEST_USE_VAD\x10\x01\x12)\n%VOICE_ASSISTANT_REQUEST_USE_WAKE_WORD\x10\x02*\xa1\x04\n\x13VoiceAssistantEvent\x12\x19\n\x15VOICE_ASSISTANT_ERROR\x10\x00\x12\x1d\n\x19VOICE_ASSISTANT_RUN_START\x10\x01\x12\x1b\n\x17VOICE_ASSISTANT_RUN_END\x10\x02\x12\x1d\n\x19VOICE_ASSISTANT_STT_START\x10\x03\x12\x1b\n\x17VOICE_ASSISTANT_STT_END\x10\x04\x12 \n\x1cVOICE_ASSISTANT_INTENT_START\x10\x05\x12\x1e\n\x1aVOICE_ASSISTANT_INTENT_END\x10\x06\x12\x1d\n\x19VOICE_ASSISTANT_TTS_START\x10\x07\x12\x1b\n\x17VOICE_ASSISTANT_TTS_END\x10\x08\x12#\n\x1fVOICE_ASSISTANT_WAKE_WORD_START\x10\t\x12!\n\x1dVOICE_ASSISTANT_WAKE_WORD_END\x10\n\x12!\n\x1dVOICE_ASSISTANT_STT_VAD_START\x10\x0b\x12\x1f\n\x1bVOICE_ASSISTANT_STT_VAD_END\x10\x0c\x12$\n VOICE_ASSISTANT_TTS_STREAM_START\x10\x62\x12\"\n\x1eVOICE_ASSISTANT_TTS_STREAM_END\x10\x63\x12#\n\x1fVOICE_ASSISTANT_INTENT_PROGRESS\x10\x64*\xa9\x01\n\x18VoiceAssistantTimerEvent\x12!\n\x1dVOICE_ASSISTANT_TIMER_STARTED\x10\x00\x12!\n\x1dVOICE_ASSISTANT_TIMER_UPDATED\x10\x01\x12#\n\x1fVOICE_ASSISTANT_TIMER_CANCELLED\x10\x02\x12\"\n\x1eVOICE_ASSISTANT_TIMER_FINISHED\x10\x03*\xb3\x02\n\x16\x41larmControlPanelState\x12\x18\n\x14\x41LARM_STATE_DISARMED\x10\x00\x12\x1a\n\x16\x41LARM_STATE_ARMED_HOME\x10\x01\x12\x1a\n\x16\x41LARM_STATE_ARMED_AWAY\x10\x02\x12\x1b\n\x17\x41LARM_STATE_ARMED_NIGHT\x10\x03\x12\x1e\n\x1a\x41LARM_STATE_ARMED_VACATION\x10\x04\x12#\n\x1f\x41LARM_STATE_ARMED_CUSTOM_BYPASS\x10\x05\x12\x17\n\x13\x41LARM_STATE_PENDING\x10\x06\x12\x16\n\x12\x41LARM_STATE_ARMING\x10\x07\x12\x19\n\x15\x41LARM_STATE_DISARMING\x10\x08\x12\x19\n\x15\x41LARM_STATE_TRIGGERED\x10\t*\x98\x02\n\x1d\x41larmControlPanelStateCommand\x12\x1e\n\x1a\x41LARM_CONTROL_PANEL_DISARM\x10\x00\x12 \n\x1c\x41LARM_CONTROL_PANEL_ARM_AWAY\x10\x01\x12 \n\x1c\x41LARM_CONTROL_PANEL_ARM_HOME\x10\x02\x12!\n\x1d\x41LARM_CONTROL_PANEL_ARM_NIGHT\x10\x03\x12$\n ALARM_CONTROL_PANEL_ARM_VACATION\x10\x04\x12)\n%ALARM_CONTROL_PANEL_ARM_CUSTOM_BYPASS\x10\x05\x12\x1f\n\x1b\x41LARM_CONTROL_PANEL_TRIGGER\x10\x06*6\n\x08TextMode\x12\x12\n\x0eTEXT_MODE_TEXT\x10\x00\x12\x16\n\x12TEXT_MODE_PASSWORD\x10\x01*j\n\x0eValveOperation\x12\x18\n\x14VALVE_OPERATION_IDLE\x10\x00\x12\x1e\n\x1aVALVE_OPERATION_IS_OPENING\x10\x01\x12\x1e\n\x1aVALVE_OPERATION_IS_CLOSING\x10\x02*]\n\rUpdateCommand\x12\x17\n\x13UPDATE_COMMAND_NONE\x10\x00\x12\x19\n\x15UPDATE_COMMAND_UPDATE\x10\x01\x12\x18\n\x14UPDATE_COMMAND_CHECK\x10\x02*\x96\x01\n\x15ZWaveProxyRequestType\x12&\n\"ZWAVE_PROXY_REQUEST_TYPE_SUBSCRIBE\x10\x00\x12(\n$ZWAVE_PROXY_REQUEST_TYPE_UNSUBSCRIBE\x10\x01\x12+\n\'ZWAVE_PROXY_REQUEST_TYPE_HOME_ID_CHANGE\x10\x02*l\n\x11SerialProxyParity\x12\x1c\n\x18SERIAL_PROXY_PARITY_NONE\x10\x00\x12\x1c\n\x18SERIAL_PROXY_PARITY_EVEN\x10\x01\x12\x1b\n\x17SERIAL_PROXY_PARITY_ODD\x10\x02*\x91\x01\n\x16SerialProxyRequestType\x12\'\n#SERIAL_PROXY_REQUEST_TYPE_SUBSCRIBE\x10\x00\x12)\n%SERIAL_PROXY_REQUEST_TYPE_UNSUBSCRIBE\x10\x01\x12#\n\x1fSERIAL_PROXY_REQUEST_TYPE_FLUSH\x10\x02*\xbf\x01\n\x11SerialProxyStatus\x12\x1a\n\x16SERIAL_PROXY_STATUS_OK\x10\x00\x12\'\n#SERIAL_PROXY_STATUS_ASSUMED_SUCCESS\x10\x01\x12\x1d\n\x19SERIAL_PROXY_STATUS_ERROR\x10\x02\x12\x1f\n\x1bSERIAL_PROXY_STATUS_TIMEOUT\x10\x03\x12%\n!SERIAL_PROXY_STATUS_NOT_SUPPORTED\x10\x04\x32\x86\x1b\n\rAPIConnection\x12.\n\x05hello\x12\r.HelloRequest\x1a\x0e.HelloResponse\"\x06\xf0@\x00\xf8@\x00\x12=\n\ndisconnect\x12\x12.DisconnectRequest\x1a\x13.DisconnectResponse\"\x06\xf0@\x00\xf8@\x00\x12+\n\x04ping\x12\x0c.PingRequest\x1a\r.PingResponse\"\x06\xf0@\x00\xf8@\x00\x12;\n\x0b\x64\x65vice_info\x12\x12.DeviceInfoRequest\x1a\x13.DeviceInfoResponse\"\x03\xf8@\x00\x12.\n\rlist_entities\x12\x14.ListEntitiesRequest\x1a\x05.void\"\x00\x12\x34\n\x10subscribe_states\x12\x17.SubscribeStatesRequest\x1a\x05.void\"\x00\x12\x30\n\x0esubscribe_logs\x12\x15.SubscribeLogsRequest\x1a\x05.void\"\x00\x12S\n subscribe_homeassistant_services\x12&.SubscribeHomeassistantServicesRequest\x1a\x05.void\"\x00\x12P\n\x1fsubscribe_home_assistant_states\x12$.SubscribeHomeAssistantStatesRequest\x1a\x05.void\"\x00\x12\x32\n\x0f\x65xecute_service\x12\x16.ExecuteServiceRequest\x1a\x05.void\"\x00\x12[\n\x18noise_encryption_set_key\x12\x1d.NoiseEncryptionSetKeyRequest\x1a\x1e.NoiseEncryptionSetKeyResponse\"\x00\x12\x30\n\x0e\x62utton_command\x12\x15.ButtonCommandRequest\x1a\x05.void\"\x00\x12,\n\x0c\x63\x61mera_image\x12\x13.CameraImageRequest\x1a\x05.void\"\x00\x12\x32\n\x0f\x63limate_command\x12\x16.ClimateCommandRequest\x1a\x05.void\"\x00\x12.\n\rcover_command\x12\x14.CoverCommandRequest\x1a\x05.void\"\x00\x12,\n\x0c\x64\x61te_command\x12\x13.DateCommandRequest\x1a\x05.void\"\x00\x12\x34\n\x10\x64\x61tetime_command\x12\x17.DateTimeCommandRequest\x1a\x05.void\"\x00\x12*\n\x0b\x66\x61n_command\x12\x12.FanCommandRequest\x1a\x05.void\"\x00\x12.\n\rlight_command\x12\x14.LightCommandRequest\x1a\x05.void\"\x00\x12,\n\x0clock_command\x12\x13.LockCommandRequest\x1a\x05.void\"\x00\x12;\n\x14media_player_command\x12\x1a.MediaPlayerCommandRequest\x1a\x05.void\"\x00\x12\x30\n\x0enumber_command\x12\x15.NumberCommandRequest\x1a\x05.void\"\x00\x12\x30\n\x0eselect_command\x12\x15.SelectCommandRequest\x1a\x05.void\"\x00\x12.\n\rsiren_command\x12\x14.SirenCommandRequest\x1a\x05.void\"\x00\x12\x30\n\x0eswitch_command\x12\x15.SwitchCommandRequest\x1a\x05.void\"\x00\x12,\n\x0ctext_command\x12\x13.TextCommandRequest\x1a\x05.void\"\x00\x12,\n\x0ctime_command\x12\x13.TimeCommandRequest\x1a\x05.void\"\x00\x12\x30\n\x0eupdate_command\x12\x15.UpdateCommandRequest\x1a\x05.void\"\x00\x12.\n\rvalve_command\x12\x14.ValveCommandRequest\x1a\x05.void\"\x00\x12;\n\x14water_heater_command\x12\x1a.WaterHeaterCommandRequest\x1a\x05.void\"\x00\x12\\\n%subscribe_bluetooth_le_advertisements\x12*.SubscribeBluetoothLEAdvertisementsRequest\x1a\x05.void\"\x00\x12<\n\x18\x62luetooth_device_request\x12\x17.BluetoothDeviceRequest\x1a\x05.void\"\x00\x12H\n\x1b\x62luetooth_gatt_get_services\x12 .BluetoothGATTGetServicesRequest\x1a\x05.void\"\x00\x12\x39\n\x13\x62luetooth_gatt_read\x12\x19.BluetoothGATTReadRequest\x1a\x05.void\"\x00\x12;\n\x14\x62luetooth_gatt_write\x12\x1a.BluetoothGATTWriteRequest\x1a\x05.void\"\x00\x12N\n\x1e\x62luetooth_gatt_read_descriptor\x12#.BluetoothGATTReadDescriptorRequest\x1a\x05.void\"\x00\x12P\n\x1f\x62luetooth_gatt_write_descriptor\x12$.BluetoothGATTWriteDescriptorRequest\x1a\x05.void\"\x00\x12=\n\x15\x62luetooth_gatt_notify\x12\x1b.BluetoothGATTNotifyRequest\x1a\x05.void\"\x00\x12v\n$subscribe_bluetooth_connections_free\x12).SubscribeBluetoothConnectionsFreeRequest\x1a!.BluetoothConnectionsFreeResponse\"\x00\x12`\n\'unsubscribe_bluetooth_le_advertisements\x12,.UnsubscribeBluetoothLEAdvertisementsRequest\x1a\x05.void\"\x00\x12\x46\n\x1a\x62luetooth_scanner_set_mode\x12\x1f.BluetoothScannerSetModeRequest\x1a\x05.void\"\x00\x12p\n\x1f\x62luetooth_set_connection_params\x12$.BluetoothSetConnectionParamsRequest\x1a%.BluetoothSetConnectionParamsResponse\"\x00\x12\x45\n\x19subscribe_voice_assistant\x12\x1f.SubscribeVoiceAssistantRequest\x1a\x05.void\"\x00\x12p\n!voice_assistant_get_configuration\x12#.VoiceAssistantConfigurationRequest\x1a$.VoiceAssistantConfigurationResponse\"\x00\x12M\n!voice_assistant_set_configuration\x12\x1f.VoiceAssistantSetConfiguration\x1a\x05.void\"\x00\x12H\n\x1b\x61larm_control_panel_command\x12 .AlarmControlPanelCommandRequest\x1a\x05.void\"\x00\x12.\n\x11zwave_proxy_frame\x12\x10.ZWaveProxyFrame\x1a\x05.void\"\x00\x12\x32\n\x13zwave_proxy_request\x12\x12.ZWaveProxyRequest\x1a\x05.void\"\x00\x12Q\n infrared_rf_transmit_raw_timings\x12$.InfraredRFTransmitRawTimingsRequest\x1a\x05.void\"\x00\x12?\n\x16serial_proxy_configure\x12\x1c.SerialProxyConfigureRequest\x1a\x05.void\"\x00\x12\x37\n\x12serial_proxy_write\x12\x18.SerialProxyWriteRequest\x1a\x05.void\"\x00\x12G\n\x1bserial_proxy_set_modem_pins\x12\x1f.SerialProxySetModemPinsRequest\x1a\x05.void\"\x00\x12G\n\x1bserial_proxy_get_modem_pins\x12\x1f.SerialProxyGetModemPinsRequest\x1a\x05.void\"\x00\x12\x34\n\x14serial_proxy_request\x12\x13.SerialProxyRequest\x1a\x05.void\"\x00\x42\x0f\xea\x02\x0c\x45SPHome::Apib\x06proto3"
|
|
11
|
+
|
|
12
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
13
|
+
pool.add_serialized_file(descriptor_data)
|
|
14
|
+
|
|
15
|
+
module ESPHome
|
|
16
|
+
module Api
|
|
17
|
+
HelloRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HelloRequest").msgclass
|
|
18
|
+
HelloResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HelloResponse").msgclass
|
|
19
|
+
AuthenticationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AuthenticationRequest").msgclass
|
|
20
|
+
AuthenticationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AuthenticationResponse").msgclass
|
|
21
|
+
DisconnectRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DisconnectRequest").msgclass
|
|
22
|
+
DisconnectResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DisconnectResponse").msgclass
|
|
23
|
+
PingRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("PingRequest").msgclass
|
|
24
|
+
PingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("PingResponse").msgclass
|
|
25
|
+
DeviceInfoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DeviceInfoRequest").msgclass
|
|
26
|
+
AreaInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AreaInfo").msgclass
|
|
27
|
+
DeviceInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DeviceInfo").msgclass
|
|
28
|
+
SerialProxyInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyInfo").msgclass
|
|
29
|
+
DeviceInfoResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DeviceInfoResponse").msgclass
|
|
30
|
+
ListEntitiesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesRequest").msgclass
|
|
31
|
+
ListEntitiesDoneResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesDoneResponse").msgclass
|
|
32
|
+
SubscribeStatesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeStatesRequest").msgclass
|
|
33
|
+
ListEntitiesBinarySensorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesBinarySensorResponse").msgclass
|
|
34
|
+
BinarySensorStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BinarySensorStateResponse").msgclass
|
|
35
|
+
ListEntitiesCoverResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesCoverResponse").msgclass
|
|
36
|
+
CoverStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("CoverStateResponse").msgclass
|
|
37
|
+
CoverCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("CoverCommandRequest").msgclass
|
|
38
|
+
ListEntitiesFanResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesFanResponse").msgclass
|
|
39
|
+
FanStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("FanStateResponse").msgclass
|
|
40
|
+
FanCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("FanCommandRequest").msgclass
|
|
41
|
+
ListEntitiesLightResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesLightResponse").msgclass
|
|
42
|
+
LightStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LightStateResponse").msgclass
|
|
43
|
+
LightCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LightCommandRequest").msgclass
|
|
44
|
+
ListEntitiesSensorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesSensorResponse").msgclass
|
|
45
|
+
SensorStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SensorStateResponse").msgclass
|
|
46
|
+
ListEntitiesSwitchResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesSwitchResponse").msgclass
|
|
47
|
+
SwitchStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SwitchStateResponse").msgclass
|
|
48
|
+
SwitchCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SwitchCommandRequest").msgclass
|
|
49
|
+
ListEntitiesTextSensorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesTextSensorResponse").msgclass
|
|
50
|
+
TextSensorStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TextSensorStateResponse").msgclass
|
|
51
|
+
SubscribeLogsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeLogsRequest").msgclass
|
|
52
|
+
SubscribeLogsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeLogsResponse").msgclass
|
|
53
|
+
NoiseEncryptionSetKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("NoiseEncryptionSetKeyRequest").msgclass
|
|
54
|
+
NoiseEncryptionSetKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("NoiseEncryptionSetKeyResponse").msgclass
|
|
55
|
+
SubscribeHomeassistantServicesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeHomeassistantServicesRequest").msgclass
|
|
56
|
+
HomeassistantServiceMap = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HomeassistantServiceMap").msgclass
|
|
57
|
+
HomeassistantActionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HomeassistantActionRequest").msgclass
|
|
58
|
+
HomeassistantActionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HomeassistantActionResponse").msgclass
|
|
59
|
+
SubscribeHomeAssistantStatesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeHomeAssistantStatesRequest").msgclass
|
|
60
|
+
SubscribeHomeAssistantStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeHomeAssistantStateResponse").msgclass
|
|
61
|
+
HomeAssistantStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("HomeAssistantStateResponse").msgclass
|
|
62
|
+
GetTimeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("GetTimeRequest").msgclass
|
|
63
|
+
DSTRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DSTRule").msgclass
|
|
64
|
+
ParsedTimezone = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ParsedTimezone").msgclass
|
|
65
|
+
GetTimeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("GetTimeResponse").msgclass
|
|
66
|
+
ListEntitiesServicesArgument = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesServicesArgument").msgclass
|
|
67
|
+
ListEntitiesServicesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesServicesResponse").msgclass
|
|
68
|
+
ExecuteServiceArgument = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ExecuteServiceArgument").msgclass
|
|
69
|
+
ExecuteServiceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ExecuteServiceRequest").msgclass
|
|
70
|
+
ExecuteServiceResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ExecuteServiceResponse").msgclass
|
|
71
|
+
ListEntitiesCameraResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesCameraResponse").msgclass
|
|
72
|
+
CameraImageResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("CameraImageResponse").msgclass
|
|
73
|
+
CameraImageRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("CameraImageRequest").msgclass
|
|
74
|
+
ListEntitiesClimateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesClimateResponse").msgclass
|
|
75
|
+
ClimateStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateStateResponse").msgclass
|
|
76
|
+
ClimateCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateCommandRequest").msgclass
|
|
77
|
+
ListEntitiesWaterHeaterResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesWaterHeaterResponse").msgclass
|
|
78
|
+
WaterHeaterStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("WaterHeaterStateResponse").msgclass
|
|
79
|
+
WaterHeaterCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("WaterHeaterCommandRequest").msgclass
|
|
80
|
+
ListEntitiesNumberResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesNumberResponse").msgclass
|
|
81
|
+
NumberStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("NumberStateResponse").msgclass
|
|
82
|
+
NumberCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("NumberCommandRequest").msgclass
|
|
83
|
+
ListEntitiesSelectResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesSelectResponse").msgclass
|
|
84
|
+
SelectStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SelectStateResponse").msgclass
|
|
85
|
+
SelectCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SelectCommandRequest").msgclass
|
|
86
|
+
ListEntitiesSirenResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesSirenResponse").msgclass
|
|
87
|
+
SirenStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SirenStateResponse").msgclass
|
|
88
|
+
SirenCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SirenCommandRequest").msgclass
|
|
89
|
+
ListEntitiesLockResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesLockResponse").msgclass
|
|
90
|
+
LockStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LockStateResponse").msgclass
|
|
91
|
+
LockCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LockCommandRequest").msgclass
|
|
92
|
+
ListEntitiesButtonResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesButtonResponse").msgclass
|
|
93
|
+
ButtonCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ButtonCommandRequest").msgclass
|
|
94
|
+
MediaPlayerSupportedFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerSupportedFormat").msgclass
|
|
95
|
+
ListEntitiesMediaPlayerResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesMediaPlayerResponse").msgclass
|
|
96
|
+
MediaPlayerStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerStateResponse").msgclass
|
|
97
|
+
MediaPlayerCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerCommandRequest").msgclass
|
|
98
|
+
SubscribeBluetoothLEAdvertisementsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeBluetoothLEAdvertisementsRequest").msgclass
|
|
99
|
+
BluetoothServiceData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothServiceData").msgclass
|
|
100
|
+
BluetoothLEAdvertisementResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothLEAdvertisementResponse").msgclass
|
|
101
|
+
BluetoothLERawAdvertisement = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothLERawAdvertisement").msgclass
|
|
102
|
+
BluetoothLERawAdvertisementsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothLERawAdvertisementsResponse").msgclass
|
|
103
|
+
BluetoothDeviceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDeviceRequest").msgclass
|
|
104
|
+
BluetoothDeviceConnectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDeviceConnectionResponse").msgclass
|
|
105
|
+
BluetoothGATTGetServicesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTGetServicesRequest").msgclass
|
|
106
|
+
BluetoothGATTDescriptor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTDescriptor").msgclass
|
|
107
|
+
BluetoothGATTCharacteristic = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTCharacteristic").msgclass
|
|
108
|
+
BluetoothGATTService = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTService").msgclass
|
|
109
|
+
BluetoothGATTGetServicesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTGetServicesResponse").msgclass
|
|
110
|
+
BluetoothGATTGetServicesDoneResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTGetServicesDoneResponse").msgclass
|
|
111
|
+
BluetoothGATTReadRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTReadRequest").msgclass
|
|
112
|
+
BluetoothGATTReadResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTReadResponse").msgclass
|
|
113
|
+
BluetoothGATTWriteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTWriteRequest").msgclass
|
|
114
|
+
BluetoothGATTReadDescriptorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTReadDescriptorRequest").msgclass
|
|
115
|
+
BluetoothGATTWriteDescriptorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTWriteDescriptorRequest").msgclass
|
|
116
|
+
BluetoothGATTNotifyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTNotifyRequest").msgclass
|
|
117
|
+
BluetoothGATTNotifyDataResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTNotifyDataResponse").msgclass
|
|
118
|
+
SubscribeBluetoothConnectionsFreeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeBluetoothConnectionsFreeRequest").msgclass
|
|
119
|
+
BluetoothConnectionsFreeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothConnectionsFreeResponse").msgclass
|
|
120
|
+
BluetoothGATTErrorResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTErrorResponse").msgclass
|
|
121
|
+
BluetoothGATTWriteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTWriteResponse").msgclass
|
|
122
|
+
BluetoothGATTNotifyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothGATTNotifyResponse").msgclass
|
|
123
|
+
BluetoothDevicePairingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDevicePairingResponse").msgclass
|
|
124
|
+
BluetoothDeviceUnpairingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDeviceUnpairingResponse").msgclass
|
|
125
|
+
UnsubscribeBluetoothLEAdvertisementsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("UnsubscribeBluetoothLEAdvertisementsRequest").msgclass
|
|
126
|
+
BluetoothDeviceClearCacheResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDeviceClearCacheResponse").msgclass
|
|
127
|
+
BluetoothScannerStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothScannerStateResponse").msgclass
|
|
128
|
+
BluetoothScannerSetModeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothScannerSetModeRequest").msgclass
|
|
129
|
+
SubscribeVoiceAssistantRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SubscribeVoiceAssistantRequest").msgclass
|
|
130
|
+
VoiceAssistantAudioSettings = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantAudioSettings").msgclass
|
|
131
|
+
VoiceAssistantRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantRequest").msgclass
|
|
132
|
+
VoiceAssistantResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantResponse").msgclass
|
|
133
|
+
VoiceAssistantEventData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantEventData").msgclass
|
|
134
|
+
VoiceAssistantEventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantEventResponse").msgclass
|
|
135
|
+
VoiceAssistantAudio = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantAudio").msgclass
|
|
136
|
+
VoiceAssistantTimerEventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantTimerEventResponse").msgclass
|
|
137
|
+
VoiceAssistantAnnounceRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantAnnounceRequest").msgclass
|
|
138
|
+
VoiceAssistantAnnounceFinished = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantAnnounceFinished").msgclass
|
|
139
|
+
VoiceAssistantWakeWord = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantWakeWord").msgclass
|
|
140
|
+
VoiceAssistantExternalWakeWord = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantExternalWakeWord").msgclass
|
|
141
|
+
VoiceAssistantConfigurationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantConfigurationRequest").msgclass
|
|
142
|
+
VoiceAssistantConfigurationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantConfigurationResponse").msgclass
|
|
143
|
+
VoiceAssistantSetConfiguration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantSetConfiguration").msgclass
|
|
144
|
+
ListEntitiesAlarmControlPanelResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesAlarmControlPanelResponse").msgclass
|
|
145
|
+
AlarmControlPanelStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AlarmControlPanelStateResponse").msgclass
|
|
146
|
+
AlarmControlPanelCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AlarmControlPanelCommandRequest").msgclass
|
|
147
|
+
ListEntitiesTextResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesTextResponse").msgclass
|
|
148
|
+
TextStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TextStateResponse").msgclass
|
|
149
|
+
TextCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TextCommandRequest").msgclass
|
|
150
|
+
ListEntitiesDateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesDateResponse").msgclass
|
|
151
|
+
DateStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DateStateResponse").msgclass
|
|
152
|
+
DateCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DateCommandRequest").msgclass
|
|
153
|
+
ListEntitiesTimeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesTimeResponse").msgclass
|
|
154
|
+
TimeStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TimeStateResponse").msgclass
|
|
155
|
+
TimeCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TimeCommandRequest").msgclass
|
|
156
|
+
ListEntitiesEventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesEventResponse").msgclass
|
|
157
|
+
EventResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("EventResponse").msgclass
|
|
158
|
+
ListEntitiesValveResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesValveResponse").msgclass
|
|
159
|
+
ValveStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ValveStateResponse").msgclass
|
|
160
|
+
ValveCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ValveCommandRequest").msgclass
|
|
161
|
+
ListEntitiesDateTimeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesDateTimeResponse").msgclass
|
|
162
|
+
DateTimeStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DateTimeStateResponse").msgclass
|
|
163
|
+
DateTimeCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DateTimeCommandRequest").msgclass
|
|
164
|
+
ListEntitiesUpdateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesUpdateResponse").msgclass
|
|
165
|
+
UpdateStateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("UpdateStateResponse").msgclass
|
|
166
|
+
UpdateCommandRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("UpdateCommandRequest").msgclass
|
|
167
|
+
ZWaveProxyFrame = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ZWaveProxyFrame").msgclass
|
|
168
|
+
ZWaveProxyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ZWaveProxyRequest").msgclass
|
|
169
|
+
ListEntitiesInfraredResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesInfraredResponse").msgclass
|
|
170
|
+
InfraredRFTransmitRawTimingsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("InfraredRFTransmitRawTimingsRequest").msgclass
|
|
171
|
+
InfraredRFReceiveEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("InfraredRFReceiveEvent").msgclass
|
|
172
|
+
ListEntitiesRadioFrequencyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ListEntitiesRadioFrequencyResponse").msgclass
|
|
173
|
+
SerialProxyConfigureRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyConfigureRequest").msgclass
|
|
174
|
+
SerialProxyDataReceived = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyDataReceived").msgclass
|
|
175
|
+
SerialProxyWriteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyWriteRequest").msgclass
|
|
176
|
+
SerialProxySetModemPinsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxySetModemPinsRequest").msgclass
|
|
177
|
+
SerialProxyGetModemPinsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyGetModemPinsRequest").msgclass
|
|
178
|
+
SerialProxyGetModemPinsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyGetModemPinsResponse").msgclass
|
|
179
|
+
SerialProxyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyRequest").msgclass
|
|
180
|
+
SerialProxyRequestResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyRequestResponse").msgclass
|
|
181
|
+
BluetoothSetConnectionParamsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothSetConnectionParamsRequest").msgclass
|
|
182
|
+
BluetoothSetConnectionParamsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothSetConnectionParamsResponse").msgclass
|
|
183
|
+
DisconnectReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DisconnectReason").enummodule
|
|
184
|
+
SerialProxyPortType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyPortType").enummodule
|
|
185
|
+
EntityCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("EntityCategory").enummodule
|
|
186
|
+
LegacyCoverState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LegacyCoverState").enummodule
|
|
187
|
+
CoverOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("CoverOperation").enummodule
|
|
188
|
+
LegacyCoverCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LegacyCoverCommand").enummodule
|
|
189
|
+
FanSpeed = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("FanSpeed").enummodule
|
|
190
|
+
FanDirection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("FanDirection").enummodule
|
|
191
|
+
ColorMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ColorMode").enummodule
|
|
192
|
+
SensorStateClass = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SensorStateClass").enummodule
|
|
193
|
+
SensorLastResetType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SensorLastResetType").enummodule
|
|
194
|
+
LogLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LogLevel").enummodule
|
|
195
|
+
DSTRuleType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("DSTRuleType").enummodule
|
|
196
|
+
ServiceArgType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ServiceArgType").enummodule
|
|
197
|
+
SupportsResponseType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SupportsResponseType").enummodule
|
|
198
|
+
TemperatureUnit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TemperatureUnit").enummodule
|
|
199
|
+
ClimateMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateMode").enummodule
|
|
200
|
+
ClimateFanMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateFanMode").enummodule
|
|
201
|
+
ClimateSwingMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateSwingMode").enummodule
|
|
202
|
+
ClimateAction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimateAction").enummodule
|
|
203
|
+
ClimatePreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ClimatePreset").enummodule
|
|
204
|
+
WaterHeaterMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("WaterHeaterMode").enummodule
|
|
205
|
+
WaterHeaterCommandHasField = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("WaterHeaterCommandHasField").enummodule
|
|
206
|
+
NumberMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("NumberMode").enummodule
|
|
207
|
+
LockState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LockState").enummodule
|
|
208
|
+
LockCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("LockCommand").enummodule
|
|
209
|
+
MediaPlayerState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerState").enummodule
|
|
210
|
+
MediaPlayerCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerCommand").enummodule
|
|
211
|
+
MediaPlayerFormatPurpose = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("MediaPlayerFormatPurpose").enummodule
|
|
212
|
+
BluetoothDeviceRequestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothDeviceRequestType").enummodule
|
|
213
|
+
BluetoothScannerState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothScannerState").enummodule
|
|
214
|
+
BluetoothScannerMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("BluetoothScannerMode").enummodule
|
|
215
|
+
VoiceAssistantSubscribeFlag = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantSubscribeFlag").enummodule
|
|
216
|
+
VoiceAssistantRequestFlag = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantRequestFlag").enummodule
|
|
217
|
+
VoiceAssistantEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantEvent").enummodule
|
|
218
|
+
VoiceAssistantTimerEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("VoiceAssistantTimerEvent").enummodule
|
|
219
|
+
AlarmControlPanelState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AlarmControlPanelState").enummodule
|
|
220
|
+
AlarmControlPanelStateCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("AlarmControlPanelStateCommand").enummodule
|
|
221
|
+
TextMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("TextMode").enummodule
|
|
222
|
+
ValveOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ValveOperation").enummodule
|
|
223
|
+
UpdateCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("UpdateCommand").enummodule
|
|
224
|
+
ZWaveProxyRequestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("ZWaveProxyRequestType").enummodule
|
|
225
|
+
SerialProxyParity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyParity").enummodule
|
|
226
|
+
SerialProxyRequestType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyRequestType").enummodule
|
|
227
|
+
SerialProxyStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("SerialProxyStatus").enummodule
|
|
228
|
+
end
|
|
229
|
+
end
|