ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
api_pb2.cpp
Go to the documentation of this file.
1// This file was automatically generated with a tool.
2// See script/api_protobuf/api_protobuf.py
3#include "api_pb2.h"
4#include "esphome/core/log.h"
6#include <cstring>
7
8namespace esphome::api {
9
10bool HelloRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
11 switch (field_id) {
12 case 2:
13 this->api_version_major = value.as_uint32();
14 break;
15 case 3:
16 this->api_version_minor = value.as_uint32();
17 break;
18 default:
19 return false;
20 }
21 return true;
22}
23bool HelloRequest::decode_length(uint32_t field_id, ProtoLengthDelimited value) {
24 switch (field_id) {
25 case 1: {
26 this->client_info = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
27 break;
28 }
29 default:
30 return false;
31 }
32 return true;
33}
35 buffer.encode_uint32(1, this->api_version_major);
36 buffer.encode_uint32(2, this->api_version_minor);
37 buffer.encode_string(3, this->server_info);
38 buffer.encode_string(4, this->name);
39}
41 size.add_uint32(1, this->api_version_major);
42 size.add_uint32(1, this->api_version_minor);
43 size.add_length(1, this->server_info.size());
44 size.add_length(1, this->name.size());
45}
46#ifdef USE_AREAS
48 buffer.encode_uint32(1, this->area_id);
49 buffer.encode_string(2, this->name);
50}
52 size.add_uint32(1, this->area_id);
53 size.add_length(1, this->name.size());
54}
55#endif
56#ifdef USE_DEVICES
58 buffer.encode_uint32(1, this->device_id);
59 buffer.encode_string(2, this->name);
60 buffer.encode_uint32(3, this->area_id);
61}
63 size.add_uint32(1, this->device_id);
64 size.add_length(1, this->name.size());
65 size.add_uint32(1, this->area_id);
66}
67#endif
69 buffer.encode_string(2, this->name);
70 buffer.encode_string(3, this->mac_address);
71 buffer.encode_string(4, this->esphome_version);
72 buffer.encode_string(5, this->compilation_time);
73 buffer.encode_string(6, this->model);
74#ifdef USE_DEEP_SLEEP
75 buffer.encode_bool(7, this->has_deep_sleep);
76#endif
77#ifdef ESPHOME_PROJECT_NAME
78 buffer.encode_string(8, this->project_name);
79#endif
80#ifdef ESPHOME_PROJECT_NAME
81 buffer.encode_string(9, this->project_version);
82#endif
83#ifdef USE_WEBSERVER
84 buffer.encode_uint32(10, this->webserver_port);
85#endif
86#ifdef USE_BLUETOOTH_PROXY
88#endif
89 buffer.encode_string(12, this->manufacturer);
90 buffer.encode_string(13, this->friendly_name);
91#ifdef USE_VOICE_ASSISTANT
93#endif
94#ifdef USE_AREAS
95 buffer.encode_string(16, this->suggested_area);
96#endif
97#ifdef USE_BLUETOOTH_PROXY
98 buffer.encode_string(18, this->bluetooth_mac_address);
99#endif
100#ifdef USE_API_NOISE
101 buffer.encode_bool(19, this->api_encryption_supported);
102#endif
103#ifdef USE_DEVICES
104 for (const auto &it : this->devices) {
105 buffer.encode_message(20, it);
106 }
107#endif
108#ifdef USE_AREAS
109 for (const auto &it : this->areas) {
110 buffer.encode_message(21, it);
111 }
112#endif
113#ifdef USE_AREAS
114 buffer.encode_message(22, this->area, false);
115#endif
116#ifdef USE_ZWAVE_PROXY
118#endif
119#ifdef USE_ZWAVE_PROXY
120 buffer.encode_uint32(24, this->zwave_home_id);
121#endif
122}
124 size.add_length(1, this->name.size());
125 size.add_length(1, this->mac_address.size());
126 size.add_length(1, this->esphome_version.size());
127 size.add_length(1, this->compilation_time.size());
128 size.add_length(1, this->model.size());
129#ifdef USE_DEEP_SLEEP
130 size.add_bool(1, this->has_deep_sleep);
131#endif
132#ifdef ESPHOME_PROJECT_NAME
133 size.add_length(1, this->project_name.size());
134#endif
135#ifdef ESPHOME_PROJECT_NAME
136 size.add_length(1, this->project_version.size());
137#endif
138#ifdef USE_WEBSERVER
139 size.add_uint32(1, this->webserver_port);
140#endif
141#ifdef USE_BLUETOOTH_PROXY
143#endif
144 size.add_length(1, this->manufacturer.size());
145 size.add_length(1, this->friendly_name.size());
146#ifdef USE_VOICE_ASSISTANT
148#endif
149#ifdef USE_AREAS
150 size.add_length(2, this->suggested_area.size());
151#endif
152#ifdef USE_BLUETOOTH_PROXY
153 size.add_length(2, this->bluetooth_mac_address.size());
154#endif
155#ifdef USE_API_NOISE
156 size.add_bool(2, this->api_encryption_supported);
157#endif
158#ifdef USE_DEVICES
159 for (const auto &it : this->devices) {
160 size.add_message_object_force(2, it);
161 }
162#endif
163#ifdef USE_AREAS
164 for (const auto &it : this->areas) {
165 size.add_message_object_force(2, it);
166 }
167#endif
168#ifdef USE_AREAS
169 size.add_message_object(2, this->area);
170#endif
171#ifdef USE_ZWAVE_PROXY
173#endif
174#ifdef USE_ZWAVE_PROXY
175 size.add_uint32(2, this->zwave_home_id);
176#endif
177}
178#ifdef USE_BINARY_SENSOR
180 buffer.encode_string(1, this->object_id);
181 buffer.encode_fixed32(2, this->key);
182 buffer.encode_string(3, this->name);
183 buffer.encode_string(5, this->device_class);
184 buffer.encode_bool(6, this->is_status_binary_sensor);
185 buffer.encode_bool(7, this->disabled_by_default);
186#ifdef USE_ENTITY_ICON
187 buffer.encode_string(8, this->icon);
188#endif
189 buffer.encode_uint32(9, static_cast<uint32_t>(this->entity_category));
190#ifdef USE_DEVICES
191 buffer.encode_uint32(10, this->device_id);
192#endif
193}
195 size.add_length(1, this->object_id.size());
196 size.add_fixed32(1, this->key);
197 size.add_length(1, this->name.size());
198 size.add_length(1, this->device_class.size());
199 size.add_bool(1, this->is_status_binary_sensor);
200 size.add_bool(1, this->disabled_by_default);
201#ifdef USE_ENTITY_ICON
202 size.add_length(1, this->icon.size());
203#endif
204 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
205#ifdef USE_DEVICES
206 size.add_uint32(1, this->device_id);
207#endif
208}
210 buffer.encode_fixed32(1, this->key);
211 buffer.encode_bool(2, this->state);
212 buffer.encode_bool(3, this->missing_state);
213#ifdef USE_DEVICES
214 buffer.encode_uint32(4, this->device_id);
215#endif
216}
218 size.add_fixed32(1, this->key);
219 size.add_bool(1, this->state);
220 size.add_bool(1, this->missing_state);
221#ifdef USE_DEVICES
222 size.add_uint32(1, this->device_id);
223#endif
224}
225#endif
226#ifdef USE_COVER
228 buffer.encode_string(1, this->object_id);
229 buffer.encode_fixed32(2, this->key);
230 buffer.encode_string(3, this->name);
231 buffer.encode_bool(5, this->assumed_state);
232 buffer.encode_bool(6, this->supports_position);
233 buffer.encode_bool(7, this->supports_tilt);
234 buffer.encode_string(8, this->device_class);
235 buffer.encode_bool(9, this->disabled_by_default);
236#ifdef USE_ENTITY_ICON
237 buffer.encode_string(10, this->icon);
238#endif
239 buffer.encode_uint32(11, static_cast<uint32_t>(this->entity_category));
240 buffer.encode_bool(12, this->supports_stop);
241#ifdef USE_DEVICES
242 buffer.encode_uint32(13, this->device_id);
243#endif
244}
246 size.add_length(1, this->object_id.size());
247 size.add_fixed32(1, this->key);
248 size.add_length(1, this->name.size());
249 size.add_bool(1, this->assumed_state);
250 size.add_bool(1, this->supports_position);
251 size.add_bool(1, this->supports_tilt);
252 size.add_length(1, this->device_class.size());
253 size.add_bool(1, this->disabled_by_default);
254#ifdef USE_ENTITY_ICON
255 size.add_length(1, this->icon.size());
256#endif
257 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
258 size.add_bool(1, this->supports_stop);
259#ifdef USE_DEVICES
260 size.add_uint32(1, this->device_id);
261#endif
262}
264 buffer.encode_fixed32(1, this->key);
265 buffer.encode_float(3, this->position);
266 buffer.encode_float(4, this->tilt);
267 buffer.encode_uint32(5, static_cast<uint32_t>(this->current_operation));
268#ifdef USE_DEVICES
269 buffer.encode_uint32(6, this->device_id);
270#endif
271}
273 size.add_fixed32(1, this->key);
274 size.add_float(1, this->position);
275 size.add_float(1, this->tilt);
276 size.add_uint32(1, static_cast<uint32_t>(this->current_operation));
277#ifdef USE_DEVICES
278 size.add_uint32(1, this->device_id);
279#endif
280}
281bool CoverCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
282 switch (field_id) {
283 case 4:
284 this->has_position = value.as_bool();
285 break;
286 case 6:
287 this->has_tilt = value.as_bool();
288 break;
289 case 8:
290 this->stop = value.as_bool();
291 break;
292#ifdef USE_DEVICES
293 case 9:
294 this->device_id = value.as_uint32();
295 break;
296#endif
297 default:
298 return false;
299 }
300 return true;
301}
302bool CoverCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
303 switch (field_id) {
304 case 1:
305 this->key = value.as_fixed32();
306 break;
307 case 5:
308 this->position = value.as_float();
309 break;
310 case 7:
311 this->tilt = value.as_float();
312 break;
313 default:
314 return false;
315 }
316 return true;
317}
318#endif
319#ifdef USE_FAN
321 buffer.encode_string(1, this->object_id);
322 buffer.encode_fixed32(2, this->key);
323 buffer.encode_string(3, this->name);
324 buffer.encode_bool(5, this->supports_oscillation);
325 buffer.encode_bool(6, this->supports_speed);
326 buffer.encode_bool(7, this->supports_direction);
327 buffer.encode_int32(8, this->supported_speed_count);
328 buffer.encode_bool(9, this->disabled_by_default);
329#ifdef USE_ENTITY_ICON
330 buffer.encode_string(10, this->icon);
331#endif
332 buffer.encode_uint32(11, static_cast<uint32_t>(this->entity_category));
333 for (const char *it : *this->supported_preset_modes) {
334 buffer.encode_string(12, it, strlen(it), true);
335 }
336#ifdef USE_DEVICES
337 buffer.encode_uint32(13, this->device_id);
338#endif
339}
341 size.add_length(1, this->object_id.size());
342 size.add_fixed32(1, this->key);
343 size.add_length(1, this->name.size());
344 size.add_bool(1, this->supports_oscillation);
345 size.add_bool(1, this->supports_speed);
346 size.add_bool(1, this->supports_direction);
347 size.add_int32(1, this->supported_speed_count);
348 size.add_bool(1, this->disabled_by_default);
349#ifdef USE_ENTITY_ICON
350 size.add_length(1, this->icon.size());
351#endif
352 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
353 if (!this->supported_preset_modes->empty()) {
354 for (const char *it : *this->supported_preset_modes) {
355 size.add_length_force(1, strlen(it));
356 }
357 }
358#ifdef USE_DEVICES
359 size.add_uint32(1, this->device_id);
360#endif
361}
363 buffer.encode_fixed32(1, this->key);
364 buffer.encode_bool(2, this->state);
365 buffer.encode_bool(3, this->oscillating);
366 buffer.encode_uint32(5, static_cast<uint32_t>(this->direction));
367 buffer.encode_int32(6, this->speed_level);
368 buffer.encode_string(7, this->preset_mode);
369#ifdef USE_DEVICES
370 buffer.encode_uint32(8, this->device_id);
371#endif
372}
374 size.add_fixed32(1, this->key);
375 size.add_bool(1, this->state);
376 size.add_bool(1, this->oscillating);
377 size.add_uint32(1, static_cast<uint32_t>(this->direction));
378 size.add_int32(1, this->speed_level);
379 size.add_length(1, this->preset_mode.size());
380#ifdef USE_DEVICES
381 size.add_uint32(1, this->device_id);
382#endif
383}
384bool FanCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
385 switch (field_id) {
386 case 2:
387 this->has_state = value.as_bool();
388 break;
389 case 3:
390 this->state = value.as_bool();
391 break;
392 case 6:
393 this->has_oscillating = value.as_bool();
394 break;
395 case 7:
396 this->oscillating = value.as_bool();
397 break;
398 case 8:
399 this->has_direction = value.as_bool();
400 break;
401 case 9:
402 this->direction = static_cast<enums::FanDirection>(value.as_uint32());
403 break;
404 case 10:
405 this->has_speed_level = value.as_bool();
406 break;
407 case 11:
408 this->speed_level = value.as_int32();
409 break;
410 case 12:
411 this->has_preset_mode = value.as_bool();
412 break;
413#ifdef USE_DEVICES
414 case 14:
415 this->device_id = value.as_uint32();
416 break;
417#endif
418 default:
419 return false;
420 }
421 return true;
422}
424 switch (field_id) {
425 case 13: {
426 this->preset_mode = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
427 break;
428 }
429 default:
430 return false;
431 }
432 return true;
433}
434bool FanCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
435 switch (field_id) {
436 case 1:
437 this->key = value.as_fixed32();
438 break;
439 default:
440 return false;
441 }
442 return true;
443}
444#endif
445#ifdef USE_LIGHT
447 buffer.encode_string(1, this->object_id);
448 buffer.encode_fixed32(2, this->key);
449 buffer.encode_string(3, this->name);
450 for (const auto &it : *this->supported_color_modes) {
451 buffer.encode_uint32(12, static_cast<uint32_t>(it), true);
452 }
453 buffer.encode_float(9, this->min_mireds);
454 buffer.encode_float(10, this->max_mireds);
455 for (const char *it : *this->effects) {
456 buffer.encode_string(11, it, strlen(it), true);
457 }
458 buffer.encode_bool(13, this->disabled_by_default);
459#ifdef USE_ENTITY_ICON
460 buffer.encode_string(14, this->icon);
461#endif
462 buffer.encode_uint32(15, static_cast<uint32_t>(this->entity_category));
463#ifdef USE_DEVICES
464 buffer.encode_uint32(16, this->device_id);
465#endif
466}
468 size.add_length(1, this->object_id.size());
469 size.add_fixed32(1, this->key);
470 size.add_length(1, this->name.size());
471 if (!this->supported_color_modes->empty()) {
472 for (const auto &it : *this->supported_color_modes) {
473 size.add_uint32_force(1, static_cast<uint32_t>(it));
474 }
475 }
476 size.add_float(1, this->min_mireds);
477 size.add_float(1, this->max_mireds);
478 if (!this->effects->empty()) {
479 for (const char *it : *this->effects) {
480 size.add_length_force(1, strlen(it));
481 }
482 }
483 size.add_bool(1, this->disabled_by_default);
484#ifdef USE_ENTITY_ICON
485 size.add_length(1, this->icon.size());
486#endif
487 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
488#ifdef USE_DEVICES
489 size.add_uint32(2, this->device_id);
490#endif
491}
493 buffer.encode_fixed32(1, this->key);
494 buffer.encode_bool(2, this->state);
495 buffer.encode_float(3, this->brightness);
496 buffer.encode_uint32(11, static_cast<uint32_t>(this->color_mode));
497 buffer.encode_float(10, this->color_brightness);
498 buffer.encode_float(4, this->red);
499 buffer.encode_float(5, this->green);
500 buffer.encode_float(6, this->blue);
501 buffer.encode_float(7, this->white);
502 buffer.encode_float(8, this->color_temperature);
503 buffer.encode_float(12, this->cold_white);
504 buffer.encode_float(13, this->warm_white);
505 buffer.encode_string(9, this->effect);
506#ifdef USE_DEVICES
507 buffer.encode_uint32(14, this->device_id);
508#endif
509}
511 size.add_fixed32(1, this->key);
512 size.add_bool(1, this->state);
513 size.add_float(1, this->brightness);
514 size.add_uint32(1, static_cast<uint32_t>(this->color_mode));
515 size.add_float(1, this->color_brightness);
516 size.add_float(1, this->red);
517 size.add_float(1, this->green);
518 size.add_float(1, this->blue);
519 size.add_float(1, this->white);
520 size.add_float(1, this->color_temperature);
521 size.add_float(1, this->cold_white);
522 size.add_float(1, this->warm_white);
523 size.add_length(1, this->effect.size());
524#ifdef USE_DEVICES
525 size.add_uint32(1, this->device_id);
526#endif
527}
528bool LightCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
529 switch (field_id) {
530 case 2:
531 this->has_state = value.as_bool();
532 break;
533 case 3:
534 this->state = value.as_bool();
535 break;
536 case 4:
537 this->has_brightness = value.as_bool();
538 break;
539 case 22:
540 this->has_color_mode = value.as_bool();
541 break;
542 case 23:
543 this->color_mode = static_cast<enums::ColorMode>(value.as_uint32());
544 break;
545 case 20:
546 this->has_color_brightness = value.as_bool();
547 break;
548 case 6:
549 this->has_rgb = value.as_bool();
550 break;
551 case 10:
552 this->has_white = value.as_bool();
553 break;
554 case 12:
555 this->has_color_temperature = value.as_bool();
556 break;
557 case 24:
558 this->has_cold_white = value.as_bool();
559 break;
560 case 26:
561 this->has_warm_white = value.as_bool();
562 break;
563 case 14:
564 this->has_transition_length = value.as_bool();
565 break;
566 case 15:
567 this->transition_length = value.as_uint32();
568 break;
569 case 16:
570 this->has_flash_length = value.as_bool();
571 break;
572 case 17:
573 this->flash_length = value.as_uint32();
574 break;
575 case 18:
576 this->has_effect = value.as_bool();
577 break;
578#ifdef USE_DEVICES
579 case 28:
580 this->device_id = value.as_uint32();
581 break;
582#endif
583 default:
584 return false;
585 }
586 return true;
587}
589 switch (field_id) {
590 case 19: {
591 this->effect = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
592 break;
593 }
594 default:
595 return false;
596 }
597 return true;
598}
599bool LightCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
600 switch (field_id) {
601 case 1:
602 this->key = value.as_fixed32();
603 break;
604 case 5:
605 this->brightness = value.as_float();
606 break;
607 case 21:
608 this->color_brightness = value.as_float();
609 break;
610 case 7:
611 this->red = value.as_float();
612 break;
613 case 8:
614 this->green = value.as_float();
615 break;
616 case 9:
617 this->blue = value.as_float();
618 break;
619 case 11:
620 this->white = value.as_float();
621 break;
622 case 13:
623 this->color_temperature = value.as_float();
624 break;
625 case 25:
626 this->cold_white = value.as_float();
627 break;
628 case 27:
629 this->warm_white = value.as_float();
630 break;
631 default:
632 return false;
633 }
634 return true;
635}
636#endif
637#ifdef USE_SENSOR
639 buffer.encode_string(1, this->object_id);
640 buffer.encode_fixed32(2, this->key);
641 buffer.encode_string(3, this->name);
642#ifdef USE_ENTITY_ICON
643 buffer.encode_string(5, this->icon);
644#endif
645 buffer.encode_string(6, this->unit_of_measurement);
646 buffer.encode_int32(7, this->accuracy_decimals);
647 buffer.encode_bool(8, this->force_update);
648 buffer.encode_string(9, this->device_class);
649 buffer.encode_uint32(10, static_cast<uint32_t>(this->state_class));
650 buffer.encode_bool(12, this->disabled_by_default);
651 buffer.encode_uint32(13, static_cast<uint32_t>(this->entity_category));
652#ifdef USE_DEVICES
653 buffer.encode_uint32(14, this->device_id);
654#endif
655}
657 size.add_length(1, this->object_id.size());
658 size.add_fixed32(1, this->key);
659 size.add_length(1, this->name.size());
660#ifdef USE_ENTITY_ICON
661 size.add_length(1, this->icon.size());
662#endif
663 size.add_length(1, this->unit_of_measurement.size());
664 size.add_int32(1, this->accuracy_decimals);
665 size.add_bool(1, this->force_update);
666 size.add_length(1, this->device_class.size());
667 size.add_uint32(1, static_cast<uint32_t>(this->state_class));
668 size.add_bool(1, this->disabled_by_default);
669 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
670#ifdef USE_DEVICES
671 size.add_uint32(1, this->device_id);
672#endif
673}
675 buffer.encode_fixed32(1, this->key);
676 buffer.encode_float(2, this->state);
677 buffer.encode_bool(3, this->missing_state);
678#ifdef USE_DEVICES
679 buffer.encode_uint32(4, this->device_id);
680#endif
681}
683 size.add_fixed32(1, this->key);
684 size.add_float(1, this->state);
685 size.add_bool(1, this->missing_state);
686#ifdef USE_DEVICES
687 size.add_uint32(1, this->device_id);
688#endif
689}
690#endif
691#ifdef USE_SWITCH
693 buffer.encode_string(1, this->object_id);
694 buffer.encode_fixed32(2, this->key);
695 buffer.encode_string(3, this->name);
696#ifdef USE_ENTITY_ICON
697 buffer.encode_string(5, this->icon);
698#endif
699 buffer.encode_bool(6, this->assumed_state);
700 buffer.encode_bool(7, this->disabled_by_default);
701 buffer.encode_uint32(8, static_cast<uint32_t>(this->entity_category));
702 buffer.encode_string(9, this->device_class);
703#ifdef USE_DEVICES
704 buffer.encode_uint32(10, this->device_id);
705#endif
706}
708 size.add_length(1, this->object_id.size());
709 size.add_fixed32(1, this->key);
710 size.add_length(1, this->name.size());
711#ifdef USE_ENTITY_ICON
712 size.add_length(1, this->icon.size());
713#endif
714 size.add_bool(1, this->assumed_state);
715 size.add_bool(1, this->disabled_by_default);
716 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
717 size.add_length(1, this->device_class.size());
718#ifdef USE_DEVICES
719 size.add_uint32(1, this->device_id);
720#endif
721}
723 buffer.encode_fixed32(1, this->key);
724 buffer.encode_bool(2, this->state);
725#ifdef USE_DEVICES
726 buffer.encode_uint32(3, this->device_id);
727#endif
728}
730 size.add_fixed32(1, this->key);
731 size.add_bool(1, this->state);
732#ifdef USE_DEVICES
733 size.add_uint32(1, this->device_id);
734#endif
735}
736bool SwitchCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
737 switch (field_id) {
738 case 2:
739 this->state = value.as_bool();
740 break;
741#ifdef USE_DEVICES
742 case 3:
743 this->device_id = value.as_uint32();
744 break;
745#endif
746 default:
747 return false;
748 }
749 return true;
750}
751bool SwitchCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
752 switch (field_id) {
753 case 1:
754 this->key = value.as_fixed32();
755 break;
756 default:
757 return false;
758 }
759 return true;
760}
761#endif
762#ifdef USE_TEXT_SENSOR
764 buffer.encode_string(1, this->object_id);
765 buffer.encode_fixed32(2, this->key);
766 buffer.encode_string(3, this->name);
767#ifdef USE_ENTITY_ICON
768 buffer.encode_string(5, this->icon);
769#endif
770 buffer.encode_bool(6, this->disabled_by_default);
771 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
772 buffer.encode_string(8, this->device_class);
773#ifdef USE_DEVICES
774 buffer.encode_uint32(9, this->device_id);
775#endif
776}
778 size.add_length(1, this->object_id.size());
779 size.add_fixed32(1, this->key);
780 size.add_length(1, this->name.size());
781#ifdef USE_ENTITY_ICON
782 size.add_length(1, this->icon.size());
783#endif
784 size.add_bool(1, this->disabled_by_default);
785 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
786 size.add_length(1, this->device_class.size());
787#ifdef USE_DEVICES
788 size.add_uint32(1, this->device_id);
789#endif
790}
792 buffer.encode_fixed32(1, this->key);
793 buffer.encode_string(2, this->state);
794 buffer.encode_bool(3, this->missing_state);
795#ifdef USE_DEVICES
796 buffer.encode_uint32(4, this->device_id);
797#endif
798}
800 size.add_fixed32(1, this->key);
801 size.add_length(1, this->state.size());
802 size.add_bool(1, this->missing_state);
803#ifdef USE_DEVICES
804 size.add_uint32(1, this->device_id);
805#endif
806}
807#endif
808bool SubscribeLogsRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
809 switch (field_id) {
810 case 1:
811 this->level = static_cast<enums::LogLevel>(value.as_uint32());
812 break;
813 case 2:
814 this->dump_config = value.as_bool();
815 break;
816 default:
817 return false;
818 }
819 return true;
820}
822 buffer.encode_uint32(1, static_cast<uint32_t>(this->level));
823 buffer.encode_bytes(3, this->message_ptr_, this->message_len_);
824}
826 size.add_uint32(1, static_cast<uint32_t>(this->level));
827 size.add_length(1, this->message_len_);
828}
829#ifdef USE_API_NOISE
831 switch (field_id) {
832 case 1: {
833 this->key = value.data();
834 this->key_len = value.size();
835 break;
836 }
837 default:
838 return false;
839 }
840 return true;
841}
844#endif
845#ifdef USE_API_HOMEASSISTANT_SERVICES
847 buffer.encode_string(1, this->key);
848 buffer.encode_string(2, this->value);
849}
851 size.add_length(1, this->key.size());
852 size.add_length(1, this->value.size());
853}
855 buffer.encode_string(1, this->service);
856 for (auto &it : this->data) {
857 buffer.encode_message(2, it);
858 }
859 for (auto &it : this->data_template) {
860 buffer.encode_message(3, it);
861 }
862 for (auto &it : this->variables) {
863 buffer.encode_message(4, it);
864 }
865 buffer.encode_bool(5, this->is_event);
866#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES
867 buffer.encode_uint32(6, this->call_id);
868#endif
869#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
870 buffer.encode_bool(7, this->wants_response);
871#endif
872#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
873 buffer.encode_string(8, this->response_template);
874#endif
875}
877 size.add_length(1, this->service.size());
878 size.add_repeated_message(1, this->data);
879 size.add_repeated_message(1, this->data_template);
880 size.add_repeated_message(1, this->variables);
881 size.add_bool(1, this->is_event);
882#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES
883 size.add_uint32(1, this->call_id);
884#endif
885#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
886 size.add_bool(1, this->wants_response);
887#endif
888#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
889 size.add_length(1, this->response_template.size());
890#endif
891}
892#endif
893#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES
895 switch (field_id) {
896 case 1:
897 this->call_id = value.as_uint32();
898 break;
899 case 2:
900 this->success = value.as_bool();
901 break;
902 default:
903 return false;
904 }
905 return true;
906}
908 switch (field_id) {
909 case 3: {
910 this->error_message = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
911 break;
912 }
913#ifdef USE_API_HOMEASSISTANT_ACTION_RESPONSES_JSON
914 case 4: {
915 this->response_data = value.data();
916 this->response_data_len = value.size();
917 break;
918 }
919#endif
920 default:
921 return false;
922 }
923 return true;
924}
925#endif
926#ifdef USE_API_HOMEASSISTANT_STATES
928 buffer.encode_string(1, this->entity_id);
929 buffer.encode_string(2, this->attribute);
930 buffer.encode_bool(3, this->once);
931}
933 size.add_length(1, this->entity_id.size());
934 size.add_length(1, this->attribute.size());
935 size.add_bool(1, this->once);
936}
938 switch (field_id) {
939 case 1: {
940 this->entity_id = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
941 break;
942 }
943 case 2: {
944 this->state = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
945 break;
946 }
947 case 3: {
948 this->attribute = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
949 break;
950 }
951 default:
952 return false;
953 }
954 return true;
955}
956#endif
957bool DSTRule::decode_varint(uint32_t field_id, ProtoVarInt value) {
958 switch (field_id) {
959 case 1:
960 this->time_seconds = value.as_sint32();
961 break;
962 case 2:
963 this->day = value.as_uint32();
964 break;
965 case 3:
966 this->type = static_cast<enums::DSTRuleType>(value.as_uint32());
967 break;
968 case 4:
969 this->month = value.as_uint32();
970 break;
971 case 5:
972 this->week = value.as_uint32();
973 break;
974 case 6:
975 this->day_of_week = value.as_uint32();
976 break;
977 default:
978 return false;
979 }
980 return true;
981}
982bool ParsedTimezone::decode_varint(uint32_t field_id, ProtoVarInt value) {
983 switch (field_id) {
984 case 1:
985 this->std_offset_seconds = value.as_sint32();
986 break;
987 case 2:
988 this->dst_offset_seconds = value.as_sint32();
989 break;
990 default:
991 return false;
992 }
993 return true;
994}
996 switch (field_id) {
997 case 3:
998 value.decode_to_message(this->dst_start);
999 break;
1000 case 4:
1001 value.decode_to_message(this->dst_end);
1002 break;
1003 default:
1004 return false;
1005 }
1006 return true;
1007}
1009 switch (field_id) {
1010 case 2: {
1011 this->timezone = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1012 break;
1013 }
1014 case 3:
1016 break;
1017 default:
1018 return false;
1019 }
1020 return true;
1021}
1022bool GetTimeResponse::decode_32bit(uint32_t field_id, Proto32Bit value) {
1023 switch (field_id) {
1024 case 1:
1025 this->epoch_seconds = value.as_fixed32();
1026 break;
1027 default:
1028 return false;
1029 }
1030 return true;
1031}
1032#ifdef USE_API_USER_DEFINED_ACTIONS
1034 buffer.encode_string(1, this->name);
1035 buffer.encode_uint32(2, static_cast<uint32_t>(this->type));
1036}
1038 size.add_length(1, this->name.size());
1039 size.add_uint32(1, static_cast<uint32_t>(this->type));
1040}
1042 buffer.encode_string(1, this->name);
1043 buffer.encode_fixed32(2, this->key);
1044 for (auto &it : this->args) {
1045 buffer.encode_message(3, it);
1046 }
1047 buffer.encode_uint32(4, static_cast<uint32_t>(this->supports_response));
1048}
1050 size.add_length(1, this->name.size());
1051 size.add_fixed32(1, this->key);
1052 size.add_repeated_message(1, this->args);
1053 size.add_uint32(1, static_cast<uint32_t>(this->supports_response));
1054}
1056 switch (field_id) {
1057 case 1:
1058 this->bool_ = value.as_bool();
1059 break;
1060 case 2:
1061 this->legacy_int = value.as_int32();
1062 break;
1063 case 5:
1064 this->int_ = value.as_sint32();
1065 break;
1066 case 6:
1067 this->bool_array.push_back(value.as_bool());
1068 break;
1069 case 7:
1070 this->int_array.push_back(value.as_sint32());
1071 break;
1072 default:
1073 return false;
1074 }
1075 return true;
1076}
1078 switch (field_id) {
1079 case 4: {
1080 this->string_ = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1081 break;
1082 }
1083 case 9:
1084 this->string_array.push_back(value.as_string());
1085 break;
1086 default:
1087 return false;
1088 }
1089 return true;
1090}
1091bool ExecuteServiceArgument::decode_32bit(uint32_t field_id, Proto32Bit value) {
1092 switch (field_id) {
1093 case 3:
1094 this->float_ = value.as_float();
1095 break;
1096 case 8:
1097 this->float_array.push_back(value.as_float());
1098 break;
1099 default:
1100 return false;
1101 }
1102 return true;
1103}
1104void ExecuteServiceArgument::decode(const uint8_t *buffer, size_t length) {
1105 uint32_t count_bool_array = ProtoDecodableMessage::count_repeated_field(buffer, length, 6);
1106 this->bool_array.init(count_bool_array);
1107 uint32_t count_int_array = ProtoDecodableMessage::count_repeated_field(buffer, length, 7);
1108 this->int_array.init(count_int_array);
1109 uint32_t count_float_array = ProtoDecodableMessage::count_repeated_field(buffer, length, 8);
1110 this->float_array.init(count_float_array);
1111 uint32_t count_string_array = ProtoDecodableMessage::count_repeated_field(buffer, length, 9);
1112 this->string_array.init(count_string_array);
1114}
1116 switch (field_id) {
1117#ifdef USE_API_USER_DEFINED_ACTION_RESPONSES
1118 case 3:
1119 this->call_id = value.as_uint32();
1120 break;
1121#endif
1122#ifdef USE_API_USER_DEFINED_ACTION_RESPONSES
1123 case 4:
1124 this->return_response = value.as_bool();
1125 break;
1126#endif
1127 default:
1128 return false;
1129 }
1130 return true;
1131}
1133 switch (field_id) {
1134 case 2:
1135 this->args.emplace_back();
1136 value.decode_to_message(this->args.back());
1137 break;
1138 default:
1139 return false;
1140 }
1141 return true;
1142}
1143bool ExecuteServiceRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1144 switch (field_id) {
1145 case 1:
1146 this->key = value.as_fixed32();
1147 break;
1148 default:
1149 return false;
1150 }
1151 return true;
1152}
1153void ExecuteServiceRequest::decode(const uint8_t *buffer, size_t length) {
1154 uint32_t count_args = ProtoDecodableMessage::count_repeated_field(buffer, length, 2);
1155 this->args.init(count_args);
1157}
1158#endif
1159#ifdef USE_API_USER_DEFINED_ACTION_RESPONSES
1161 buffer.encode_uint32(1, this->call_id);
1162 buffer.encode_bool(2, this->success);
1163 buffer.encode_string(3, this->error_message);
1164#ifdef USE_API_USER_DEFINED_ACTION_RESPONSES_JSON
1165 buffer.encode_bytes(4, this->response_data, this->response_data_len);
1166#endif
1167}
1169 size.add_uint32(1, this->call_id);
1170 size.add_bool(1, this->success);
1171 size.add_length(1, this->error_message.size());
1172#ifdef USE_API_USER_DEFINED_ACTION_RESPONSES_JSON
1173 size.add_length(1, this->response_data_len);
1174#endif
1175}
1176#endif
1177#ifdef USE_CAMERA
1179 buffer.encode_string(1, this->object_id);
1180 buffer.encode_fixed32(2, this->key);
1181 buffer.encode_string(3, this->name);
1182 buffer.encode_bool(5, this->disabled_by_default);
1183#ifdef USE_ENTITY_ICON
1184 buffer.encode_string(6, this->icon);
1185#endif
1186 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
1187#ifdef USE_DEVICES
1188 buffer.encode_uint32(8, this->device_id);
1189#endif
1190}
1192 size.add_length(1, this->object_id.size());
1193 size.add_fixed32(1, this->key);
1194 size.add_length(1, this->name.size());
1195 size.add_bool(1, this->disabled_by_default);
1196#ifdef USE_ENTITY_ICON
1197 size.add_length(1, this->icon.size());
1198#endif
1199 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1200#ifdef USE_DEVICES
1201 size.add_uint32(1, this->device_id);
1202#endif
1203}
1205 buffer.encode_fixed32(1, this->key);
1206 buffer.encode_bytes(2, this->data_ptr_, this->data_len_);
1207 buffer.encode_bool(3, this->done);
1208#ifdef USE_DEVICES
1209 buffer.encode_uint32(4, this->device_id);
1210#endif
1211}
1213 size.add_fixed32(1, this->key);
1214 size.add_length(1, this->data_len_);
1215 size.add_bool(1, this->done);
1216#ifdef USE_DEVICES
1217 size.add_uint32(1, this->device_id);
1218#endif
1219}
1220bool CameraImageRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1221 switch (field_id) {
1222 case 1:
1223 this->single = value.as_bool();
1224 break;
1225 case 2:
1226 this->stream = value.as_bool();
1227 break;
1228 default:
1229 return false;
1230 }
1231 return true;
1232}
1233#endif
1234#ifdef USE_CLIMATE
1236 buffer.encode_string(1, this->object_id);
1237 buffer.encode_fixed32(2, this->key);
1238 buffer.encode_string(3, this->name);
1241 for (const auto &it : *this->supported_modes) {
1242 buffer.encode_uint32(7, static_cast<uint32_t>(it), true);
1243 }
1244 buffer.encode_float(8, this->visual_min_temperature);
1245 buffer.encode_float(9, this->visual_max_temperature);
1246 buffer.encode_float(10, this->visual_target_temperature_step);
1247 buffer.encode_bool(12, this->supports_action);
1248 for (const auto &it : *this->supported_fan_modes) {
1249 buffer.encode_uint32(13, static_cast<uint32_t>(it), true);
1250 }
1251 for (const auto &it : *this->supported_swing_modes) {
1252 buffer.encode_uint32(14, static_cast<uint32_t>(it), true);
1253 }
1254 for (const char *it : *this->supported_custom_fan_modes) {
1255 buffer.encode_string(15, it, strlen(it), true);
1256 }
1257 for (const auto &it : *this->supported_presets) {
1258 buffer.encode_uint32(16, static_cast<uint32_t>(it), true);
1259 }
1260 for (const char *it : *this->supported_custom_presets) {
1261 buffer.encode_string(17, it, strlen(it), true);
1262 }
1263 buffer.encode_bool(18, this->disabled_by_default);
1264#ifdef USE_ENTITY_ICON
1265 buffer.encode_string(19, this->icon);
1266#endif
1267 buffer.encode_uint32(20, static_cast<uint32_t>(this->entity_category));
1268 buffer.encode_float(21, this->visual_current_temperature_step);
1269 buffer.encode_bool(22, this->supports_current_humidity);
1270 buffer.encode_bool(23, this->supports_target_humidity);
1271 buffer.encode_float(24, this->visual_min_humidity);
1272 buffer.encode_float(25, this->visual_max_humidity);
1273#ifdef USE_DEVICES
1274 buffer.encode_uint32(26, this->device_id);
1275#endif
1276 buffer.encode_uint32(27, this->feature_flags);
1277}
1279 size.add_length(1, this->object_id.size());
1280 size.add_fixed32(1, this->key);
1281 size.add_length(1, this->name.size());
1284 if (!this->supported_modes->empty()) {
1285 for (const auto &it : *this->supported_modes) {
1286 size.add_uint32_force(1, static_cast<uint32_t>(it));
1287 }
1288 }
1289 size.add_float(1, this->visual_min_temperature);
1290 size.add_float(1, this->visual_max_temperature);
1292 size.add_bool(1, this->supports_action);
1293 if (!this->supported_fan_modes->empty()) {
1294 for (const auto &it : *this->supported_fan_modes) {
1295 size.add_uint32_force(1, static_cast<uint32_t>(it));
1296 }
1297 }
1298 if (!this->supported_swing_modes->empty()) {
1299 for (const auto &it : *this->supported_swing_modes) {
1300 size.add_uint32_force(1, static_cast<uint32_t>(it));
1301 }
1302 }
1303 if (!this->supported_custom_fan_modes->empty()) {
1304 for (const char *it : *this->supported_custom_fan_modes) {
1305 size.add_length_force(1, strlen(it));
1306 }
1307 }
1308 if (!this->supported_presets->empty()) {
1309 for (const auto &it : *this->supported_presets) {
1310 size.add_uint32_force(2, static_cast<uint32_t>(it));
1311 }
1312 }
1313 if (!this->supported_custom_presets->empty()) {
1314 for (const char *it : *this->supported_custom_presets) {
1315 size.add_length_force(2, strlen(it));
1316 }
1317 }
1318 size.add_bool(2, this->disabled_by_default);
1319#ifdef USE_ENTITY_ICON
1320 size.add_length(2, this->icon.size());
1321#endif
1322 size.add_uint32(2, static_cast<uint32_t>(this->entity_category));
1324 size.add_bool(2, this->supports_current_humidity);
1325 size.add_bool(2, this->supports_target_humidity);
1326 size.add_float(2, this->visual_min_humidity);
1327 size.add_float(2, this->visual_max_humidity);
1328#ifdef USE_DEVICES
1329 size.add_uint32(2, this->device_id);
1330#endif
1331 size.add_uint32(2, this->feature_flags);
1332}
1334 buffer.encode_fixed32(1, this->key);
1335 buffer.encode_uint32(2, static_cast<uint32_t>(this->mode));
1336 buffer.encode_float(3, this->current_temperature);
1337 buffer.encode_float(4, this->target_temperature);
1338 buffer.encode_float(5, this->target_temperature_low);
1339 buffer.encode_float(6, this->target_temperature_high);
1340 buffer.encode_uint32(8, static_cast<uint32_t>(this->action));
1341 buffer.encode_uint32(9, static_cast<uint32_t>(this->fan_mode));
1342 buffer.encode_uint32(10, static_cast<uint32_t>(this->swing_mode));
1343 buffer.encode_string(11, this->custom_fan_mode);
1344 buffer.encode_uint32(12, static_cast<uint32_t>(this->preset));
1345 buffer.encode_string(13, this->custom_preset);
1346 buffer.encode_float(14, this->current_humidity);
1347 buffer.encode_float(15, this->target_humidity);
1348#ifdef USE_DEVICES
1349 buffer.encode_uint32(16, this->device_id);
1350#endif
1351}
1353 size.add_fixed32(1, this->key);
1354 size.add_uint32(1, static_cast<uint32_t>(this->mode));
1355 size.add_float(1, this->current_temperature);
1356 size.add_float(1, this->target_temperature);
1357 size.add_float(1, this->target_temperature_low);
1358 size.add_float(1, this->target_temperature_high);
1359 size.add_uint32(1, static_cast<uint32_t>(this->action));
1360 size.add_uint32(1, static_cast<uint32_t>(this->fan_mode));
1361 size.add_uint32(1, static_cast<uint32_t>(this->swing_mode));
1362 size.add_length(1, this->custom_fan_mode.size());
1363 size.add_uint32(1, static_cast<uint32_t>(this->preset));
1364 size.add_length(1, this->custom_preset.size());
1365 size.add_float(1, this->current_humidity);
1366 size.add_float(1, this->target_humidity);
1367#ifdef USE_DEVICES
1368 size.add_uint32(2, this->device_id);
1369#endif
1370}
1372 switch (field_id) {
1373 case 2:
1374 this->has_mode = value.as_bool();
1375 break;
1376 case 3:
1377 this->mode = static_cast<enums::ClimateMode>(value.as_uint32());
1378 break;
1379 case 4:
1380 this->has_target_temperature = value.as_bool();
1381 break;
1382 case 6:
1383 this->has_target_temperature_low = value.as_bool();
1384 break;
1385 case 8:
1386 this->has_target_temperature_high = value.as_bool();
1387 break;
1388 case 12:
1389 this->has_fan_mode = value.as_bool();
1390 break;
1391 case 13:
1392 this->fan_mode = static_cast<enums::ClimateFanMode>(value.as_uint32());
1393 break;
1394 case 14:
1395 this->has_swing_mode = value.as_bool();
1396 break;
1397 case 15:
1398 this->swing_mode = static_cast<enums::ClimateSwingMode>(value.as_uint32());
1399 break;
1400 case 16:
1401 this->has_custom_fan_mode = value.as_bool();
1402 break;
1403 case 18:
1404 this->has_preset = value.as_bool();
1405 break;
1406 case 19:
1407 this->preset = static_cast<enums::ClimatePreset>(value.as_uint32());
1408 break;
1409 case 20:
1410 this->has_custom_preset = value.as_bool();
1411 break;
1412 case 22:
1413 this->has_target_humidity = value.as_bool();
1414 break;
1415#ifdef USE_DEVICES
1416 case 24:
1417 this->device_id = value.as_uint32();
1418 break;
1419#endif
1420 default:
1421 return false;
1422 }
1423 return true;
1424}
1426 switch (field_id) {
1427 case 17: {
1428 this->custom_fan_mode = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1429 break;
1430 }
1431 case 21: {
1432 this->custom_preset = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1433 break;
1434 }
1435 default:
1436 return false;
1437 }
1438 return true;
1439}
1440bool ClimateCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1441 switch (field_id) {
1442 case 1:
1443 this->key = value.as_fixed32();
1444 break;
1445 case 5:
1446 this->target_temperature = value.as_float();
1447 break;
1448 case 7:
1449 this->target_temperature_low = value.as_float();
1450 break;
1451 case 9:
1452 this->target_temperature_high = value.as_float();
1453 break;
1454 case 23:
1455 this->target_humidity = value.as_float();
1456 break;
1457 default:
1458 return false;
1459 }
1460 return true;
1461}
1462#endif
1463#ifdef USE_WATER_HEATER
1465 buffer.encode_string(1, this->object_id);
1466 buffer.encode_fixed32(2, this->key);
1467 buffer.encode_string(3, this->name);
1468#ifdef USE_ENTITY_ICON
1469 buffer.encode_string(4, this->icon);
1470#endif
1471 buffer.encode_bool(5, this->disabled_by_default);
1472 buffer.encode_uint32(6, static_cast<uint32_t>(this->entity_category));
1473#ifdef USE_DEVICES
1474 buffer.encode_uint32(7, this->device_id);
1475#endif
1476 buffer.encode_float(8, this->min_temperature);
1477 buffer.encode_float(9, this->max_temperature);
1478 buffer.encode_float(10, this->target_temperature_step);
1479 for (const auto &it : *this->supported_modes) {
1480 buffer.encode_uint32(11, static_cast<uint32_t>(it), true);
1481 }
1482 buffer.encode_uint32(12, this->supported_features);
1483}
1485 size.add_length(1, this->object_id.size());
1486 size.add_fixed32(1, this->key);
1487 size.add_length(1, this->name.size());
1488#ifdef USE_ENTITY_ICON
1489 size.add_length(1, this->icon.size());
1490#endif
1491 size.add_bool(1, this->disabled_by_default);
1492 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1493#ifdef USE_DEVICES
1494 size.add_uint32(1, this->device_id);
1495#endif
1496 size.add_float(1, this->min_temperature);
1497 size.add_float(1, this->max_temperature);
1498 size.add_float(1, this->target_temperature_step);
1499 if (!this->supported_modes->empty()) {
1500 for (const auto &it : *this->supported_modes) {
1501 size.add_uint32_force(1, static_cast<uint32_t>(it));
1502 }
1503 }
1504 size.add_uint32(1, this->supported_features);
1505}
1507 buffer.encode_fixed32(1, this->key);
1508 buffer.encode_float(2, this->current_temperature);
1509 buffer.encode_float(3, this->target_temperature);
1510 buffer.encode_uint32(4, static_cast<uint32_t>(this->mode));
1511#ifdef USE_DEVICES
1512 buffer.encode_uint32(5, this->device_id);
1513#endif
1514 buffer.encode_uint32(6, this->state);
1515 buffer.encode_float(7, this->target_temperature_low);
1516 buffer.encode_float(8, this->target_temperature_high);
1517}
1519 size.add_fixed32(1, this->key);
1520 size.add_float(1, this->current_temperature);
1521 size.add_float(1, this->target_temperature);
1522 size.add_uint32(1, static_cast<uint32_t>(this->mode));
1523#ifdef USE_DEVICES
1524 size.add_uint32(1, this->device_id);
1525#endif
1526 size.add_uint32(1, this->state);
1527 size.add_float(1, this->target_temperature_low);
1528 size.add_float(1, this->target_temperature_high);
1529}
1531 switch (field_id) {
1532 case 2:
1533 this->has_fields = value.as_uint32();
1534 break;
1535 case 3:
1536 this->mode = static_cast<enums::WaterHeaterMode>(value.as_uint32());
1537 break;
1538#ifdef USE_DEVICES
1539 case 5:
1540 this->device_id = value.as_uint32();
1541 break;
1542#endif
1543 case 6:
1544 this->state = value.as_uint32();
1545 break;
1546 default:
1547 return false;
1548 }
1549 return true;
1550}
1552 switch (field_id) {
1553 case 1:
1554 this->key = value.as_fixed32();
1555 break;
1556 case 4:
1557 this->target_temperature = value.as_float();
1558 break;
1559 case 7:
1560 this->target_temperature_low = value.as_float();
1561 break;
1562 case 8:
1563 this->target_temperature_high = value.as_float();
1564 break;
1565 default:
1566 return false;
1567 }
1568 return true;
1569}
1570#endif
1571#ifdef USE_NUMBER
1573 buffer.encode_string(1, this->object_id);
1574 buffer.encode_fixed32(2, this->key);
1575 buffer.encode_string(3, this->name);
1576#ifdef USE_ENTITY_ICON
1577 buffer.encode_string(5, this->icon);
1578#endif
1579 buffer.encode_float(6, this->min_value);
1580 buffer.encode_float(7, this->max_value);
1581 buffer.encode_float(8, this->step);
1582 buffer.encode_bool(9, this->disabled_by_default);
1583 buffer.encode_uint32(10, static_cast<uint32_t>(this->entity_category));
1584 buffer.encode_string(11, this->unit_of_measurement);
1585 buffer.encode_uint32(12, static_cast<uint32_t>(this->mode));
1586 buffer.encode_string(13, this->device_class);
1587#ifdef USE_DEVICES
1588 buffer.encode_uint32(14, this->device_id);
1589#endif
1590}
1592 size.add_length(1, this->object_id.size());
1593 size.add_fixed32(1, this->key);
1594 size.add_length(1, this->name.size());
1595#ifdef USE_ENTITY_ICON
1596 size.add_length(1, this->icon.size());
1597#endif
1598 size.add_float(1, this->min_value);
1599 size.add_float(1, this->max_value);
1600 size.add_float(1, this->step);
1601 size.add_bool(1, this->disabled_by_default);
1602 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1603 size.add_length(1, this->unit_of_measurement.size());
1604 size.add_uint32(1, static_cast<uint32_t>(this->mode));
1605 size.add_length(1, this->device_class.size());
1606#ifdef USE_DEVICES
1607 size.add_uint32(1, this->device_id);
1608#endif
1609}
1611 buffer.encode_fixed32(1, this->key);
1612 buffer.encode_float(2, this->state);
1613 buffer.encode_bool(3, this->missing_state);
1614#ifdef USE_DEVICES
1615 buffer.encode_uint32(4, this->device_id);
1616#endif
1617}
1619 size.add_fixed32(1, this->key);
1620 size.add_float(1, this->state);
1621 size.add_bool(1, this->missing_state);
1622#ifdef USE_DEVICES
1623 size.add_uint32(1, this->device_id);
1624#endif
1625}
1626bool NumberCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1627 switch (field_id) {
1628#ifdef USE_DEVICES
1629 case 3:
1630 this->device_id = value.as_uint32();
1631 break;
1632#endif
1633 default:
1634 return false;
1635 }
1636 return true;
1637}
1638bool NumberCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1639 switch (field_id) {
1640 case 1:
1641 this->key = value.as_fixed32();
1642 break;
1643 case 2:
1644 this->state = value.as_float();
1645 break;
1646 default:
1647 return false;
1648 }
1649 return true;
1650}
1651#endif
1652#ifdef USE_SELECT
1654 buffer.encode_string(1, this->object_id);
1655 buffer.encode_fixed32(2, this->key);
1656 buffer.encode_string(3, this->name);
1657#ifdef USE_ENTITY_ICON
1658 buffer.encode_string(5, this->icon);
1659#endif
1660 for (const char *it : *this->options) {
1661 buffer.encode_string(6, it, strlen(it), true);
1662 }
1663 buffer.encode_bool(7, this->disabled_by_default);
1664 buffer.encode_uint32(8, static_cast<uint32_t>(this->entity_category));
1665#ifdef USE_DEVICES
1666 buffer.encode_uint32(9, this->device_id);
1667#endif
1668}
1670 size.add_length(1, this->object_id.size());
1671 size.add_fixed32(1, this->key);
1672 size.add_length(1, this->name.size());
1673#ifdef USE_ENTITY_ICON
1674 size.add_length(1, this->icon.size());
1675#endif
1676 if (!this->options->empty()) {
1677 for (const char *it : *this->options) {
1678 size.add_length_force(1, strlen(it));
1679 }
1680 }
1681 size.add_bool(1, this->disabled_by_default);
1682 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1683#ifdef USE_DEVICES
1684 size.add_uint32(1, this->device_id);
1685#endif
1686}
1688 buffer.encode_fixed32(1, this->key);
1689 buffer.encode_string(2, this->state);
1690 buffer.encode_bool(3, this->missing_state);
1691#ifdef USE_DEVICES
1692 buffer.encode_uint32(4, this->device_id);
1693#endif
1694}
1696 size.add_fixed32(1, this->key);
1697 size.add_length(1, this->state.size());
1698 size.add_bool(1, this->missing_state);
1699#ifdef USE_DEVICES
1700 size.add_uint32(1, this->device_id);
1701#endif
1702}
1703bool SelectCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1704 switch (field_id) {
1705#ifdef USE_DEVICES
1706 case 3:
1707 this->device_id = value.as_uint32();
1708 break;
1709#endif
1710 default:
1711 return false;
1712 }
1713 return true;
1714}
1716 switch (field_id) {
1717 case 2: {
1718 this->state = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1719 break;
1720 }
1721 default:
1722 return false;
1723 }
1724 return true;
1725}
1726bool SelectCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1727 switch (field_id) {
1728 case 1:
1729 this->key = value.as_fixed32();
1730 break;
1731 default:
1732 return false;
1733 }
1734 return true;
1735}
1736#endif
1737#ifdef USE_SIREN
1739 buffer.encode_string(1, this->object_id);
1740 buffer.encode_fixed32(2, this->key);
1741 buffer.encode_string(3, this->name);
1742#ifdef USE_ENTITY_ICON
1743 buffer.encode_string(5, this->icon);
1744#endif
1745 buffer.encode_bool(6, this->disabled_by_default);
1746 for (const char *it : *this->tones) {
1747 buffer.encode_string(7, it, strlen(it), true);
1748 }
1749 buffer.encode_bool(8, this->supports_duration);
1750 buffer.encode_bool(9, this->supports_volume);
1751 buffer.encode_uint32(10, static_cast<uint32_t>(this->entity_category));
1752#ifdef USE_DEVICES
1753 buffer.encode_uint32(11, this->device_id);
1754#endif
1755}
1757 size.add_length(1, this->object_id.size());
1758 size.add_fixed32(1, this->key);
1759 size.add_length(1, this->name.size());
1760#ifdef USE_ENTITY_ICON
1761 size.add_length(1, this->icon.size());
1762#endif
1763 size.add_bool(1, this->disabled_by_default);
1764 if (!this->tones->empty()) {
1765 for (const char *it : *this->tones) {
1766 size.add_length_force(1, strlen(it));
1767 }
1768 }
1769 size.add_bool(1, this->supports_duration);
1770 size.add_bool(1, this->supports_volume);
1771 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1772#ifdef USE_DEVICES
1773 size.add_uint32(1, this->device_id);
1774#endif
1775}
1777 buffer.encode_fixed32(1, this->key);
1778 buffer.encode_bool(2, this->state);
1779#ifdef USE_DEVICES
1780 buffer.encode_uint32(3, this->device_id);
1781#endif
1782}
1784 size.add_fixed32(1, this->key);
1785 size.add_bool(1, this->state);
1786#ifdef USE_DEVICES
1787 size.add_uint32(1, this->device_id);
1788#endif
1789}
1790bool SirenCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1791 switch (field_id) {
1792 case 2:
1793 this->has_state = value.as_bool();
1794 break;
1795 case 3:
1796 this->state = value.as_bool();
1797 break;
1798 case 4:
1799 this->has_tone = value.as_bool();
1800 break;
1801 case 6:
1802 this->has_duration = value.as_bool();
1803 break;
1804 case 7:
1805 this->duration = value.as_uint32();
1806 break;
1807 case 8:
1808 this->has_volume = value.as_bool();
1809 break;
1810#ifdef USE_DEVICES
1811 case 10:
1812 this->device_id = value.as_uint32();
1813 break;
1814#endif
1815 default:
1816 return false;
1817 }
1818 return true;
1819}
1821 switch (field_id) {
1822 case 5: {
1823 this->tone = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1824 break;
1825 }
1826 default:
1827 return false;
1828 }
1829 return true;
1830}
1831bool SirenCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1832 switch (field_id) {
1833 case 1:
1834 this->key = value.as_fixed32();
1835 break;
1836 case 9:
1837 this->volume = value.as_float();
1838 break;
1839 default:
1840 return false;
1841 }
1842 return true;
1843}
1844#endif
1845#ifdef USE_LOCK
1847 buffer.encode_string(1, this->object_id);
1848 buffer.encode_fixed32(2, this->key);
1849 buffer.encode_string(3, this->name);
1850#ifdef USE_ENTITY_ICON
1851 buffer.encode_string(5, this->icon);
1852#endif
1853 buffer.encode_bool(6, this->disabled_by_default);
1854 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
1855 buffer.encode_bool(8, this->assumed_state);
1856 buffer.encode_bool(9, this->supports_open);
1857 buffer.encode_bool(10, this->requires_code);
1858 buffer.encode_string(11, this->code_format);
1859#ifdef USE_DEVICES
1860 buffer.encode_uint32(12, this->device_id);
1861#endif
1862}
1864 size.add_length(1, this->object_id.size());
1865 size.add_fixed32(1, this->key);
1866 size.add_length(1, this->name.size());
1867#ifdef USE_ENTITY_ICON
1868 size.add_length(1, this->icon.size());
1869#endif
1870 size.add_bool(1, this->disabled_by_default);
1871 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1872 size.add_bool(1, this->assumed_state);
1873 size.add_bool(1, this->supports_open);
1874 size.add_bool(1, this->requires_code);
1875 size.add_length(1, this->code_format.size());
1876#ifdef USE_DEVICES
1877 size.add_uint32(1, this->device_id);
1878#endif
1879}
1881 buffer.encode_fixed32(1, this->key);
1882 buffer.encode_uint32(2, static_cast<uint32_t>(this->state));
1883#ifdef USE_DEVICES
1884 buffer.encode_uint32(3, this->device_id);
1885#endif
1886}
1888 size.add_fixed32(1, this->key);
1889 size.add_uint32(1, static_cast<uint32_t>(this->state));
1890#ifdef USE_DEVICES
1891 size.add_uint32(1, this->device_id);
1892#endif
1893}
1894bool LockCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1895 switch (field_id) {
1896 case 2:
1897 this->command = static_cast<enums::LockCommand>(value.as_uint32());
1898 break;
1899 case 3:
1900 this->has_code = value.as_bool();
1901 break;
1902#ifdef USE_DEVICES
1903 case 5:
1904 this->device_id = value.as_uint32();
1905 break;
1906#endif
1907 default:
1908 return false;
1909 }
1910 return true;
1911}
1913 switch (field_id) {
1914 case 4: {
1915 this->code = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
1916 break;
1917 }
1918 default:
1919 return false;
1920 }
1921 return true;
1922}
1923bool LockCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1924 switch (field_id) {
1925 case 1:
1926 this->key = value.as_fixed32();
1927 break;
1928 default:
1929 return false;
1930 }
1931 return true;
1932}
1933#endif
1934#ifdef USE_BUTTON
1936 buffer.encode_string(1, this->object_id);
1937 buffer.encode_fixed32(2, this->key);
1938 buffer.encode_string(3, this->name);
1939#ifdef USE_ENTITY_ICON
1940 buffer.encode_string(5, this->icon);
1941#endif
1942 buffer.encode_bool(6, this->disabled_by_default);
1943 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
1944 buffer.encode_string(8, this->device_class);
1945#ifdef USE_DEVICES
1946 buffer.encode_uint32(9, this->device_id);
1947#endif
1948}
1950 size.add_length(1, this->object_id.size());
1951 size.add_fixed32(1, this->key);
1952 size.add_length(1, this->name.size());
1953#ifdef USE_ENTITY_ICON
1954 size.add_length(1, this->icon.size());
1955#endif
1956 size.add_bool(1, this->disabled_by_default);
1957 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
1958 size.add_length(1, this->device_class.size());
1959#ifdef USE_DEVICES
1960 size.add_uint32(1, this->device_id);
1961#endif
1962}
1963bool ButtonCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
1964 switch (field_id) {
1965#ifdef USE_DEVICES
1966 case 2:
1967 this->device_id = value.as_uint32();
1968 break;
1969#endif
1970 default:
1971 return false;
1972 }
1973 return true;
1974}
1975bool ButtonCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
1976 switch (field_id) {
1977 case 1:
1978 this->key = value.as_fixed32();
1979 break;
1980 default:
1981 return false;
1982 }
1983 return true;
1984}
1985#endif
1986#ifdef USE_MEDIA_PLAYER
1988 buffer.encode_string(1, this->format);
1989 buffer.encode_uint32(2, this->sample_rate);
1990 buffer.encode_uint32(3, this->num_channels);
1991 buffer.encode_uint32(4, static_cast<uint32_t>(this->purpose));
1992 buffer.encode_uint32(5, this->sample_bytes);
1993}
1995 size.add_length(1, this->format.size());
1996 size.add_uint32(1, this->sample_rate);
1997 size.add_uint32(1, this->num_channels);
1998 size.add_uint32(1, static_cast<uint32_t>(this->purpose));
1999 size.add_uint32(1, this->sample_bytes);
2000}
2002 buffer.encode_string(1, this->object_id);
2003 buffer.encode_fixed32(2, this->key);
2004 buffer.encode_string(3, this->name);
2005#ifdef USE_ENTITY_ICON
2006 buffer.encode_string(5, this->icon);
2007#endif
2008 buffer.encode_bool(6, this->disabled_by_default);
2009 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
2010 buffer.encode_bool(8, this->supports_pause);
2011 for (auto &it : this->supported_formats) {
2012 buffer.encode_message(9, it);
2013 }
2014#ifdef USE_DEVICES
2015 buffer.encode_uint32(10, this->device_id);
2016#endif
2017 buffer.encode_uint32(11, this->feature_flags);
2018}
2020 size.add_length(1, this->object_id.size());
2021 size.add_fixed32(1, this->key);
2022 size.add_length(1, this->name.size());
2023#ifdef USE_ENTITY_ICON
2024 size.add_length(1, this->icon.size());
2025#endif
2026 size.add_bool(1, this->disabled_by_default);
2027 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
2028 size.add_bool(1, this->supports_pause);
2030#ifdef USE_DEVICES
2031 size.add_uint32(1, this->device_id);
2032#endif
2033 size.add_uint32(1, this->feature_flags);
2034}
2036 buffer.encode_fixed32(1, this->key);
2037 buffer.encode_uint32(2, static_cast<uint32_t>(this->state));
2038 buffer.encode_float(3, this->volume);
2039 buffer.encode_bool(4, this->muted);
2040#ifdef USE_DEVICES
2041 buffer.encode_uint32(5, this->device_id);
2042#endif
2043}
2045 size.add_fixed32(1, this->key);
2046 size.add_uint32(1, static_cast<uint32_t>(this->state));
2047 size.add_float(1, this->volume);
2048 size.add_bool(1, this->muted);
2049#ifdef USE_DEVICES
2050 size.add_uint32(1, this->device_id);
2051#endif
2052}
2054 switch (field_id) {
2055 case 2:
2056 this->has_command = value.as_bool();
2057 break;
2058 case 3:
2059 this->command = static_cast<enums::MediaPlayerCommand>(value.as_uint32());
2060 break;
2061 case 4:
2062 this->has_volume = value.as_bool();
2063 break;
2064 case 6:
2065 this->has_media_url = value.as_bool();
2066 break;
2067 case 8:
2068 this->has_announcement = value.as_bool();
2069 break;
2070 case 9:
2071 this->announcement = value.as_bool();
2072 break;
2073#ifdef USE_DEVICES
2074 case 10:
2075 this->device_id = value.as_uint32();
2076 break;
2077#endif
2078 default:
2079 return false;
2080 }
2081 return true;
2082}
2084 switch (field_id) {
2085 case 7: {
2086 this->media_url = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2087 break;
2088 }
2089 default:
2090 return false;
2091 }
2092 return true;
2093}
2095 switch (field_id) {
2096 case 1:
2097 this->key = value.as_fixed32();
2098 break;
2099 case 5:
2100 this->volume = value.as_float();
2101 break;
2102 default:
2103 return false;
2104 }
2105 return true;
2106}
2107#endif
2108#ifdef USE_BLUETOOTH_PROXY
2110 switch (field_id) {
2111 case 1:
2112 this->flags = value.as_uint32();
2113 break;
2114 default:
2115 return false;
2116 }
2117 return true;
2118}
2120 buffer.encode_uint64(1, this->address);
2121 buffer.encode_sint32(2, this->rssi);
2122 buffer.encode_uint32(3, this->address_type);
2123 buffer.encode_bytes(4, this->data, this->data_len);
2124}
2126 size.add_uint64(1, this->address);
2127 size.add_sint32(1, this->rssi);
2128 size.add_uint32(1, this->address_type);
2129 size.add_length(1, this->data_len);
2130}
2132 for (uint16_t i = 0; i < this->advertisements_len; i++) {
2133 buffer.encode_message(1, this->advertisements[i]);
2134 }
2135}
2137 for (uint16_t i = 0; i < this->advertisements_len; i++) {
2138 size.add_message_object_force(1, this->advertisements[i]);
2139 }
2140}
2142 switch (field_id) {
2143 case 1:
2144 this->address = value.as_uint64();
2145 break;
2146 case 2:
2147 this->request_type = static_cast<enums::BluetoothDeviceRequestType>(value.as_uint32());
2148 break;
2149 case 3:
2150 this->has_address_type = value.as_bool();
2151 break;
2152 case 4:
2153 this->address_type = value.as_uint32();
2154 break;
2155 default:
2156 return false;
2157 }
2158 return true;
2159}
2161 buffer.encode_uint64(1, this->address);
2162 buffer.encode_bool(2, this->connected);
2163 buffer.encode_uint32(3, this->mtu);
2164 buffer.encode_int32(4, this->error);
2165}
2167 size.add_uint64(1, this->address);
2168 size.add_bool(1, this->connected);
2169 size.add_uint32(1, this->mtu);
2170 size.add_int32(1, this->error);
2171}
2173 switch (field_id) {
2174 case 1:
2175 this->address = value.as_uint64();
2176 break;
2177 default:
2178 return false;
2179 }
2180 return true;
2181}
2183 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2184 buffer.encode_uint64(1, this->uuid[0], true);
2185 buffer.encode_uint64(1, this->uuid[1], true);
2186 }
2187 buffer.encode_uint32(2, this->handle);
2188 buffer.encode_uint32(3, this->short_uuid);
2189}
2191 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2192 size.add_uint64_force(1, this->uuid[0]);
2193 size.add_uint64_force(1, this->uuid[1]);
2194 }
2195 size.add_uint32(1, this->handle);
2196 size.add_uint32(1, this->short_uuid);
2197}
2199 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2200 buffer.encode_uint64(1, this->uuid[0], true);
2201 buffer.encode_uint64(1, this->uuid[1], true);
2202 }
2203 buffer.encode_uint32(2, this->handle);
2204 buffer.encode_uint32(3, this->properties);
2205 for (auto &it : this->descriptors) {
2206 buffer.encode_message(4, it);
2207 }
2208 buffer.encode_uint32(5, this->short_uuid);
2209}
2211 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2212 size.add_uint64_force(1, this->uuid[0]);
2213 size.add_uint64_force(1, this->uuid[1]);
2214 }
2215 size.add_uint32(1, this->handle);
2216 size.add_uint32(1, this->properties);
2217 size.add_repeated_message(1, this->descriptors);
2218 size.add_uint32(1, this->short_uuid);
2219}
2221 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2222 buffer.encode_uint64(1, this->uuid[0], true);
2223 buffer.encode_uint64(1, this->uuid[1], true);
2224 }
2225 buffer.encode_uint32(2, this->handle);
2226 for (auto &it : this->characteristics) {
2227 buffer.encode_message(3, it);
2228 }
2229 buffer.encode_uint32(4, this->short_uuid);
2230}
2232 if (this->uuid[0] != 0 || this->uuid[1] != 0) {
2233 size.add_uint64_force(1, this->uuid[0]);
2234 size.add_uint64_force(1, this->uuid[1]);
2235 }
2236 size.add_uint32(1, this->handle);
2238 size.add_uint32(1, this->short_uuid);
2239}
2241 buffer.encode_uint64(1, this->address);
2242 for (auto &it : this->services) {
2243 buffer.encode_message(2, it);
2244 }
2245}
2247 size.add_uint64(1, this->address);
2248 size.add_repeated_message(1, this->services);
2249}
2255 switch (field_id) {
2256 case 1:
2257 this->address = value.as_uint64();
2258 break;
2259 case 2:
2260 this->handle = value.as_uint32();
2261 break;
2262 default:
2263 return false;
2264 }
2265 return true;
2266}
2268 buffer.encode_uint64(1, this->address);
2269 buffer.encode_uint32(2, this->handle);
2270 buffer.encode_bytes(3, this->data_ptr_, this->data_len_);
2271}
2273 size.add_uint64(1, this->address);
2274 size.add_uint32(1, this->handle);
2275 size.add_length(1, this->data_len_);
2276}
2278 switch (field_id) {
2279 case 1:
2280 this->address = value.as_uint64();
2281 break;
2282 case 2:
2283 this->handle = value.as_uint32();
2284 break;
2285 case 3:
2286 this->response = value.as_bool();
2287 break;
2288 default:
2289 return false;
2290 }
2291 return true;
2292}
2294 switch (field_id) {
2295 case 4: {
2296 this->data = value.data();
2297 this->data_len = value.size();
2298 break;
2299 }
2300 default:
2301 return false;
2302 }
2303 return true;
2304}
2306 switch (field_id) {
2307 case 1:
2308 this->address = value.as_uint64();
2309 break;
2310 case 2:
2311 this->handle = value.as_uint32();
2312 break;
2313 default:
2314 return false;
2315 }
2316 return true;
2317}
2319 switch (field_id) {
2320 case 1:
2321 this->address = value.as_uint64();
2322 break;
2323 case 2:
2324 this->handle = value.as_uint32();
2325 break;
2326 default:
2327 return false;
2328 }
2329 return true;
2330}
2332 switch (field_id) {
2333 case 3: {
2334 this->data = value.data();
2335 this->data_len = value.size();
2336 break;
2337 }
2338 default:
2339 return false;
2340 }
2341 return true;
2342}
2344 switch (field_id) {
2345 case 1:
2346 this->address = value.as_uint64();
2347 break;
2348 case 2:
2349 this->handle = value.as_uint32();
2350 break;
2351 case 3:
2352 this->enable = value.as_bool();
2353 break;
2354 default:
2355 return false;
2356 }
2357 return true;
2358}
2360 buffer.encode_uint64(1, this->address);
2361 buffer.encode_uint32(2, this->handle);
2362 buffer.encode_bytes(3, this->data_ptr_, this->data_len_);
2363}
2365 size.add_uint64(1, this->address);
2366 size.add_uint32(1, this->handle);
2367 size.add_length(1, this->data_len_);
2368}
2370 buffer.encode_uint32(1, this->free);
2371 buffer.encode_uint32(2, this->limit);
2372 for (const auto &it : this->allocated) {
2373 if (it != 0) {
2374 buffer.encode_uint64(3, it, true);
2375 }
2376 }
2377}
2379 size.add_uint32(1, this->free);
2380 size.add_uint32(1, this->limit);
2381 for (const auto &it : this->allocated) {
2382 if (it != 0) {
2383 size.add_uint64_force(1, it);
2384 }
2385 }
2386}
2388 buffer.encode_uint64(1, this->address);
2389 buffer.encode_uint32(2, this->handle);
2390 buffer.encode_int32(3, this->error);
2391}
2393 size.add_uint64(1, this->address);
2394 size.add_uint32(1, this->handle);
2395 size.add_int32(1, this->error);
2396}
2398 buffer.encode_uint64(1, this->address);
2399 buffer.encode_uint32(2, this->handle);
2400}
2402 size.add_uint64(1, this->address);
2403 size.add_uint32(1, this->handle);
2404}
2406 buffer.encode_uint64(1, this->address);
2407 buffer.encode_uint32(2, this->handle);
2408}
2410 size.add_uint64(1, this->address);
2411 size.add_uint32(1, this->handle);
2412}
2414 buffer.encode_uint64(1, this->address);
2415 buffer.encode_bool(2, this->paired);
2416 buffer.encode_int32(3, this->error);
2417}
2419 size.add_uint64(1, this->address);
2420 size.add_bool(1, this->paired);
2421 size.add_int32(1, this->error);
2422}
2424 buffer.encode_uint64(1, this->address);
2425 buffer.encode_bool(2, this->success);
2426 buffer.encode_int32(3, this->error);
2427}
2429 size.add_uint64(1, this->address);
2430 size.add_bool(1, this->success);
2431 size.add_int32(1, this->error);
2432}
2434 buffer.encode_uint64(1, this->address);
2435 buffer.encode_bool(2, this->success);
2436 buffer.encode_int32(3, this->error);
2437}
2439 size.add_uint64(1, this->address);
2440 size.add_bool(1, this->success);
2441 size.add_int32(1, this->error);
2442}
2444 buffer.encode_uint32(1, static_cast<uint32_t>(this->state));
2445 buffer.encode_uint32(2, static_cast<uint32_t>(this->mode));
2446 buffer.encode_uint32(3, static_cast<uint32_t>(this->configured_mode));
2447}
2449 size.add_uint32(1, static_cast<uint32_t>(this->state));
2450 size.add_uint32(1, static_cast<uint32_t>(this->mode));
2451 size.add_uint32(1, static_cast<uint32_t>(this->configured_mode));
2452}
2454 switch (field_id) {
2455 case 1:
2456 this->mode = static_cast<enums::BluetoothScannerMode>(value.as_uint32());
2457 break;
2458 default:
2459 return false;
2460 }
2461 return true;
2462}
2463#endif
2464#ifdef USE_VOICE_ASSISTANT
2466 switch (field_id) {
2467 case 1:
2468 this->subscribe = value.as_bool();
2469 break;
2470 case 2:
2471 this->flags = value.as_uint32();
2472 break;
2473 default:
2474 return false;
2475 }
2476 return true;
2477}
2479 buffer.encode_uint32(1, this->noise_suppression_level);
2480 buffer.encode_uint32(2, this->auto_gain);
2481 buffer.encode_float(3, this->volume_multiplier);
2482}
2484 size.add_uint32(1, this->noise_suppression_level);
2485 size.add_uint32(1, this->auto_gain);
2486 size.add_float(1, this->volume_multiplier);
2487}
2489 buffer.encode_bool(1, this->start);
2490 buffer.encode_string(2, this->conversation_id);
2491 buffer.encode_uint32(3, this->flags);
2492 buffer.encode_message(4, this->audio_settings, false);
2493 buffer.encode_string(5, this->wake_word_phrase);
2494}
2496 size.add_bool(1, this->start);
2497 size.add_length(1, this->conversation_id.size());
2498 size.add_uint32(1, this->flags);
2499 size.add_message_object(1, this->audio_settings);
2500 size.add_length(1, this->wake_word_phrase.size());
2501}
2503 switch (field_id) {
2504 case 1:
2505 this->port = value.as_uint32();
2506 break;
2507 case 2:
2508 this->error = value.as_bool();
2509 break;
2510 default:
2511 return false;
2512 }
2513 return true;
2514}
2516 switch (field_id) {
2517 case 1: {
2518 this->name = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2519 break;
2520 }
2521 case 2: {
2522 this->value = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2523 break;
2524 }
2525 default:
2526 return false;
2527 }
2528 return true;
2529}
2531 switch (field_id) {
2532 case 1:
2533 this->event_type = static_cast<enums::VoiceAssistantEvent>(value.as_uint32());
2534 break;
2535 default:
2536 return false;
2537 }
2538 return true;
2539}
2541 switch (field_id) {
2542 case 2:
2543 this->data.emplace_back();
2544 value.decode_to_message(this->data.back());
2545 break;
2546 default:
2547 return false;
2548 }
2549 return true;
2550}
2551bool VoiceAssistantAudio::decode_varint(uint32_t field_id, ProtoVarInt value) {
2552 switch (field_id) {
2553 case 2:
2554 this->end = value.as_bool();
2555 break;
2556 default:
2557 return false;
2558 }
2559 return true;
2560}
2562 switch (field_id) {
2563 case 1: {
2564 this->data = value.data();
2565 this->data_len = value.size();
2566 break;
2567 }
2568 default:
2569 return false;
2570 }
2571 return true;
2572}
2574 buffer.encode_bytes(1, this->data, this->data_len);
2575 buffer.encode_bool(2, this->end);
2576}
2578 size.add_length(1, this->data_len);
2579 size.add_bool(1, this->end);
2580}
2582 switch (field_id) {
2583 case 1:
2584 this->event_type = static_cast<enums::VoiceAssistantTimerEvent>(value.as_uint32());
2585 break;
2586 case 4:
2587 this->total_seconds = value.as_uint32();
2588 break;
2589 case 5:
2590 this->seconds_left = value.as_uint32();
2591 break;
2592 case 6:
2593 this->is_active = value.as_bool();
2594 break;
2595 default:
2596 return false;
2597 }
2598 return true;
2599}
2601 switch (field_id) {
2602 case 2: {
2603 this->timer_id = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2604 break;
2605 }
2606 case 3: {
2607 this->name = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2608 break;
2609 }
2610 default:
2611 return false;
2612 }
2613 return true;
2614}
2616 switch (field_id) {
2617 case 4:
2618 this->start_conversation = value.as_bool();
2619 break;
2620 default:
2621 return false;
2622 }
2623 return true;
2624}
2626 switch (field_id) {
2627 case 1: {
2628 this->media_id = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2629 break;
2630 }
2631 case 2: {
2632 this->text = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2633 break;
2634 }
2635 case 3: {
2636 this->preannounce_media_id = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2637 break;
2638 }
2639 default:
2640 return false;
2641 }
2642 return true;
2643}
2647 buffer.encode_string(1, this->id);
2648 buffer.encode_string(2, this->wake_word);
2649 for (auto &it : this->trained_languages) {
2650 buffer.encode_string(3, it, true);
2651 }
2652}
2654 size.add_length(1, this->id.size());
2655 size.add_length(1, this->wake_word.size());
2656 if (!this->trained_languages.empty()) {
2657 for (const auto &it : this->trained_languages) {
2658 size.add_length_force(1, it.size());
2659 }
2660 }
2661}
2663 switch (field_id) {
2664 case 5:
2665 this->model_size = value.as_uint32();
2666 break;
2667 default:
2668 return false;
2669 }
2670 return true;
2671}
2673 switch (field_id) {
2674 case 1: {
2675 this->id = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2676 break;
2677 }
2678 case 2: {
2679 this->wake_word = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2680 break;
2681 }
2682 case 3:
2683 this->trained_languages.push_back(value.as_string());
2684 break;
2685 case 4: {
2686 this->model_type = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2687 break;
2688 }
2689 case 6: {
2690 this->model_hash = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2691 break;
2692 }
2693 case 7: {
2694 this->url = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2695 break;
2696 }
2697 default:
2698 return false;
2699 }
2700 return true;
2701}
2703 switch (field_id) {
2704 case 1:
2705 this->external_wake_words.emplace_back();
2706 value.decode_to_message(this->external_wake_words.back());
2707 break;
2708 default:
2709 return false;
2710 }
2711 return true;
2712}
2714 for (auto &it : this->available_wake_words) {
2715 buffer.encode_message(1, it);
2716 }
2717 for (const auto &it : *this->active_wake_words) {
2718 buffer.encode_string(2, it, true);
2719 }
2720 buffer.encode_uint32(3, this->max_active_wake_words);
2721}
2723 size.add_repeated_message(1, this->available_wake_words);
2724 if (!this->active_wake_words->empty()) {
2725 for (const auto &it : *this->active_wake_words) {
2726 size.add_length_force(1, it.size());
2727 }
2728 }
2729 size.add_uint32(1, this->max_active_wake_words);
2730}
2732 switch (field_id) {
2733 case 1:
2734 this->active_wake_words.push_back(value.as_string());
2735 break;
2736 default:
2737 return false;
2738 }
2739 return true;
2740}
2741#endif
2742#ifdef USE_ALARM_CONTROL_PANEL
2744 buffer.encode_string(1, this->object_id);
2745 buffer.encode_fixed32(2, this->key);
2746 buffer.encode_string(3, this->name);
2747#ifdef USE_ENTITY_ICON
2748 buffer.encode_string(5, this->icon);
2749#endif
2750 buffer.encode_bool(6, this->disabled_by_default);
2751 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
2752 buffer.encode_uint32(8, this->supported_features);
2753 buffer.encode_bool(9, this->requires_code);
2754 buffer.encode_bool(10, this->requires_code_to_arm);
2755#ifdef USE_DEVICES
2756 buffer.encode_uint32(11, this->device_id);
2757#endif
2758}
2760 size.add_length(1, this->object_id.size());
2761 size.add_fixed32(1, this->key);
2762 size.add_length(1, this->name.size());
2763#ifdef USE_ENTITY_ICON
2764 size.add_length(1, this->icon.size());
2765#endif
2766 size.add_bool(1, this->disabled_by_default);
2767 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
2768 size.add_uint32(1, this->supported_features);
2769 size.add_bool(1, this->requires_code);
2770 size.add_bool(1, this->requires_code_to_arm);
2771#ifdef USE_DEVICES
2772 size.add_uint32(1, this->device_id);
2773#endif
2774}
2776 buffer.encode_fixed32(1, this->key);
2777 buffer.encode_uint32(2, static_cast<uint32_t>(this->state));
2778#ifdef USE_DEVICES
2779 buffer.encode_uint32(3, this->device_id);
2780#endif
2781}
2783 size.add_fixed32(1, this->key);
2784 size.add_uint32(1, static_cast<uint32_t>(this->state));
2785#ifdef USE_DEVICES
2786 size.add_uint32(1, this->device_id);
2787#endif
2788}
2790 switch (field_id) {
2791 case 2:
2792 this->command = static_cast<enums::AlarmControlPanelStateCommand>(value.as_uint32());
2793 break;
2794#ifdef USE_DEVICES
2795 case 4:
2796 this->device_id = value.as_uint32();
2797 break;
2798#endif
2799 default:
2800 return false;
2801 }
2802 return true;
2803}
2805 switch (field_id) {
2806 case 3: {
2807 this->code = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2808 break;
2809 }
2810 default:
2811 return false;
2812 }
2813 return true;
2814}
2816 switch (field_id) {
2817 case 1:
2818 this->key = value.as_fixed32();
2819 break;
2820 default:
2821 return false;
2822 }
2823 return true;
2824}
2825#endif
2826#ifdef USE_TEXT
2828 buffer.encode_string(1, this->object_id);
2829 buffer.encode_fixed32(2, this->key);
2830 buffer.encode_string(3, this->name);
2831#ifdef USE_ENTITY_ICON
2832 buffer.encode_string(5, this->icon);
2833#endif
2834 buffer.encode_bool(6, this->disabled_by_default);
2835 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
2836 buffer.encode_uint32(8, this->min_length);
2837 buffer.encode_uint32(9, this->max_length);
2838 buffer.encode_string(10, this->pattern);
2839 buffer.encode_uint32(11, static_cast<uint32_t>(this->mode));
2840#ifdef USE_DEVICES
2841 buffer.encode_uint32(12, this->device_id);
2842#endif
2843}
2845 size.add_length(1, this->object_id.size());
2846 size.add_fixed32(1, this->key);
2847 size.add_length(1, this->name.size());
2848#ifdef USE_ENTITY_ICON
2849 size.add_length(1, this->icon.size());
2850#endif
2851 size.add_bool(1, this->disabled_by_default);
2852 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
2853 size.add_uint32(1, this->min_length);
2854 size.add_uint32(1, this->max_length);
2855 size.add_length(1, this->pattern.size());
2856 size.add_uint32(1, static_cast<uint32_t>(this->mode));
2857#ifdef USE_DEVICES
2858 size.add_uint32(1, this->device_id);
2859#endif
2860}
2862 buffer.encode_fixed32(1, this->key);
2863 buffer.encode_string(2, this->state);
2864 buffer.encode_bool(3, this->missing_state);
2865#ifdef USE_DEVICES
2866 buffer.encode_uint32(4, this->device_id);
2867#endif
2868}
2870 size.add_fixed32(1, this->key);
2871 size.add_length(1, this->state.size());
2872 size.add_bool(1, this->missing_state);
2873#ifdef USE_DEVICES
2874 size.add_uint32(1, this->device_id);
2875#endif
2876}
2877bool TextCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
2878 switch (field_id) {
2879#ifdef USE_DEVICES
2880 case 3:
2881 this->device_id = value.as_uint32();
2882 break;
2883#endif
2884 default:
2885 return false;
2886 }
2887 return true;
2888}
2890 switch (field_id) {
2891 case 2: {
2892 this->state = StringRef(reinterpret_cast<const char *>(value.data()), value.size());
2893 break;
2894 }
2895 default:
2896 return false;
2897 }
2898 return true;
2899}
2900bool TextCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
2901 switch (field_id) {
2902 case 1:
2903 this->key = value.as_fixed32();
2904 break;
2905 default:
2906 return false;
2907 }
2908 return true;
2909}
2910#endif
2911#ifdef USE_DATETIME_DATE
2913 buffer.encode_string(1, this->object_id);
2914 buffer.encode_fixed32(2, this->key);
2915 buffer.encode_string(3, this->name);
2916#ifdef USE_ENTITY_ICON
2917 buffer.encode_string(5, this->icon);
2918#endif
2919 buffer.encode_bool(6, this->disabled_by_default);
2920 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
2921#ifdef USE_DEVICES
2922 buffer.encode_uint32(8, this->device_id);
2923#endif
2924}
2926 size.add_length(1, this->object_id.size());
2927 size.add_fixed32(1, this->key);
2928 size.add_length(1, this->name.size());
2929#ifdef USE_ENTITY_ICON
2930 size.add_length(1, this->icon.size());
2931#endif
2932 size.add_bool(1, this->disabled_by_default);
2933 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
2934#ifdef USE_DEVICES
2935 size.add_uint32(1, this->device_id);
2936#endif
2937}
2939 buffer.encode_fixed32(1, this->key);
2940 buffer.encode_bool(2, this->missing_state);
2941 buffer.encode_uint32(3, this->year);
2942 buffer.encode_uint32(4, this->month);
2943 buffer.encode_uint32(5, this->day);
2944#ifdef USE_DEVICES
2945 buffer.encode_uint32(6, this->device_id);
2946#endif
2947}
2949 size.add_fixed32(1, this->key);
2950 size.add_bool(1, this->missing_state);
2951 size.add_uint32(1, this->year);
2952 size.add_uint32(1, this->month);
2953 size.add_uint32(1, this->day);
2954#ifdef USE_DEVICES
2955 size.add_uint32(1, this->device_id);
2956#endif
2957}
2958bool DateCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
2959 switch (field_id) {
2960 case 2:
2961 this->year = value.as_uint32();
2962 break;
2963 case 3:
2964 this->month = value.as_uint32();
2965 break;
2966 case 4:
2967 this->day = value.as_uint32();
2968 break;
2969#ifdef USE_DEVICES
2970 case 5:
2971 this->device_id = value.as_uint32();
2972 break;
2973#endif
2974 default:
2975 return false;
2976 }
2977 return true;
2978}
2979bool DateCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
2980 switch (field_id) {
2981 case 1:
2982 this->key = value.as_fixed32();
2983 break;
2984 default:
2985 return false;
2986 }
2987 return true;
2988}
2989#endif
2990#ifdef USE_DATETIME_TIME
2992 buffer.encode_string(1, this->object_id);
2993 buffer.encode_fixed32(2, this->key);
2994 buffer.encode_string(3, this->name);
2995#ifdef USE_ENTITY_ICON
2996 buffer.encode_string(5, this->icon);
2997#endif
2998 buffer.encode_bool(6, this->disabled_by_default);
2999 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
3000#ifdef USE_DEVICES
3001 buffer.encode_uint32(8, this->device_id);
3002#endif
3003}
3005 size.add_length(1, this->object_id.size());
3006 size.add_fixed32(1, this->key);
3007 size.add_length(1, this->name.size());
3008#ifdef USE_ENTITY_ICON
3009 size.add_length(1, this->icon.size());
3010#endif
3011 size.add_bool(1, this->disabled_by_default);
3012 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3013#ifdef USE_DEVICES
3014 size.add_uint32(1, this->device_id);
3015#endif
3016}
3018 buffer.encode_fixed32(1, this->key);
3019 buffer.encode_bool(2, this->missing_state);
3020 buffer.encode_uint32(3, this->hour);
3021 buffer.encode_uint32(4, this->minute);
3022 buffer.encode_uint32(5, this->second);
3023#ifdef USE_DEVICES
3024 buffer.encode_uint32(6, this->device_id);
3025#endif
3026}
3028 size.add_fixed32(1, this->key);
3029 size.add_bool(1, this->missing_state);
3030 size.add_uint32(1, this->hour);
3031 size.add_uint32(1, this->minute);
3032 size.add_uint32(1, this->second);
3033#ifdef USE_DEVICES
3034 size.add_uint32(1, this->device_id);
3035#endif
3036}
3037bool TimeCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
3038 switch (field_id) {
3039 case 2:
3040 this->hour = value.as_uint32();
3041 break;
3042 case 3:
3043 this->minute = value.as_uint32();
3044 break;
3045 case 4:
3046 this->second = value.as_uint32();
3047 break;
3048#ifdef USE_DEVICES
3049 case 5:
3050 this->device_id = value.as_uint32();
3051 break;
3052#endif
3053 default:
3054 return false;
3055 }
3056 return true;
3057}
3058bool TimeCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
3059 switch (field_id) {
3060 case 1:
3061 this->key = value.as_fixed32();
3062 break;
3063 default:
3064 return false;
3065 }
3066 return true;
3067}
3068#endif
3069#ifdef USE_EVENT
3071 buffer.encode_string(1, this->object_id);
3072 buffer.encode_fixed32(2, this->key);
3073 buffer.encode_string(3, this->name);
3074#ifdef USE_ENTITY_ICON
3075 buffer.encode_string(5, this->icon);
3076#endif
3077 buffer.encode_bool(6, this->disabled_by_default);
3078 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
3079 buffer.encode_string(8, this->device_class);
3080 for (const char *it : *this->event_types) {
3081 buffer.encode_string(9, it, strlen(it), true);
3082 }
3083#ifdef USE_DEVICES
3084 buffer.encode_uint32(10, this->device_id);
3085#endif
3086}
3088 size.add_length(1, this->object_id.size());
3089 size.add_fixed32(1, this->key);
3090 size.add_length(1, this->name.size());
3091#ifdef USE_ENTITY_ICON
3092 size.add_length(1, this->icon.size());
3093#endif
3094 size.add_bool(1, this->disabled_by_default);
3095 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3096 size.add_length(1, this->device_class.size());
3097 if (!this->event_types->empty()) {
3098 for (const char *it : *this->event_types) {
3099 size.add_length_force(1, strlen(it));
3100 }
3101 }
3102#ifdef USE_DEVICES
3103 size.add_uint32(1, this->device_id);
3104#endif
3105}
3107 buffer.encode_fixed32(1, this->key);
3108 buffer.encode_string(2, this->event_type);
3109#ifdef USE_DEVICES
3110 buffer.encode_uint32(3, this->device_id);
3111#endif
3112}
3114 size.add_fixed32(1, this->key);
3115 size.add_length(1, this->event_type.size());
3116#ifdef USE_DEVICES
3117 size.add_uint32(1, this->device_id);
3118#endif
3119}
3120#endif
3121#ifdef USE_VALVE
3123 buffer.encode_string(1, this->object_id);
3124 buffer.encode_fixed32(2, this->key);
3125 buffer.encode_string(3, this->name);
3126#ifdef USE_ENTITY_ICON
3127 buffer.encode_string(5, this->icon);
3128#endif
3129 buffer.encode_bool(6, this->disabled_by_default);
3130 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
3131 buffer.encode_string(8, this->device_class);
3132 buffer.encode_bool(9, this->assumed_state);
3133 buffer.encode_bool(10, this->supports_position);
3134 buffer.encode_bool(11, this->supports_stop);
3135#ifdef USE_DEVICES
3136 buffer.encode_uint32(12, this->device_id);
3137#endif
3138}
3140 size.add_length(1, this->object_id.size());
3141 size.add_fixed32(1, this->key);
3142 size.add_length(1, this->name.size());
3143#ifdef USE_ENTITY_ICON
3144 size.add_length(1, this->icon.size());
3145#endif
3146 size.add_bool(1, this->disabled_by_default);
3147 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3148 size.add_length(1, this->device_class.size());
3149 size.add_bool(1, this->assumed_state);
3150 size.add_bool(1, this->supports_position);
3151 size.add_bool(1, this->supports_stop);
3152#ifdef USE_DEVICES
3153 size.add_uint32(1, this->device_id);
3154#endif
3155}
3157 buffer.encode_fixed32(1, this->key);
3158 buffer.encode_float(2, this->position);
3159 buffer.encode_uint32(3, static_cast<uint32_t>(this->current_operation));
3160#ifdef USE_DEVICES
3161 buffer.encode_uint32(4, this->device_id);
3162#endif
3163}
3165 size.add_fixed32(1, this->key);
3166 size.add_float(1, this->position);
3167 size.add_uint32(1, static_cast<uint32_t>(this->current_operation));
3168#ifdef USE_DEVICES
3169 size.add_uint32(1, this->device_id);
3170#endif
3171}
3172bool ValveCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
3173 switch (field_id) {
3174 case 2:
3175 this->has_position = value.as_bool();
3176 break;
3177 case 4:
3178 this->stop = value.as_bool();
3179 break;
3180#ifdef USE_DEVICES
3181 case 5:
3182 this->device_id = value.as_uint32();
3183 break;
3184#endif
3185 default:
3186 return false;
3187 }
3188 return true;
3189}
3190bool ValveCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
3191 switch (field_id) {
3192 case 1:
3193 this->key = value.as_fixed32();
3194 break;
3195 case 3:
3196 this->position = value.as_float();
3197 break;
3198 default:
3199 return false;
3200 }
3201 return true;
3202}
3203#endif
3204#ifdef USE_DATETIME_DATETIME
3206 buffer.encode_string(1, this->object_id);
3207 buffer.encode_fixed32(2, this->key);
3208 buffer.encode_string(3, this->name);
3209#ifdef USE_ENTITY_ICON
3210 buffer.encode_string(5, this->icon);
3211#endif
3212 buffer.encode_bool(6, this->disabled_by_default);
3213 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
3214#ifdef USE_DEVICES
3215 buffer.encode_uint32(8, this->device_id);
3216#endif
3217}
3219 size.add_length(1, this->object_id.size());
3220 size.add_fixed32(1, this->key);
3221 size.add_length(1, this->name.size());
3222#ifdef USE_ENTITY_ICON
3223 size.add_length(1, this->icon.size());
3224#endif
3225 size.add_bool(1, this->disabled_by_default);
3226 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3227#ifdef USE_DEVICES
3228 size.add_uint32(1, this->device_id);
3229#endif
3230}
3232 buffer.encode_fixed32(1, this->key);
3233 buffer.encode_bool(2, this->missing_state);
3234 buffer.encode_fixed32(3, this->epoch_seconds);
3235#ifdef USE_DEVICES
3236 buffer.encode_uint32(4, this->device_id);
3237#endif
3238}
3240 size.add_fixed32(1, this->key);
3241 size.add_bool(1, this->missing_state);
3242 size.add_fixed32(1, this->epoch_seconds);
3243#ifdef USE_DEVICES
3244 size.add_uint32(1, this->device_id);
3245#endif
3246}
3248 switch (field_id) {
3249#ifdef USE_DEVICES
3250 case 3:
3251 this->device_id = value.as_uint32();
3252 break;
3253#endif
3254 default:
3255 return false;
3256 }
3257 return true;
3258}
3259bool DateTimeCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
3260 switch (field_id) {
3261 case 1:
3262 this->key = value.as_fixed32();
3263 break;
3264 case 2:
3265 this->epoch_seconds = value.as_fixed32();
3266 break;
3267 default:
3268 return false;
3269 }
3270 return true;
3271}
3272#endif
3273#ifdef USE_UPDATE
3275 buffer.encode_string(1, this->object_id);
3276 buffer.encode_fixed32(2, this->key);
3277 buffer.encode_string(3, this->name);
3278#ifdef USE_ENTITY_ICON
3279 buffer.encode_string(5, this->icon);
3280#endif
3281 buffer.encode_bool(6, this->disabled_by_default);
3282 buffer.encode_uint32(7, static_cast<uint32_t>(this->entity_category));
3283 buffer.encode_string(8, this->device_class);
3284#ifdef USE_DEVICES
3285 buffer.encode_uint32(9, this->device_id);
3286#endif
3287}
3289 size.add_length(1, this->object_id.size());
3290 size.add_fixed32(1, this->key);
3291 size.add_length(1, this->name.size());
3292#ifdef USE_ENTITY_ICON
3293 size.add_length(1, this->icon.size());
3294#endif
3295 size.add_bool(1, this->disabled_by_default);
3296 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3297 size.add_length(1, this->device_class.size());
3298#ifdef USE_DEVICES
3299 size.add_uint32(1, this->device_id);
3300#endif
3301}
3303 buffer.encode_fixed32(1, this->key);
3304 buffer.encode_bool(2, this->missing_state);
3305 buffer.encode_bool(3, this->in_progress);
3306 buffer.encode_bool(4, this->has_progress);
3307 buffer.encode_float(5, this->progress);
3308 buffer.encode_string(6, this->current_version);
3309 buffer.encode_string(7, this->latest_version);
3310 buffer.encode_string(8, this->title);
3311 buffer.encode_string(9, this->release_summary);
3312 buffer.encode_string(10, this->release_url);
3313#ifdef USE_DEVICES
3314 buffer.encode_uint32(11, this->device_id);
3315#endif
3316}
3318 size.add_fixed32(1, this->key);
3319 size.add_bool(1, this->missing_state);
3320 size.add_bool(1, this->in_progress);
3321 size.add_bool(1, this->has_progress);
3322 size.add_float(1, this->progress);
3323 size.add_length(1, this->current_version.size());
3324 size.add_length(1, this->latest_version.size());
3325 size.add_length(1, this->title.size());
3326 size.add_length(1, this->release_summary.size());
3327 size.add_length(1, this->release_url.size());
3328#ifdef USE_DEVICES
3329 size.add_uint32(1, this->device_id);
3330#endif
3331}
3332bool UpdateCommandRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
3333 switch (field_id) {
3334 case 2:
3335 this->command = static_cast<enums::UpdateCommand>(value.as_uint32());
3336 break;
3337#ifdef USE_DEVICES
3338 case 3:
3339 this->device_id = value.as_uint32();
3340 break;
3341#endif
3342 default:
3343 return false;
3344 }
3345 return true;
3346}
3347bool UpdateCommandRequest::decode_32bit(uint32_t field_id, Proto32Bit value) {
3348 switch (field_id) {
3349 case 1:
3350 this->key = value.as_fixed32();
3351 break;
3352 default:
3353 return false;
3354 }
3355 return true;
3356}
3357#endif
3358#ifdef USE_ZWAVE_PROXY
3360 switch (field_id) {
3361 case 1: {
3362 this->data = value.data();
3363 this->data_len = value.size();
3364 break;
3365 }
3366 default:
3367 return false;
3368 }
3369 return true;
3370}
3371void ZWaveProxyFrame::encode(ProtoWriteBuffer &buffer) const { buffer.encode_bytes(1, this->data, this->data_len); }
3372void ZWaveProxyFrame::calculate_size(ProtoSize &size) const { size.add_length(1, this->data_len); }
3373bool ZWaveProxyRequest::decode_varint(uint32_t field_id, ProtoVarInt value) {
3374 switch (field_id) {
3375 case 1:
3376 this->type = static_cast<enums::ZWaveProxyRequestType>(value.as_uint32());
3377 break;
3378 default:
3379 return false;
3380 }
3381 return true;
3382}
3384 switch (field_id) {
3385 case 2: {
3386 this->data = value.data();
3387 this->data_len = value.size();
3388 break;
3389 }
3390 default:
3391 return false;
3392 }
3393 return true;
3394}
3396 buffer.encode_uint32(1, static_cast<uint32_t>(this->type));
3397 buffer.encode_bytes(2, this->data, this->data_len);
3398}
3400 size.add_uint32(1, static_cast<uint32_t>(this->type));
3401 size.add_length(1, this->data_len);
3402}
3403#endif
3404#ifdef USE_INFRARED
3406 buffer.encode_string(1, this->object_id);
3407 buffer.encode_fixed32(2, this->key);
3408 buffer.encode_string(3, this->name);
3409#ifdef USE_ENTITY_ICON
3410 buffer.encode_string(4, this->icon);
3411#endif
3412 buffer.encode_bool(5, this->disabled_by_default);
3413 buffer.encode_uint32(6, static_cast<uint32_t>(this->entity_category));
3414#ifdef USE_DEVICES
3415 buffer.encode_uint32(7, this->device_id);
3416#endif
3417 buffer.encode_uint32(8, this->capabilities);
3418}
3420 size.add_length(1, this->object_id.size());
3421 size.add_fixed32(1, this->key);
3422 size.add_length(1, this->name.size());
3423#ifdef USE_ENTITY_ICON
3424 size.add_length(1, this->icon.size());
3425#endif
3426 size.add_bool(1, this->disabled_by_default);
3427 size.add_uint32(1, static_cast<uint32_t>(this->entity_category));
3428#ifdef USE_DEVICES
3429 size.add_uint32(1, this->device_id);
3430#endif
3431 size.add_uint32(1, this->capabilities);
3432}
3433#endif
3434#ifdef USE_IR_RF
3436 switch (field_id) {
3437#ifdef USE_DEVICES
3438 case 1:
3439 this->device_id = value.as_uint32();
3440 break;
3441#endif
3442 case 3:
3443 this->carrier_frequency = value.as_uint32();
3444 break;
3445 case 4:
3446 this->repeat_count = value.as_uint32();
3447 break;
3448 default:
3449 return false;
3450 }
3451 return true;
3452}
3454 switch (field_id) {
3455 case 5: {
3456 this->timings_data_ = value.data();
3457 this->timings_length_ = value.size();
3458 this->timings_count_ = count_packed_varints(value.data(), value.size());
3459 break;
3460 }
3461 default:
3462 return false;
3463 }
3464 return true;
3465}
3467 switch (field_id) {
3468 case 2:
3469 this->key = value.as_fixed32();
3470 break;
3471 default:
3472 return false;
3473 }
3474 return true;
3475}
3477#ifdef USE_DEVICES
3478 buffer.encode_uint32(1, this->device_id);
3479#endif
3480 buffer.encode_fixed32(2, this->key);
3481 for (const auto &it : *this->timings) {
3482 buffer.encode_sint32(3, it, true);
3483 }
3484}
3486#ifdef USE_DEVICES
3487 size.add_uint32(1, this->device_id);
3488#endif
3489 size.add_fixed32(1, this->key);
3490 if (!this->timings->empty()) {
3491 for (const auto &it : *this->timings) {
3492 size.add_sint32_force(1, it);
3493 }
3494 }
3495}
3496#endif
3497
3498} // namespace esphome::api
constexpr bool empty() const
Check if the set is empty.
bool empty() const
Definition helpers.h:457
void push_back(const T &value)
Add element without bounds checking Caller must ensure sufficient capacity was allocated via init() S...
Definition helpers.h:416
void init(size_t n)
Definition helpers.h:389
StringRef is a reference to a string owned by something else.
Definition string_ref.h:26
constexpr size_type size() const
Definition string_ref.h:74
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:2815
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2789
enums::AlarmControlPanelStateCommand command
Definition api_pb2.h:2585
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2804
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2775
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2782
enums::AlarmControlPanelState state
Definition api_pb2.h:2569
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:47
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:51
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:209
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:217
std::array< uint64_t, BLUETOOTH_PROXY_MAX_CONNECTIONS > allocated
Definition api_pb2.h:2145
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2369
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2378
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2438
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2433
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2160
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2166
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2418
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2413
enums::BluetoothDeviceRequestType request_type
Definition api_pb2.h:1883
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2141
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2423
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2428
FixedVector< BluetoothGATTDescriptor > descriptors
Definition api_pb2.h:1945
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2210
std::array< uint64_t, 2 > uuid
Definition api_pb2.h:1942
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2198
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2190
std::array< uint64_t, 2 > uuid
Definition api_pb2.h:1929
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2182
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2387
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2392
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2250
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2253
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2172
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2246
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2240
std::vector< BluetoothGATTService > services
Definition api_pb2.h:1977
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2359
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2364
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2343
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2409
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2405
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2305
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2254
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2267
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2272
FixedVector< BluetoothGATTCharacteristic > characteristics
Definition api_pb2.h:1959
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2231
std::array< uint64_t, 2 > uuid
Definition api_pb2.h:1957
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2220
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2331
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2318
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2293
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2277
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2401
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2397
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2119
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2125
std::array< BluetoothLERawAdvertisement, BLUETOOTH_PROXY_ADVERTISEMENT_BATCH_SIZE > advertisements
Definition api_pb2.h:1865
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2136
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2131
enums::BluetoothScannerMode mode
Definition api_pb2.h:2285
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2453
enums::BluetoothScannerMode mode
Definition api_pb2.h:2268
enums::BluetoothScannerState state
Definition api_pb2.h:2267
enums::BluetoothScannerMode configured_mode
Definition api_pb2.h:2269
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2443
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2448
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1963
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1975
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1220
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1212
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1204
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1440
enums::ClimateSwingMode swing_mode
Definition api_pb2.h:1410
enums::ClimateFanMode fan_mode
Definition api_pb2.h:1408
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1371
enums::ClimatePreset preset
Definition api_pb2.h:1414
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1425
enums::ClimateFanMode fan_mode
Definition api_pb2.h:1377
enums::ClimateSwingMode swing_mode
Definition api_pb2.h:1378
enums::ClimateAction action
Definition api_pb2.h:1376
enums::ClimatePreset preset
Definition api_pb2.h:1380
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1352
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1333
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:302
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:281
enums::CoverOperation current_operation
Definition api_pb2.h:623
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:272
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:263
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:957
enums::DSTRuleType type
Definition api_pb2.h:1129
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:2979
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2958
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2938
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2948
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:3259
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3247
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3239
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3231
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:62
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:57
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:123
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:68
std::array< AreaInfo, ESPHOME_AREA_COUNT > areas
Definition api_pb2.h:525
std::array< DeviceInfo, ESPHOME_DEVICE_COUNT > devices
Definition api_pb2.h:522
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3113
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3106
void decode(const uint8_t *buffer, size_t length) override
Definition api_pb2.cpp:1104
FixedVector< float > float_array
Definition api_pb2.h:1213
FixedVector< std::string > string_array
Definition api_pb2.h:1214
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1077
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1055
FixedVector< int32_t > int_array
Definition api_pb2.h:1212
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1091
FixedVector< ExecuteServiceArgument > args
Definition api_pb2.h:1233
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1115
void decode(const uint8_t *buffer, size_t length) override
Definition api_pb2.cpp:1153
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1143
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1132
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1168
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1160
enums::FanDirection direction
Definition api_pb2.h:706
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:384
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:423
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:434
enums::FanDirection direction
Definition api_pb2.h:683
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:362
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:373
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1022
ParsedTimezone parsed_timezone
Definition api_pb2.h:1163
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1008
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:10
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:23
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:40
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:34
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:937
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:854
FixedVector< HomeassistantServiceMap > variables
Definition api_pb2.h:1031
FixedVector< HomeassistantServiceMap > data
Definition api_pb2.h:1029
FixedVector< HomeassistantServiceMap > data_template
Definition api_pb2.h:1030
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:876
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:894
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:907
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:846
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:850
enums::EntityCategory entity_category
Definition api_pb2.h:332
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3476
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3485
const std::vector< int32_t > * timings
Definition api_pb2.h:3054
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:3466
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:3453
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3435
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:588
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:599
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:528
enums::ColorMode color_mode
Definition api_pb2.h:750
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:510
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:492
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2743
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2759
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:194
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:179
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1935
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1949
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1191
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1178
const std::vector< const char * > * supported_custom_presets
Definition api_pb2.h:1349
const climate::ClimateSwingModeMask * supported_swing_modes
Definition api_pb2.h:1346
const std::vector< const char * > * supported_custom_fan_modes
Definition api_pb2.h:1347
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1278
const climate::ClimatePresetMask * supported_presets
Definition api_pb2.h:1348
const climate::ClimateFanModeMask * supported_fan_modes
Definition api_pb2.h:1345
const climate::ClimateModeMask * supported_modes
Definition api_pb2.h:1340
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1235
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:227
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:245
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2925
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2912
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3218
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3205
const FixedVector< const char * > * event_types
Definition api_pb2.h:2769
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3087
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3070
const std::vector< const char * > * supported_preset_modes
Definition api_pb2.h:665
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:340
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:320
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3419
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3405
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:467
const FixedVector< const char * > * effects
Definition api_pb2.h:732
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:446
const light::ColorModeMask * supported_color_modes
Definition api_pb2.h:729
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1863
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1846
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2001
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2019
std::vector< MediaPlayerSupportedFormat > supported_formats
Definition api_pb2.h:1774
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1591
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1572
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1669
const FixedVector< const char * > * options
Definition api_pb2.h:1557
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1653
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:656
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:638
enums::SensorStateClass state_class
Definition api_pb2.h:823
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1037
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1033
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1049
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1041
enums::SupportsResponseType supports_response
Definition api_pb2.h:1195
FixedVector< ListEntitiesServicesArgument > args
Definition api_pb2.h:1194
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1738
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1756
const FixedVector< const char * > * tones
Definition api_pb2.h:1609
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:692
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:707
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2827
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2844
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:777
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:763
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3004
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2991
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3274
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3288
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3139
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3122
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1464
const water_heater::WaterHeaterModeMask * supported_modes
Definition api_pb2.h:1440
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1484
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1894
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1923
enums::LockCommand command
Definition api_pb2.h:1704
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1912
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1880
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1887
enums::MediaPlayerCommand command
Definition api_pb2.h:1810
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:2094
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2053
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2083
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2035
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2044
enums::MediaPlayerState state
Definition api_pb2.h:1791
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1994
enums::MediaPlayerFormatPurpose purpose
Definition api_pb2.h:1756
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1987
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:830
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:842
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:843
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1638
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1626
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1610
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1618
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:982
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:995
uint32_t as_fixed32() const
Definition proto.h:221
float as_float() const
Definition proto.h:223
virtual void decode(const uint8_t *buffer, size_t length)
Definition proto.cpp:105
static uint32_t count_repeated_field(const uint8_t *buffer, size_t length, uint32_t target_field_id)
Count occurrences of a repeated field in a protobuf buffer.
Definition proto.cpp:27
void decode_to_message(ProtoDecodableMessage &msg) const
Decode the length-delimited data into an existing ProtoDecodableMessage instance.
Definition proto.h:981
const uint8_t * data() const
Definition proto.h:199
std::string as_string() const
Definition proto.h:196
void add_message_object(uint32_t field_id_size, const ProtoMessage &message)
Calculates and adds the size of a nested message field to the total message size.
Definition proto.h:845
void add_message_object_force(uint32_t field_id_size, const ProtoMessage &message)
Calculates and adds the size of a nested message field to the total message size (force version)
Definition proto.h:860
void add_float(uint32_t field_id_size, float value)
Calculates and adds the size of a float field to the total message size.
Definition proto.h:690
void add_uint32_force(uint32_t field_id_size, uint32_t value)
Calculates and adds the size of a uint32 field to the total message size (force version)
Definition proto.h:663
void add_sint32(uint32_t field_id_size, int32_t value)
Calculates and adds the size of a sint32 field to the total message size.
Definition proto.h:728
void add_bool(uint32_t field_id_size, bool value)
Calculates and adds the size of a boolean field to the total message size.
Definition proto.h:671
void add_uint32(uint32_t field_id_size, uint32_t value)
Calculates and adds the size of a uint32 field to the total message size.
Definition proto.h:654
void add_repeated_message(uint32_t field_id_size, const std::vector< MessageType > &messages)
Calculates and adds the sizes of all messages in a repeated field to the total message size.
Definition proto.h:880
void add_length_force(uint32_t field_id_size, size_t len)
Calculates and adds the size of a length-delimited field (string/bytes) to the total message size (re...
Definition proto.h:795
void add_int32(uint32_t field_id_size, int32_t value)
Common parameters for all add_*_field methods.
Definition proto.h:636
void add_sint32_force(uint32_t field_id_size, int32_t value)
Calculates and adds the size of a sint32 field to the total message size (force version)
Definition proto.h:739
void add_uint64_force(uint32_t field_id_size, uint64_t value)
Calculates and adds the size of a uint64 field to the total message size (force version)
Definition proto.h:774
void add_fixed32(uint32_t field_id_size, uint32_t value)
Calculates and adds the size of a fixed32 field to the total message size.
Definition proto.h:702
void add_length(uint32_t field_id_size, size_t len)
Calculates and adds the size of a length-delimited field (string/bytes) to the total message size.
Definition proto.h:785
Representation of a VarInt - in ProtoBuf should be 64bit but we only use 32bit.
Definition proto.h:102
constexpr uint64_t as_uint64() const
Definition proto.h:169
constexpr int32_t as_int32() const
Definition proto.h:160
constexpr uint32_t as_uint32() const
Definition proto.h:158
constexpr bool as_bool() const
Definition proto.h:159
constexpr int32_t as_sint32() const
Definition proto.h:164
void encode_string(uint32_t field_id, const char *string, size_t len, bool force=false)
Definition proto.h:274
void encode_bool(uint32_t field_id, bool value, bool force=false)
Definition proto.h:307
void encode_uint64(uint32_t field_id, uint64_t value, bool force=false)
Definition proto.h:301
void encode_uint32(uint32_t field_id, uint32_t value, bool force=false)
Definition proto.h:295
void encode_bytes(uint32_t field_id, const uint8_t *data, size_t len, bool force=false)
Definition proto.h:292
void encode_message(uint32_t field_id, const ProtoMessage &value, bool force=true)
Encode a nested message field (force=true for repeated, false for singular)
Definition proto.h:953
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1715
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1703
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1726
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1687
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1695
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:674
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:682
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:1820
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1790
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1831
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1783
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1776
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2109
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:932
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:927
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:808
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:825
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:821
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2465
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:751
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:736
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:722
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:729
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2889
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:2900
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2877
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:799
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:791
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2861
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2869
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:3058
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3037
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3017
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3027
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:3347
enums::UpdateCommand command
Definition api_pb2.h:2949
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3332
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3302
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3317
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3172
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:3190
enums::ValveOperation current_operation
Definition api_pb2.h:2823
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3156
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3164
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2645
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2644
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2625
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2615
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2577
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2561
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2551
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2573
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2478
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2483
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2702
std::vector< VoiceAssistantExternalWakeWord > external_wake_words
Definition api_pb2.h:2501
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2722
std::vector< VoiceAssistantWakeWord > available_wake_words
Definition api_pb2.h:2516
const std::vector< std::string > * active_wake_words
Definition api_pb2.h:2517
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2713
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2515
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2540
enums::VoiceAssistantEvent event_type
Definition api_pb2.h:2378
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2530
std::vector< VoiceAssistantEventData > data
Definition api_pb2.h:2379
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2672
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2662
std::vector< std::string > trained_languages
Definition api_pb2.h:2481
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2495
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2488
VoiceAssistantAudioSettings audio_settings
Definition api_pb2.h:2334
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2502
std::vector< std::string > active_wake_words
Definition api_pb2.h:2534
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2731
enums::VoiceAssistantTimerEvent event_type
Definition api_pb2.h:2415
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:2600
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:2581
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:2646
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:2653
std::vector< std::string > trained_languages
Definition api_pb2.h:2468
bool decode_32bit(uint32_t field_id, Proto32Bit value) override
Definition api_pb2.cpp:1551
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:1530
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:1518
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:1506
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:3359
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3371
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3372
void calculate_size(ProtoSize &size) const override
Definition api_pb2.cpp:3399
bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override
Definition api_pb2.cpp:3383
bool decode_varint(uint32_t field_id, ProtoVarInt value) override
Definition api_pb2.cpp:3373
void encode(ProtoWriteBuffer &buffer) const override
Definition api_pb2.cpp:3395
enums::ZWaveProxyRequestType type
Definition api_pb2.h:2985
uint16_t count_packed_varints(const uint8_t *data, size_t len)
Count number of varints in a packed buffer.
Definition proto.h:44
size_t size
Definition helpers.h:854
uint16_t length
Definition tt21100.cpp:0