diff --git a/esphome/components/api/api_pb2.cpp b/esphome/components/api/api_pb2.cpp index d255113aa6..a1e6a5c6a9 100644 --- a/esphome/components/api/api_pb2.cpp +++ b/esphome/components/api/api_pb2.cpp @@ -87,6 +87,10 @@ const FieldMeta HelloRequest::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 HelloRequest::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(HelloRequest, client_info), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(HelloRequest, api_version_major), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(HelloRequest, api_version_minor), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta HelloResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(HelloResponse, api_version_major), &encode_uint32_field, @@ -119,6 +123,11 @@ const FieldMeta HelloResponse::FIELDS[4] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 HelloResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(HelloResponse, api_version_major), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(HelloResponse, api_version_minor), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(HelloResponse, server_info), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(HelloResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta ConnectRequest::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(ConnectRequest, password), &encode_string_field, @@ -127,6 +136,8 @@ const FieldMeta ConnectRequest::FIELDS[1] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 ConnectRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(ConnectRequest, password), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta ConnectResponse::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(ConnectResponse, invalid_password), &encode_bool_field, @@ -135,6 +146,8 @@ const FieldMeta ConnectResponse::FIELDS[1] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 ConnectResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(ConnectResponse, invalid_password), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta AreaInfo::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(AreaInfo, area_id), &encode_uint32_field, @@ -151,6 +164,9 @@ const FieldMeta AreaInfo::FIELDS[2] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 AreaInfo::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(AreaInfo, area_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(AreaInfo, name), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta DeviceInfo::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(DeviceInfo, device_id), &encode_uint32_field, @@ -175,6 +191,10 @@ const FieldMeta DeviceInfo::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 DeviceInfo::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(DeviceInfo, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DeviceInfo, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(DeviceInfo, area_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta DeviceInfoResponse::FIELDS[19] = { {1, PROTO_FIELD_OFFSET(DeviceInfoResponse, uses_password), @@ -343,6 +363,34 @@ const RepeatedFieldMeta DeviceInfoResponse::REPEATED_FIELDS[2] = { 2, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 DeviceInfoResponse::FIELDS_V2[20] = { + {1, PROTO_FIELD_OFFSET(DeviceInfoResponse, uses_password), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DeviceInfoResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(DeviceInfoResponse, mac_address), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(DeviceInfoResponse, esphome_version), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(DeviceInfoResponse, compilation_time), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(DeviceInfoResponse, model), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(DeviceInfoResponse, has_deep_sleep), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(DeviceInfoResponse, project_name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(DeviceInfoResponse, project_version), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(DeviceInfoResponse, webserver_port), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_bluetooth_proxy_version), ProtoFieldType::TYPE_UINT32, false, 1, + 0}, + {15, PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_proxy_feature_flags), ProtoFieldType::TYPE_UINT32, false, 1, + 0}, + {12, PROTO_FIELD_OFFSET(DeviceInfoResponse, manufacturer), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(DeviceInfoResponse, friendly_name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(DeviceInfoResponse, legacy_voice_assistant_version), ProtoFieldType::TYPE_UINT32, false, 1, + 0}, + {17, PROTO_FIELD_OFFSET(DeviceInfoResponse, voice_assistant_feature_flags), ProtoFieldType::TYPE_UINT32, false, 2, + 0}, + {16, PROTO_FIELD_OFFSET(DeviceInfoResponse, suggested_area), ProtoFieldType::TYPE_STRING, false, 2, 0}, + {18, PROTO_FIELD_OFFSET(DeviceInfoResponse, bluetooth_mac_address), ProtoFieldType::TYPE_STRING, false, 2, 0}, + {19, PROTO_FIELD_OFFSET(DeviceInfoResponse, api_encryption_supported), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {22, PROTO_FIELD_OFFSET(DeviceInfoResponse, area), ProtoFieldType::TYPE_MESSAGE, false, 2, 10}}; +const RepeatedFieldMetaV2 DeviceInfoResponse::REPEATED_FIELDS_V2[2] = { + {20, PROTO_FIELD_OFFSET(DeviceInfoResponse, devices), ProtoFieldType::TYPE_MESSAGE, 2, 11}, + {21, PROTO_FIELD_OFFSET(DeviceInfoResponse, areas), ProtoFieldType::TYPE_MESSAGE, 2, 10}}; #ifdef USE_BINARY_SENSOR const FieldMeta ListEntitiesBinarySensorResponse::FIELDS[10] = { {1, @@ -425,6 +473,19 @@ const FieldMeta ListEntitiesBinarySensorResponse::FIELDS[10] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesBinarySensorResponse::FIELDS_V2[10] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, is_status_binary_sensor), ProtoFieldType::TYPE_BOOL, false, + 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesBinarySensorResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BinarySensorStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(BinarySensorStateResponse, key), &encode_fixed32_field, @@ -457,6 +518,11 @@ const FieldMeta BinarySensorStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BinarySensorStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BinarySensorStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BinarySensorStateResponse, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BinarySensorStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(BinarySensorStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif #ifdef USE_COVER const FieldMeta ListEntitiesCoverResponse::FIELDS[13] = { @@ -564,6 +630,20 @@ const FieldMeta ListEntitiesCoverResponse::FIELDS[13] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesCoverResponse::FIELDS_V2[13] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, assumed_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_position), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_tilt), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, supports_stop), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesCoverResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta CoverStateResponse::FIELDS[6] = {{1, PROTO_FIELD_OFFSET(CoverStateResponse, key), &encode_fixed32_field, @@ -612,6 +692,13 @@ const FieldMeta CoverStateResponse::FIELDS[6] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 CoverStateResponse::FIELDS_V2[6] = { + {1, PROTO_FIELD_OFFSET(CoverStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(CoverStateResponse, legacy_state), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(CoverStateResponse, position), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(CoverStateResponse, tilt), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(CoverStateResponse, current_operation), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(CoverStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta CoverCommandRequest::FIELDS[8] = {{1, PROTO_FIELD_OFFSET(CoverCommandRequest, key), &encode_fixed32_field, @@ -676,6 +763,15 @@ const FieldMeta CoverCommandRequest::FIELDS[8] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 CoverCommandRequest::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(CoverCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(CoverCommandRequest, has_legacy_command), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(CoverCommandRequest, legacy_command), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(CoverCommandRequest, has_position), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(CoverCommandRequest, position), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(CoverCommandRequest, has_tilt), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(CoverCommandRequest, tilt), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(CoverCommandRequest, stop), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif #ifdef USE_FAN const FieldMeta ListEntitiesFanResponse::FIELDS[12] = { @@ -783,6 +879,21 @@ const RepeatedFieldMeta ListEntitiesFanResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesFanResponse::FIELDS_V2[12] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_oscillation), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_speed), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supports_direction), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_speed_count), ProtoFieldType::TYPE_INT32, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesFanResponse::REPEATED_FIELDS_V2[1] = { + {12, PROTO_FIELD_OFFSET(ListEntitiesFanResponse, supported_preset_modes), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta FanStateResponse::FIELDS[8] = {{1, PROTO_FIELD_OFFSET(FanStateResponse, key), &encode_fixed32_field, @@ -847,6 +958,15 @@ const FieldMeta FanStateResponse::FIELDS[8] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 FanStateResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(FanStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(FanStateResponse, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(FanStateResponse, oscillating), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(FanStateResponse, speed), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(FanStateResponse, direction), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(FanStateResponse, speed_level), ProtoFieldType::TYPE_INT32, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(FanStateResponse, preset_mode), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(FanStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta FanCommandRequest::FIELDS[13] = {{1, PROTO_FIELD_OFFSET(FanCommandRequest, key), &encode_fixed32_field, @@ -951,6 +1071,20 @@ const FieldMeta FanCommandRequest::FIELDS[13] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 FanCommandRequest::FIELDS_V2[13] = { + {1, PROTO_FIELD_OFFSET(FanCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(FanCommandRequest, has_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(FanCommandRequest, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(FanCommandRequest, has_speed), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(FanCommandRequest, speed), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(FanCommandRequest, has_oscillating), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(FanCommandRequest, oscillating), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(FanCommandRequest, has_direction), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(FanCommandRequest, direction), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(FanCommandRequest, has_speed_level), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(FanCommandRequest, speed_level), ProtoFieldType::TYPE_INT32, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(FanCommandRequest, has_preset_mode), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(FanCommandRequest, preset_mode), ProtoFieldType::TYPE_STRING, false, 1, 0}}; #endif #ifdef USE_LIGHT const FieldMeta ListEntitiesLightResponse::FIELDS[14] = { @@ -1081,6 +1215,27 @@ const RepeatedFieldMeta ListEntitiesLightResponse::REPEATED_FIELDS[2] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesLightResponse::FIELDS_V2[14] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_brightness), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_rgb), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_white_value), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, legacy_supports_color_temperature), ProtoFieldType::TYPE_BOOL, + false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, min_mireds), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, max_mireds), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {15, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {16, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 2, 0}}; +const RepeatedFieldMetaV2 ListEntitiesLightResponse::REPEATED_FIELDS_V2[2] = { + {12, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, supported_color_modes), ProtoFieldType::TYPE_ENUM, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesLightResponse, effects), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta LightStateResponse::FIELDS[14] = {{1, PROTO_FIELD_OFFSET(LightStateResponse, key), &encode_fixed32_field, @@ -1193,6 +1348,21 @@ const FieldMeta LightStateResponse::FIELDS[14] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 LightStateResponse::FIELDS_V2[14] = { + {1, PROTO_FIELD_OFFSET(LightStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(LightStateResponse, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(LightStateResponse, brightness), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(LightStateResponse, color_mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(LightStateResponse, color_brightness), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(LightStateResponse, red), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(LightStateResponse, green), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(LightStateResponse, blue), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(LightStateResponse, white), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(LightStateResponse, color_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(LightStateResponse, cold_white), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(LightStateResponse, warm_white), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(LightStateResponse, effect), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(LightStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta LightCommandRequest::FIELDS[27] = {{1, PROTO_FIELD_OFFSET(LightCommandRequest, key), &encode_fixed32_field, @@ -1409,6 +1579,34 @@ const FieldMeta LightCommandRequest::FIELDS[27] = {{1, 2, 2, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 LightCommandRequest::FIELDS_V2[27] = { + {1, PROTO_FIELD_OFFSET(LightCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(LightCommandRequest, has_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(LightCommandRequest, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(LightCommandRequest, has_brightness), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(LightCommandRequest, brightness), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {22, PROTO_FIELD_OFFSET(LightCommandRequest, has_color_mode), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {23, PROTO_FIELD_OFFSET(LightCommandRequest, color_mode), ProtoFieldType::TYPE_ENUM, false, 2, 0}, + {20, PROTO_FIELD_OFFSET(LightCommandRequest, has_color_brightness), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {21, PROTO_FIELD_OFFSET(LightCommandRequest, color_brightness), ProtoFieldType::TYPE_FLOAT, false, 2, 0}, + {6, PROTO_FIELD_OFFSET(LightCommandRequest, has_rgb), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(LightCommandRequest, red), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(LightCommandRequest, green), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(LightCommandRequest, blue), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(LightCommandRequest, has_white), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(LightCommandRequest, white), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(LightCommandRequest, has_color_temperature), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(LightCommandRequest, color_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {24, PROTO_FIELD_OFFSET(LightCommandRequest, has_cold_white), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {25, PROTO_FIELD_OFFSET(LightCommandRequest, cold_white), ProtoFieldType::TYPE_FLOAT, false, 2, 0}, + {26, PROTO_FIELD_OFFSET(LightCommandRequest, has_warm_white), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {27, PROTO_FIELD_OFFSET(LightCommandRequest, warm_white), ProtoFieldType::TYPE_FLOAT, false, 2, 0}, + {14, PROTO_FIELD_OFFSET(LightCommandRequest, has_transition_length), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {15, PROTO_FIELD_OFFSET(LightCommandRequest, transition_length), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {16, PROTO_FIELD_OFFSET(LightCommandRequest, has_flash_length), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {17, PROTO_FIELD_OFFSET(LightCommandRequest, flash_length), ProtoFieldType::TYPE_UINT32, false, 2, 0}, + {18, PROTO_FIELD_OFFSET(LightCommandRequest, has_effect), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {19, PROTO_FIELD_OFFSET(LightCommandRequest, effect), ProtoFieldType::TYPE_STRING, false, 2, 0}}; #endif #ifdef USE_SENSOR const FieldMeta ListEntitiesSensorResponse::FIELDS[14] = { @@ -1524,6 +1722,22 @@ const FieldMeta ListEntitiesSensorResponse::FIELDS[14] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesSensorResponse::FIELDS_V2[14] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, unit_of_measurement), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, accuracy_decimals), ProtoFieldType::TYPE_INT32, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, force_update), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, state_class), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, legacy_last_reset_type), ProtoFieldType::TYPE_ENUM, false, 1, + 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(ListEntitiesSensorResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta SensorStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(SensorStateResponse, key), &encode_fixed32_field, @@ -1556,6 +1770,11 @@ const FieldMeta SensorStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SensorStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(SensorStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SensorStateResponse, state), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SensorStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(SensorStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif #ifdef USE_SWITCH const FieldMeta ListEntitiesSwitchResponse::FIELDS[10] = { @@ -1639,6 +1858,17 @@ const FieldMeta ListEntitiesSwitchResponse::FIELDS[10] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesSwitchResponse::FIELDS_V2[10] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, assumed_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesSwitchResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta SwitchStateResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(SwitchStateResponse, key), &encode_fixed32_field, @@ -1663,6 +1893,10 @@ const FieldMeta SwitchStateResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SwitchStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(SwitchStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SwitchStateResponse, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SwitchStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta SwitchCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(SwitchCommandRequest, key), &encode_fixed32_field, @@ -1679,6 +1913,9 @@ const FieldMeta SwitchCommandRequest::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 SwitchCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(SwitchCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SwitchCommandRequest, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif #ifdef USE_TEXT_SENSOR const FieldMeta ListEntitiesTextSensorResponse::FIELDS[9] = { @@ -1754,6 +1991,17 @@ const FieldMeta ListEntitiesTextSensorResponse::FIELDS[9] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesTextSensorResponse::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesTextSensorResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta TextSensorStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(TextSensorStateResponse, key), &encode_fixed32_field, @@ -1786,6 +2034,11 @@ const FieldMeta TextSensorStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 TextSensorStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(TextSensorStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(TextSensorStateResponse, state), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(TextSensorStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(TextSensorStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif const FieldMeta SubscribeLogsRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(SubscribeLogsRequest, level), @@ -1803,6 +2056,9 @@ const FieldMeta SubscribeLogsRequest::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 SubscribeLogsRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(SubscribeLogsRequest, level), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SubscribeLogsRequest, dump_config), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta SubscribeLogsResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(SubscribeLogsResponse, level), &encode_enum_field, @@ -1827,6 +2083,10 @@ const FieldMeta SubscribeLogsResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 SubscribeLogsResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(SubscribeLogsResponse, level), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SubscribeLogsResponse, message), ProtoFieldType::TYPE_BYTES, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(SubscribeLogsResponse, send_failed), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #ifdef USE_API_NOISE const FieldMeta NoiseEncryptionSetKeyRequest::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyRequest, key), @@ -1836,6 +2096,8 @@ const FieldMeta NoiseEncryptionSetKeyRequest::FIELDS[1] = {{1, 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 NoiseEncryptionSetKeyRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyRequest, key), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const FieldMeta NoiseEncryptionSetKeyResponse::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyResponse, success), &encode_bool_field, @@ -1844,6 +2106,8 @@ const FieldMeta NoiseEncryptionSetKeyResponse::FIELDS[1] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 NoiseEncryptionSetKeyResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(NoiseEncryptionSetKeyResponse, success), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif const FieldMeta HomeassistantServiceMap::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(HomeassistantServiceMap, key), @@ -1861,6 +2125,9 @@ const FieldMeta HomeassistantServiceMap::FIELDS[2] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 HomeassistantServiceMap::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(HomeassistantServiceMap, key), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(HomeassistantServiceMap, value), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta HomeassistantServiceResponse::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, service), &encode_string_field, @@ -1899,6 +2166,13 @@ const RepeatedFieldMeta HomeassistantServiceResponse::REPEATED_FIELDS[3] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 HomeassistantServiceResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, service), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, is_event), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; +const RepeatedFieldMetaV2 HomeassistantServiceResponse::REPEATED_FIELDS_V2[3] = { + {2, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data), ProtoFieldType::TYPE_MESSAGE, 1, 39}, + {3, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, data_template), ProtoFieldType::TYPE_MESSAGE, 1, 39}, + {4, PROTO_FIELD_OFFSET(HomeassistantServiceResponse, variables), ProtoFieldType::TYPE_MESSAGE, 1, 39}}; const FieldMeta SubscribeHomeAssistantStateResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id), @@ -1924,6 +2198,10 @@ const FieldMeta SubscribeHomeAssistantStateResponse::FIELDS[3] = { 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 SubscribeHomeAssistantStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, entity_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, attribute), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SubscribeHomeAssistantStateResponse, once), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta HomeAssistantStateResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(HomeAssistantStateResponse, entity_id), &encode_string_field, @@ -1948,6 +2226,10 @@ const FieldMeta HomeAssistantStateResponse::FIELDS[3] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 HomeAssistantStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(HomeAssistantStateResponse, entity_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(HomeAssistantStateResponse, state), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(HomeAssistantStateResponse, attribute), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta GetTimeResponse::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(GetTimeResponse, epoch_seconds), &encode_fixed32_field, @@ -1956,6 +2238,8 @@ const FieldMeta GetTimeResponse::FIELDS[1] = {{1, 5, 1, {.decode_32bit = &decode_fixed32_field}}}; +const FieldMetaV2 GetTimeResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(GetTimeResponse, epoch_seconds), ProtoFieldType::TYPE_FIXED32, false, 1, 0}}; const FieldMeta ListEntitiesServicesArgument::FIELDS[2] = { {1, PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, name), @@ -1973,6 +2257,9 @@ const FieldMeta ListEntitiesServicesArgument::FIELDS[2] = { 0, 1, {.decode_varint = &decode_enum_field}}}; +const FieldMetaV2 ListEntitiesServicesArgument::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesServicesArgument, type), ProtoFieldType::TYPE_ENUM, false, 1, 0}}; const FieldMeta ListEntitiesServicesResponse::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, name), &encode_string_field, @@ -1997,6 +2284,11 @@ const RepeatedFieldMeta ListEntitiesServicesResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 ListEntitiesServicesResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesServicesResponse::REPEATED_FIELDS_V2[1] = { + {3, PROTO_FIELD_OFFSET(ListEntitiesServicesResponse, args), ProtoFieldType::TYPE_MESSAGE, 1, 46}}; const FieldMeta ExecuteServiceArgument::FIELDS[5] = {{1, PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_), &encode_bool_field, @@ -2066,6 +2358,17 @@ const RepeatedFieldMeta ExecuteServiceArgument::REPEATED_FIELDS[4] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ExecuteServiceArgument::FIELDS_V2[5] = { + {1, PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ExecuteServiceArgument, legacy_int), ProtoFieldType::TYPE_INT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_), ProtoFieldType::TYPE_SINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ExecuteServiceArgument::REPEATED_FIELDS_V2[4] = { + {6, PROTO_FIELD_OFFSET(ExecuteServiceArgument, bool_array), ProtoFieldType::TYPE_BOOL, 1, 0}, + {7, PROTO_FIELD_OFFSET(ExecuteServiceArgument, int_array), ProtoFieldType::TYPE_SINT32, 1, 0}, + {8, PROTO_FIELD_OFFSET(ExecuteServiceArgument, float_array), ProtoFieldType::TYPE_FLOAT, 1, 0}, + {9, PROTO_FIELD_OFFSET(ExecuteServiceArgument, string_array), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta ExecuteServiceRequest::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(ExecuteServiceRequest, key), &encode_fixed32_field, @@ -2082,6 +2385,10 @@ const RepeatedFieldMeta ExecuteServiceRequest::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 ExecuteServiceRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(ExecuteServiceRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}}; +const RepeatedFieldMetaV2 ExecuteServiceRequest::REPEATED_FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(ExecuteServiceRequest, args), ProtoFieldType::TYPE_MESSAGE, 1, 48}}; #ifdef USE_CAMERA const FieldMeta ListEntitiesCameraResponse::FIELDS[8] = { {1, @@ -2148,6 +2455,15 @@ const FieldMeta ListEntitiesCameraResponse::FIELDS[8] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesCameraResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesCameraResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta CameraImageResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(CameraImageResponse, key), &encode_fixed32_field, @@ -2172,6 +2488,10 @@ const FieldMeta CameraImageResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 CameraImageResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(CameraImageResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(CameraImageResponse, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(CameraImageResponse, done), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta CameraImageRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(CameraImageRequest, single), &encode_bool_field, @@ -2188,6 +2508,9 @@ const FieldMeta CameraImageRequest::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 CameraImageRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(CameraImageRequest, single), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(CameraImageRequest, stream), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif #ifdef USE_CLIMATE const FieldMeta ListEntitiesClimateResponse::FIELDS[20] = { @@ -2394,6 +2717,43 @@ const RepeatedFieldMeta ListEntitiesClimateResponse::REPEATED_FIELDS[6] = { 2, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesClimateResponse::FIELDS_V2[20] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_temperature), ProtoFieldType::TYPE_BOOL, false, + 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_two_point_target_temperature), + ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, + 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, + 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_target_temperature_step), ProtoFieldType::TYPE_FLOAT, + false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, legacy_supports_away), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_action), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {18, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {19, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, icon), ProtoFieldType::TYPE_STRING, false, 2, 0}, + {20, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 2, 0}, + {21, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_current_temperature_step), ProtoFieldType::TYPE_FLOAT, + false, 2, 0}, + {22, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_current_humidity), ProtoFieldType::TYPE_BOOL, false, + 2, 0}, + {23, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supports_target_humidity), ProtoFieldType::TYPE_BOOL, false, 2, + 0}, + {24, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_min_humidity), ProtoFieldType::TYPE_FLOAT, false, 2, 0}, + {25, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, visual_max_humidity), ProtoFieldType::TYPE_FLOAT, false, 2, 0}, + {26, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 2, 0}}; +const RepeatedFieldMetaV2 ListEntitiesClimateResponse::REPEATED_FIELDS_V2[6] = { + {7, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_modes), ProtoFieldType::TYPE_ENUM, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_fan_modes), ProtoFieldType::TYPE_ENUM, 1, 0}, + {14, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_swing_modes), ProtoFieldType::TYPE_ENUM, 1, 0}, + {15, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_fan_modes), ProtoFieldType::TYPE_STRING, 1, + 0}, + {16, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_presets), ProtoFieldType::TYPE_ENUM, 2, 0}, + {17, PROTO_FIELD_OFFSET(ListEntitiesClimateResponse, supported_custom_presets), ProtoFieldType::TYPE_STRING, 2, 0}}; const FieldMeta ClimateStateResponse::FIELDS[16] = {{1, PROTO_FIELD_OFFSET(ClimateStateResponse, key), &encode_fixed32_field, @@ -2522,6 +2882,23 @@ const FieldMeta ClimateStateResponse::FIELDS[16] = {{1, 0, 2, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ClimateStateResponse::FIELDS_V2[16] = { + {1, PROTO_FIELD_OFFSET(ClimateStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ClimateStateResponse, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ClimateStateResponse, current_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_low), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ClimateStateResponse, target_temperature_high), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ClimateStateResponse, unused_legacy_away), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ClimateStateResponse, action), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ClimateStateResponse, fan_mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ClimateStateResponse, swing_mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ClimateStateResponse, custom_fan_mode), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ClimateStateResponse, preset), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ClimateStateResponse, custom_preset), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(ClimateStateResponse, current_humidity), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {15, PROTO_FIELD_OFFSET(ClimateStateResponse, target_humidity), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {16, PROTO_FIELD_OFFSET(ClimateStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 2, 0}}; const FieldMeta ClimateCommandRequest::FIELDS[23] = { {1, PROTO_FIELD_OFFSET(ClimateCommandRequest, key), @@ -2707,6 +3084,30 @@ const FieldMeta ClimateCommandRequest::FIELDS[23] = { 5, 2, {.decode_32bit = &decode_float_field}}}; +const FieldMetaV2 ClimateCommandRequest::FIELDS_V2[23] = { + {1, PROTO_FIELD_OFFSET(ClimateCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_mode), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ClimateCommandRequest, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_low), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_low), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_temperature_high), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ClimateCommandRequest, target_temperature_high), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_has_legacy_away), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ClimateCommandRequest, unused_legacy_away), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_fan_mode), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ClimateCommandRequest, fan_mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_swing_mode), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {15, PROTO_FIELD_OFFSET(ClimateCommandRequest, swing_mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {16, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_fan_mode), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {17, PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_fan_mode), ProtoFieldType::TYPE_STRING, false, 2, 0}, + {18, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_preset), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {19, PROTO_FIELD_OFFSET(ClimateCommandRequest, preset), ProtoFieldType::TYPE_ENUM, false, 2, 0}, + {20, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_custom_preset), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {21, PROTO_FIELD_OFFSET(ClimateCommandRequest, custom_preset), ProtoFieldType::TYPE_STRING, false, 2, 0}, + {22, PROTO_FIELD_OFFSET(ClimateCommandRequest, has_target_humidity), ProtoFieldType::TYPE_BOOL, false, 2, 0}, + {23, PROTO_FIELD_OFFSET(ClimateCommandRequest, target_humidity), ProtoFieldType::TYPE_FLOAT, false, 2, 0}}; #endif #ifdef USE_NUMBER const FieldMeta ListEntitiesNumberResponse::FIELDS[14] = { @@ -2822,6 +3223,21 @@ const FieldMeta ListEntitiesNumberResponse::FIELDS[14] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesNumberResponse::FIELDS_V2[14] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, min_value), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, max_value), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, step), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, unit_of_measurement), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {13, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {14, PROTO_FIELD_OFFSET(ListEntitiesNumberResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta NumberStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(NumberStateResponse, key), &encode_fixed32_field, @@ -2854,6 +3270,11 @@ const FieldMeta NumberStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 NumberStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(NumberStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(NumberStateResponse, state), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(NumberStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(NumberStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta NumberCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(NumberCommandRequest, key), &encode_fixed32_field, @@ -2870,6 +3291,9 @@ const FieldMeta NumberCommandRequest::FIELDS[2] = {{1, 5, 1, {.decode_32bit = &decode_float_field}}}; +const FieldMetaV2 NumberCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(NumberCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(NumberCommandRequest, state), ProtoFieldType::TYPE_FLOAT, false, 1, 0}}; #endif #ifdef USE_SELECT const FieldMeta ListEntitiesSelectResponse::FIELDS[8] = { @@ -2945,6 +3369,17 @@ const RepeatedFieldMeta ListEntitiesSelectResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesSelectResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesSelectResponse::REPEATED_FIELDS_V2[1] = { + {6, PROTO_FIELD_OFFSET(ListEntitiesSelectResponse, options), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta SelectStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(SelectStateResponse, key), &encode_fixed32_field, @@ -2977,6 +3412,11 @@ const FieldMeta SelectStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SelectStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(SelectStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SelectStateResponse, state), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SelectStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(SelectStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta SelectCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(SelectCommandRequest, key), &encode_fixed32_field, @@ -2993,6 +3433,9 @@ const FieldMeta SelectCommandRequest::FIELDS[2] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 SelectCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(SelectCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SelectCommandRequest, state), ProtoFieldType::TYPE_STRING, false, 1, 0}}; #endif #ifdef USE_SIREN const FieldMeta ListEntitiesSirenResponse::FIELDS[10] = { @@ -3084,6 +3527,19 @@ const RepeatedFieldMeta ListEntitiesSirenResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesSirenResponse::FIELDS_V2[10] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_duration), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, supports_volume), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesSirenResponse::REPEATED_FIELDS_V2[1] = { + {7, PROTO_FIELD_OFFSET(ListEntitiesSirenResponse, tones), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta SirenStateResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(SirenStateResponse, key), &encode_fixed32_field, @@ -3108,6 +3564,10 @@ const FieldMeta SirenStateResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SirenStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(SirenStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SirenStateResponse, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SirenStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta SirenCommandRequest::FIELDS[9] = {{1, PROTO_FIELD_OFFSET(SirenCommandRequest, key), &encode_fixed32_field, @@ -3180,6 +3640,16 @@ const FieldMeta SirenCommandRequest::FIELDS[9] = {{1, 5, 1, {.decode_32bit = &decode_float_field}}}; +const FieldMetaV2 SirenCommandRequest::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(SirenCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SirenCommandRequest, has_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(SirenCommandRequest, state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(SirenCommandRequest, has_tone), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(SirenCommandRequest, tone), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(SirenCommandRequest, has_duration), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(SirenCommandRequest, duration), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(SirenCommandRequest, has_volume), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(SirenCommandRequest, volume), ProtoFieldType::TYPE_FLOAT, false, 1, 0}}; #endif #ifdef USE_LOCK const FieldMeta ListEntitiesLockResponse::FIELDS[12] = { @@ -3279,6 +3749,19 @@ const FieldMeta ListEntitiesLockResponse::FIELDS[12] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesLockResponse::FIELDS_V2[12] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, assumed_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, supports_open), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, requires_code), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, code_format), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesLockResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta LockStateResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(LockStateResponse, key), &encode_fixed32_field, @@ -3303,6 +3786,10 @@ const FieldMeta LockStateResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 LockStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(LockStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(LockStateResponse, state), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(LockStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta LockCommandRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(LockCommandRequest, key), &encode_fixed32_field, @@ -3335,6 +3822,11 @@ const FieldMeta LockCommandRequest::FIELDS[4] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 LockCommandRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(LockCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(LockCommandRequest, command), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(LockCommandRequest, has_code), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(LockCommandRequest, code), ProtoFieldType::TYPE_STRING, false, 1, 0}}; #endif #ifdef USE_BUTTON const FieldMeta ListEntitiesButtonResponse::FIELDS[9] = { @@ -3410,6 +3902,16 @@ const FieldMeta ListEntitiesButtonResponse::FIELDS[9] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesButtonResponse::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesButtonResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta ButtonCommandRequest::FIELDS[1] = {{1, PROTO_FIELD_OFFSET(ButtonCommandRequest, key), &encode_fixed32_field, @@ -3418,6 +3920,8 @@ const FieldMeta ButtonCommandRequest::FIELDS[1] = {{1, 5, 1, {.decode_32bit = &decode_fixed32_field}}}; +const FieldMetaV2 ButtonCommandRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(ButtonCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}}; #endif #ifdef USE_MEDIA_PLAYER const FieldMeta MediaPlayerSupportedFormat::FIELDS[5] = { @@ -3461,6 +3965,12 @@ const FieldMeta MediaPlayerSupportedFormat::FIELDS[5] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 MediaPlayerSupportedFormat::FIELDS_V2[5] = { + {1, PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, format), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_rate), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, num_channels), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, purpose), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(MediaPlayerSupportedFormat, sample_bytes), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta ListEntitiesMediaPlayerResponse::FIELDS[9] = { {1, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, object_id), @@ -3542,6 +4052,19 @@ const RepeatedFieldMeta ListEntitiesMediaPlayerResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 ListEntitiesMediaPlayerResponse::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supports_pause), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesMediaPlayerResponse::REPEATED_FIELDS_V2[1] = { + {9, PROTO_FIELD_OFFSET(ListEntitiesMediaPlayerResponse, supported_formats), ProtoFieldType::TYPE_MESSAGE, 1, 70}}; const FieldMeta MediaPlayerStateResponse::FIELDS[5] = {{1, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key), &encode_fixed32_field, @@ -3582,6 +4105,12 @@ const FieldMeta MediaPlayerStateResponse::FIELDS[5] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 MediaPlayerStateResponse::FIELDS_V2[5] = { + {1, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, state), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, volume), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, muted), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(MediaPlayerStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta MediaPlayerCommandRequest::FIELDS[9] = { {1, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, key), @@ -3655,6 +4184,16 @@ const FieldMeta MediaPlayerCommandRequest::FIELDS[9] = { 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 MediaPlayerCommandRequest::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_command), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, command), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_volume), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, volume), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_media_url), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, media_url), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, has_announcement), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(MediaPlayerCommandRequest, announcement), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif #ifdef USE_BLUETOOTH_PROXY const FieldMeta SubscribeBluetoothLEAdvertisementsRequest::FIELDS[1] = { @@ -3666,6 +4205,9 @@ const FieldMeta SubscribeBluetoothLEAdvertisementsRequest::FIELDS[1] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SubscribeBluetoothLEAdvertisementsRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(SubscribeBluetoothLEAdvertisementsRequest, flags), ProtoFieldType::TYPE_UINT32, false, 1, + 0}}; const FieldMeta BluetoothServiceData::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(BluetoothServiceData, uuid), &encode_string_field, @@ -3690,6 +4232,11 @@ const RepeatedFieldMeta BluetoothServiceData::REPEATED_FIELDS[1] = { 1, 0, {.decode_varint = &decode_repeated_uint32_field}}}; +const FieldMetaV2 BluetoothServiceData::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothServiceData, uuid), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothServiceData, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothServiceData::REPEATED_FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(BluetoothServiceData, legacy_data), ProtoFieldType::TYPE_UINT32, 1, 0}}; const FieldMeta BluetoothLEAdvertisementResponse::FIELDS[4] = { {1, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address), @@ -3745,6 +4292,15 @@ const RepeatedFieldMeta BluetoothLEAdvertisementResponse::REPEATED_FIELDS[3] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 BluetoothLEAdvertisementResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, name), ProtoFieldType::TYPE_BYTES, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, rssi), ProtoFieldType::TYPE_SINT32, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, address_type), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothLEAdvertisementResponse::REPEATED_FIELDS_V2[3] = { + {4, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_uuids), ProtoFieldType::TYPE_STRING, 1, 0}, + {5, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, service_data), ProtoFieldType::TYPE_MESSAGE, 1, 75}, + {6, PROTO_FIELD_OFFSET(BluetoothLEAdvertisementResponse, manufacturer_data), ProtoFieldType::TYPE_MESSAGE, 1, 75}}; const FieldMeta BluetoothLERawAdvertisement::FIELDS[4] = { {1, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address), @@ -3778,6 +4334,11 @@ const FieldMeta BluetoothLERawAdvertisement::FIELDS[4] = { 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 BluetoothLERawAdvertisement::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, rssi), ProtoFieldType::TYPE_SINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, address_type), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisement, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const RepeatedFieldMeta BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS[1] = { {1, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements), @@ -3786,6 +4347,8 @@ const RepeatedFieldMeta BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS[1] 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const RepeatedFieldMetaV2 BluetoothLERawAdvertisementsResponse::REPEATED_FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothLERawAdvertisementsResponse, advertisements), ProtoFieldType::TYPE_MESSAGE, 1, 77}}; const FieldMeta BluetoothDeviceRequest::FIELDS[4] = { {1, PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address), @@ -3819,6 +4382,11 @@ const FieldMeta BluetoothDeviceRequest::FIELDS[4] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BluetoothDeviceRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothDeviceRequest, request_type), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothDeviceRequest, has_address_type), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(BluetoothDeviceRequest, address_type), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BluetoothDeviceConnectionResponse::FIELDS[4] = { {1, PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, address), @@ -3852,6 +4420,11 @@ const FieldMeta BluetoothDeviceConnectionResponse::FIELDS[4] = { 0, 1, {.decode_varint = &decode_int32_field}}}; +const FieldMetaV2 BluetoothDeviceConnectionResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, connected), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, mtu), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(BluetoothDeviceConnectionResponse, error), ProtoFieldType::TYPE_INT32, false, 1, 0}}; const FieldMeta BluetoothGATTGetServicesRequest::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesRequest, address), @@ -3861,6 +4434,8 @@ const FieldMeta BluetoothGATTGetServicesRequest::FIELDS[1] = { 0, 1, {.decode_varint = &decode_uint64_field}}}; +const FieldMetaV2 BluetoothGATTGetServicesRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}}; const FieldMeta BluetoothGATTDescriptor::FIELDS[1] = {{2, PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, handle), &encode_uint32_field, @@ -3877,6 +4452,10 @@ const RepeatedFieldMeta BluetoothGATTDescriptor::REPEATED_FIELDS[1] = { 1, 0, {.decode_varint = &decode_repeated_uint64_field}}}; +const FieldMetaV2 BluetoothGATTDescriptor::FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothGATTDescriptor::REPEATED_FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTDescriptor, uuid), ProtoFieldType::TYPE_UINT64, 1, 0}}; const FieldMeta BluetoothGATTCharacteristic::FIELDS[2] = {{2, PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, handle), &encode_uint32_field, @@ -3908,6 +4487,12 @@ const RepeatedFieldMeta BluetoothGATTCharacteristic::REPEATED_FIELDS[2] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 BluetoothGATTCharacteristic::FIELDS_V2[2] = { + {2, PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, properties), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothGATTCharacteristic::REPEATED_FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, uuid), ProtoFieldType::TYPE_UINT64, 1, 0}, + {4, PROTO_FIELD_OFFSET(BluetoothGATTCharacteristic, descriptors), ProtoFieldType::TYPE_MESSAGE, 1, 82}}; const FieldMeta BluetoothGATTService::FIELDS[1] = {{2, PROTO_FIELD_OFFSET(BluetoothGATTService, handle), &encode_uint32_field, @@ -3931,6 +4516,11 @@ const RepeatedFieldMeta BluetoothGATTService::REPEATED_FIELDS[2] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 BluetoothGATTService::FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(BluetoothGATTService, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothGATTService::REPEATED_FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTService, uuid), ProtoFieldType::TYPE_UINT64, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTService, characteristics), ProtoFieldType::TYPE_MESSAGE, 1, 83}}; const FieldMeta BluetoothGATTGetServicesResponse::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, address), @@ -3948,6 +4538,10 @@ const RepeatedFieldMeta BluetoothGATTGetServicesResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 BluetoothGATTGetServicesResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothGATTGetServicesResponse::REPEATED_FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesResponse, services), ProtoFieldType::TYPE_MESSAGE, 1, 84}}; const FieldMeta BluetoothGATTGetServicesDoneResponse::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesDoneResponse, address), @@ -3957,6 +4551,8 @@ const FieldMeta BluetoothGATTGetServicesDoneResponse::FIELDS[1] = { 0, 1, {.decode_varint = &decode_uint64_field}}}; +const FieldMetaV2 BluetoothGATTGetServicesDoneResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTGetServicesDoneResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}}; const FieldMeta BluetoothGATTReadRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, address), &encode_uint64_field, @@ -3973,6 +4569,9 @@ const FieldMeta BluetoothGATTReadRequest::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BluetoothGATTReadRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTReadRequest, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BluetoothGATTReadResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, address), &encode_uint64_field, @@ -3997,6 +4596,10 @@ const FieldMeta BluetoothGATTReadResponse::FIELDS[3] = {{1, 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 BluetoothGATTReadResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTReadResponse, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const FieldMeta BluetoothGATTWriteRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, address), &encode_uint64_field, @@ -4029,6 +4632,11 @@ const FieldMeta BluetoothGATTWriteRequest::FIELDS[4] = {{1, 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 BluetoothGATTWriteRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, response), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(BluetoothGATTWriteRequest, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const FieldMeta BluetoothGATTReadDescriptorRequest::FIELDS[2] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, address), @@ -4046,6 +4654,9 @@ const FieldMeta BluetoothGATTReadDescriptorRequest::FIELDS[2] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BluetoothGATTReadDescriptorRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTReadDescriptorRequest, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BluetoothGATTWriteDescriptorRequest::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, address), @@ -4071,6 +4682,10 @@ const FieldMeta BluetoothGATTWriteDescriptorRequest::FIELDS[3] = { 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 BluetoothGATTWriteDescriptorRequest::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTWriteDescriptorRequest, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const FieldMeta BluetoothGATTNotifyRequest::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, address), &encode_uint64_field, @@ -4095,6 +4710,10 @@ const FieldMeta BluetoothGATTNotifyRequest::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 BluetoothGATTNotifyRequest::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTNotifyRequest, enable), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta BluetoothGATTNotifyDataResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, address), @@ -4120,6 +4739,10 @@ const FieldMeta BluetoothGATTNotifyDataResponse::FIELDS[3] = { 2, 1, {.decode_length = &decode_bytes_field}}}; +const FieldMetaV2 BluetoothGATTNotifyDataResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTNotifyDataResponse, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}}; const FieldMeta BluetoothConnectionsFreeResponse::FIELDS[2] = { {1, PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, free), @@ -4145,6 +4768,11 @@ const RepeatedFieldMeta BluetoothConnectionsFreeResponse::REPEATED_FIELDS[1] = { 1, 0, {.decode_varint = &decode_repeated_uint64_field}}}; +const FieldMetaV2 BluetoothConnectionsFreeResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, free), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, limit), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 BluetoothConnectionsFreeResponse::REPEATED_FIELDS_V2[1] = { + {3, PROTO_FIELD_OFFSET(BluetoothConnectionsFreeResponse, allocated), ProtoFieldType::TYPE_UINT64, 1, 0}}; const FieldMeta BluetoothGATTErrorResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, address), &encode_uint64_field, @@ -4169,6 +4797,10 @@ const FieldMeta BluetoothGATTErrorResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_int32_field}}}; +const FieldMetaV2 BluetoothGATTErrorResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothGATTErrorResponse, error), ProtoFieldType::TYPE_INT32, false, 1, 0}}; const FieldMeta BluetoothGATTWriteResponse::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, address), &encode_uint64_field, @@ -4185,6 +4817,9 @@ const FieldMeta BluetoothGATTWriteResponse::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BluetoothGATTWriteResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTWriteResponse, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BluetoothGATTNotifyResponse::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, address), &encode_uint64_field, @@ -4201,6 +4836,9 @@ const FieldMeta BluetoothGATTNotifyResponse::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 BluetoothGATTNotifyResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothGATTNotifyResponse, handle), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta BluetoothDevicePairingResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, address), @@ -4226,6 +4864,10 @@ const FieldMeta BluetoothDevicePairingResponse::FIELDS[3] = { 0, 1, {.decode_varint = &decode_int32_field}}}; +const FieldMetaV2 BluetoothDevicePairingResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, paired), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothDevicePairingResponse, error), ProtoFieldType::TYPE_INT32, false, 1, 0}}; const FieldMeta BluetoothDeviceUnpairingResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, address), @@ -4251,6 +4893,10 @@ const FieldMeta BluetoothDeviceUnpairingResponse::FIELDS[3] = { 0, 1, {.decode_varint = &decode_int32_field}}}; +const FieldMetaV2 BluetoothDeviceUnpairingResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, success), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothDeviceUnpairingResponse, error), ProtoFieldType::TYPE_INT32, false, 1, 0}}; const FieldMeta BluetoothDeviceClearCacheResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, address), @@ -4276,6 +4922,10 @@ const FieldMeta BluetoothDeviceClearCacheResponse::FIELDS[3] = { 0, 1, {.decode_varint = &decode_int32_field}}}; +const FieldMetaV2 BluetoothDeviceClearCacheResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, address), ProtoFieldType::TYPE_UINT64, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, success), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(BluetoothDeviceClearCacheResponse, error), ProtoFieldType::TYPE_INT32, false, 1, 0}}; const FieldMeta BluetoothScannerStateResponse::FIELDS[2] = { {1, PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, state), @@ -4293,6 +4943,9 @@ const FieldMeta BluetoothScannerStateResponse::FIELDS[2] = { 0, 1, {.decode_varint = &decode_enum_field}}}; +const FieldMetaV2 BluetoothScannerStateResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, state), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(BluetoothScannerStateResponse, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}}; const FieldMeta BluetoothScannerSetModeRequest::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(BluetoothScannerSetModeRequest, mode), @@ -4302,6 +4955,8 @@ const FieldMeta BluetoothScannerSetModeRequest::FIELDS[1] = { 0, 1, {.decode_varint = &decode_enum_field}}}; +const FieldMetaV2 BluetoothScannerSetModeRequest::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(BluetoothScannerSetModeRequest, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}}; #endif #ifdef USE_VOICE_ASSISTANT const FieldMeta SubscribeVoiceAssistantRequest::FIELDS[2] = { @@ -4321,6 +4976,9 @@ const FieldMeta SubscribeVoiceAssistantRequest::FIELDS[2] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 SubscribeVoiceAssistantRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, subscribe), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(SubscribeVoiceAssistantRequest, flags), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta VoiceAssistantAudioSettings::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, noise_suppression_level), @@ -4346,6 +5004,11 @@ const FieldMeta VoiceAssistantAudioSettings::FIELDS[3] = { 5, 1, {.decode_32bit = &decode_float_field}}}; +const FieldMetaV2 VoiceAssistantAudioSettings::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, noise_suppression_level), ProtoFieldType::TYPE_UINT32, false, 1, + 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, auto_gain), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(VoiceAssistantAudioSettings, volume_multiplier), ProtoFieldType::TYPE_FLOAT, false, 1, 0}}; const FieldMeta VoiceAssistantRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(VoiceAssistantRequest, start), &encode_bool_field, @@ -4378,6 +5041,12 @@ const FieldMeta VoiceAssistantRequest::FIELDS[4] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 VoiceAssistantRequest::FIELDS_V2[5] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantRequest, start), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantRequest, conversation_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(VoiceAssistantRequest, flags), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(VoiceAssistantRequest, audio_settings), ProtoFieldType::TYPE_MESSAGE, false, 1, 106}, + {5, PROTO_FIELD_OFFSET(VoiceAssistantRequest, wake_word_phrase), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta VoiceAssistantResponse::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(VoiceAssistantResponse, port), &encode_uint32_field, @@ -4394,6 +5063,9 @@ const FieldMeta VoiceAssistantResponse::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 VoiceAssistantResponse::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantResponse, port), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantResponse, error), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta VoiceAssistantEventData::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(VoiceAssistantEventData, name), &encode_string_field, @@ -4410,6 +5082,9 @@ const FieldMeta VoiceAssistantEventData::FIELDS[2] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 VoiceAssistantEventData::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantEventData, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantEventData, value), ProtoFieldType::TYPE_STRING, false, 1, 0}}; const FieldMeta VoiceAssistantEventResponse::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, event_type), @@ -4427,6 +5102,10 @@ const RepeatedFieldMeta VoiceAssistantEventResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_message_field}}}; +const FieldMetaV2 VoiceAssistantEventResponse::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, event_type), ProtoFieldType::TYPE_ENUM, false, 1, 0}}; +const RepeatedFieldMetaV2 VoiceAssistantEventResponse::REPEATED_FIELDS_V2[1] = { + {2, PROTO_FIELD_OFFSET(VoiceAssistantEventResponse, data), ProtoFieldType::TYPE_MESSAGE, 1, 109}}; const FieldMeta VoiceAssistantAudio::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(VoiceAssistantAudio, data), &encode_bytes_field, @@ -4443,6 +5122,9 @@ const FieldMeta VoiceAssistantAudio::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 VoiceAssistantAudio::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantAudio, data), ProtoFieldType::TYPE_BYTES, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantAudio, end), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta VoiceAssistantTimerEventResponse::FIELDS[6] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, event_type), @@ -4492,6 +5174,13 @@ const FieldMeta VoiceAssistantTimerEventResponse::FIELDS[6] = { 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 VoiceAssistantTimerEventResponse::FIELDS_V2[6] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, event_type), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, timer_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, total_seconds), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, seconds_left), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(VoiceAssistantTimerEventResponse, is_active), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta VoiceAssistantAnnounceRequest::FIELDS[4] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, media_id), @@ -4525,6 +5214,12 @@ const FieldMeta VoiceAssistantAnnounceRequest::FIELDS[4] = { 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 VoiceAssistantAnnounceRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, media_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, text), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, preannounce_media_id), ProtoFieldType::TYPE_STRING, false, 1, + 0}, + {4, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceRequest, start_conversation), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta VoiceAssistantAnnounceFinished::FIELDS[1] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceFinished, success), @@ -4534,6 +5229,8 @@ const FieldMeta VoiceAssistantAnnounceFinished::FIELDS[1] = { 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 VoiceAssistantAnnounceFinished::FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantAnnounceFinished, success), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; const FieldMeta VoiceAssistantWakeWord::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, id), &encode_string_field, @@ -4558,6 +5255,11 @@ const RepeatedFieldMeta VoiceAssistantWakeWord::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 VoiceAssistantWakeWord::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, wake_word), ProtoFieldType::TYPE_STRING, false, 1, 0}}; +const RepeatedFieldMetaV2 VoiceAssistantWakeWord::REPEATED_FIELDS_V2[1] = { + {3, PROTO_FIELD_OFFSET(VoiceAssistantWakeWord, trained_languages), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta VoiceAssistantConfigurationResponse::FIELDS[1] = { {3, PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, max_active_wake_words), @@ -4582,6 +5284,13 @@ const RepeatedFieldMeta VoiceAssistantConfigurationResponse::REPEATED_FIELDS[2] 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 VoiceAssistantConfigurationResponse::FIELDS_V2[1] = { + {3, PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, max_active_wake_words), ProtoFieldType::TYPE_UINT32, + false, 1, 0}}; +const RepeatedFieldMetaV2 VoiceAssistantConfigurationResponse::REPEATED_FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, available_wake_words), ProtoFieldType::TYPE_MESSAGE, 1, + 115}, + {2, PROTO_FIELD_OFFSET(VoiceAssistantConfigurationResponse, active_wake_words), ProtoFieldType::TYPE_STRING, 1, 0}}; const RepeatedFieldMeta VoiceAssistantSetConfiguration::REPEATED_FIELDS[1] = { {1, PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words), @@ -4590,6 +5299,8 @@ const RepeatedFieldMeta VoiceAssistantSetConfiguration::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const RepeatedFieldMetaV2 VoiceAssistantSetConfiguration::REPEATED_FIELDS_V2[1] = { + {1, PROTO_FIELD_OFFSET(VoiceAssistantSetConfiguration, active_wake_words), ProtoFieldType::TYPE_STRING, 1, 0}}; #endif #ifdef USE_ALARM_CONTROL_PANEL const FieldMeta ListEntitiesAlarmControlPanelResponse::FIELDS[11] = { @@ -4681,6 +5392,24 @@ const FieldMeta ListEntitiesAlarmControlPanelResponse::FIELDS[11] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesAlarmControlPanelResponse::FIELDS_V2[11] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, + false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, + 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, supported_features), ProtoFieldType::TYPE_UINT32, + false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code), ProtoFieldType::TYPE_BOOL, false, 1, + 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, requires_code_to_arm), ProtoFieldType::TYPE_BOOL, + false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesAlarmControlPanelResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, + 0}}; const FieldMeta AlarmControlPanelStateResponse::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, key), @@ -4706,6 +5435,10 @@ const FieldMeta AlarmControlPanelStateResponse::FIELDS[3] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 AlarmControlPanelStateResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, state), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(AlarmControlPanelStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta AlarmControlPanelCommandRequest::FIELDS[3] = { {1, PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, key), @@ -4731,6 +5464,10 @@ const FieldMeta AlarmControlPanelCommandRequest::FIELDS[3] = { 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 AlarmControlPanelCommandRequest::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, command), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(AlarmControlPanelCommandRequest, code), ProtoFieldType::TYPE_STRING, false, 1, 0}}; #endif #ifdef USE_TEXT const FieldMeta ListEntitiesTextResponse::FIELDS[12] = { @@ -4830,6 +5567,19 @@ const FieldMeta ListEntitiesTextResponse::FIELDS[12] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesTextResponse::FIELDS_V2[12] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, min_length), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, max_length), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, pattern), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, mode), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesTextResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta TextStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(TextStateResponse, key), &encode_fixed32_field, @@ -4862,6 +5612,11 @@ const FieldMeta TextStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 TextStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(TextStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(TextStateResponse, state), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(TextStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(TextStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta TextCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(TextCommandRequest, key), &encode_fixed32_field, @@ -4878,6 +5633,9 @@ const FieldMeta TextCommandRequest::FIELDS[2] = {{1, 2, 1, {.decode_length = &decode_string_field}}}; +const FieldMetaV2 TextCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(TextCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(TextCommandRequest, state), ProtoFieldType::TYPE_STRING, false, 1, 0}}; #endif #ifdef USE_DATETIME_DATE const FieldMeta ListEntitiesDateResponse::FIELDS[8] = { @@ -4945,6 +5703,15 @@ const FieldMeta ListEntitiesDateResponse::FIELDS[8] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesDateResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesDateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta DateStateResponse::FIELDS[6] = {{1, PROTO_FIELD_OFFSET(DateStateResponse, key), &encode_fixed32_field, @@ -4993,6 +5760,13 @@ const FieldMeta DateStateResponse::FIELDS[6] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 DateStateResponse::FIELDS_V2[6] = { + {1, PROTO_FIELD_OFFSET(DateStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DateStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(DateStateResponse, year), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(DateStateResponse, month), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(DateStateResponse, day), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(DateStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta DateCommandRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(DateCommandRequest, key), &encode_fixed32_field, @@ -5025,6 +5799,11 @@ const FieldMeta DateCommandRequest::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 DateCommandRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(DateCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DateCommandRequest, year), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(DateCommandRequest, month), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(DateCommandRequest, day), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif #ifdef USE_DATETIME_TIME const FieldMeta ListEntitiesTimeResponse::FIELDS[8] = { @@ -5092,6 +5871,15 @@ const FieldMeta ListEntitiesTimeResponse::FIELDS[8] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesTimeResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesTimeResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta TimeStateResponse::FIELDS[6] = {{1, PROTO_FIELD_OFFSET(TimeStateResponse, key), &encode_fixed32_field, @@ -5140,6 +5928,13 @@ const FieldMeta TimeStateResponse::FIELDS[6] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 TimeStateResponse::FIELDS_V2[6] = { + {1, PROTO_FIELD_OFFSET(TimeStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(TimeStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(TimeStateResponse, hour), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(TimeStateResponse, minute), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(TimeStateResponse, second), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(TimeStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta TimeCommandRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(TimeCommandRequest, key), &encode_fixed32_field, @@ -5172,6 +5967,11 @@ const FieldMeta TimeCommandRequest::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 TimeCommandRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(TimeCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(TimeCommandRequest, hour), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(TimeCommandRequest, minute), ProtoFieldType::TYPE_UINT32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(TimeCommandRequest, second), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif #ifdef USE_EVENT const FieldMeta ListEntitiesEventResponse::FIELDS[9] = { @@ -5255,6 +6055,18 @@ const RepeatedFieldMeta ListEntitiesEventResponse::REPEATED_FIELDS[1] = { 1, 2, {.decode_length = &decode_repeated_string_field}}}; +const FieldMetaV2 ListEntitiesEventResponse::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; +const RepeatedFieldMetaV2 ListEntitiesEventResponse::REPEATED_FIELDS_V2[1] = { + {9, PROTO_FIELD_OFFSET(ListEntitiesEventResponse, event_types), ProtoFieldType::TYPE_STRING, 1, 0}}; const FieldMeta EventResponse::FIELDS[3] = {{1, PROTO_FIELD_OFFSET(EventResponse, key), &encode_fixed32_field, @@ -5279,6 +6091,10 @@ const FieldMeta EventResponse::FIELDS[3] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 EventResponse::FIELDS_V2[3] = { + {1, PROTO_FIELD_OFFSET(EventResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(EventResponse, event_type), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(EventResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; #endif #ifdef USE_VALVE const FieldMeta ListEntitiesValveResponse::FIELDS[12] = { @@ -5378,6 +6194,19 @@ const FieldMeta ListEntitiesValveResponse::FIELDS[12] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesValveResponse::FIELDS_V2[12] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, assumed_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_position), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, supports_stop), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {12, PROTO_FIELD_OFFSET(ListEntitiesValveResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta ValveStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(ValveStateResponse, key), &encode_fixed32_field, @@ -5410,6 +6239,11 @@ const FieldMeta ValveStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ValveStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(ValveStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ValveStateResponse, position), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ValveStateResponse, current_operation), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ValveStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta ValveCommandRequest::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(ValveCommandRequest, key), &encode_fixed32_field, @@ -5442,6 +6276,11 @@ const FieldMeta ValveCommandRequest::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_bool_field}}}; +const FieldMetaV2 ValveCommandRequest::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(ValveCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ValveCommandRequest, has_position), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ValveCommandRequest, position), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ValveCommandRequest, stop), ProtoFieldType::TYPE_BOOL, false, 1, 0}}; #endif #ifdef USE_DATETIME_DATETIME const FieldMeta ListEntitiesDateTimeResponse::FIELDS[8] = { @@ -5509,6 +6348,15 @@ const FieldMeta ListEntitiesDateTimeResponse::FIELDS[8] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesDateTimeResponse::FIELDS_V2[8] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesDateTimeResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta DateTimeStateResponse::FIELDS[4] = {{1, PROTO_FIELD_OFFSET(DateTimeStateResponse, key), &encode_fixed32_field, @@ -5541,6 +6389,11 @@ const FieldMeta DateTimeStateResponse::FIELDS[4] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 DateTimeStateResponse::FIELDS_V2[4] = { + {1, PROTO_FIELD_OFFSET(DateTimeStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DateTimeStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(DateTimeStateResponse, epoch_seconds), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(DateTimeStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta DateTimeCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(DateTimeCommandRequest, key), &encode_fixed32_field, @@ -5557,6 +6410,9 @@ const FieldMeta DateTimeCommandRequest::FIELDS[2] = {{1, 5, 1, {.decode_32bit = &decode_fixed32_field}}}; +const FieldMetaV2 DateTimeCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(DateTimeCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(DateTimeCommandRequest, epoch_seconds), ProtoFieldType::TYPE_FIXED32, false, 1, 0}}; #endif #ifdef USE_UPDATE const FieldMeta ListEntitiesUpdateResponse::FIELDS[9] = { @@ -5632,6 +6488,16 @@ const FieldMeta ListEntitiesUpdateResponse::FIELDS[9] = { 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 ListEntitiesUpdateResponse::FIELDS_V2[9] = { + {1, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, object_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, name), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, unique_id), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, icon), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, disabled_by_default), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, entity_category), ProtoFieldType::TYPE_ENUM, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_class), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(ListEntitiesUpdateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta UpdateStateResponse::FIELDS[11] = {{1, PROTO_FIELD_OFFSET(UpdateStateResponse, key), &encode_fixed32_field, @@ -5720,6 +6586,18 @@ const FieldMeta UpdateStateResponse::FIELDS[11] = {{1, 0, 1, {.decode_varint = &decode_uint32_field}}}; +const FieldMetaV2 UpdateStateResponse::FIELDS_V2[11] = { + {1, PROTO_FIELD_OFFSET(UpdateStateResponse, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(UpdateStateResponse, missing_state), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {3, PROTO_FIELD_OFFSET(UpdateStateResponse, in_progress), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {4, PROTO_FIELD_OFFSET(UpdateStateResponse, has_progress), ProtoFieldType::TYPE_BOOL, false, 1, 0}, + {5, PROTO_FIELD_OFFSET(UpdateStateResponse, progress), ProtoFieldType::TYPE_FLOAT, false, 1, 0}, + {6, PROTO_FIELD_OFFSET(UpdateStateResponse, current_version), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {7, PROTO_FIELD_OFFSET(UpdateStateResponse, latest_version), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {8, PROTO_FIELD_OFFSET(UpdateStateResponse, title), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {9, PROTO_FIELD_OFFSET(UpdateStateResponse, release_summary), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {10, PROTO_FIELD_OFFSET(UpdateStateResponse, release_url), ProtoFieldType::TYPE_STRING, false, 1, 0}, + {11, PROTO_FIELD_OFFSET(UpdateStateResponse, device_id), ProtoFieldType::TYPE_UINT32, false, 1, 0}}; const FieldMeta UpdateCommandRequest::FIELDS[2] = {{1, PROTO_FIELD_OFFSET(UpdateCommandRequest, key), &encode_fixed32_field, @@ -5736,7 +6614,6171 @@ const FieldMeta UpdateCommandRequest::FIELDS[2] = {{1, 0, 1, {.decode_varint = &decode_enum_field}}}; +const FieldMetaV2 UpdateCommandRequest::FIELDS_V2[2] = { + {1, PROTO_FIELD_OFFSET(UpdateCommandRequest, key), ProtoFieldType::TYPE_FIXED32, false, 1, 0}, + {2, PROTO_FIELD_OFFSET(UpdateCommandRequest, command), ProtoFieldType::TYPE_ENUM, false, 1, 0}}; #endif +// Message type handler implementations +void encode_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, + uint8_t message_type_id) { + switch (message_type_id) { + case 1: { + const HelloRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 2: { + const HelloResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 3: { + const ConnectRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 4: { + const ConnectResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 5: { + const DisconnectRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 6: { + const DisconnectResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 7: { + const PingRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 8: { + const PingResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 9: { + const DeviceInfoRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 10: { + const AreaInfo *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 11: { + const DeviceInfo *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 12: { + const DeviceInfoResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 13: { + const ListEntitiesRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 14: { + const ListEntitiesDoneResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 15: { + const SubscribeStatesRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + const ListEntitiesBinarySensorResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + const BinarySensorStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_COVER + case 18: { + const ListEntitiesCoverResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_COVER + case 19: { + const CoverStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_COVER + case 20: { + const CoverCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_FAN + case 21: { + const ListEntitiesFanResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_FAN + case 22: { + const FanStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_FAN + case 23: { + const FanCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + const ListEntitiesLightResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + const LightStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + const LightCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + const ListEntitiesSensorResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + const SensorStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + const ListEntitiesSwitchResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + const SwitchStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + const SwitchCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + const ListEntitiesTextSensorResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + const TextSensorStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif + case 34: { + const SubscribeLogsRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 35: { + const SubscribeLogsResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#ifdef USE_API_NOISE + case 36: { + const NoiseEncryptionSetKeyRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + const NoiseEncryptionSetKeyResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif + case 38: { + const SubscribeHomeassistantServicesRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 39: { + const HomeassistantServiceMap *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 40: { + const HomeassistantServiceResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 41: { + const SubscribeHomeAssistantStatesRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 42: { + const SubscribeHomeAssistantStateResponse *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 43: { + const HomeAssistantStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 44: { + const GetTimeRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 45: { + const GetTimeResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 46: { + const ListEntitiesServicesArgument *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 47: { + const ListEntitiesServicesResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 48: { + const ExecuteServiceArgument *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } + case 49: { + const ExecuteServiceRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#ifdef USE_CAMERA + case 50: { + const ListEntitiesCameraResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + const CameraImageResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + const CameraImageRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + const ListEntitiesClimateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + const ClimateStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + const ClimateCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + const ListEntitiesNumberResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + const NumberStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + const NumberCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SELECT + case 59: { + const ListEntitiesSelectResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SELECT + case 60: { + const SelectStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SELECT + case 61: { + const SelectCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SIREN + case 62: { + const ListEntitiesSirenResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SIREN + case 63: { + const SirenStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_SIREN + case 64: { + const SirenCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LOCK + case 65: { + const ListEntitiesLockResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LOCK + case 66: { + const LockStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_LOCK + case 67: { + const LockCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + const ListEntitiesButtonResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + const ButtonCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + const MediaPlayerSupportedFormat *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + const ListEntitiesMediaPlayerResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + const MediaPlayerStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + const MediaPlayerCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + const SubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + const BluetoothServiceData *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + const BluetoothLEAdvertisementResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + const BluetoothLERawAdvertisement *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + const BluetoothLERawAdvertisementsResponse *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + const BluetoothDeviceRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + const BluetoothDeviceConnectionResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + const BluetoothGATTGetServicesRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + const BluetoothGATTDescriptor *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + const BluetoothGATTCharacteristic *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + const BluetoothGATTService *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + const BluetoothGATTGetServicesResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + const BluetoothGATTGetServicesDoneResponse *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + const BluetoothGATTReadRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + const BluetoothGATTReadResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + const BluetoothGATTWriteRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + const BluetoothGATTReadDescriptorRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + const BluetoothGATTWriteDescriptorRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + const BluetoothGATTNotifyRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + const BluetoothGATTNotifyDataResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + const SubscribeBluetoothConnectionsFreeRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + const BluetoothConnectionsFreeResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + const BluetoothGATTErrorResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + const BluetoothGATTWriteResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + const BluetoothGATTNotifyResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + const BluetoothDevicePairingResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + const BluetoothDeviceUnpairingResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + const UnsubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + const BluetoothDeviceClearCacheResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + const BluetoothScannerStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + const BluetoothScannerSetModeRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + const SubscribeVoiceAssistantRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + const VoiceAssistantAudioSettings *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + const VoiceAssistantRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + const VoiceAssistantResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + const VoiceAssistantEventData *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + const VoiceAssistantEventResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + const VoiceAssistantAudio *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + const VoiceAssistantTimerEventResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + const VoiceAssistantAnnounceRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + const VoiceAssistantAnnounceFinished *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + const VoiceAssistantWakeWord *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + const VoiceAssistantConfigurationRequest *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + const VoiceAssistantConfigurationResponse *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + const VoiceAssistantSetConfiguration *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + const ListEntitiesAlarmControlPanelResponse *msg = + static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + const AlarmControlPanelStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + const AlarmControlPanelCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_TEXT + case 122: { + const ListEntitiesTextResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_TEXT + case 123: { + const TextStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_TEXT + case 124: { + const TextCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + const ListEntitiesDateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + const DateStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + const DateCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + const ListEntitiesTimeResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + const TimeStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + const TimeCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_EVENT + case 131: { + const ListEntitiesEventResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_EVENT + case 132: { + const EventResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VALVE + case 133: { + const ListEntitiesValveResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VALVE + case 134: { + const ValveStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_VALVE + case 135: { + const ValveCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + const ListEntitiesDateTimeResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + const DateTimeStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + const DateTimeCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + const ListEntitiesUpdateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + const UpdateStateResponse *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + const UpdateCommandRequest *msg = static_cast(field_ptr); + buffer.encode_message(field_num, *msg); + break; + } +#endif + default: + break; + } +} + +void decode_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id) { + switch (message_type_id) { + case 1: { + HelloRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 2: { + HelloResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 3: { + ConnectRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 4: { + ConnectResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 5: { + DisconnectRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 6: { + DisconnectResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 7: { + PingRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 8: { + PingResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 9: { + DeviceInfoRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 10: { + AreaInfo *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 11: { + DeviceInfo *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 12: { + DeviceInfoResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 13: { + ListEntitiesRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 14: { + ListEntitiesDoneResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 15: { + SubscribeStatesRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + ListEntitiesBinarySensorResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + BinarySensorStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_COVER + case 18: { + ListEntitiesCoverResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_COVER + case 19: { + CoverStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_COVER + case 20: { + CoverCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_FAN + case 21: { + ListEntitiesFanResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_FAN + case 22: { + FanStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_FAN + case 23: { + FanCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + ListEntitiesLightResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + LightStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + LightCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + ListEntitiesSensorResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + SensorStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + ListEntitiesSwitchResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + SwitchStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + SwitchCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + ListEntitiesTextSensorResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + TextSensorStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif + case 34: { + SubscribeLogsRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 35: { + SubscribeLogsResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#ifdef USE_API_NOISE + case 36: { + NoiseEncryptionSetKeyRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + NoiseEncryptionSetKeyResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif + case 38: { + SubscribeHomeassistantServicesRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 39: { + HomeassistantServiceMap *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 40: { + HomeassistantServiceResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 41: { + SubscribeHomeAssistantStatesRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 42: { + SubscribeHomeAssistantStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 43: { + HomeAssistantStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 44: { + GetTimeRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 45: { + GetTimeResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 46: { + ListEntitiesServicesArgument *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 47: { + ListEntitiesServicesResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 48: { + ExecuteServiceArgument *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } + case 49: { + ExecuteServiceRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#ifdef USE_CAMERA + case 50: { + ListEntitiesCameraResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + CameraImageResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + CameraImageRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + ListEntitiesClimateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + ClimateStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + ClimateCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + ListEntitiesNumberResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + NumberStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + NumberCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SELECT + case 59: { + ListEntitiesSelectResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SELECT + case 60: { + SelectStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SELECT + case 61: { + SelectCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SIREN + case 62: { + ListEntitiesSirenResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SIREN + case 63: { + SirenStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_SIREN + case 64: { + SirenCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LOCK + case 65: { + ListEntitiesLockResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LOCK + case 66: { + LockStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_LOCK + case 67: { + LockCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + ListEntitiesButtonResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + ButtonCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + MediaPlayerSupportedFormat *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + ListEntitiesMediaPlayerResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + MediaPlayerStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + MediaPlayerCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + SubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + BluetoothServiceData *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + BluetoothLEAdvertisementResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + BluetoothLERawAdvertisement *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + BluetoothLERawAdvertisementsResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + BluetoothDeviceRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + BluetoothDeviceConnectionResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + BluetoothGATTGetServicesRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + BluetoothGATTDescriptor *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + BluetoothGATTCharacteristic *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + BluetoothGATTService *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + BluetoothGATTGetServicesResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + BluetoothGATTGetServicesDoneResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + BluetoothGATTReadRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + BluetoothGATTReadResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + BluetoothGATTWriteRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + BluetoothGATTReadDescriptorRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + BluetoothGATTWriteDescriptorRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + BluetoothGATTNotifyRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + BluetoothGATTNotifyDataResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + SubscribeBluetoothConnectionsFreeRequest *msg = + static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + BluetoothConnectionsFreeResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + BluetoothGATTErrorResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + BluetoothGATTWriteResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + BluetoothGATTNotifyResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + BluetoothDevicePairingResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + BluetoothDeviceUnpairingResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + UnsubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + BluetoothDeviceClearCacheResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + BluetoothScannerStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + BluetoothScannerSetModeRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + SubscribeVoiceAssistantRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + VoiceAssistantAudioSettings *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + VoiceAssistantRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + VoiceAssistantResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + VoiceAssistantEventData *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + VoiceAssistantEventResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + VoiceAssistantAudio *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + VoiceAssistantTimerEventResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + VoiceAssistantAnnounceRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + VoiceAssistantAnnounceFinished *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + VoiceAssistantWakeWord *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + VoiceAssistantConfigurationRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + VoiceAssistantConfigurationResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + VoiceAssistantSetConfiguration *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + ListEntitiesAlarmControlPanelResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + AlarmControlPanelStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + AlarmControlPanelCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_TEXT + case 122: { + ListEntitiesTextResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_TEXT + case 123: { + TextStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_TEXT + case 124: { + TextCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + ListEntitiesDateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + DateStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + DateCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + ListEntitiesTimeResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + TimeStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + TimeCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_EVENT + case 131: { + ListEntitiesEventResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_EVENT + case 132: { + EventResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VALVE + case 133: { + ListEntitiesValveResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VALVE + case 134: { + ValveStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_VALVE + case 135: { + ValveCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + ListEntitiesDateTimeResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + DateTimeStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + DateTimeCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + ListEntitiesUpdateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + UpdateStateResponse *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + UpdateCommandRequest *msg = static_cast(field_ptr); + *msg = value.as_message(); + break; + } +#endif + default: + break; + } +} + +void size_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, + uint8_t message_type_id, bool force) { + switch (message_type_id) { + case 1: { + const HelloRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 2: { + const HelloResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 3: { + const ConnectRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 4: { + const ConnectResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 5: { + const DisconnectRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 6: { + const DisconnectResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 7: { + const PingRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 8: { + const PingResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 9: { + const DeviceInfoRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 10: { + const AreaInfo *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 11: { + const DeviceInfo *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 12: { + const DeviceInfoResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 13: { + const ListEntitiesRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 14: { + const ListEntitiesDoneResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 15: { + const SubscribeStatesRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + const ListEntitiesBinarySensorResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + const BinarySensorStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_COVER + case 18: { + const ListEntitiesCoverResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_COVER + case 19: { + const CoverStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_COVER + case 20: { + const CoverCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_FAN + case 21: { + const ListEntitiesFanResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_FAN + case 22: { + const FanStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_FAN + case 23: { + const FanCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + const ListEntitiesLightResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + const LightStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + const LightCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + const ListEntitiesSensorResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + const SensorStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + const ListEntitiesSwitchResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + const SwitchStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + const SwitchCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + const ListEntitiesTextSensorResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + const TextSensorStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif + case 34: { + const SubscribeLogsRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 35: { + const SubscribeLogsResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#ifdef USE_API_NOISE + case 36: { + const NoiseEncryptionSetKeyRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + const NoiseEncryptionSetKeyResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif + case 38: { + const SubscribeHomeassistantServicesRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 39: { + const HomeassistantServiceMap *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 40: { + const HomeassistantServiceResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 41: { + const SubscribeHomeAssistantStatesRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 42: { + const SubscribeHomeAssistantStateResponse *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 43: { + const HomeAssistantStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 44: { + const GetTimeRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 45: { + const GetTimeResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 46: { + const ListEntitiesServicesArgument *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 47: { + const ListEntitiesServicesResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 48: { + const ExecuteServiceArgument *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } + case 49: { + const ExecuteServiceRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#ifdef USE_CAMERA + case 50: { + const ListEntitiesCameraResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + const CameraImageResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + const CameraImageRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + const ListEntitiesClimateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + const ClimateStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + const ClimateCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + const ListEntitiesNumberResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + const NumberStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + const NumberCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SELECT + case 59: { + const ListEntitiesSelectResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SELECT + case 60: { + const SelectStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SELECT + case 61: { + const SelectCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SIREN + case 62: { + const ListEntitiesSirenResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SIREN + case 63: { + const SirenStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_SIREN + case 64: { + const SirenCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LOCK + case 65: { + const ListEntitiesLockResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LOCK + case 66: { + const LockStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_LOCK + case 67: { + const LockCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + const ListEntitiesButtonResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + const ButtonCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + const MediaPlayerSupportedFormat *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + const ListEntitiesMediaPlayerResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + const MediaPlayerStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + const MediaPlayerCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + const SubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + const BluetoothServiceData *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + const BluetoothLEAdvertisementResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + const BluetoothLERawAdvertisement *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + const BluetoothLERawAdvertisementsResponse *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + const BluetoothDeviceRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + const BluetoothDeviceConnectionResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + const BluetoothGATTGetServicesRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + const BluetoothGATTDescriptor *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + const BluetoothGATTCharacteristic *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + const BluetoothGATTService *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + const BluetoothGATTGetServicesResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + const BluetoothGATTGetServicesDoneResponse *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + const BluetoothGATTReadRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + const BluetoothGATTReadResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + const BluetoothGATTWriteRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + const BluetoothGATTReadDescriptorRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + const BluetoothGATTWriteDescriptorRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + const BluetoothGATTNotifyRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + const BluetoothGATTNotifyDataResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + const SubscribeBluetoothConnectionsFreeRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + const BluetoothConnectionsFreeResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + const BluetoothGATTErrorResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + const BluetoothGATTWriteResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + const BluetoothGATTNotifyResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + const BluetoothDevicePairingResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + const BluetoothDeviceUnpairingResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + const UnsubscribeBluetoothLEAdvertisementsRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + const BluetoothDeviceClearCacheResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + const BluetoothScannerStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + const BluetoothScannerSetModeRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + const SubscribeVoiceAssistantRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + const VoiceAssistantAudioSettings *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + const VoiceAssistantRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + const VoiceAssistantResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + const VoiceAssistantEventData *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + const VoiceAssistantEventResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + const VoiceAssistantAudio *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + const VoiceAssistantTimerEventResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + const VoiceAssistantAnnounceRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + const VoiceAssistantAnnounceFinished *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + const VoiceAssistantWakeWord *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + const VoiceAssistantConfigurationRequest *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + const VoiceAssistantConfigurationResponse *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + const VoiceAssistantSetConfiguration *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + const ListEntitiesAlarmControlPanelResponse *msg = + static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + const AlarmControlPanelStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + const AlarmControlPanelCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_TEXT + case 122: { + const ListEntitiesTextResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_TEXT + case 123: { + const TextStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_TEXT + case 124: { + const TextCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + const ListEntitiesDateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + const DateStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + const DateCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + const ListEntitiesTimeResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + const TimeStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + const TimeCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_EVENT + case 131: { + const ListEntitiesEventResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_EVENT + case 132: { + const EventResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VALVE + case 133: { + const ListEntitiesValveResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VALVE + case 134: { + const ValveStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_VALVE + case 135: { + const ValveCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + const ListEntitiesDateTimeResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + const DateTimeStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + const DateTimeCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + const ListEntitiesUpdateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + const UpdateStateResponse *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + const UpdateCommandRequest *msg = static_cast(field_ptr); + ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force); + break; + } +#endif + default: + break; + } +} + +void encode_repeated_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, + uint8_t message_type_id) { + switch (message_type_id) { + case 1: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 2: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 3: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 4: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 5: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 6: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 7: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 8: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 9: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 10: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 11: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 12: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 13: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 14: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 15: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_COVER + case 18: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_COVER + case 19: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_COVER + case 20: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_FAN + case 21: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_FAN + case 22: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_FAN + case 23: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif + case 34: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 35: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#ifdef USE_API_NOISE + case 36: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif + case 38: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 39: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 40: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 41: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 42: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 43: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 44: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 45: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 46: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 47: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 48: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } + case 49: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#ifdef USE_CAMERA + case 50: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SELECT + case 59: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SELECT + case 60: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SELECT + case 61: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SIREN + case 62: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SIREN + case 63: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_SIREN + case 64: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LOCK + case 65: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LOCK + case 66: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_LOCK + case 67: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_TEXT + case 122: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_TEXT + case 123: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_TEXT + case 124: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_EVENT + case 131: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_EVENT + case 132: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VALVE + case 133: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VALVE + case 134: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_VALVE + case 135: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + const std::vector *vec = + static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + const std::vector *vec = static_cast *>(field_ptr); + for (const auto &msg : *vec) { + buffer.encode_message(field_num, msg, true); + } + break; + } +#endif + default: + break; + } +} + +void decode_repeated_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id) { + switch (message_type_id) { + case 1: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 2: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 3: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 4: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 5: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 6: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 7: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 8: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 9: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 10: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 11: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 12: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 13: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 14: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 15: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_COVER + case 18: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_COVER + case 19: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_COVER + case 20: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_FAN + case 21: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_FAN + case 22: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_FAN + case 23: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif + case 34: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 35: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#ifdef USE_API_NOISE + case 36: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif + case 38: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 39: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 40: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 41: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 42: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 43: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 44: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 45: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 46: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 47: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 48: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } + case 49: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#ifdef USE_CAMERA + case 50: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SELECT + case 59: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SELECT + case 60: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SELECT + case 61: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SIREN + case 62: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SIREN + case 63: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_SIREN + case 64: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LOCK + case 65: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LOCK + case 66: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_LOCK + case 67: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_TEXT + case 122: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_TEXT + case 123: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_TEXT + case 124: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_EVENT + case 131: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_EVENT + case 132: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VALVE + case 133: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VALVE + case 134: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_VALVE + case 135: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + std::vector *vec = + static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + std::vector *vec = static_cast *>(field_ptr); + vec->push_back(value.as_message()); + break; + } +#endif + default: + break; + } +} + +void size_repeated_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, + uint8_t message_type_id) { + switch (message_type_id) { + case 1: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 2: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 3: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 4: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 5: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 6: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 7: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 8: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 9: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 10: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 11: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 12: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 13: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 14: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 15: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#ifdef USE_BINARY_SENSOR + case 16: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BINARY_SENSOR + case 17: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_COVER + case 18: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_COVER + case 19: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_COVER + case 20: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_FAN + case 21: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_FAN + case 22: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_FAN + case 23: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LIGHT + case 24: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LIGHT + case 25: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LIGHT + case 26: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SENSOR + case 27: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SENSOR + case 28: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SWITCH + case 29: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SWITCH + case 30: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SWITCH + case 31: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 32: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_TEXT_SENSOR + case 33: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif + case 34: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 35: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#ifdef USE_API_NOISE + case 36: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_API_NOISE + case 37: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif + case 38: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 39: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 40: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 41: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 42: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 43: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 44: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 45: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 46: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 47: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 48: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } + case 49: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#ifdef USE_CAMERA + case 50: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_CAMERA + case 51: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_CAMERA + case 52: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_CLIMATE + case 53: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_CLIMATE + case 54: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_CLIMATE + case 55: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_NUMBER + case 56: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_NUMBER + case 57: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_NUMBER + case 58: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SELECT + case 59: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SELECT + case 60: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SELECT + case 61: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SIREN + case 62: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SIREN + case 63: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_SIREN + case 64: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LOCK + case 65: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LOCK + case 66: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_LOCK + case 67: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BUTTON + case 68: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BUTTON + case 69: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 70: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 71: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 72: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_MEDIA_PLAYER + case 73: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 74: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, + *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 75: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 76: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 77: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 78: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 79: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 80: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 81: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 82: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 83: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 84: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 85: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 86: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 87: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 88: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 89: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 90: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 91: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 92: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 93: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 94: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, + *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 95: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 96: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 97: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 98: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 99: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 100: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 101: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, + *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 102: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 103: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_BLUETOOTH_PROXY + case 104: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 105: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 106: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 107: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 108: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 109: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 110: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 111: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 112: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 113: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 114: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 115: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 116: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 117: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VOICE_ASSISTANT + case 118: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 119: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 120: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_ALARM_CONTROL_PANEL + case 121: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_TEXT + case 122: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_TEXT + case 123: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_TEXT + case 124: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 125: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 126: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATE + case 127: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 128: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 129: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_TIME + case 130: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_EVENT + case 131: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_EVENT + case 132: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VALVE + case 133: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VALVE + case 134: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_VALVE + case 135: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 136: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 137: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_DATETIME_DATETIME + case 138: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_UPDATE + case 139: { + const std::vector *vec = + static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_UPDATE + case 140: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif +#ifdef USE_UPDATE + case 141: { + const std::vector *vec = static_cast *>(field_ptr); + ProtoSize::add_repeated_message(total_size, precalced_field_id_size, *vec); + break; + } +#endif + default: + break; + } +} + } // namespace api } // namespace esphome diff --git a/esphome/components/api/api_pb2.h b/esphome/components/api/api_pb2.h index 03f4ce2711..0c59376c43 100644 --- a/esphome/components/api/api_pb2.h +++ b/esphome/components/api/api_pb2.h @@ -321,11 +321,18 @@ class HelloRequest : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -346,11 +353,18 @@ class HelloResponse : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -368,11 +382,18 @@ class ConnectRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -390,11 +411,18 @@ class ConnectResponse : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -410,11 +438,17 @@ class DisconnectRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -430,11 +464,17 @@ class DisconnectResponse : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -450,11 +490,17 @@ class PingRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -470,11 +516,17 @@ class PingResponse : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -490,11 +542,17 @@ class DeviceInfoRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -508,11 +566,18 @@ class AreaInfo : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -527,11 +592,18 @@ class DeviceInfo : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -571,11 +643,19 @@ class DeviceInfoResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 19; static const RepeatedFieldMeta REPEATED_FIELDS[2]; static constexpr size_t REPEATED_COUNT = 2; + static const FieldMetaV2 FIELDS_V2[20]; + static constexpr size_t FIELD_COUNT_V2 = 20; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[2]; + static constexpr size_t REPEATED_COUNT_V2 = 2; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -591,11 +671,17 @@ class ListEntitiesRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -611,11 +697,17 @@ class ListEntitiesDoneResponse : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -631,11 +723,17 @@ class SubscribeStatesRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -655,11 +753,18 @@ class ListEntitiesBinarySensorResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[10]; static constexpr size_t FIELD_COUNT = 10; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[10]; + static constexpr size_t FIELD_COUNT_V2 = 10; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -678,11 +783,18 @@ class BinarySensorStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -706,11 +818,18 @@ class ListEntitiesCoverResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[13]; static constexpr size_t FIELD_COUNT = 13; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[13]; + static constexpr size_t FIELD_COUNT_V2 = 13; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -731,11 +850,18 @@ class CoverStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[6]; static constexpr size_t FIELD_COUNT = 6; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[6]; + static constexpr size_t FIELD_COUNT_V2 = 6; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -760,11 +886,18 @@ class CoverCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -789,11 +922,19 @@ class ListEntitiesFanResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 12; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[12]; + static constexpr size_t FIELD_COUNT_V2 = 12; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -816,11 +957,18 @@ class FanStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -850,11 +998,18 @@ class FanCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[13]; static constexpr size_t FIELD_COUNT = 13; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[13]; + static constexpr size_t FIELD_COUNT_V2 = 13; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -882,11 +1037,19 @@ class ListEntitiesLightResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 14; static const RepeatedFieldMeta REPEATED_FIELDS[2]; static constexpr size_t REPEATED_COUNT = 2; + static const FieldMetaV2 FIELDS_V2[14]; + static constexpr size_t FIELD_COUNT_V2 = 14; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[2]; + static constexpr size_t REPEATED_COUNT_V2 = 2; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -915,11 +1078,18 @@ class LightStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[14]; static constexpr size_t FIELD_COUNT = 14; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[14]; + static constexpr size_t FIELD_COUNT_V2 = 14; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -963,11 +1133,18 @@ class LightCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[27]; static constexpr size_t FIELD_COUNT = 27; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[27]; + static constexpr size_t FIELD_COUNT_V2 = 27; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -992,11 +1169,18 @@ class ListEntitiesSensorResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[14]; static constexpr size_t FIELD_COUNT = 14; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[14]; + static constexpr size_t FIELD_COUNT_V2 = 14; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1015,11 +1199,18 @@ class SensorStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1040,11 +1231,18 @@ class ListEntitiesSwitchResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[10]; static constexpr size_t FIELD_COUNT = 10; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[10]; + static constexpr size_t FIELD_COUNT_V2 = 10; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1062,11 +1260,18 @@ class SwitchStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1085,11 +1290,18 @@ class SwitchCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1109,11 +1321,18 @@ class ListEntitiesTextSensorResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[9]; static constexpr size_t FIELD_COUNT = 9; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1132,11 +1351,18 @@ class TextSensorStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1156,11 +1382,18 @@ class SubscribeLogsRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1180,11 +1413,18 @@ class SubscribeLogsResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1203,11 +1443,18 @@ class NoiseEncryptionSetKeyRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1225,11 +1472,18 @@ class NoiseEncryptionSetKeyResponse : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1246,11 +1500,17 @@ class SubscribeHomeassistantServicesRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1264,11 +1524,18 @@ class HomeassistantServiceMap : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1291,11 +1558,19 @@ class HomeassistantServiceResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[3]; static constexpr size_t REPEATED_COUNT = 3; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[3]; + static constexpr size_t REPEATED_COUNT_V2 = 3; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1311,11 +1586,17 @@ class SubscribeHomeAssistantStatesRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1335,11 +1616,18 @@ class SubscribeHomeAssistantStateResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1359,11 +1647,18 @@ class HomeAssistantStateResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1379,11 +1674,17 @@ class GetTimeRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1401,11 +1702,18 @@ class GetTimeResponse : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1419,11 +1727,18 @@ class ListEntitiesServicesArgument : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1444,11 +1759,19 @@ class ListEntitiesServicesResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1470,11 +1793,19 @@ class ExecuteServiceArgument : public ProtoMessage { static constexpr size_t FIELD_COUNT = 5; static const RepeatedFieldMeta REPEATED_FIELDS[4]; static constexpr size_t REPEATED_COUNT = 4; + static const FieldMetaV2 FIELDS_V2[5]; + static constexpr size_t FIELD_COUNT_V2 = 5; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[4]; + static constexpr size_t REPEATED_COUNT_V2 = 4; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1494,11 +1825,19 @@ class ExecuteServiceRequest : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1516,11 +1855,18 @@ class ListEntitiesCameraResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1540,11 +1886,18 @@ class CameraImageResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1563,11 +1916,18 @@ class CameraImageRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1605,11 +1965,19 @@ class ListEntitiesClimateResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 20; static const RepeatedFieldMeta REPEATED_FIELDS[6]; static constexpr size_t REPEATED_COUNT = 6; + static const FieldMetaV2 FIELDS_V2[20]; + static constexpr size_t FIELD_COUNT_V2 = 20; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[6]; + static constexpr size_t REPEATED_COUNT_V2 = 6; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1640,11 +2008,18 @@ class ClimateStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[16]; static constexpr size_t FIELD_COUNT = 16; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[16]; + static constexpr size_t FIELD_COUNT_V2 = 16; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1684,11 +2059,18 @@ class ClimateCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[23]; static constexpr size_t FIELD_COUNT = 23; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[23]; + static constexpr size_t FIELD_COUNT_V2 = 23; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1713,11 +2095,18 @@ class ListEntitiesNumberResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[14]; static constexpr size_t FIELD_COUNT = 14; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[14]; + static constexpr size_t FIELD_COUNT_V2 = 14; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1736,11 +2125,18 @@ class NumberStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1759,11 +2155,18 @@ class NumberCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1784,11 +2187,19 @@ class ListEntitiesSelectResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 8; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1807,11 +2218,18 @@ class SelectStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1830,11 +2248,18 @@ class SelectCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1857,11 +2282,19 @@ class ListEntitiesSirenResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 10; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[10]; + static constexpr size_t FIELD_COUNT_V2 = 10; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1879,11 +2312,18 @@ class SirenStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1909,11 +2349,18 @@ class SirenCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[9]; static constexpr size_t FIELD_COUNT = 9; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1936,11 +2383,18 @@ class ListEntitiesLockResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[12]; static constexpr size_t FIELD_COUNT = 12; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[12]; + static constexpr size_t FIELD_COUNT_V2 = 12; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1958,11 +2412,18 @@ class LockStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -1983,11 +2444,18 @@ class LockCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2007,11 +2475,18 @@ class ListEntitiesButtonResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[9]; static constexpr size_t FIELD_COUNT = 9; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2029,11 +2504,18 @@ class ButtonCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2052,11 +2534,18 @@ class MediaPlayerSupportedFormat : public ProtoMessage { static const FieldMeta FIELDS[5]; static constexpr size_t FIELD_COUNT = 5; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[5]; + static constexpr size_t FIELD_COUNT_V2 = 5; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2076,11 +2565,19 @@ class ListEntitiesMediaPlayerResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 9; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2100,11 +2597,18 @@ class MediaPlayerStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[5]; static constexpr size_t FIELD_COUNT = 5; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[5]; + static constexpr size_t FIELD_COUNT_V2 = 5; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2130,11 +2634,18 @@ class MediaPlayerCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[9]; static constexpr size_t FIELD_COUNT = 9; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2154,11 +2665,18 @@ class SubscribeBluetoothLEAdvertisementsRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2174,11 +2692,19 @@ class BluetoothServiceData : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2203,11 +2729,19 @@ class BluetoothLEAdvertisementResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 4; static const RepeatedFieldMeta REPEATED_FIELDS[3]; static constexpr size_t REPEATED_COUNT = 3; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[3]; + static constexpr size_t REPEATED_COUNT_V2 = 3; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2223,11 +2757,18 @@ class BluetoothLERawAdvertisement : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2245,11 +2786,18 @@ class BluetoothLERawAdvertisementsResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 0; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static constexpr size_t FIELD_COUNT_V2 = 0; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2270,11 +2818,18 @@ class BluetoothDeviceRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2295,11 +2850,18 @@ class BluetoothDeviceConnectionResponse : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2317,11 +2879,18 @@ class BluetoothGATTGetServicesRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2336,11 +2905,19 @@ class BluetoothGATTDescriptor : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2357,11 +2934,19 @@ class BluetoothGATTCharacteristic : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[2]; static constexpr size_t REPEATED_COUNT = 2; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[2]; + static constexpr size_t REPEATED_COUNT_V2 = 2; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2377,11 +2962,19 @@ class BluetoothGATTService : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[2]; static constexpr size_t REPEATED_COUNT = 2; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[2]; + static constexpr size_t REPEATED_COUNT_V2 = 2; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2401,11 +2994,19 @@ class BluetoothGATTGetServicesResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2423,11 +3024,18 @@ class BluetoothGATTGetServicesDoneResponse : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2446,11 +3054,18 @@ class BluetoothGATTReadRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2470,11 +3085,18 @@ class BluetoothGATTReadResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2495,11 +3117,18 @@ class BluetoothGATTWriteRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2518,11 +3147,18 @@ class BluetoothGATTReadDescriptorRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2542,11 +3178,18 @@ class BluetoothGATTWriteDescriptorRequest : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2566,11 +3209,18 @@ class BluetoothGATTNotifyRequest : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2590,11 +3240,18 @@ class BluetoothGATTNotifyDataResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2610,11 +3267,17 @@ class SubscribeBluetoothConnectionsFreeRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2635,11 +3298,19 @@ class BluetoothConnectionsFreeResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2659,11 +3330,18 @@ class BluetoothGATTErrorResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2682,11 +3360,18 @@ class BluetoothGATTWriteResponse : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2705,11 +3390,18 @@ class BluetoothGATTNotifyResponse : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2729,11 +3421,18 @@ class BluetoothDevicePairingResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2753,11 +3452,18 @@ class BluetoothDeviceUnpairingResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2773,11 +3479,17 @@ class UnsubscribeBluetoothLEAdvertisementsRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2797,11 +3509,18 @@ class BluetoothDeviceClearCacheResponse : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2820,11 +3539,18 @@ class BluetoothScannerStateResponse : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2842,11 +3568,18 @@ class BluetoothScannerSetModeRequest : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2867,11 +3600,18 @@ class SubscribeVoiceAssistantRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2886,11 +3626,18 @@ class VoiceAssistantAudioSettings : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2912,11 +3659,18 @@ class VoiceAssistantRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[5]; + static constexpr size_t FIELD_COUNT_V2 = 5; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2935,11 +3689,18 @@ class VoiceAssistantResponse : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2953,11 +3714,18 @@ class VoiceAssistantEventData : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -2977,11 +3745,19 @@ class VoiceAssistantEventResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3000,11 +3776,18 @@ class VoiceAssistantAudio : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3027,11 +3810,18 @@ class VoiceAssistantTimerEventResponse : public ProtoMessage { static const FieldMeta FIELDS[6]; static constexpr size_t FIELD_COUNT = 6; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[6]; + static constexpr size_t FIELD_COUNT_V2 = 6; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3052,11 +3842,18 @@ class VoiceAssistantAnnounceRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3074,11 +3871,18 @@ class VoiceAssistantAnnounceFinished : public ProtoMessage { static const FieldMeta FIELDS[1]; static constexpr size_t FIELD_COUNT = 1; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3094,11 +3898,19 @@ class VoiceAssistantWakeWord : public ProtoMessage { static constexpr size_t FIELD_COUNT = 2; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3114,11 +3926,17 @@ class VoiceAssistantConfigurationRequest : public ProtoMessage { #endif static constexpr size_t FIELD_COUNT = 0; static constexpr size_t REPEATED_COUNT = 0; + static constexpr size_t FIELD_COUNT_V2 = 0; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3139,11 +3957,19 @@ class VoiceAssistantConfigurationResponse : public ProtoMessage { static constexpr size_t FIELD_COUNT = 1; static const RepeatedFieldMeta REPEATED_FIELDS[2]; static constexpr size_t REPEATED_COUNT = 2; + static const FieldMetaV2 FIELDS_V2[1]; + static constexpr size_t FIELD_COUNT_V2 = 1; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[2]; + static constexpr size_t REPEATED_COUNT_V2 = 2; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3161,11 +3987,18 @@ class VoiceAssistantSetConfiguration : public ProtoMessage { static constexpr size_t FIELD_COUNT = 0; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static constexpr size_t FIELD_COUNT_V2 = 0; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return nullptr; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3187,11 +4020,18 @@ class ListEntitiesAlarmControlPanelResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[11]; static constexpr size_t FIELD_COUNT = 11; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[11]; + static constexpr size_t FIELD_COUNT_V2 = 11; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3209,11 +4049,18 @@ class AlarmControlPanelStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3233,11 +4080,18 @@ class AlarmControlPanelCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3260,11 +4114,18 @@ class ListEntitiesTextResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[12]; static constexpr size_t FIELD_COUNT = 12; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[12]; + static constexpr size_t FIELD_COUNT_V2 = 12; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3283,11 +4144,18 @@ class TextStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3306,11 +4174,18 @@ class TextCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3329,11 +4204,18 @@ class ListEntitiesDateResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3354,11 +4236,18 @@ class DateStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[6]; static constexpr size_t FIELD_COUNT = 6; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[6]; + static constexpr size_t FIELD_COUNT_V2 = 6; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3379,11 +4268,18 @@ class DateCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3402,11 +4298,18 @@ class ListEntitiesTimeResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3427,11 +4330,18 @@ class TimeStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[6]; static constexpr size_t FIELD_COUNT = 6; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[6]; + static constexpr size_t FIELD_COUNT_V2 = 6; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3452,11 +4362,18 @@ class TimeCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3478,11 +4395,19 @@ class ListEntitiesEventResponse : public InfoResponseProtoMessage { static constexpr size_t FIELD_COUNT = 9; static const RepeatedFieldMeta REPEATED_FIELDS[1]; static constexpr size_t REPEATED_COUNT = 1; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[1]; + static constexpr size_t REPEATED_COUNT_V2 = 1; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return REPEATED_FIELDS; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3500,11 +4425,18 @@ class EventResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[3]; static constexpr size_t FIELD_COUNT = 3; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[3]; + static constexpr size_t FIELD_COUNT_V2 = 3; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3527,11 +4459,18 @@ class ListEntitiesValveResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[12]; static constexpr size_t FIELD_COUNT = 12; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[12]; + static constexpr size_t FIELD_COUNT_V2 = 12; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3550,11 +4489,18 @@ class ValveStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3575,11 +4521,18 @@ class ValveCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3598,11 +4551,18 @@ class ListEntitiesDateTimeResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[8]; static constexpr size_t FIELD_COUNT = 8; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[8]; + static constexpr size_t FIELD_COUNT_V2 = 8; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3621,11 +4581,18 @@ class DateTimeStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[4]; static constexpr size_t FIELD_COUNT = 4; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[4]; + static constexpr size_t FIELD_COUNT_V2 = 4; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3644,11 +4611,18 @@ class DateTimeCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3668,11 +4642,18 @@ class ListEntitiesUpdateResponse : public InfoResponseProtoMessage { static const FieldMeta FIELDS[9]; static constexpr size_t FIELD_COUNT = 9; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[9]; + static constexpr size_t FIELD_COUNT_V2 = 9; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3698,11 +4679,18 @@ class UpdateStateResponse : public StateResponseProtoMessage { static const FieldMeta FIELDS[11]; static constexpr size_t FIELD_COUNT = 11; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[11]; + static constexpr size_t FIELD_COUNT_V2 = 11; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif @@ -3721,11 +4709,18 @@ class UpdateCommandRequest : public ProtoMessage { static const FieldMeta FIELDS[2]; static constexpr size_t FIELD_COUNT = 2; static constexpr size_t REPEATED_COUNT = 0; + static const FieldMetaV2 FIELDS_V2[2]; + static constexpr size_t FIELD_COUNT_V2 = 2; + static constexpr size_t REPEATED_COUNT_V2 = 0; // Virtual metadata getters const FieldMeta *get_field_metadata() const override { return FIELDS; } size_t get_field_count() const override { return FIELD_COUNT; } const RepeatedFieldMeta *get_repeated_field_metadata() const override { return nullptr; } size_t get_repeated_field_count() const override { return REPEATED_COUNT; } + const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; } + size_t get_field_count_v2() const override { return FIELD_COUNT_V2; } + const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; } + size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; } #ifdef HAS_PROTO_MESSAGE_DUMP void dump_to(std::string &out) const override; #endif diff --git a/esphome/components/api/proto.cpp b/esphome/components/api/proto.cpp index 3c815fdadb..60f37c1661 100644 --- a/esphome/components/api/proto.cpp +++ b/esphome/components/api/proto.cpp @@ -10,6 +10,13 @@ namespace api { static const char *const TAG = "api.proto"; void ProtoMessage::decode(const uint8_t *buffer, size_t length) { + // Use V2 type-based implementation if available + if (get_field_metadata_v2() != nullptr || get_repeated_field_metadata_v2() != nullptr) { + decode_v2(buffer, length); + return; + } + + // Fall back to old implementation uint32_t i = 0; bool error = false; uint8_t *base = reinterpret_cast(this); @@ -678,14 +685,908 @@ void calculate_size_from_metadata(uint32_t &total_size, const void *obj, const F // ProtoMessage implementations using metadata void ProtoMessage::encode(ProtoWriteBuffer buffer) const { - encode_from_metadata(buffer, this, get_field_metadata(), get_field_count(), get_repeated_field_metadata(), - get_repeated_field_count()); + if (get_field_metadata_v2() != nullptr || get_repeated_field_metadata_v2() != nullptr) { + encode_v2(buffer); + } else { + encode_from_metadata(buffer, this, get_field_metadata(), get_field_count(), get_repeated_field_metadata(), + get_repeated_field_count()); + } } void ProtoMessage::calculate_size(uint32_t &total_size) const { - calculate_size_from_metadata(total_size, this, get_field_metadata(), get_field_count(), get_repeated_field_metadata(), - get_repeated_field_count()); + if (get_field_metadata_v2() != nullptr || get_repeated_field_metadata_v2() != nullptr) { + calculate_size_v2(total_size); + } else { + calculate_size_from_metadata(total_size, this, get_field_metadata(), get_field_count(), + get_repeated_field_metadata(), get_repeated_field_count()); + } } +// Type-based decode implementation +void ProtoMessage::decode_v2(const uint8_t *buffer, size_t length) { + uint32_t i = 0; + bool error = false; + uint8_t *base = reinterpret_cast(this); + + // Get V2 metadata once at the start + const FieldMetaV2 *fields = get_field_metadata_v2(); + size_t field_count = get_field_count_v2(); + const RepeatedFieldMetaV2 *repeated_fields = get_repeated_field_metadata_v2(); + size_t repeated_count = get_repeated_field_count_v2(); + + while (i < length) { + uint32_t consumed; + auto res = ProtoVarInt::parse(&buffer[i], length - i, &consumed); + if (!res.has_value()) { + ESP_LOGV(TAG, "Invalid field start at %" PRIu32, i); + break; + } + + uint32_t field_type = (res->as_uint32()) & 0b111; + uint32_t field_id = (res->as_uint32()) >> 3; + i += consumed; + + switch (field_type) { + case 0: { // VarInt + res = ProtoVarInt::parse(&buffer[i], length - i, &consumed); + if (!res.has_value()) { + ESP_LOGV(TAG, "Invalid VarInt at %" PRIu32, i); + error = true; + break; + } + ProtoVarInt value = *res; + bool decoded = false; + + // Check regular fields + for (size_t j = 0; j < field_count; j++) { + if (fields[j].field_num == field_id && get_wire_type(fields[j].type) == 0) { + void *field_addr = base + fields[j].offset; + + switch (fields[j].type) { + case ProtoFieldType::TYPE_BOOL: + *static_cast(field_addr) = value.as_bool(); + decoded = true; + break; + case ProtoFieldType::TYPE_INT32: + *static_cast(field_addr) = value.as_int32(); + decoded = true; + break; + case ProtoFieldType::TYPE_UINT32: + *static_cast(field_addr) = value.as_uint32(); + decoded = true; + break; + case ProtoFieldType::TYPE_INT64: + *static_cast(field_addr) = value.as_int64(); + decoded = true; + break; + case ProtoFieldType::TYPE_UINT64: + *static_cast(field_addr) = value.as_uint64(); + decoded = true; + break; + case ProtoFieldType::TYPE_SINT32: + *static_cast(field_addr) = value.as_sint32(); + decoded = true; + break; + case ProtoFieldType::TYPE_SINT64: + *static_cast(field_addr) = value.as_sint64(); + decoded = true; + break; + case ProtoFieldType::TYPE_ENUM: + // For enums, we need to use the old metadata for now + // This will be fixed in Phase 5 + *static_cast(field_addr) = value.as_uint32(); + decoded = true; + break; + default: + break; + } + break; + } + } + + // Check repeated fields if not found + if (!decoded && repeated_fields) { + for (size_t j = 0; j < repeated_count; j++) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].type) == 0) { + void *field_addr = base + repeated_fields[j].offset; + + switch (repeated_fields[j].type) { + case ProtoFieldType::TYPE_BOOL: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_bool()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_INT32: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_int32()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_UINT32: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_uint32()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_INT64: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_int64()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_UINT64: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_uint64()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_SINT32: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_sint32()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_SINT64: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_sint64()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_ENUM: { + // For repeated enums, use old metadata for now + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_uint32()); + decoded = true; + break; + } + default: + break; + } + break; + } + } + } + + if (!decoded) { + ESP_LOGV(TAG, "Cannot decode VarInt field %" PRIu32 " with value %" PRIu32 "!", field_id, res->as_uint32()); + } + i += consumed; + break; + } + case 2: { // Length-delimited + res = ProtoVarInt::parse(&buffer[i], length - i, &consumed); + if (!res.has_value()) { + ESP_LOGV(TAG, "Invalid Length Delimited at %" PRIu32, i); + error = true; + break; + } + uint32_t field_length = res->as_uint32(); + i += consumed; + if (field_length > length - i) { + ESP_LOGV(TAG, "Out-of-bounds Length Delimited at %" PRIu32, i); + error = true; + break; + } + ProtoLengthDelimited value(&buffer[i], field_length); + bool decoded = false; + + // Check regular fields + for (size_t j = 0; j < field_count; j++) { + if (fields[j].field_num == field_id && get_wire_type(fields[j].type) == 2) { + void *field_addr = base + fields[j].offset; + + switch (fields[j].type) { + case ProtoFieldType::TYPE_STRING: + *static_cast(field_addr) = value.as_string(); + decoded = true; + break; + case ProtoFieldType::TYPE_BYTES: { + // ProtoLengthDelimited has protected members, use buffer directly + static_cast(field_addr) + ->assign(reinterpret_cast(&buffer[i]), field_length); + decoded = true; + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + decode_message_field_by_type(field_addr, value, fields[j].message_type_id); + decoded = true; + break; + } + default: + break; + } + break; + } + } + + // Check repeated fields if not found + if (!decoded && repeated_fields) { + for (size_t j = 0; j < repeated_count; j++) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].type) == 2) { + void *field_addr = base + repeated_fields[j].offset; + + switch (repeated_fields[j].type) { + case ProtoFieldType::TYPE_STRING: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_string()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_BYTES: { + auto *vec = static_cast *>(field_addr); + vec->emplace_back(reinterpret_cast(&buffer[i]), field_length); + decoded = true; + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + decode_repeated_message_field_by_type(field_addr, value, repeated_fields[j].message_type_id); + decoded = true; + break; + } + default: + break; + } + break; + } + } + } + + if (!decoded) { + ESP_LOGV(TAG, "Cannot decode Length field %" PRIu32, field_id); + } + i += field_length; + break; + } + case 5: { // 32-bit + if (length - i < 4) { + ESP_LOGV(TAG, "Invalid 32-bit at %" PRIu32, i); + error = true; + break; + } + uint32_t raw = (buffer[i]) | (buffer[i + 1] << 8) | (buffer[i + 2] << 16) | (buffer[i + 3] << 24); + Proto32Bit value(raw); + bool decoded = false; + + // Check regular fields + for (size_t j = 0; j < field_count; j++) { + if (fields[j].field_num == field_id && get_wire_type(fields[j].type) == 5) { + void *field_addr = base + fields[j].offset; + + switch (fields[j].type) { + case ProtoFieldType::TYPE_FLOAT: { + float *val = static_cast(field_addr); + *val = value.as_float(); + decoded = true; + break; + } + case ProtoFieldType::TYPE_FIXED32: + *static_cast(field_addr) = value.as_fixed32(); + decoded = true; + break; + case ProtoFieldType::TYPE_SFIXED32: + *static_cast(field_addr) = value.as_sfixed32(); + decoded = true; + break; + default: + break; + } + break; + } + } + + // Check repeated fields if not found + if (!decoded && repeated_fields) { + for (size_t j = 0; j < repeated_count; j++) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].type) == 5) { + void *field_addr = base + repeated_fields[j].offset; + + switch (repeated_fields[j].type) { + case ProtoFieldType::TYPE_FLOAT: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_float()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_FIXED32: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_fixed32()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_SFIXED32: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_sfixed32()); + decoded = true; + break; + } + default: + break; + } + break; + } + } + } + + if (!decoded) { + ESP_LOGV(TAG, "Cannot decode 32-bit field %" PRIu32, field_id); + } + i += 4; + break; + } + case 1: { // 64-bit + if (length - i < 8) { + ESP_LOGV(TAG, "Invalid 64-bit at %" PRIu32, i); + error = true; + break; + } + uint64_t raw = uint64_t(buffer[i]) | (uint64_t(buffer[i + 1]) << 8) | (uint64_t(buffer[i + 2]) << 16) | + (uint64_t(buffer[i + 3]) << 24) | (uint64_t(buffer[i + 4]) << 32) | + (uint64_t(buffer[i + 5]) << 40) | (uint64_t(buffer[i + 6]) << 48) | + (uint64_t(buffer[i + 7]) << 56); + Proto64Bit value(raw); + bool decoded = false; + + // Check regular fields + for (size_t j = 0; j < field_count; j++) { + if (fields[j].field_num == field_id && get_wire_type(fields[j].type) == 1) { + void *field_addr = base + fields[j].offset; + + switch (fields[j].type) { + case ProtoFieldType::TYPE_DOUBLE: { + double *val = static_cast(field_addr); + *val = value.as_double(); + decoded = true; + break; + } + case ProtoFieldType::TYPE_FIXED64: + *static_cast(field_addr) = value.as_fixed64(); + decoded = true; + break; + case ProtoFieldType::TYPE_SFIXED64: + *static_cast(field_addr) = value.as_sfixed64(); + decoded = true; + break; + default: + break; + } + break; + } + } + + // Check repeated fields if not found + if (!decoded && repeated_fields) { + for (size_t j = 0; j < repeated_count; j++) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].type) == 1) { + void *field_addr = base + repeated_fields[j].offset; + + switch (repeated_fields[j].type) { + case ProtoFieldType::TYPE_DOUBLE: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_double()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_FIXED64: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_fixed64()); + decoded = true; + break; + } + case ProtoFieldType::TYPE_SFIXED64: { + auto *vec = static_cast *>(field_addr); + vec->push_back(value.as_sfixed64()); + decoded = true; + break; + } + default: + break; + } + break; + } + } + } + + if (!decoded) { + ESP_LOGV(TAG, "Cannot decode 64-bit field %" PRIu32, field_id); + } + i += 8; + break; + } + default: { + ESP_LOGV(TAG, "Invalid field type %" PRIu32 " at %" PRIu32, field_type, i); + return; + } + } + if (error) { + break; + } + } +} + +// Type-based encode implementation +void ProtoMessage::encode_v2(ProtoWriteBuffer buffer) const { + const uint8_t *base = reinterpret_cast(this); + + // Get V2 metadata once at the start + const FieldMetaV2 *fields = get_field_metadata_v2(); + size_t field_count = get_field_count_v2(); + + // Encode regular fields + for (size_t i = 0; i < field_count; i++) { + const void *field_addr = base + fields[i].offset; + + switch (fields[i].type) { + case ProtoFieldType::TYPE_BOOL: { + const bool *val = static_cast(field_addr); + buffer.encode_bool(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_INT32: { + const int32_t *val = static_cast(field_addr); + buffer.encode_int32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_UINT32: { + const uint32_t *val = static_cast(field_addr); + buffer.encode_uint32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_INT64: { + const int64_t *val = static_cast(field_addr); + buffer.encode_int64(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_UINT64: { + const uint64_t *val = static_cast(field_addr); + buffer.encode_uint64(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SINT32: { + const int32_t *val = static_cast(field_addr); + buffer.encode_sint32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SINT64: { + const int64_t *val = static_cast(field_addr); + buffer.encode_sint64(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_ENUM: { + // For enums, treat as uint32 for now + const uint32_t *val = static_cast(field_addr); + buffer.encode_uint32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_STRING: { + const std::string *val = static_cast(field_addr); + buffer.encode_string(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_BYTES: { + const std::string *val = static_cast(field_addr); + buffer.encode_bytes(fields[i].field_num, reinterpret_cast(val->data()), val->size(), + fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FLOAT: { + const float *val = static_cast(field_addr); + buffer.encode_float(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FIXED32: { + const uint32_t *val = static_cast(field_addr); + buffer.encode_fixed32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SFIXED32: { + const int32_t *val = static_cast(field_addr); + buffer.encode_sfixed32(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_DOUBLE: { + const double *val = static_cast(field_addr); + buffer.encode_double(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FIXED64: { + const uint64_t *val = static_cast(field_addr); + buffer.encode_fixed64(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SFIXED64: { + const int64_t *val = static_cast(field_addr); + buffer.encode_sfixed64(fields[i].field_num, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + encode_message_field_by_type(buffer, fields[i].field_num, field_addr, fields[i].message_type_id); + break; + } + } + } + + // Encode repeated fields + const RepeatedFieldMetaV2 *repeated_fields = get_repeated_field_metadata_v2(); + size_t repeated_count = get_repeated_field_count_v2(); + + for (size_t i = 0; i < repeated_count; i++) { + const void *field_addr = base + repeated_fields[i].offset; + + switch (repeated_fields[i].type) { + case ProtoFieldType::TYPE_BOOL: { + const auto *vec = static_cast *>(field_addr); + for (bool val : *vec) { + buffer.encode_bool(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_INT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_int32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_UINT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_uint32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_INT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_int64(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_UINT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_uint64(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_SINT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_sint32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_SINT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_sint64(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_ENUM: { + // For repeated enums, treat as uint32 for now + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_uint32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_STRING: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_string(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_BYTES: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_bytes(repeated_fields[i].field_num, reinterpret_cast(val.data()), val.size(), + true); + } + break; + } + case ProtoFieldType::TYPE_FLOAT: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_float(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_FIXED32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_fixed32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_SFIXED32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_sfixed32(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_DOUBLE: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + union { + double value; + uint64_t raw; + } u{}; + u.value = val; + buffer.encode_fixed64(repeated_fields[i].field_num, u.raw, true); + } + break; + } + case ProtoFieldType::TYPE_FIXED64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_fixed64(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_SFIXED64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + buffer.encode_sfixed64(repeated_fields[i].field_num, val, true); + } + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + encode_repeated_message_field_by_type(buffer, repeated_fields[i].field_num, field_addr, + repeated_fields[i].message_type_id); + break; + } + } + } +} + +// Type-based size calculation implementation +void ProtoMessage::calculate_size_v2(uint32_t &total_size) const { + const uint8_t *base = reinterpret_cast(this); + + // Get V2 metadata once at the start + const FieldMetaV2 *fields = get_field_metadata_v2(); + size_t field_count = get_field_count_v2(); + + // Calculate size for regular fields + for (size_t i = 0; i < field_count; i++) { + const void *field_addr = base + fields[i].offset; + + switch (fields[i].type) { + case ProtoFieldType::TYPE_BOOL: { + const bool *val = static_cast(field_addr); + ProtoSize::add_bool_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_INT32: { + const int32_t *val = static_cast(field_addr); + ProtoSize::add_int32_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_UINT32: { + const uint32_t *val = static_cast(field_addr); + ProtoSize::add_uint32_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_INT64: { + const int64_t *val = static_cast(field_addr); + ProtoSize::add_int64_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_UINT64: { + const uint64_t *val = static_cast(field_addr); + ProtoSize::add_uint64_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SINT32: { + const int32_t *val = static_cast(field_addr); + ProtoSize::add_sint32_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SINT64: { + const int64_t *val = static_cast(field_addr); + ProtoSize::add_sint64_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_ENUM: { + // For enums, treat as uint32 for now + const uint32_t *val = static_cast(field_addr); + ProtoSize::add_enum_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_STRING: { + const std::string *val = static_cast(field_addr); + ProtoSize::add_string_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_BYTES: { + const std::string *val = static_cast(field_addr); + ProtoSize::add_string_field(total_size, fields[i].precalced_field_id_size, *val, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FLOAT: { + const float *val = static_cast(field_addr); + ProtoSize::add_fixed_field<4>(total_size, fields[i].precalced_field_id_size, + *val != 0.0f || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FIXED32: { + const uint32_t *val = static_cast(field_addr); + ProtoSize::add_fixed_field<4>(total_size, fields[i].precalced_field_id_size, + *val != 0 || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SFIXED32: { + const int32_t *val = static_cast(field_addr); + ProtoSize::add_fixed_field<4>(total_size, fields[i].precalced_field_id_size, + *val != 0 || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_DOUBLE: { + const double *val = static_cast(field_addr); + ProtoSize::add_fixed_field<8>(total_size, fields[i].precalced_field_id_size, + *val != 0.0 || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_FIXED64: { + const uint64_t *val = static_cast(field_addr); + ProtoSize::add_fixed_field<8>(total_size, fields[i].precalced_field_id_size, + *val != 0 || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_SFIXED64: { + const int64_t *val = static_cast(field_addr); + ProtoSize::add_fixed_field<8>(total_size, fields[i].precalced_field_id_size, + *val != 0 || fields[i].force_encode, fields[i].force_encode); + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + size_message_field_by_type(total_size, fields[i].precalced_field_id_size, field_addr, fields[i].message_type_id, + fields[i].force_encode); + break; + } + } + } + + // Calculate size for repeated fields + const RepeatedFieldMetaV2 *repeated_fields = get_repeated_field_metadata_v2(); + size_t repeated_count = get_repeated_field_count_v2(); + + for (size_t i = 0; i < repeated_count; i++) { + const void *field_addr = base + repeated_fields[i].offset; + + switch (repeated_fields[i].type) { + case ProtoFieldType::TYPE_BOOL: { + const auto *vec = static_cast *>(field_addr); + for (bool val : *vec) { + ProtoSize::add_bool_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_INT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_int32_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_UINT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_uint32_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_INT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_int64_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_UINT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_uint64_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_SINT32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_sint32_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_SINT64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_sint64_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_ENUM: { + // For repeated enums, treat as uint32 for now + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_enum_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_STRING: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_string_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_BYTES: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_string_field(total_size, repeated_fields[i].precalced_field_id_size, val, true); + } + break; + } + case ProtoFieldType::TYPE_FLOAT: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<4>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_FIXED32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<4>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_SFIXED32: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<4>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_DOUBLE: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<8>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_FIXED64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<8>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_SFIXED64: { + const auto *vec = static_cast *>(field_addr); + for (const auto &val : *vec) { + ProtoSize::add_fixed_field<8>(total_size, repeated_fields[i].precalced_field_id_size, true, true); + } + break; + } + case ProtoFieldType::TYPE_MESSAGE: { + // Use message type ID to call the appropriate handler + size_repeated_message_field_by_type(total_size, repeated_fields[i].precalced_field_id_size, field_addr, + repeated_fields[i].message_type_id); + break; + } + } + } +} + +// Message type handler implementations moved to api_pb2.cpp (generated by Python script) + } // namespace api } // namespace esphome diff --git a/esphome/components/api/proto.h b/esphome/components/api/proto.h index 71cb70e1af..2d1469f374 100644 --- a/esphome/components/api/proto.h +++ b/esphome/components/api/proto.h @@ -16,6 +16,65 @@ namespace api { // Forward declarations class ProtoWriteBuffer; +// Enum for all supported field types +enum class ProtoFieldType : uint8_t { + // Varint types (wire type 0) + TYPE_BOOL = 0, + TYPE_INT32, + TYPE_UINT32, + TYPE_INT64, + TYPE_UINT64, + TYPE_SINT32, + TYPE_SINT64, + TYPE_ENUM, + + // Length-delimited types (wire type 2) + TYPE_STRING, + TYPE_BYTES, + TYPE_MESSAGE, + + // 32-bit types (wire type 5) + TYPE_FLOAT, + TYPE_FIXED32, + TYPE_SFIXED32, + + // 64-bit types (wire type 1) + TYPE_DOUBLE, + TYPE_FIXED64, + TYPE_SFIXED64, +}; + +// Helper to get wire type from field type +constexpr uint8_t get_wire_type(ProtoFieldType type) { + switch (type) { + case ProtoFieldType::TYPE_BOOL: + case ProtoFieldType::TYPE_INT32: + case ProtoFieldType::TYPE_UINT32: + case ProtoFieldType::TYPE_INT64: + case ProtoFieldType::TYPE_UINT64: + case ProtoFieldType::TYPE_SINT32: + case ProtoFieldType::TYPE_SINT64: + case ProtoFieldType::TYPE_ENUM: + return 0; // varint + + case ProtoFieldType::TYPE_STRING: + case ProtoFieldType::TYPE_BYTES: + case ProtoFieldType::TYPE_MESSAGE: + return 2; // length-delimited + + case ProtoFieldType::TYPE_FLOAT: + case ProtoFieldType::TYPE_FIXED32: + case ProtoFieldType::TYPE_SFIXED32: + return 5; // 32-bit + + case ProtoFieldType::TYPE_DOUBLE: + case ProtoFieldType::TYPE_FIXED64: + case ProtoFieldType::TYPE_SFIXED64: + return 1; // 64-bit + } + return 0; +} + // Function pointer types for encoding and size calculation using EncodeFunc = void (*)(ProtoWriteBuffer &, const void *field_ptr, uint8_t field_num); using SizeFunc = void (*)(uint32_t &total_size, const void *field_ptr, uint8_t precalced_field_id_size, bool force); @@ -226,6 +285,16 @@ struct FieldMeta { } decoder; }; +// New type-based metadata structure (smaller and more efficient) +struct FieldMetaV2 { + uint8_t field_num; // Protobuf field number (1-255) + uint16_t offset; // offset of field in class + ProtoFieldType type; // Field type enum + bool force_encode; // If true, encode even if value is default/empty + uint8_t precalced_field_id_size; // Pre-calculated size of field tag in bytes + uint8_t message_type_id; // For TYPE_MESSAGE/TYPE_ENUM: identifies which type (0 for non-message/enum) +}; + class ProtoWriteBuffer { public: ProtoWriteBuffer(std::vector *buffer) : buffer_(buffer) {} @@ -348,6 +417,26 @@ class ProtoWriteBuffer { } this->encode_uint64(field_id, uvalue, force); } + void encode_sfixed32(uint32_t field_id, int32_t value, bool force = false) { + if (!force && value == 0) + return; + this->encode_fixed32(field_id, static_cast(value), force); + } + void encode_double(uint32_t field_id, double value, bool force = false) { + if (!force && value == 0.0) + return; + union { + double value; + uint64_t raw; + } val{}; + val.value = value; + this->encode_fixed64(field_id, val.raw, force); + } + void encode_sfixed64(uint32_t field_id, int64_t value, bool force = false) { + if (!force && value == 0) + return; + this->encode_fixed64(field_id, static_cast(value), force); + } template void encode_message(uint32_t field_id, const C &value, bool force = false) { this->encode_field_raw(field_id, 2); // type 2: Length-delimited message size_t begin = this->buffer_->size(); @@ -388,6 +477,15 @@ struct RepeatedFieldMeta { } decoder; }; +// New type-based repeated field metadata +struct RepeatedFieldMetaV2 { + uint8_t field_num; + uint16_t offset; + ProtoFieldType type; // Element type + uint8_t precalced_field_id_size; // Pre-calculated size of field tag in bytes + uint8_t message_type_id; // For TYPE_MESSAGE/TYPE_ENUM: identifies which type (0 for non-message/enum) +}; + class ProtoMessage { public: virtual ~ProtoMessage() = default; @@ -398,11 +496,22 @@ class ProtoMessage { virtual const RepeatedFieldMeta *get_repeated_field_metadata() const { return nullptr; } virtual size_t get_repeated_field_count() const { return 0; } + // V2 metadata getters - default implementations return nullptr/0 + virtual const FieldMetaV2 *get_field_metadata_v2() const { return nullptr; } + virtual size_t get_field_count_v2() const { return 0; } + virtual const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const { return nullptr; } + virtual size_t get_repeated_field_count_v2() const { return 0; } + // Encode/decode/calculate_size using metadata void encode(ProtoWriteBuffer buffer) const; void decode(const uint8_t *buffer, size_t length); void calculate_size(uint32_t &total_size) const; + // Type-based implementations using V2 metadata + void decode_v2(const uint8_t *buffer, size_t length); + void encode_v2(ProtoWriteBuffer buffer) const; + void calculate_size_v2(uint32_t &total_size) const; + #ifdef HAS_PROTO_MESSAGE_DUMP std::string dump() const; virtual void dump_to(std::string &out) const = 0; @@ -586,5 +695,18 @@ void encode_from_metadata(ProtoWriteBuffer buffer, const void *obj, const FieldM void calculate_size_from_metadata(uint32_t &total_size, const void *obj, const FieldMeta *fields, size_t field_count, const RepeatedFieldMeta *repeated_fields = nullptr, size_t repeated_count = 0); +// Message type handlers for V2 system +void encode_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, + uint8_t message_type_id); +void decode_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id); +void size_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, + uint8_t message_type_id, bool force); + +void encode_repeated_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, + uint8_t message_type_id); +void decode_repeated_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id); +void size_repeated_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, + uint8_t message_type_id); + } // namespace api } // namespace esphome diff --git a/script/api_protobuf/api_protobuf.py b/script/api_protobuf/api_protobuf.py index 0129a51d64..ff9d02b1be 100755 --- a/script/api_protobuf/api_protobuf.py +++ b/script/api_protobuf/api_protobuf.py @@ -30,6 +30,42 @@ class WireType(IntEnum): FIXED32 = 5 # fixed32, sfixed32, float +# Message type registry - maps message names to type IDs +MESSAGE_TYPE_REGISTRY = {} +NEXT_MESSAGE_TYPE_ID = 1 + + +def get_message_type_id(message_name): + """Get or assign a type ID for a message type.""" + global NEXT_MESSAGE_TYPE_ID + if message_name not in MESSAGE_TYPE_REGISTRY: + MESSAGE_TYPE_REGISTRY[message_name] = NEXT_MESSAGE_TYPE_ID + NEXT_MESSAGE_TYPE_ID += 1 + return MESSAGE_TYPE_REGISTRY[message_name] + + +# Mapping from protobuf types to our ProtoFieldType enum +PROTO_TYPE_MAP = { + descriptor.FieldDescriptorProto.TYPE_BOOL: "ProtoFieldType::TYPE_BOOL", + descriptor.FieldDescriptorProto.TYPE_INT32: "ProtoFieldType::TYPE_INT32", + descriptor.FieldDescriptorProto.TYPE_UINT32: "ProtoFieldType::TYPE_UINT32", + descriptor.FieldDescriptorProto.TYPE_INT64: "ProtoFieldType::TYPE_INT64", + descriptor.FieldDescriptorProto.TYPE_UINT64: "ProtoFieldType::TYPE_UINT64", + descriptor.FieldDescriptorProto.TYPE_SINT32: "ProtoFieldType::TYPE_SINT32", + descriptor.FieldDescriptorProto.TYPE_SINT64: "ProtoFieldType::TYPE_SINT64", + descriptor.FieldDescriptorProto.TYPE_ENUM: "ProtoFieldType::TYPE_ENUM", + descriptor.FieldDescriptorProto.TYPE_STRING: "ProtoFieldType::TYPE_STRING", + descriptor.FieldDescriptorProto.TYPE_BYTES: "ProtoFieldType::TYPE_BYTES", + descriptor.FieldDescriptorProto.TYPE_MESSAGE: "ProtoFieldType::TYPE_MESSAGE", + descriptor.FieldDescriptorProto.TYPE_FLOAT: "ProtoFieldType::TYPE_FLOAT", + descriptor.FieldDescriptorProto.TYPE_FIXED32: "ProtoFieldType::TYPE_FIXED32", + descriptor.FieldDescriptorProto.TYPE_SFIXED32: "ProtoFieldType::TYPE_SFIXED32", + descriptor.FieldDescriptorProto.TYPE_DOUBLE: "ProtoFieldType::TYPE_DOUBLE", + descriptor.FieldDescriptorProto.TYPE_FIXED64: "ProtoFieldType::TYPE_FIXED64", + descriptor.FieldDescriptorProto.TYPE_SFIXED64: "ProtoFieldType::TYPE_SFIXED64", +} + + # Generate with # protoc --python_out=script/api_protobuf -I esphome/components/api/ api_options.proto @@ -485,6 +521,10 @@ class MessageType(TypeInfo): def cpp_type(self) -> str: return self._field.type_name[1:] + @property + def type_name(self) -> str: + return self._field.type_name[1:] + default_value = "" wire_type = WireType.LENGTH_DELIMITED # Uses wire type 2 @@ -1250,6 +1290,8 @@ def build_message_type( # Generate metadata arrays for all classes using metadata approach regular_fields = [] repeated_fields = [] + regular_fields_v2 = [] + repeated_fields_v2 = [] metadata_info = None if use_metadata: @@ -1335,6 +1377,70 @@ def build_message_type( "class_name": desc.name, } + # Also generate V2 metadata + for field in desc.field: + if field.label == 3: # Repeated field + ti = RepeatedTypeInfo(field) + field_type = PROTO_TYPE_MAP.get(field.type, None) + if field_type: + field_tag_size = ti.calculate_field_id_size() + if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE: + # For messages, get the type ID + message_type_id = get_message_type_id(ti._ti.type_name) + else: + message_type_id = 0 # Non-message types have ID 0 + repeated_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"{field_type}, {field_tag_size}, {message_type_id}}}" + ) + elif isinstance(ti._ti, EnumType): + enum_type_id = get_message_type_id(ti._ti.type_name) + repeated_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"ProtoFieldType::TYPE_ENUM, {ti.calculate_field_id_size()}, {enum_type_id}}}" + ) + elif isinstance(ti._ti, MessageType): + message_type_id = get_message_type_id(ti._ti.type_name) + repeated_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"ProtoFieldType::TYPE_MESSAGE, {ti.calculate_field_id_size()}, {message_type_id}}}" + ) + else: + ti = TYPE_INFO[field.type](field) + field_type = PROTO_TYPE_MAP.get(field.type, None) + force = "true" if field.label == 2 else "false" # Required fields + + if field_type: + field_tag_size = ti.calculate_field_id_size() + if field.type == descriptor.FieldDescriptorProto.TYPE_MESSAGE: + # For messages, get the type ID + message_type_id = get_message_type_id(ti.type_name) + else: + message_type_id = 0 # Non-message types have ID 0 + regular_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"{field_type}, {force}, {field_tag_size}, {message_type_id}}}" + ) + elif isinstance(ti, EnumType): + field_tag_size = ti.calculate_field_id_size() + # For enums, use the enum name as type ID + enum_type_id = get_message_type_id(ti.type_name) + regular_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"ProtoFieldType::TYPE_ENUM, {force}, {field_tag_size}, {enum_type_id}}}" + ) + elif isinstance(ti, MessageType): + field_tag_size = ti.calculate_field_id_size() + # For messages, use the message type name as type ID + message_type_id = get_message_type_id(ti.type_name) + regular_fields_v2.append( + f"{{{field.number}, PROTO_FIELD_OFFSET({desc.name}, {ti.field_name}), " + f"ProtoFieldType::TYPE_MESSAGE, {force}, {field_tag_size}, {message_type_id}}}" + ) + + metadata_info["regular_fields_v2"] = regular_fields_v2 + metadata_info["repeated_fields_v2"] = repeated_fields_v2 + # Only generate decode methods for classes not using metadata approach if not use_metadata: if decode_varint: @@ -1405,6 +1511,27 @@ def build_message_type( else: public_content.append("static constexpr size_t REPEATED_COUNT = 0;") + # Add V2 metadata arrays + if regular_fields_v2: + public_content.append( + f"static const FieldMetaV2 FIELDS_V2[{len(regular_fields_v2)}];" + ) + public_content.append( + f"static constexpr size_t FIELD_COUNT_V2 = {len(regular_fields_v2)};" + ) + else: + public_content.append("static constexpr size_t FIELD_COUNT_V2 = 0;") + + if repeated_fields_v2: + public_content.append( + f"static const RepeatedFieldMetaV2 REPEATED_FIELDS_V2[{len(repeated_fields_v2)}];" + ) + public_content.append( + f"static constexpr size_t REPEATED_COUNT_V2 = {len(repeated_fields_v2)};" + ) + else: + public_content.append("static constexpr size_t REPEATED_COUNT_V2 = 0;") + # Add virtual getter methods that return the metadata public_content.append("// Virtual metadata getters") if regular_fields: @@ -1431,6 +1558,31 @@ def build_message_type( "size_t get_repeated_field_count() const override { return REPEATED_COUNT; }" ) + # Add V2 metadata getters + if regular_fields_v2: + public_content.append( + "const FieldMetaV2 *get_field_metadata_v2() const override { return FIELDS_V2; }" + ) + else: + public_content.append( + "const FieldMetaV2 *get_field_metadata_v2() const override { return nullptr; }" + ) + public_content.append( + "size_t get_field_count_v2() const override { return FIELD_COUNT_V2; }" + ) + + if repeated_fields_v2: + public_content.append( + "const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return REPEATED_FIELDS_V2; }" + ) + else: + public_content.append( + "const RepeatedFieldMetaV2 *get_repeated_field_metadata_v2() const override { return nullptr; }" + ) + public_content.append( + "size_t get_repeated_field_count_v2() const override { return REPEATED_COUNT_V2; }" + ) + # Only generate encode method if there are fields to encode if encode and not use_metadata: o = f"void {desc.name}::encode(ProtoWriteBuffer buffer) const {{" @@ -1801,6 +1953,10 @@ namespace api { mt = file.message_type + # First pass: Register all message types to populate MESSAGE_TYPE_REGISTRY + for m in mt: + get_message_type_id(m.name) + # Collect messages by base class base_class_groups = collect_messages_by_base_class(mt) @@ -1903,10 +2059,156 @@ namespace api { cpp += f" {field}\n" cpp += "};\n" + # Generate V2 metadata arrays + regular_fields_v2 = meta.get("regular_fields_v2", []) + repeated_fields_v2 = meta.get("repeated_fields_v2", []) + + if regular_fields_v2: + cpp += f"const FieldMetaV2 {class_name}::FIELDS_V2[{len(regular_fields_v2)}] = {{\n" + for i, field in enumerate(regular_fields_v2): + if i < len(regular_fields_v2) - 1: + cpp += f" {field},\n" + else: + cpp += f" {field}\n" + cpp += "};\n" + + if repeated_fields_v2: + cpp += f"const RepeatedFieldMetaV2 {class_name}::REPEATED_FIELDS_V2[{len(repeated_fields_v2)}] = {{\n" + for i, field in enumerate(repeated_fields_v2): + if i < len(repeated_fields_v2) - 1: + cpp += f" {field},\n" + else: + cpp += f" {field}\n" + cpp += "};\n" + # Close last ifdef for metadata if current_ifdef is not None: cpp += "#endif\n" + # Generate message type handler functions + cpp += "\n// Message type handler implementations\n" + + # Sort by type ID for consistent output + sorted_types = sorted(MESSAGE_TYPE_REGISTRY.items(), key=lambda x: x[1]) + + # Generate encode handler + cpp += "void encode_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, uint8_t message_type_id) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += f" const {message_name} *msg = static_cast(field_ptr);\n" + cpp += f" buffer.encode_message<{message_name}>(field_num, *msg);\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n\n" + + # Generate decode handler + cpp += "void decode_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += ( + f" {message_name} *msg = static_cast<{message_name} *>(field_ptr);\n" + ) + cpp += f" *msg = value.as_message<{message_name}>();\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n\n" + + # Generate size handler + cpp += "void size_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, uint8_t message_type_id, bool force) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += f" const {message_name} *msg = static_cast(field_ptr);\n" + cpp += " ProtoSize::add_message_object(total_size, precalced_field_id_size, *msg, force);\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n\n" + + # Generate repeated encode handler + cpp += "void encode_repeated_message_field_by_type(ProtoWriteBuffer &buffer, uint8_t field_num, const void *field_ptr, uint8_t message_type_id) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += f" const std::vector<{message_name}> *vec = static_cast *>(field_ptr);\n" + cpp += " for (const auto &msg : *vec) {\n" + cpp += f" buffer.encode_message<{message_name}>(field_num, msg, true);\n" + cpp += " }\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n\n" + + # Generate repeated decode handler + cpp += "void decode_repeated_message_field_by_type(void *field_ptr, ProtoLengthDelimited value, uint8_t message_type_id) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += f" std::vector<{message_name}> *vec = static_cast *>(field_ptr);\n" + cpp += f" vec->push_back(value.as_message<{message_name}>());\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n\n" + + # Generate repeated size handler + cpp += "void size_repeated_message_field_by_type(uint32_t &total_size, uint8_t precalced_field_id_size, const void *field_ptr, uint8_t message_type_id) {\n" + cpp += " switch (message_type_id) {\n" + for message_name, type_id in sorted_types: + ifdef = message_ifdef_map.get(message_name) + if ifdef: + cpp += f"#ifdef {ifdef}\n" + cpp += f" case {type_id}: {{\n" + cpp += f" const std::vector<{message_name}> *vec = static_cast *>(field_ptr);\n" + cpp += f" ProtoSize::add_repeated_message<{message_name}>(total_size, precalced_field_id_size, *vec);\n" + cpp += " break;\n" + cpp += " }\n" + if ifdef: + cpp += "#endif\n" + cpp += " default:\n" + cpp += " break;\n" + cpp += " }\n" + cpp += "}\n" + cpp += """\ } // namespace api