From 3570b888d21ebe6b89effac59864eae052e3e0a1 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 10 Jul 2025 22:06:31 -1000 Subject: [PATCH] opt --- esphome/components/api/api_pb2.cpp | 1355 +++++++++++++-------------- esphome/components/api/proto.cpp | 61 +- esphome/components/api/proto.h | 67 +- script/api_protobuf/api_protobuf.py | 74 +- 4 files changed, 823 insertions(+), 734 deletions(-) diff --git a/esphome/components/api/api_pb2.cpp b/esphome/components/api/api_pb2.cpp index ad8eb5c693..9e55edf694 100644 --- a/esphome/components/api/api_pb2.cpp +++ b/esphome/components/api/api_pb2.cpp @@ -10,646 +10,645 @@ namespace esphome { namespace api { // Metadata definitions for classes using metadata approach -const FieldMeta HelloRequest::FIELDS[3] = {{1, 8, {.offset = PROTO_FIELD_OFFSET(HelloRequest, client_info)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(HelloRequest, api_version_major)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(HelloRequest, api_version_minor)}}}; -const FieldMeta HelloResponse::FIELDS[4] = {{1, 2, {.offset = PROTO_FIELD_OFFSET(HelloResponse, api_version_major)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(HelloResponse, api_version_minor)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(HelloResponse, server_info)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(HelloResponse, name)}}}; -const FieldMeta ConnectRequest::FIELDS[1] = {{1, 8, {.offset = PROTO_FIELD_OFFSET(ConnectRequest, password)}}}; +const FieldMeta HelloRequest::FIELDS[3] = {{1, 9, {.offset = PROTO_FIELD_OFFSET(HelloRequest, client_info)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(HelloRequest, api_version_major)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(HelloRequest, api_version_minor)}}}; +const FieldMeta HelloResponse::FIELDS[4] = {{1, 13, {.offset = PROTO_FIELD_OFFSET(HelloResponse, api_version_major)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(HelloResponse, api_version_minor)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(HelloResponse, server_info)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(HelloResponse, name)}}}; +const FieldMeta ConnectRequest::FIELDS[1] = {{1, 9, {.offset = PROTO_FIELD_OFFSET(ConnectRequest, password)}}}; const FieldMeta ConnectResponse::FIELDS[1] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(ConnectResponse, invalid_password)}}}; -const FieldMeta AreaInfo::FIELDS[2] = {{1, 2, {.offset = PROTO_FIELD_OFFSET(AreaInfo, area_id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(AreaInfo, name)}}}; -const FieldMeta DeviceInfo::FIELDS[3] = {{1, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, device_id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, name)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, area_id)}}}; + {1, 8, {.offset = PROTO_FIELD_OFFSET(ConnectResponse, invalid_password)}}}; +const FieldMeta AreaInfo::FIELDS[2] = {{1, 13, {.offset = PROTO_FIELD_OFFSET(AreaInfo, area_id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(AreaInfo, name)}}}; +const FieldMeta DeviceInfo::FIELDS[3] = {{1, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, device_id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, name)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfo, area_id)}}}; const FieldMeta DeviceInfoResponse::FIELDS[20] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, uses_password)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, name)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, mac_address)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, esphome_version)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, compilation_time)}}, - {6, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, model)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, has_deep_sleep)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, project_name)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, project_version)}}, - {10, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, webserver_port)}}, - {11, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_bluetooth_proxy_version)}}, - {15, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_proxy_feature_flags)}}, - {12, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, manufacturer)}}, - {13, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, friendly_name)}}, - {14, 2, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_voice_assistant_version)}}, - {17, 34, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, voice_assistant_feature_flags)}}, - {16, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, suggested_area)}}, - {18, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_mac_address)}}, - {19, 32, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, api_encryption_supported)}}, + {1, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, uses_password)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, name)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, mac_address)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, esphome_version)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, compilation_time)}}, + {6, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, model)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, has_deep_sleep)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, project_name)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, project_version)}}, + {10, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, webserver_port)}}, + {11, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_bluetooth_proxy_version)}}, + {12, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, manufacturer)}}, + {13, 9, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, friendly_name)}}, + {14, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_voice_assistant_version)}}, + {15, 13, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_proxy_feature_flags)}}, + {16, 41, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, suggested_area)}}, + {17, 45, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, voice_assistant_feature_flags)}}, + {18, 41, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_mac_address)}}, + {19, 40, {.offset = PROTO_FIELD_OFFSET(DeviceInfoResponse, api_encryption_supported)}}, {22, - 42, + 43, {.offset_low = static_cast(PROTO_FIELD_OFFSET(DeviceInfoResponse, area) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(DeviceInfoResponse, area) >> 8) & 0x03) | (0 << 2))}}}; const RepeatedFieldMeta DeviceInfoResponse::REPEATED_FIELDS[2] = { {20, - 42, + 43, {.offset_low = static_cast(PROTO_FIELD_OFFSET(DeviceInfoResponse, devices) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(DeviceInfoResponse, devices) >> 8) & 0x03) | (0 << 2))}}, {21, - 42, + 43, {.offset_low = static_cast(PROTO_FIELD_OFFSET(DeviceInfoResponse, areas) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(DeviceInfoResponse, areas) >> 8) & 0x03) | (1 << 2))}}}; #ifdef USE_BINARY_SENSOR const FieldMeta ListEntitiesBinarySensorResponse::FIELDS[10] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_class)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, is_status_binary_sensor)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, disabled_by_default)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, icon)}}, - {9, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, entity_category)}}, - {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_class)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, is_status_binary_sensor)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, disabled_by_default)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, icon)}}, + {9, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, entity_category)}}, + {10, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_id)}}}; const FieldMeta BinarySensorStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(BinarySensorStateResponse, device_id)}}}; #endif #ifdef USE_COVER const FieldMeta ListEntitiesCoverResponse::FIELDS[13] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, unique_id)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, assumed_state)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_position)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_tilt)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_class)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, disabled_by_default)}}, - {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, icon)}}, - {11, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, entity_category)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_stop)}}, - {13, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, unique_id)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, assumed_state)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_position)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_tilt)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_class)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, disabled_by_default)}}, + {10, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, icon)}}, + {11, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, entity_category)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_stop)}}, + {13, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_id)}}}; const FieldMeta CoverStateResponse::FIELDS[6] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, legacy_state)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, position)}}, - {4, 11, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, tilt)}}, - {5, 7, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, current_operation)}}, - {6, 2, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, legacy_state)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, position)}}, + {4, 2, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, tilt)}}, + {5, 14, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, current_operation)}}, + {6, 13, {.offset = PROTO_FIELD_OFFSET(CoverStateResponse, device_id)}}}; const FieldMeta CoverCommandRequest::FIELDS[8] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_legacy_command)}}, - {3, 7, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, legacy_command)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_position)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, position)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_tilt)}}, - {7, 11, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, tilt)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, stop)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_legacy_command)}}, + {3, 14, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, legacy_command)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_position)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, position)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, has_tilt)}}, + {7, 2, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, tilt)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(CoverCommandRequest, stop)}}}; #endif #ifdef USE_FAN const FieldMeta ListEntitiesFanResponse::FIELDS[12] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, unique_id)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_oscillation)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_speed)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_direction)}}, - {8, 1, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_speed_count)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, disabled_by_default)}}, - {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, icon)}}, - {11, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, entity_category)}}, - {13, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, unique_id)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_oscillation)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_speed)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_direction)}}, + {8, 5, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_speed_count)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, disabled_by_default)}}, + {10, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, icon)}}, + {11, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, entity_category)}}, + {13, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesFanResponse::REPEATED_FIELDS[1] = { - {12, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_preset_modes)}}}; -const FieldMeta FanStateResponse::FIELDS[8] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, oscillating)}}, - {4, 7, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, speed)}}, - {5, 7, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, direction)}}, - {6, 1, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, speed_level)}}, - {7, 8, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, preset_mode)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, device_id)}}}; + {12, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_preset_modes)}}}; +const FieldMeta FanStateResponse::FIELDS[8] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, oscillating)}}, + {4, 14, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, speed)}}, + {5, 14, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, direction)}}, + {6, 5, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, speed_level)}}, + {7, 9, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, preset_mode)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(FanStateResponse, device_id)}}}; const FieldMeta FanCommandRequest::FIELDS[13] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, state)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_speed)}}, - {5, 7, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, speed)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_oscillating)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, oscillating)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_direction)}}, - {9, 7, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, direction)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_speed_level)}}, - {11, 1, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, speed_level)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_preset_mode)}}, - {13, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, preset_mode)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, state)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_speed)}}, + {5, 14, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, speed)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_oscillating)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, oscillating)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_direction)}}, + {9, 14, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, direction)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_speed_level)}}, + {11, 5, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, speed_level)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, has_preset_mode)}}, + {13, 9, {.offset = PROTO_FIELD_OFFSET(FanCommandRequest, preset_mode)}}}; #endif #ifdef USE_LIGHT const FieldMeta ListEntitiesLightResponse::FIELDS[14] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, unique_id)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_brightness)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_rgb)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_white_value)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_color_temperature)}}, - {9, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, min_mireds)}}, - {10, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, max_mireds)}}, - {13, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, disabled_by_default)}}, - {14, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, icon)}}, - {15, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, entity_category)}}, - {16, 34, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, unique_id)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_brightness)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_rgb)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_white_value)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_color_temperature)}}, + {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, min_mireds)}}, + {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, max_mireds)}}, + {13, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, disabled_by_default)}}, + {14, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, icon)}}, + {15, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, entity_category)}}, + {16, 45, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesLightResponse::REPEATED_FIELDS[2] = { - {12, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, supported_color_modes)}}, - {11, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, effects)}}}; + {11, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, effects)}}, + {12, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLightResponse, supported_color_modes)}}}; const FieldMeta LightStateResponse::FIELDS[14] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, state)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, brightness)}}, - {11, 7, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_mode)}}, - {10, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_brightness)}}, - {4, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, red)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, green)}}, - {6, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, blue)}}, - {7, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, white)}}, - {8, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_temperature)}}, - {12, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, cold_white)}}, - {13, 11, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, warm_white)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, effect)}}, - {14, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, state)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, brightness)}}, + {4, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, red)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, green)}}, + {6, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, blue)}}, + {7, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, white)}}, + {8, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_temperature)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, effect)}}, + {10, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_brightness)}}, + {11, 14, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, color_mode)}}, + {12, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, cold_white)}}, + {13, 2, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, warm_white)}}, + {14, 13, {.offset = PROTO_FIELD_OFFSET(LightStateResponse, device_id)}}}; const FieldMeta LightCommandRequest::FIELDS[27] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, state)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_brightness)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, brightness)}}, - {22, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_mode)}}, - {23, 39, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_mode)}}, - {20, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_brightness)}}, - {21, 43, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_brightness)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_rgb)}}, - {7, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, red)}}, - {8, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, green)}}, - {9, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, blue)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_white)}}, - {11, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, white)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_temperature)}}, - {13, 11, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_temperature)}}, - {24, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_cold_white)}}, - {25, 43, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, cold_white)}}, - {26, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_warm_white)}}, - {27, 43, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, warm_white)}}, - {14, 0, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_transition_length)}}, - {15, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, transition_length)}}, - {16, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_flash_length)}}, - {17, 34, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, flash_length)}}, - {18, 32, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_effect)}}, - {19, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, effect)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, state)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_brightness)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, brightness)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_rgb)}}, + {7, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, red)}}, + {8, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, green)}}, + {9, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, blue)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_white)}}, + {11, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, white)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_temperature)}}, + {13, 2, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_temperature)}}, + {14, 8, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_transition_length)}}, + {15, 13, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, transition_length)}}, + {16, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_flash_length)}}, + {17, 45, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, flash_length)}}, + {18, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_effect)}}, + {19, 41, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, effect)}}, + {20, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_brightness)}}, + {21, 34, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_brightness)}}, + {22, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_color_mode)}}, + {23, 46, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, color_mode)}}, + {24, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_cold_white)}}, + {25, 34, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, cold_white)}}, + {26, 40, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, has_warm_white)}}, + {27, 34, {.offset = PROTO_FIELD_OFFSET(LightCommandRequest, warm_white)}}}; #endif #ifdef USE_SENSOR const FieldMeta ListEntitiesSensorResponse::FIELDS[14] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, icon)}}, - {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unit_of_measurement)}}, - {7, 1, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, accuracy_decimals)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, force_update)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_class)}}, - {10, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, state_class)}}, - {11, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, legacy_last_reset_type)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, disabled_by_default)}}, - {13, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, entity_category)}}, - {14, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, icon)}}, + {6, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unit_of_measurement)}}, + {7, 5, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, accuracy_decimals)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, force_update)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_class)}}, + {10, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, state_class)}}, + {11, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, legacy_last_reset_type)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, disabled_by_default)}}, + {13, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, entity_category)}}, + {14, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_id)}}}; const FieldMeta SensorStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, key)}}, - {2, 11, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, key)}}, + {2, 2, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(SensorStateResponse, device_id)}}}; #endif #ifdef USE_SWITCH const FieldMeta ListEntitiesSwitchResponse::FIELDS[10] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, assumed_state)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, disabled_by_default)}}, - {8, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, entity_category)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_class)}}, - {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, assumed_state)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, disabled_by_default)}}, + {8, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, entity_category)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_class)}}, + {10, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_id)}}}; const FieldMeta SwitchStateResponse::FIELDS[3] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, device_id)}}}; -const FieldMeta SwitchCommandRequest::FIELDS[2] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(SwitchCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(SwitchCommandRequest, state)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(SwitchStateResponse, device_id)}}}; +const FieldMeta SwitchCommandRequest::FIELDS[2] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(SwitchCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(SwitchCommandRequest, state)}}}; #endif #ifdef USE_TEXT_SENSOR const FieldMeta ListEntitiesTextSensorResponse::FIELDS[9] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, entity_category)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_class)}}, - {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, entity_category)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_class)}}, + {9, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_id)}}}; const FieldMeta TextSensorStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(TextSensorStateResponse, device_id)}}}; #endif const FieldMeta SubscribeLogsRequest::FIELDS[2] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsRequest, level)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsRequest, dump_config)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsRequest, level)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsRequest, dump_config)}}}; const FieldMeta SubscribeLogsResponse::FIELDS[3] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, level)}}, - {3, 9, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, message)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, send_failed)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, level)}}, + {3, 12, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, message)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeLogsResponse, send_failed)}}}; #ifdef USE_API_NOISE const FieldMeta NoiseEncryptionSetKeyRequest::FIELDS[1] = { - {1, 9, {.offset = PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyRequest, key)}}}; + {1, 12, {.offset = PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyRequest, key)}}}; const FieldMeta NoiseEncryptionSetKeyResponse::FIELDS[1] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyResponse, success)}}}; + {1, 8, {.offset = PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyResponse, success)}}}; #endif const FieldMeta HomeassistantServiceMap::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceMap, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceMap, value)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceMap, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceMap, value)}}}; const FieldMeta HomeassistantServiceResponse::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceResponse, service)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceResponse, is_event)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceResponse, service)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(HomeassistantServiceResponse, is_event)}}}; const RepeatedFieldMeta HomeassistantServiceResponse::REPEATED_FIELDS[3] = { {2, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data) >> 8) & 0x03) | (2 << 2))}}, {3, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template) >> 8) & 0x03) | (2 << 2))}}, {4, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables) >> 8) & 0x03) | (2 << 2))}}}; const FieldMeta SubscribeHomeAssistantStateResponse::FIELDS[3] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, attribute)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, once)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, attribute)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, once)}}}; const FieldMeta HomeAssistantStateResponse::FIELDS[3] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, entity_id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, state)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, attribute)}}}; -const FieldMeta GetTimeResponse::FIELDS[1] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(GetTimeResponse, epoch_seconds)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, entity_id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, state)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(HomeAssistantStateResponse, attribute)}}}; +const FieldMeta GetTimeResponse::FIELDS[1] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(GetTimeResponse, epoch_seconds)}}}; const FieldMeta ListEntitiesServicesArgument::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, name)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, type)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, name)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, type)}}}; const FieldMeta ListEntitiesServicesResponse::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, name)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, key)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, name)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, key)}}}; const RepeatedFieldMeta ListEntitiesServicesResponse::REPEATED_FIELDS[1] = { {3, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args) >> 8) & 0x03) | (3 << 2))}}}; const FieldMeta ExecuteServiceArgument::FIELDS[5] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_)}}, - {2, 1, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, legacy_int)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_)}}, - {5, 5, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_)}}}; + {1, 8, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_)}}, + {2, 5, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, legacy_int)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_)}}, + {5, 17, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_)}}}; const RepeatedFieldMeta ExecuteServiceArgument::REPEATED_FIELDS[4] = { - {6, 0, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_array)}}, - {7, 5, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_array)}}, - {8, 11, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_array)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_array)}}}; -const FieldMeta ExecuteServiceRequest::FIELDS[1] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceRequest, key)}}}; + {6, 8, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_array)}}, + {7, 17, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_array)}}, + {8, 2, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_array)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_array)}}}; +const FieldMeta ExecuteServiceRequest::FIELDS[1] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(ExecuteServiceRequest, key)}}}; const RepeatedFieldMeta ExecuteServiceRequest::REPEATED_FIELDS[1] = { {2, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(ExecuteServiceRequest, args) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(ExecuteServiceRequest, args) >> 8) & 0x03) | (4 << 2))}}}; #ifdef USE_CAMERA const FieldMeta ListEntitiesCameraResponse::FIELDS[8] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, unique_id)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, disabled_by_default)}}, - {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, icon)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, device_id)}}}; -const FieldMeta CameraImageResponse::FIELDS[3] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, key)}}, - {2, 9, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, data)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, done)}}}; -const FieldMeta CameraImageRequest::FIELDS[2] = {{1, 0, {.offset = PROTO_FIELD_OFFSET(CameraImageRequest, single)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(CameraImageRequest, stream)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, unique_id)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, disabled_by_default)}}, + {6, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, icon)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, device_id)}}}; +const FieldMeta CameraImageResponse::FIELDS[3] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, key)}}, + {2, 12, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, data)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(CameraImageResponse, done)}}}; +const FieldMeta CameraImageRequest::FIELDS[2] = {{1, 8, {.offset = PROTO_FIELD_OFFSET(CameraImageRequest, single)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(CameraImageRequest, stream)}}}; #endif #ifdef USE_CLIMATE const FieldMeta ListEntitiesClimateResponse::FIELDS[20] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, unique_id)}}, - {5, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_temperature)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_two_point_target_temperature)}}, - {8, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_temperature)}}, - {9, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_temperature)}}, - {10, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_target_temperature_step)}}, - {11, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, legacy_supports_away)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_action)}}, - {18, 32, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, disabled_by_default)}}, - {19, 40, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, icon)}}, - {20, 39, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, entity_category)}}, - {21, 43, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_current_temperature_step)}}, - {22, 32, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_humidity)}}, - {23, 32, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_target_humidity)}}, - {24, 43, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_humidity)}}, - {25, 43, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_humidity)}}, - {26, 34, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, unique_id)}}, + {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_temperature)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_two_point_target_temperature)}}, + {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_temperature)}}, + {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_temperature)}}, + {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_target_temperature_step)}}, + {11, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, legacy_supports_away)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_action)}}, + {18, 40, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, disabled_by_default)}}, + {19, 41, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, icon)}}, + {20, 46, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, entity_category)}}, + {21, 34, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_current_temperature_step)}}, + {22, 40, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_humidity)}}, + {23, 40, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_target_humidity)}}, + {24, 34, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_humidity)}}, + {25, 34, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_humidity)}}, + {26, 45, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesClimateResponse::REPEATED_FIELDS[6] = { - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_modes)}}, - {13, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_fan_modes)}}, - {14, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_swing_modes)}}, - {15, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_fan_modes)}}, - {16, 39, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_presets)}}, - {17, 40, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_presets)}}}; + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_modes)}}, + {13, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_fan_modes)}}, + {14, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_swing_modes)}}, + {15, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_fan_modes)}}, + {16, 46, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_presets)}}, + {17, 41, {.offset = PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_presets)}}}; const FieldMeta ClimateStateResponse::FIELDS[16] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, mode)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, current_temperature)}}, - {4, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_low)}}, - {6, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_high)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, unused_legacy_away)}}, - {8, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, action)}}, - {9, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, fan_mode)}}, - {10, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, swing_mode)}}, - {11, 8, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, custom_fan_mode)}}, - {12, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, preset)}}, - {13, 8, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, custom_preset)}}, - {14, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, current_humidity)}}, - {15, 11, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_humidity)}}, - {16, 34, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, mode)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, current_temperature)}}, + {4, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_low)}}, + {6, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_high)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, unused_legacy_away)}}, + {8, 14, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, action)}}, + {9, 14, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, fan_mode)}}, + {10, 14, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, swing_mode)}}, + {11, 9, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, custom_fan_mode)}}, + {12, 14, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, preset)}}, + {13, 9, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, custom_preset)}}, + {14, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, current_humidity)}}, + {15, 2, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, target_humidity)}}, + {16, 45, {.offset = PROTO_FIELD_OFFSET(ClimateStateResponse, device_id)}}}; const FieldMeta ClimateCommandRequest::FIELDS[23] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_mode)}}, - {3, 7, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, mode)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_low)}}, - {7, 11, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_low)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_high)}}, - {9, 11, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_high)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_has_legacy_away)}}, - {11, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_legacy_away)}}, - {12, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_fan_mode)}}, - {13, 7, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, fan_mode)}}, - {14, 0, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_swing_mode)}}, - {15, 7, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, swing_mode)}}, - {16, 32, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_fan_mode)}}, - {17, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_fan_mode)}}, - {18, 32, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_preset)}}, - {19, 39, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, preset)}}, - {20, 32, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_preset)}}, - {21, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_preset)}}, - {22, 32, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_humidity)}}, - {23, 43, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_humidity)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_mode)}}, + {3, 14, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, mode)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_low)}}, + {7, 2, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_low)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_high)}}, + {9, 2, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_high)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_has_legacy_away)}}, + {11, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_legacy_away)}}, + {12, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_fan_mode)}}, + {13, 14, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, fan_mode)}}, + {14, 8, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_swing_mode)}}, + {15, 14, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, swing_mode)}}, + {16, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_fan_mode)}}, + {17, 41, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_fan_mode)}}, + {18, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_preset)}}, + {19, 46, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, preset)}}, + {20, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_preset)}}, + {21, 41, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_preset)}}, + {22, 40, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_humidity)}}, + {23, 34, {.offset = PROTO_FIELD_OFFSET(ClimateCommandRequest, target_humidity)}}}; #endif #ifdef USE_NUMBER const FieldMeta ListEntitiesNumberResponse::FIELDS[14] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, icon)}}, - {6, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, min_value)}}, - {7, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, max_value)}}, - {8, 11, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, step)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, disabled_by_default)}}, - {10, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, entity_category)}}, - {11, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unit_of_measurement)}}, - {12, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, mode)}}, - {13, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_class)}}, - {14, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, icon)}}, + {6, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, min_value)}}, + {7, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, max_value)}}, + {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, step)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, disabled_by_default)}}, + {10, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, entity_category)}}, + {11, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unit_of_measurement)}}, + {12, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, mode)}}, + {13, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_class)}}, + {14, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_id)}}}; const FieldMeta NumberStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, key)}}, - {2, 11, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, device_id)}}}; -const FieldMeta NumberCommandRequest::FIELDS[2] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(NumberCommandRequest, key)}}, - {2, 11, {.offset = PROTO_FIELD_OFFSET(NumberCommandRequest, state)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, key)}}, + {2, 2, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(NumberStateResponse, device_id)}}}; +const FieldMeta NumberCommandRequest::FIELDS[2] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(NumberCommandRequest, key)}}, + {2, 2, {.offset = PROTO_FIELD_OFFSET(NumberCommandRequest, state)}}}; #endif #ifdef USE_SELECT const FieldMeta ListEntitiesSelectResponse::FIELDS[8] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, icon)}}, - {7, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, disabled_by_default)}}, - {8, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, entity_category)}}, - {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, icon)}}, + {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, disabled_by_default)}}, + {8, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, entity_category)}}, + {9, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesSelectResponse::REPEATED_FIELDS[1] = { - {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, options)}}}; + {6, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, options)}}}; const FieldMeta SelectStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, device_id)}}}; -const FieldMeta SelectCommandRequest::FIELDS[2] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(SelectCommandRequest, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(SelectCommandRequest, state)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(SelectStateResponse, device_id)}}}; +const FieldMeta SelectCommandRequest::FIELDS[2] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(SelectCommandRequest, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(SelectCommandRequest, state)}}}; #endif #ifdef USE_SIREN const FieldMeta ListEntitiesSirenResponse::FIELDS[10] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, disabled_by_default)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_duration)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_volume)}}, - {10, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, entity_category)}}, - {11, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, disabled_by_default)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_duration)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_volume)}}, + {10, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, entity_category)}}, + {11, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesSirenResponse::REPEATED_FIELDS[1] = { - {7, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, tones)}}}; -const FieldMeta SirenStateResponse::FIELDS[3] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, device_id)}}}; + {7, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, tones)}}}; +const FieldMeta SirenStateResponse::FIELDS[3] = { + {1, 7, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(SirenStateResponse, device_id)}}}; const FieldMeta SirenCommandRequest::FIELDS[9] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, state)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_tone)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, tone)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_duration)}}, - {7, 2, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, duration)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_volume)}}, - {9, 11, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, volume)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, state)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_tone)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, tone)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_duration)}}, + {7, 13, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, duration)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, has_volume)}}, + {9, 2, {.offset = PROTO_FIELD_OFFSET(SirenCommandRequest, volume)}}}; #endif #ifdef USE_LOCK const FieldMeta ListEntitiesLockResponse::FIELDS[12] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, entity_category)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, assumed_state)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, supports_open)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, requires_code)}}, - {11, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, code_format)}}, - {12, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, device_id)}}}; -const FieldMeta LockStateResponse::FIELDS[3] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, device_id)}}}; -const FieldMeta LockCommandRequest::FIELDS[4] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, command)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, has_code)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, code)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, entity_category)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, assumed_state)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, supports_open)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, requires_code)}}, + {11, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, code_format)}}, + {12, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesLockResponse, device_id)}}}; +const FieldMeta LockStateResponse::FIELDS[3] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(LockStateResponse, device_id)}}}; +const FieldMeta LockCommandRequest::FIELDS[4] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, command)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, has_code)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(LockCommandRequest, code)}}}; #endif #ifdef USE_BUTTON const FieldMeta ListEntitiesButtonResponse::FIELDS[9] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, entity_category)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_class)}}, - {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_id)}}}; -const FieldMeta ButtonCommandRequest::FIELDS[1] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(ButtonCommandRequest, key)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, entity_category)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_class)}}, + {9, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_id)}}}; +const FieldMeta ButtonCommandRequest::FIELDS[1] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(ButtonCommandRequest, key)}}}; #endif #ifdef USE_MEDIA_PLAYER const FieldMeta MediaPlayerSupportedFormat::FIELDS[5] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, format)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_rate)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, num_channels)}}, - {4, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, purpose)}}, - {5, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_bytes)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, format)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_rate)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, num_channels)}}, + {4, 14, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, purpose)}}, + {5, 13, {.offset = PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_bytes)}}}; const FieldMeta ListEntitiesMediaPlayerResponse::FIELDS[9] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, entity_category)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supports_pause)}}, - {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, entity_category)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supports_pause)}}, + {10, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesMediaPlayerResponse::REPEATED_FIELDS[1] = { {9, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats) >> 8) & 0x03) | (5 << 2))}}}; const FieldMeta MediaPlayerStateResponse::FIELDS[5] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, state)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, volume)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, muted)}}, - {5, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, state)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, volume)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, muted)}}, + {5, 13, {.offset = PROTO_FIELD_OFFSET(MediaPlayerStateResponse, device_id)}}}; const FieldMeta MediaPlayerCommandRequest::FIELDS[9] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_command)}}, - {3, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, command)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_volume)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, volume)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_media_url)}}, - {7, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, media_url)}}, - {8, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_announcement)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, announcement)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_command)}}, + {3, 14, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, command)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_volume)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, volume)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_media_url)}}, + {7, 9, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, media_url)}}, + {8, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_announcement)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, announcement)}}}; #endif #ifdef USE_BLUETOOTH_PROXY const FieldMeta SubscribeBluetoothLEAdvertisementsRequest::FIELDS[1] = { - {1, 2, {.offset = PROTO_FIELD_OFFSET(SubscribeBluetoothLEAdvertisementsRequest, flags)}}}; -const FieldMeta BluetoothServiceData::FIELDS[2] = {{1, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, uuid)}}, - {3, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, data)}}}; + {1, 13, {.offset = PROTO_FIELD_OFFSET(SubscribeBluetoothLEAdvertisementsRequest, flags)}}}; +const FieldMeta BluetoothServiceData::FIELDS[2] = {{1, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, uuid)}}, + {3, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, data)}}}; const RepeatedFieldMeta BluetoothServiceData::REPEATED_FIELDS[1] = { - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, legacy_data)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothServiceData, legacy_data)}}}; const FieldMeta BluetoothLEAdvertisementResponse::FIELDS[4] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address)}}, - {2, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, name)}}, - {3, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, rssi)}}, - {7, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address_type)}}}; + {2, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, name)}}, + {3, 17, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, rssi)}}, + {7, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address_type)}}}; const RepeatedFieldMeta BluetoothLEAdvertisementResponse::REPEATED_FIELDS[3] = { - {4, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_uuids)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_uuids)}}, {5, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data) >> 8) & 0x03) | (6 << 2))}}, {6, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data) >> 8) & 0x03) | (6 << 2))}}}; const FieldMeta BluetoothLERawAdvertisement::FIELDS[4] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address)}}, - {2, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, rssi)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address_type)}}, - {4, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, data)}}}; + {2, 17, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, rssi)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address_type)}}, + {4, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, data)}}}; const RepeatedFieldMeta BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS[1] = { {1, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements) >> 8) & 0x03) | (7 << 2))}}}; const FieldMeta BluetoothDeviceRequest::FIELDS[4] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, request_type)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, has_address_type)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address_type)}}}; + {2, 14, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, request_type)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, has_address_type)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address_type)}}}; const FieldMeta BluetoothDeviceConnectionResponse::FIELDS[4] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, address)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, connected)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, mtu)}}, - {4, 1, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, error)}}}; + {2, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, connected)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, mtu)}}, + {4, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, error)}}}; const FieldMeta BluetoothGATTGetServicesRequest::FIELDS[1] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesRequest, address)}}}; const FieldMeta BluetoothGATTDescriptor::FIELDS[1] = { - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, handle)}}}; const RepeatedFieldMeta BluetoothGATTDescriptor::REPEATED_FIELDS[1] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, uuid)}}}; const FieldMeta BluetoothGATTCharacteristic::FIELDS[2] = { - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, handle)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, properties)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, handle)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, properties)}}}; const RepeatedFieldMeta BluetoothGATTCharacteristic::REPEATED_FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, uuid)}}, {4, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors) >> 8) & 0x03) | (8 << 2))}}}; const FieldMeta BluetoothGATTService::FIELDS[1] = { - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, handle)}}}; const RepeatedFieldMeta BluetoothGATTService::REPEATED_FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTService, uuid)}}, {3, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics) >> 8) & 0x03) | (9 << 2))}}}; @@ -657,7 +656,7 @@ const FieldMeta BluetoothGATTGetServicesResponse::FIELDS[1] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, address)}}}; const RepeatedFieldMeta BluetoothGATTGetServicesResponse::REPEATED_FIELDS[1] = { {2, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services) >> 8) & 0x03) | (10 << 2))}}}; @@ -665,305 +664,305 @@ const FieldMeta BluetoothGATTGetServicesDoneResponse::FIELDS[1] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTGetServicesDoneResponse, address)}}}; const FieldMeta BluetoothGATTReadRequest::FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, handle)}}}; const FieldMeta BluetoothGATTReadResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, handle)}}, - {3, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, data)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, handle)}}, + {3, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, data)}}}; const FieldMeta BluetoothGATTWriteRequest::FIELDS[4] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, handle)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, response)}}, - {4, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, data)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, handle)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, response)}}, + {4, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, data)}}}; const FieldMeta BluetoothGATTReadDescriptorRequest::FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, handle)}}}; const FieldMeta BluetoothGATTWriteDescriptorRequest::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, handle)}}, - {3, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, data)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, handle)}}, + {3, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, data)}}}; const FieldMeta BluetoothGATTNotifyRequest::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, handle)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, enable)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, handle)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, enable)}}}; const FieldMeta BluetoothGATTNotifyDataResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, handle)}}, - {3, 9, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, data)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, handle)}}, + {3, 12, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, data)}}}; const FieldMeta BluetoothConnectionsFreeResponse::FIELDS[2] = { - {1, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, free)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, limit)}}}; + {1, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, free)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, limit)}}}; const RepeatedFieldMeta BluetoothConnectionsFreeResponse::REPEATED_FIELDS[1] = { {3, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, allocated)}}}; const FieldMeta BluetoothGATTErrorResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, handle)}}, - {3, 1, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, error)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, handle)}}, + {3, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, error)}}}; const FieldMeta BluetoothGATTWriteResponse::FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, handle)}}}; const FieldMeta BluetoothGATTNotifyResponse::FIELDS[2] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, address)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, handle)}}}; + {2, 13, {.offset = PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, handle)}}}; const FieldMeta BluetoothDevicePairingResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, address)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, paired)}}, - {3, 1, {.offset = PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, error)}}}; + {2, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, paired)}}, + {3, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, error)}}}; const FieldMeta BluetoothDeviceUnpairingResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, address)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, success)}}, - {3, 1, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, error)}}}; + {2, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, success)}}, + {3, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, error)}}}; const FieldMeta BluetoothDeviceClearCacheResponse::FIELDS[3] = { {1, 4, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, address)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, success)}}, - {3, 1, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, error)}}}; + {2, 8, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, success)}}, + {3, 5, {.offset = PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, error)}}}; const FieldMeta BluetoothScannerStateResponse::FIELDS[2] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, state)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, mode)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, state)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, mode)}}}; const FieldMeta BluetoothScannerSetModeRequest::FIELDS[1] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerSetModeRequest, mode)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(BluetoothScannerSetModeRequest, mode)}}}; #endif #ifdef USE_VOICE_ASSISTANT const FieldMeta SubscribeVoiceAssistantRequest::FIELDS[2] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, subscribe)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, flags)}}}; + {1, 8, {.offset = PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, subscribe)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, flags)}}}; const FieldMeta VoiceAssistantAudioSettings::FIELDS[3] = { - {1, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, noise_suppression_level)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, auto_gain)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, volume_multiplier)}}}; + {1, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, noise_suppression_level)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, auto_gain)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, volume_multiplier)}}}; const FieldMeta VoiceAssistantRequest::FIELDS[5] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, start)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, conversation_id)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, flags)}}, + {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, start)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, conversation_id)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, flags)}}, {4, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings) >> 8) & 0x03) | (1 << 2))}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, wake_word_phrase)}}}; + {5, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantRequest, wake_word_phrase)}}}; const FieldMeta VoiceAssistantResponse::FIELDS[2] = { - {1, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, port)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, error)}}}; + {1, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, port)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantResponse, error)}}}; const FieldMeta VoiceAssistantEventData::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventData, name)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventData, value)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventData, name)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventData, value)}}}; const FieldMeta VoiceAssistantEventResponse::FIELDS[1] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, event_type)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, event_type)}}}; const RepeatedFieldMeta VoiceAssistantEventResponse::REPEATED_FIELDS[1] = { {2, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data) & 0xFF), .message_type_id = static_cast(((PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data) >> 8) & 0x03) | (11 << 2))}}}; -const FieldMeta VoiceAssistantAudio::FIELDS[2] = {{1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, data)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, end)}}}; +const FieldMeta VoiceAssistantAudio::FIELDS[2] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, data)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAudio, end)}}}; const FieldMeta VoiceAssistantTimerEventResponse::FIELDS[6] = { - {1, 7, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, event_type)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, timer_id)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, name)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, total_seconds)}}, - {5, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, seconds_left)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, is_active)}}}; + {1, 14, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, event_type)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, timer_id)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, name)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, total_seconds)}}, + {5, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, seconds_left)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, is_active)}}}; const FieldMeta VoiceAssistantAnnounceRequest::FIELDS[4] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, media_id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, text)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, preannounce_media_id)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, start_conversation)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, media_id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, text)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, preannounce_media_id)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, start_conversation)}}}; const FieldMeta VoiceAssistantAnnounceFinished::FIELDS[1] = { - {1, 0, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceFinished, success)}}}; + {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantAnnounceFinished, success)}}}; const FieldMeta VoiceAssistantWakeWord::FIELDS[2] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, id)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, wake_word)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, id)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, wake_word)}}}; const RepeatedFieldMeta VoiceAssistantWakeWord::REPEATED_FIELDS[1] = { - {3, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, trained_languages)}}}; + {3, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, trained_languages)}}}; const FieldMeta VoiceAssistantConfigurationResponse::FIELDS[1] = { - {3, 2, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, max_active_wake_words)}}}; + {3, 13, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, max_active_wake_words)}}}; const RepeatedFieldMeta VoiceAssistantConfigurationResponse::REPEATED_FIELDS[2] = { {1, - 10, + 11, {.offset_low = static_cast(PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words) & 0xFF), .message_type_id = static_cast( ((PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words) >> 8) & 0x03) | (12 << 2))}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, active_wake_words)}}}; + {2, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, active_wake_words)}}}; const RepeatedFieldMeta VoiceAssistantSetConfiguration::REPEATED_FIELDS[1] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words)}}}; #endif #ifdef USE_ALARM_CONTROL_PANEL const FieldMeta ListEntitiesAlarmControlPanelResponse::FIELDS[11] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, supported_features)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code_to_arm)}}, - {11, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, supported_features)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code_to_arm)}}, + {11, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, device_id)}}}; const FieldMeta AlarmControlPanelStateResponse::FIELDS[3] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, device_id)}}}; const FieldMeta AlarmControlPanelCommandRequest::FIELDS[3] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, command)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, code)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, command)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, code)}}}; #endif #ifdef USE_TEXT const FieldMeta ListEntitiesTextResponse::FIELDS[12] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, min_length)}}, - {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, max_length)}}, - {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, pattern)}}, - {11, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, mode)}}, - {12, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, min_length)}}, + {9, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, max_length)}}, + {10, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, pattern)}}, + {11, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, mode)}}, + {12, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTextResponse, device_id)}}}; const FieldMeta TextStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, missing_state)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, device_id)}}}; -const FieldMeta TextCommandRequest::FIELDS[2] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(TextCommandRequest, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(TextCommandRequest, state)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, missing_state)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(TextStateResponse, device_id)}}}; +const FieldMeta TextCommandRequest::FIELDS[2] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(TextCommandRequest, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(TextCommandRequest, state)}}}; #endif #ifdef USE_DATETIME_DATE const FieldMeta ListEntitiesDateResponse::FIELDS[8] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateResponse, device_id)}}}; const FieldMeta DateStateResponse::FIELDS[6] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, missing_state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, year)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, month)}}, - {5, 2, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, day)}}, - {6, 2, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, device_id)}}}; -const FieldMeta DateCommandRequest::FIELDS[4] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, key)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, year)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, month)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, day)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, missing_state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, year)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, month)}}, + {5, 13, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, day)}}, + {6, 13, {.offset = PROTO_FIELD_OFFSET(DateStateResponse, device_id)}}}; +const FieldMeta DateCommandRequest::FIELDS[4] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, key)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, year)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, month)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(DateCommandRequest, day)}}}; #endif #ifdef USE_DATETIME_TIME const FieldMeta ListEntitiesTimeResponse::FIELDS[8] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, device_id)}}}; const FieldMeta TimeStateResponse::FIELDS[6] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, missing_state)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, hour)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, minute)}}, - {5, 2, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, second)}}, - {6, 2, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, device_id)}}}; -const FieldMeta TimeCommandRequest::FIELDS[4] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, key)}}, - {2, 2, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, hour)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, minute)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, second)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, missing_state)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, hour)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, minute)}}, + {5, 13, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, second)}}, + {6, 13, {.offset = PROTO_FIELD_OFFSET(TimeStateResponse, device_id)}}}; +const FieldMeta TimeCommandRequest::FIELDS[4] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, key)}}, + {2, 13, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, hour)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, minute)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(TimeCommandRequest, second)}}}; #endif #ifdef USE_EVENT const FieldMeta ListEntitiesEventResponse::FIELDS[9] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, entity_category)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_class)}}, - {10, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, entity_category)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_class)}}, + {10, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_id)}}}; const RepeatedFieldMeta ListEntitiesEventResponse::REPEATED_FIELDS[1] = { - {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, event_types)}}}; -const FieldMeta EventResponse::FIELDS[3] = {{1, 12, {.offset = PROTO_FIELD_OFFSET(EventResponse, key)}}, - {2, 8, {.offset = PROTO_FIELD_OFFSET(EventResponse, event_type)}}, - {3, 2, {.offset = PROTO_FIELD_OFFSET(EventResponse, device_id)}}}; + {9, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesEventResponse, event_types)}}}; +const FieldMeta EventResponse::FIELDS[3] = {{1, 7, {.offset = PROTO_FIELD_OFFSET(EventResponse, key)}}, + {2, 9, {.offset = PROTO_FIELD_OFFSET(EventResponse, event_type)}}, + {3, 13, {.offset = PROTO_FIELD_OFFSET(EventResponse, device_id)}}}; #endif #ifdef USE_VALVE const FieldMeta ListEntitiesValveResponse::FIELDS[12] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, entity_category)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_class)}}, - {9, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, assumed_state)}}, - {10, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_position)}}, - {11, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_stop)}}, - {12, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, entity_category)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_class)}}, + {9, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, assumed_state)}}, + {10, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_position)}}, + {11, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_stop)}}, + {12, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_id)}}}; const FieldMeta ValveStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, key)}}, - {2, 11, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, position)}}, - {3, 7, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, current_operation)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, key)}}, + {2, 2, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, position)}}, + {3, 14, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, current_operation)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(ValveStateResponse, device_id)}}}; const FieldMeta ValveCommandRequest::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, has_position)}}, - {3, 11, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, position)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, stop)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, has_position)}}, + {3, 2, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, position)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(ValveCommandRequest, stop)}}}; #endif #ifdef USE_DATETIME_DATETIME const FieldMeta ListEntitiesDateTimeResponse::FIELDS[8] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, entity_category)}}, - {8, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, entity_category)}}, + {8, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, device_id)}}}; const FieldMeta DateTimeStateResponse::FIELDS[4] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, missing_state)}}, - {3, 12, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, epoch_seconds)}}, - {4, 2, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, missing_state)}}, + {3, 7, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, epoch_seconds)}}, + {4, 13, {.offset = PROTO_FIELD_OFFSET(DateTimeStateResponse, device_id)}}}; const FieldMeta DateTimeCommandRequest::FIELDS[2] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(DateTimeCommandRequest, key)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(DateTimeCommandRequest, epoch_seconds)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(DateTimeCommandRequest, key)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(DateTimeCommandRequest, epoch_seconds)}}}; #endif #ifdef USE_UPDATE const FieldMeta ListEntitiesUpdateResponse::FIELDS[9] = { - {1, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, object_id)}}, - {2, 12, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, key)}}, - {3, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, name)}}, - {4, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, unique_id)}}, - {5, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, icon)}}, - {6, 0, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, disabled_by_default)}}, - {7, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, entity_category)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_class)}}, - {9, 2, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_id)}}}; + {1, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, object_id)}}, + {2, 7, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, key)}}, + {3, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, name)}}, + {4, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, unique_id)}}, + {5, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, icon)}}, + {6, 8, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, disabled_by_default)}}, + {7, 14, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, entity_category)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_class)}}, + {9, 13, {.offset = PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_id)}}}; const FieldMeta UpdateStateResponse::FIELDS[11] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, key)}}, - {2, 0, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, missing_state)}}, - {3, 0, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, in_progress)}}, - {4, 0, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, has_progress)}}, - {5, 11, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, progress)}}, - {6, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, current_version)}}, - {7, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, latest_version)}}, - {8, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, title)}}, - {9, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, release_summary)}}, - {10, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, release_url)}}, - {11, 2, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, device_id)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, key)}}, + {2, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, missing_state)}}, + {3, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, in_progress)}}, + {4, 8, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, has_progress)}}, + {5, 2, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, progress)}}, + {6, 9, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, current_version)}}, + {7, 9, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, latest_version)}}, + {8, 9, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, title)}}, + {9, 9, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, release_summary)}}, + {10, 9, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, release_url)}}, + {11, 13, {.offset = PROTO_FIELD_OFFSET(UpdateStateResponse, device_id)}}}; const FieldMeta UpdateCommandRequest::FIELDS[2] = { - {1, 12, {.offset = PROTO_FIELD_OFFSET(UpdateCommandRequest, key)}}, - {2, 7, {.offset = PROTO_FIELD_OFFSET(UpdateCommandRequest, command)}}}; + {1, 7, {.offset = PROTO_FIELD_OFFSET(UpdateCommandRequest, key)}}, + {2, 14, {.offset = PROTO_FIELD_OFFSET(UpdateCommandRequest, command)}}}; #endif // Message handler registries diff --git a/esphome/components/api/proto.cpp b/esphome/components/api/proto.cpp index 3959c6d2a4..ee958e0564 100644 --- a/esphome/components/api/proto.cpp +++ b/esphome/components/api/proto.cpp @@ -349,23 +349,17 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { } ProtoVarInt value = *value_res; - // Try regular fields first - for (uint8_t j = 0; j < field_count; j++) { - if (fields[j].field_num == field_id && get_wire_type(fields[j].get_type()) == 0) { - void *field_addr = base + fields[j].get_offset(); - decoded = decode_varint_field(fields[j].get_type(), field_addr, value); - break; - } + // Try regular fields first using binary search + if (const FieldMeta *field = find_field_binary(fields, field_count, field_id, 0)) { + void *field_addr = base + field->get_offset(); + decoded = decode_varint_field(field->get_type(), field_addr, value); } // If not found, try repeated fields if (!decoded) { - for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 0) { - void *field_addr = base + repeated_fields[j].get_offset(); - decoded = decode_repeated_varint_field(repeated_fields[j].get_type(), field_addr, value); - break; - } + if (const RepeatedFieldMeta *field = find_field_binary(repeated_fields, repeated_count, field_id, 0)) { + void *field_addr = base + field->get_offset(); + decoded = decode_repeated_varint_field(field->get_type(), field_addr, value); } } @@ -389,24 +383,17 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { ProtoLengthDelimited value(&buffer[i], field_length); - // Try regular fields first - for (uint8_t j = 0; j < field_count; j++) { - if (fields[j].field_num == field_id && get_wire_type(fields[j].get_type()) == 2) { - void *field_addr = base + fields[j].get_offset(); - decoded = decode_length_field(fields[j].get_type(), field_addr, value, fields[j].get_message_type_id()); - break; - } + // Try regular fields first using binary search + if (const FieldMeta *field = find_field_binary(fields, field_count, field_id, 2)) { + void *field_addr = base + field->get_offset(); + decoded = decode_length_field(field->get_type(), field_addr, value, field->get_message_type_id()); } // If not found, try repeated fields if (!decoded) { - for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 2) { - void *field_addr = base + repeated_fields[j].get_offset(); - decoded = decode_repeated_length_field(repeated_fields[j].get_type(), field_addr, value, - repeated_fields[j].get_message_type_id()); - break; - } + if (const RepeatedFieldMeta *field = find_field_binary(repeated_fields, repeated_count, field_id, 2)) { + void *field_addr = base + field->get_offset(); + decoded = decode_repeated_length_field(field->get_type(), field_addr, value, field->get_message_type_id()); } } @@ -427,23 +414,17 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { raw |= uint32_t(buffer[i + 3]) << 24; Proto32Bit value(raw); - // Try regular fields first - for (uint8_t j = 0; j < field_count; j++) { - if (fields[j].field_num == field_id && get_wire_type(fields[j].get_type()) == 5) { - void *field_addr = base + fields[j].get_offset(); - decoded = decode_32bit_field(fields[j].get_type(), field_addr, value); - break; - } + // Try regular fields first using binary search + if (const FieldMeta *field = find_field_binary(fields, field_count, field_id, 5)) { + void *field_addr = base + field->get_offset(); + decoded = decode_32bit_field(field->get_type(), field_addr, value); } // If not found, try repeated fields if (!decoded) { - for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 5) { - void *field_addr = base + repeated_fields[j].get_offset(); - decoded = decode_repeated_32bit_field(repeated_fields[j].get_type(), field_addr, value); - break; - } + if (const RepeatedFieldMeta *field = find_field_binary(repeated_fields, repeated_count, field_id, 5)) { + void *field_addr = base + field->get_offset(); + decoded = decode_repeated_32bit_field(field->get_type(), field_addr, value); } } diff --git a/esphome/components/api/proto.h b/esphome/components/api/proto.h index 2ff28039ac..b0d3d505bd 100644 --- a/esphome/components/api/proto.h +++ b/esphome/components/api/proto.h @@ -257,7 +257,7 @@ extern const uint8_t REPEATED_MESSAGE_HANDLER_COUNT; // Optimized metadata structure (4 bytes - no padding on 32-bit architectures) struct FieldMeta { uint8_t field_num; // Protobuf field number (1-255) - uint8_t type_and_size; // bits 0-4: ProtoFieldType, bits 5-6: precalced_field_id_size-1, bit 7: reserved + uint8_t type_and_size; // bits 0-4: ProtoFieldType, bits 5-6: precalced_field_id_size-1, bit 7: wire_type_high_bit union { uint16_t offset; // For non-message types: offset in class (0-65535) struct { @@ -269,6 +269,16 @@ struct FieldMeta { // Helper methods ProtoFieldType get_type() const { return static_cast(type_and_size & 0x1F); } uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; } + uint8_t get_wire_type() const { + // Wire type is encoded as: 0=varint, 2=length-delimited, 5=32-bit + // We only need 1 bit to distinguish between 0/2 and 5 (32-bit) + // If bit 7 is set, it's wire type 5, otherwise check the field type + if (type_and_size & 0x80) { + return 5; // 32-bit types + } + ProtoFieldType t = get_type(); + return (t >= ProtoFieldType::TYPE_STRING) ? 2 : 0; // length-delimited : varint + } uint16_t get_offset() const { if (get_type() == ProtoFieldType::TYPE_MESSAGE) { // Reconstruct full offset from packed fields (10-bit offset) @@ -283,7 +293,7 @@ struct FieldMeta { // Optimized repeated field metadata (4 bytes - no padding on 32-bit architectures) struct RepeatedFieldMeta { uint8_t field_num; // Protobuf field number (1-255) - uint8_t type_and_size; // bits 0-4: ProtoFieldType, bits 5-6: precalced_field_id_size-1, bit 7: reserved + uint8_t type_and_size; // bits 0-4: ProtoFieldType, bits 5-6: precalced_field_id_size-1, bit 7: wire_type_high_bit union { uint16_t offset; // For non-message types: offset in class (0-65535) struct { @@ -295,6 +305,16 @@ struct RepeatedFieldMeta { // Helper methods ProtoFieldType get_type() const { return static_cast(type_and_size & 0x1F); } uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; } + uint8_t get_wire_type() const { + // Wire type is encoded as: 0=varint, 2=length-delimited, 5=32-bit + // We only need 1 bit to distinguish between 0/2 and 5 (32-bit) + // If bit 7 is set, it's wire type 5, otherwise check the field type + if (type_and_size & 0x80) { + return 5; // 32-bit types + } + ProtoFieldType t = get_type(); + return (t >= ProtoFieldType::TYPE_STRING) ? 2 : 0; // length-delimited : varint + } uint16_t get_offset() const { if (get_type() == ProtoFieldType::TYPE_MESSAGE) { // Reconstruct full offset from packed fields (10-bit offset) @@ -306,6 +326,49 @@ struct RepeatedFieldMeta { uint8_t get_message_type_id() const { return message_type_id >> 2; } // Upper 6 bits for type ID (0-63) }; +// Binary search for field lookup - optimized for performance +template +inline const MetaType *find_field_binary(const MetaType *fields, uint8_t count, uint8_t field_id, uint8_t wire_type) { + uint8_t left = 0; + uint8_t right = count; + + while (left < right) { + uint8_t mid = (left + right) / 2; + uint8_t mid_field = fields[mid].field_num; + + if (mid_field < field_id) { + left = mid + 1; + } else if (mid_field > field_id) { + right = mid; + } else { + // Found field_id, check wire type + if (fields[mid].get_wire_type() == wire_type) { + return &fields[mid]; + } + // Field number matches but wire type doesn't - search nearby entries + // (in case there are multiple fields with same number but different types) + + // Search backwards + for (uint8_t k = mid; k > 0 && fields[k - 1].field_num == field_id; k--) { + if (fields[k - 1].get_wire_type() == wire_type) { + return &fields[k - 1]; + } + } + + // Search forwards + for (uint8_t k = mid + 1; k < count && fields[k].field_num == field_id; k++) { + if (fields[k].get_wire_type() == wire_type) { + return &fields[k]; + } + } + + return nullptr; // Field number found but no matching wire type + } + } + + return nullptr; // Field not found +} + class ProtoWriteBuffer { public: ProtoWriteBuffer(std::vector *buffer) : buffer_(buffer) {} diff --git a/script/api_protobuf/api_protobuf.py b/script/api_protobuf/api_protobuf.py index f5d676ac79..cc40f76e67 100755 --- a/script/api_protobuf/api_protobuf.py +++ b/script/api_protobuf/api_protobuf.py @@ -101,6 +101,13 @@ PROTO_TYPE_NUM_MAP = { descriptor.FieldDescriptorProto.TYPE_SFIXED32: 13, } +# Wire type 5 (32-bit) field types that need bit 7 set +WIRE_TYPE_5_TYPES = { + descriptor.FieldDescriptorProto.TYPE_FLOAT, + descriptor.FieldDescriptorProto.TYPE_FIXED32, + descriptor.FieldDescriptorProto.TYPE_SFIXED32, +} + # Generate with # protoc --python_out=script/api_protobuf -I esphome/components/api/ api_options.proto @@ -795,6 +802,39 @@ class RepeatedTypeInfo(TypeInfo): return underlying_size * 2 +def pack_type_and_size( + field_type_or_num: int | descriptor.FieldDescriptorProto.Type, field_tag_size: int +) -> int: + """Pack field type, tag size, and wire type bit into type_and_size byte. + + Args: + field_type_or_num: Either a FieldDescriptorProto type constant or a direct type number + field_tag_size: The precalculated field ID size (1-3) + + Bit layout: + - bits 0-4: ProtoFieldType (5 bits) + - bits 5-6: precalced_field_id_size - 1 (2 bits) + - bit 7: wire type bit (1 if wire type 5 for 32-bit types) + """ + # Handle direct type numbers (for EnumType=7, MessageType=10) + if isinstance(field_type_or_num, int): + type_num = field_type_or_num + else: + type_num = PROTO_TYPE_NUM_MAP.get(field_type_or_num, 0) + + type_and_size = (type_num & 0x1F) | ((field_tag_size - 1) << 5) + + # Set bit 7 for 32-bit types (wire type 5) + # Only check if we have a descriptor type, not a raw number + if ( + not isinstance(field_type_or_num, int) + and field_type_or_num in WIRE_TYPE_5_TYPES + ): + type_and_size |= 0x80 + + return type_and_size + + def build_type_usage_map( file_desc: descriptor.FileDescriptorProto, ) -> tuple[dict[str, str | None], dict[str, str | None]]: @@ -1261,9 +1301,7 @@ def build_message_type( field_type = PROTO_TYPE_MAP.get(field.type, None) if field_type: field_tag_size = ti.calculate_field_id_size() - # Pack type and size into type_and_size byte - type_num = PROTO_TYPE_NUM_MAP.get(field.type, 0) - type_and_size = (type_num & 0x1F) | ((field_tag_size - 1) << 5) + type_and_size = pack_type_and_size(field.type, field_tag_size) if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE: # For messages, use offset_low and message_type_id with offset extension @@ -1287,9 +1325,7 @@ def build_message_type( if field_type: field_tag_size = ti.calculate_field_id_size() - # Pack type and size into type_and_size byte - type_num = PROTO_TYPE_NUM_MAP.get(field.type, 0) - type_and_size = (type_num & 0x1F) | ((field_tag_size - 1) << 5) + type_and_size = pack_type_and_size(field.type, field_tag_size) if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE: # For messages, use offset_low and message_type_id @@ -1320,14 +1356,14 @@ def build_message_type( elif isinstance(ti, EnumType): field_tag_size = ti.calculate_field_id_size() # Enums are TYPE_ENUM (7) - type_and_size = (7 & 0x1F) | ((field_tag_size - 1) << 5) + type_and_size = pack_type_and_size(7, field_tag_size) regular_fields.append( f"{{{field.number}, {type_and_size}, {{.offset = PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})}}}}" ) elif isinstance(ti, MessageType): field_tag_size = ti.calculate_field_id_size() # Messages are TYPE_MESSAGE (10) - type_and_size = (10 & 0x1F) | ((field_tag_size - 1) << 5) + type_and_size = pack_type_and_size(10, field_tag_size) message_type_id = type_registry.get_message_type_id(ti.type_name) offset = f"PROTO_FIELD_OFFSET({desc.name}, {ti.field_name})" # Same encoding as above for large offsets @@ -1842,18 +1878,28 @@ namespace api { # Generate metadata arrays if regular_fields: - cpp += f"const FieldMeta {class_name}::FIELDS[{len(regular_fields)}] = {{\n" - for i, field in enumerate(regular_fields): - if i < len(regular_fields) - 1: + # Sort fields by field number for binary search + sorted_fields = sorted( + regular_fields, key=lambda f: int(f.split(",")[0].strip("{")) + ) + cpp += ( + f"const FieldMeta {class_name}::FIELDS[{len(sorted_fields)}] = {{\n" + ) + for i, field in enumerate(sorted_fields): + if i < len(sorted_fields) - 1: cpp += f" {field},\n" else: cpp += f" {field}\n" cpp += "};\n" if repeated_fields: - cpp += f"const RepeatedFieldMeta {class_name}::REPEATED_FIELDS[{len(repeated_fields)}] = {{\n" - for i, field in enumerate(repeated_fields): - if i < len(repeated_fields) - 1: + # Sort fields by field number for binary search + sorted_fields = sorted( + repeated_fields, key=lambda f: int(f.split(",")[0].strip("{")) + ) + cpp += f"const RepeatedFieldMeta {class_name}::REPEATED_FIELDS[{len(sorted_fields)}] = {{\n" + for i, field in enumerate(sorted_fields): + if i < len(sorted_fields) - 1: cpp += f" {field},\n" else: cpp += f" {field}\n"