esphome 2025.6.0b1__py3-none-any.whl → 2025.6.0b3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. esphome/components/api/api_connection.cpp +53 -33
  2. esphome/components/api/api_connection.h +24 -25
  3. esphome/components/api/api_pb2.cpp +1 -0
  4. esphome/components/api/api_pb2.h +65 -226
  5. esphome/components/api/client.py +1 -3
  6. esphome/components/api/proto.h +1 -1
  7. esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +2 -2
  8. esphome/components/bluetooth_proxy/bluetooth_proxy.h +1 -1
  9. esphome/components/bme280_base/bme280_base.cpp +2 -3
  10. esphome/components/datetime/date_entity.cpp +5 -5
  11. esphome/components/datetime/datetime_base.h +0 -5
  12. esphome/components/datetime/datetime_entity.cpp +8 -8
  13. esphome/components/datetime/time_entity.cpp +4 -4
  14. esphome/components/esp32/__init__.py +30 -3
  15. esphome/components/esp32_ble/ble.cpp +90 -45
  16. esphome/components/esp32_ble/ble.h +24 -5
  17. esphome/components/esp32_ble/ble_event.h +172 -32
  18. esphome/components/esp32_ble/ble_scan_result.h +24 -0
  19. esphome/components/esp32_ble/queue.h +53 -27
  20. esphome/components/esp32_ble_tracker/__init__.py +1 -0
  21. esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +95 -66
  22. esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +16 -16
  23. esphome/components/esp32_camera/esp32_camera.cpp +1 -1
  24. esphome/components/fan/fan.cpp +26 -17
  25. esphome/components/i2s_audio/i2s_audio.cpp +1 -1
  26. esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +47 -29
  27. esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +2 -0
  28. esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +28 -10
  29. esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +1 -0
  30. esphome/components/kmeteriso/kmeteriso.cpp +2 -3
  31. esphome/components/light/light_state.h +15 -15
  32. esphome/components/logger/logger.cpp +2 -15
  33. esphome/components/logger/logger.h +1 -2
  34. esphome/components/mqtt/mqtt_component.cpp +1 -1
  35. esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
  36. esphome/components/nextion/nextion_upload_arduino.cpp +12 -9
  37. esphome/components/nextion/nextion_upload_idf.cpp +11 -9
  38. esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
  39. esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
  40. esphome/components/number/number.cpp +1 -1
  41. esphome/components/number/number.h +0 -4
  42. esphome/components/prometheus/__init__.py +0 -1
  43. esphome/components/select/select.cpp +1 -1
  44. esphome/components/select/select.h +0 -4
  45. esphome/components/sensor/sensor.cpp +8 -4
  46. esphome/components/sensor/sensor.h +3 -6
  47. esphome/components/spi/spi_arduino.cpp +22 -9
  48. esphome/components/status_led/light/status_led_light.cpp +2 -2
  49. esphome/components/status_led/light/status_led_light.h +1 -1
  50. esphome/components/switch/switch.h +13 -7
  51. esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +14 -9
  52. esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +1 -0
  53. esphome/components/text/text.cpp +1 -1
  54. esphome/components/text/text.h +0 -4
  55. esphome/components/text_sensor/text_sensor.cpp +8 -4
  56. esphome/components/text_sensor/text_sensor.h +6 -6
  57. esphome/components/update/update_entity.cpp +1 -1
  58. esphome/components/update/update_entity.h +0 -3
  59. esphome/components/uptime/sensor/uptime_timestamp_sensor.cpp +1 -1
  60. esphome/components/web_server_idf/__init__.py +0 -2
  61. esphome/components/web_server_idf/web_server_idf.cpp +6 -2
  62. esphome/components/web_server_idf/web_server_idf.h +7 -0
  63. esphome/components/weikai/weikai.cpp +1 -1
  64. esphome/const.py +1 -1
  65. esphome/core/application.cpp +14 -8
  66. esphome/core/application.h +7 -7
  67. esphome/core/component.cpp +36 -15
  68. esphome/core/component.h +30 -13
  69. esphome/core/entity_base.cpp +4 -16
  70. esphome/core/entity_base.h +27 -13
  71. esphome/core/helpers.h +1 -1
  72. esphome/wizard.py +0 -16
  73. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/METADATA +2 -2
  74. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/RECORD +78 -77
  75. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/WHEEL +0 -0
  76. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/entry_points.txt +0 -0
  77. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/licenses/LICENSE +0 -0
  78. {esphome-2025.6.0b1.dist-info → esphome-2025.6.0b3.dist-info}/top_level.txt +0 -0
@@ -253,6 +253,27 @@ enum UpdateCommand : uint32_t {
253
253
 
254
254
  } // namespace enums
255
255
 
256
+ class InfoResponseProtoMessage : public ProtoMessage {
257
+ public:
258
+ ~InfoResponseProtoMessage() override = default;
259
+ std::string object_id{};
260
+ uint32_t key{0};
261
+ std::string name{};
262
+ std::string unique_id{};
263
+ bool disabled_by_default{false};
264
+ std::string icon{};
265
+ enums::EntityCategory entity_category{};
266
+
267
+ protected:
268
+ };
269
+
270
+ class StateResponseProtoMessage : public ProtoMessage {
271
+ public:
272
+ ~StateResponseProtoMessage() override = default;
273
+ uint32_t key{0};
274
+
275
+ protected:
276
+ };
256
277
  class HelloRequest : public ProtoMessage {
257
278
  public:
258
279
  static constexpr uint16_t MESSAGE_TYPE = 1;
@@ -484,22 +505,15 @@ class SubscribeStatesRequest : public ProtoMessage {
484
505
 
485
506
  protected:
486
507
  };
487
- class ListEntitiesBinarySensorResponse : public ProtoMessage {
508
+ class ListEntitiesBinarySensorResponse : public InfoResponseProtoMessage {
488
509
  public:
489
510
  static constexpr uint16_t MESSAGE_TYPE = 12;
490
511
  static constexpr uint16_t ESTIMATED_SIZE = 56;
491
512
  #ifdef HAS_PROTO_MESSAGE_DUMP
492
513
  static constexpr const char *message_name() { return "list_entities_binary_sensor_response"; }
493
514
  #endif
494
- std::string object_id{};
495
- uint32_t key{0};
496
- std::string name{};
497
- std::string unique_id{};
498
515
  std::string device_class{};
499
516
  bool is_status_binary_sensor{false};
500
- bool disabled_by_default{false};
501
- std::string icon{};
502
- enums::EntityCategory entity_category{};
503
517
  void encode(ProtoWriteBuffer buffer) const override;
504
518
  void calculate_size(uint32_t &total_size) const override;
505
519
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -511,14 +525,13 @@ class ListEntitiesBinarySensorResponse : public ProtoMessage {
511
525
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
512
526
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
513
527
  };
514
- class BinarySensorStateResponse : public ProtoMessage {
528
+ class BinarySensorStateResponse : public StateResponseProtoMessage {
515
529
  public:
516
530
  static constexpr uint16_t MESSAGE_TYPE = 21;
517
531
  static constexpr uint16_t ESTIMATED_SIZE = 9;
518
532
  #ifdef HAS_PROTO_MESSAGE_DUMP
519
533
  static constexpr const char *message_name() { return "binary_sensor_state_response"; }
520
534
  #endif
521
- uint32_t key{0};
522
535
  bool state{false};
523
536
  bool missing_state{false};
524
537
  void encode(ProtoWriteBuffer buffer) const override;
@@ -531,24 +544,17 @@ class BinarySensorStateResponse : public ProtoMessage {
531
544
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
532
545
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
533
546
  };
534
- class ListEntitiesCoverResponse : public ProtoMessage {
547
+ class ListEntitiesCoverResponse : public InfoResponseProtoMessage {
535
548
  public:
536
549
  static constexpr uint16_t MESSAGE_TYPE = 13;
537
550
  static constexpr uint16_t ESTIMATED_SIZE = 62;
538
551
  #ifdef HAS_PROTO_MESSAGE_DUMP
539
552
  static constexpr const char *message_name() { return "list_entities_cover_response"; }
540
553
  #endif
541
- std::string object_id{};
542
- uint32_t key{0};
543
- std::string name{};
544
- std::string unique_id{};
545
554
  bool assumed_state{false};
546
555
  bool supports_position{false};
547
556
  bool supports_tilt{false};
548
557
  std::string device_class{};
549
- bool disabled_by_default{false};
550
- std::string icon{};
551
- enums::EntityCategory entity_category{};
552
558
  bool supports_stop{false};
553
559
  void encode(ProtoWriteBuffer buffer) const override;
554
560
  void calculate_size(uint32_t &total_size) const override;
@@ -561,14 +567,13 @@ class ListEntitiesCoverResponse : public ProtoMessage {
561
567
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
562
568
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
563
569
  };
564
- class CoverStateResponse : public ProtoMessage {
570
+ class CoverStateResponse : public StateResponseProtoMessage {
565
571
  public:
566
572
  static constexpr uint16_t MESSAGE_TYPE = 22;
567
573
  static constexpr uint16_t ESTIMATED_SIZE = 19;
568
574
  #ifdef HAS_PROTO_MESSAGE_DUMP
569
575
  static constexpr const char *message_name() { return "cover_state_response"; }
570
576
  #endif
571
- uint32_t key{0};
572
577
  enums::LegacyCoverState legacy_state{};
573
578
  float position{0.0f};
574
579
  float tilt{0.0f};
@@ -608,24 +613,17 @@ class CoverCommandRequest : public ProtoMessage {
608
613
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
609
614
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
610
615
  };
611
- class ListEntitiesFanResponse : public ProtoMessage {
616
+ class ListEntitiesFanResponse : public InfoResponseProtoMessage {
612
617
  public:
613
618
  static constexpr uint16_t MESSAGE_TYPE = 14;
614
619
  static constexpr uint16_t ESTIMATED_SIZE = 73;
615
620
  #ifdef HAS_PROTO_MESSAGE_DUMP
616
621
  static constexpr const char *message_name() { return "list_entities_fan_response"; }
617
622
  #endif
618
- std::string object_id{};
619
- uint32_t key{0};
620
- std::string name{};
621
- std::string unique_id{};
622
623
  bool supports_oscillation{false};
623
624
  bool supports_speed{false};
624
625
  bool supports_direction{false};
625
626
  int32_t supported_speed_count{0};
626
- bool disabled_by_default{false};
627
- std::string icon{};
628
- enums::EntityCategory entity_category{};
629
627
  std::vector<std::string> supported_preset_modes{};
630
628
  void encode(ProtoWriteBuffer buffer) const override;
631
629
  void calculate_size(uint32_t &total_size) const override;
@@ -638,14 +636,13 @@ class ListEntitiesFanResponse : public ProtoMessage {
638
636
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
639
637
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
640
638
  };
641
- class FanStateResponse : public ProtoMessage {
639
+ class FanStateResponse : public StateResponseProtoMessage {
642
640
  public:
643
641
  static constexpr uint16_t MESSAGE_TYPE = 23;
644
642
  static constexpr uint16_t ESTIMATED_SIZE = 26;
645
643
  #ifdef HAS_PROTO_MESSAGE_DUMP
646
644
  static constexpr const char *message_name() { return "fan_state_response"; }
647
645
  #endif
648
- uint32_t key{0};
649
646
  bool state{false};
650
647
  bool oscillating{false};
651
648
  enums::FanSpeed speed{};
@@ -694,17 +691,13 @@ class FanCommandRequest : public ProtoMessage {
694
691
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
695
692
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
696
693
  };
697
- class ListEntitiesLightResponse : public ProtoMessage {
694
+ class ListEntitiesLightResponse : public InfoResponseProtoMessage {
698
695
  public:
699
696
  static constexpr uint16_t MESSAGE_TYPE = 15;
700
697
  static constexpr uint16_t ESTIMATED_SIZE = 85;
701
698
  #ifdef HAS_PROTO_MESSAGE_DUMP
702
699
  static constexpr const char *message_name() { return "list_entities_light_response"; }
703
700
  #endif
704
- std::string object_id{};
705
- uint32_t key{0};
706
- std::string name{};
707
- std::string unique_id{};
708
701
  std::vector<enums::ColorMode> supported_color_modes{};
709
702
  bool legacy_supports_brightness{false};
710
703
  bool legacy_supports_rgb{false};
@@ -713,9 +706,6 @@ class ListEntitiesLightResponse : public ProtoMessage {
713
706
  float min_mireds{0.0f};
714
707
  float max_mireds{0.0f};
715
708
  std::vector<std::string> effects{};
716
- bool disabled_by_default{false};
717
- std::string icon{};
718
- enums::EntityCategory entity_category{};
719
709
  void encode(ProtoWriteBuffer buffer) const override;
720
710
  void calculate_size(uint32_t &total_size) const override;
721
711
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -727,14 +717,13 @@ class ListEntitiesLightResponse : public ProtoMessage {
727
717
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
728
718
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
729
719
  };
730
- class LightStateResponse : public ProtoMessage {
720
+ class LightStateResponse : public StateResponseProtoMessage {
731
721
  public:
732
722
  static constexpr uint16_t MESSAGE_TYPE = 24;
733
723
  static constexpr uint16_t ESTIMATED_SIZE = 63;
734
724
  #ifdef HAS_PROTO_MESSAGE_DUMP
735
725
  static constexpr const char *message_name() { return "light_state_response"; }
736
726
  #endif
737
- uint32_t key{0};
738
727
  bool state{false};
739
728
  float brightness{0.0f};
740
729
  enums::ColorMode color_mode{};
@@ -803,26 +792,19 @@ class LightCommandRequest : public ProtoMessage {
803
792
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
804
793
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
805
794
  };
806
- class ListEntitiesSensorResponse : public ProtoMessage {
795
+ class ListEntitiesSensorResponse : public InfoResponseProtoMessage {
807
796
  public:
808
797
  static constexpr uint16_t MESSAGE_TYPE = 16;
809
798
  static constexpr uint16_t ESTIMATED_SIZE = 73;
810
799
  #ifdef HAS_PROTO_MESSAGE_DUMP
811
800
  static constexpr const char *message_name() { return "list_entities_sensor_response"; }
812
801
  #endif
813
- std::string object_id{};
814
- uint32_t key{0};
815
- std::string name{};
816
- std::string unique_id{};
817
- std::string icon{};
818
802
  std::string unit_of_measurement{};
819
803
  int32_t accuracy_decimals{0};
820
804
  bool force_update{false};
821
805
  std::string device_class{};
822
806
  enums::SensorStateClass state_class{};
823
807
  enums::SensorLastResetType legacy_last_reset_type{};
824
- bool disabled_by_default{false};
825
- enums::EntityCategory entity_category{};
826
808
  void encode(ProtoWriteBuffer buffer) const override;
827
809
  void calculate_size(uint32_t &total_size) const override;
828
810
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -834,14 +816,13 @@ class ListEntitiesSensorResponse : public ProtoMessage {
834
816
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
835
817
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
836
818
  };
837
- class SensorStateResponse : public ProtoMessage {
819
+ class SensorStateResponse : public StateResponseProtoMessage {
838
820
  public:
839
821
  static constexpr uint16_t MESSAGE_TYPE = 25;
840
822
  static constexpr uint16_t ESTIMATED_SIZE = 12;
841
823
  #ifdef HAS_PROTO_MESSAGE_DUMP
842
824
  static constexpr const char *message_name() { return "sensor_state_response"; }
843
825
  #endif
844
- uint32_t key{0};
845
826
  float state{0.0f};
846
827
  bool missing_state{false};
847
828
  void encode(ProtoWriteBuffer buffer) const override;
@@ -854,21 +835,14 @@ class SensorStateResponse : public ProtoMessage {
854
835
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
855
836
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
856
837
  };
857
- class ListEntitiesSwitchResponse : public ProtoMessage {
838
+ class ListEntitiesSwitchResponse : public InfoResponseProtoMessage {
858
839
  public:
859
840
  static constexpr uint16_t MESSAGE_TYPE = 17;
860
841
  static constexpr uint16_t ESTIMATED_SIZE = 56;
861
842
  #ifdef HAS_PROTO_MESSAGE_DUMP
862
843
  static constexpr const char *message_name() { return "list_entities_switch_response"; }
863
844
  #endif
864
- std::string object_id{};
865
- uint32_t key{0};
866
- std::string name{};
867
- std::string unique_id{};
868
- std::string icon{};
869
845
  bool assumed_state{false};
870
- bool disabled_by_default{false};
871
- enums::EntityCategory entity_category{};
872
846
  std::string device_class{};
873
847
  void encode(ProtoWriteBuffer buffer) const override;
874
848
  void calculate_size(uint32_t &total_size) const override;
@@ -881,14 +855,13 @@ class ListEntitiesSwitchResponse : public ProtoMessage {
881
855
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
882
856
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
883
857
  };
884
- class SwitchStateResponse : public ProtoMessage {
858
+ class SwitchStateResponse : public StateResponseProtoMessage {
885
859
  public:
886
860
  static constexpr uint16_t MESSAGE_TYPE = 26;
887
861
  static constexpr uint16_t ESTIMATED_SIZE = 7;
888
862
  #ifdef HAS_PROTO_MESSAGE_DUMP
889
863
  static constexpr const char *message_name() { return "switch_state_response"; }
890
864
  #endif
891
- uint32_t key{0};
892
865
  bool state{false};
893
866
  void encode(ProtoWriteBuffer buffer) const override;
894
867
  void calculate_size(uint32_t &total_size) const override;
@@ -919,20 +892,13 @@ class SwitchCommandRequest : public ProtoMessage {
919
892
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
920
893
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
921
894
  };
922
- class ListEntitiesTextSensorResponse : public ProtoMessage {
895
+ class ListEntitiesTextSensorResponse : public InfoResponseProtoMessage {
923
896
  public:
924
897
  static constexpr uint16_t MESSAGE_TYPE = 18;
925
898
  static constexpr uint16_t ESTIMATED_SIZE = 54;
926
899
  #ifdef HAS_PROTO_MESSAGE_DUMP
927
900
  static constexpr const char *message_name() { return "list_entities_text_sensor_response"; }
928
901
  #endif
929
- std::string object_id{};
930
- uint32_t key{0};
931
- std::string name{};
932
- std::string unique_id{};
933
- std::string icon{};
934
- bool disabled_by_default{false};
935
- enums::EntityCategory entity_category{};
936
902
  std::string device_class{};
937
903
  void encode(ProtoWriteBuffer buffer) const override;
938
904
  void calculate_size(uint32_t &total_size) const override;
@@ -945,14 +911,13 @@ class ListEntitiesTextSensorResponse : public ProtoMessage {
945
911
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
946
912
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
947
913
  };
948
- class TextSensorStateResponse : public ProtoMessage {
914
+ class TextSensorStateResponse : public StateResponseProtoMessage {
949
915
  public:
950
916
  static constexpr uint16_t MESSAGE_TYPE = 27;
951
917
  static constexpr uint16_t ESTIMATED_SIZE = 16;
952
918
  #ifdef HAS_PROTO_MESSAGE_DUMP
953
919
  static constexpr const char *message_name() { return "text_sensor_state_response"; }
954
920
  #endif
955
- uint32_t key{0};
956
921
  std::string state{};
957
922
  bool missing_state{false};
958
923
  void encode(ProtoWriteBuffer buffer) const override;
@@ -1249,20 +1214,13 @@ class ExecuteServiceRequest : public ProtoMessage {
1249
1214
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
1250
1215
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1251
1216
  };
1252
- class ListEntitiesCameraResponse : public ProtoMessage {
1217
+ class ListEntitiesCameraResponse : public InfoResponseProtoMessage {
1253
1218
  public:
1254
1219
  static constexpr uint16_t MESSAGE_TYPE = 43;
1255
1220
  static constexpr uint16_t ESTIMATED_SIZE = 45;
1256
1221
  #ifdef HAS_PROTO_MESSAGE_DUMP
1257
1222
  static constexpr const char *message_name() { return "list_entities_camera_response"; }
1258
1223
  #endif
1259
- std::string object_id{};
1260
- uint32_t key{0};
1261
- std::string name{};
1262
- std::string unique_id{};
1263
- bool disabled_by_default{false};
1264
- std::string icon{};
1265
- enums::EntityCategory entity_category{};
1266
1224
  void encode(ProtoWriteBuffer buffer) const override;
1267
1225
  void calculate_size(uint32_t &total_size) const override;
1268
1226
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -1313,17 +1271,13 @@ class CameraImageRequest : public ProtoMessage {
1313
1271
  protected:
1314
1272
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1315
1273
  };
1316
- class ListEntitiesClimateResponse : public ProtoMessage {
1274
+ class ListEntitiesClimateResponse : public InfoResponseProtoMessage {
1317
1275
  public:
1318
1276
  static constexpr uint16_t MESSAGE_TYPE = 46;
1319
1277
  static constexpr uint16_t ESTIMATED_SIZE = 151;
1320
1278
  #ifdef HAS_PROTO_MESSAGE_DUMP
1321
1279
  static constexpr const char *message_name() { return "list_entities_climate_response"; }
1322
1280
  #endif
1323
- std::string object_id{};
1324
- uint32_t key{0};
1325
- std::string name{};
1326
- std::string unique_id{};
1327
1281
  bool supports_current_temperature{false};
1328
1282
  bool supports_two_point_target_temperature{false};
1329
1283
  std::vector<enums::ClimateMode> supported_modes{};
@@ -1337,9 +1291,6 @@ class ListEntitiesClimateResponse : public ProtoMessage {
1337
1291
  std::vector<std::string> supported_custom_fan_modes{};
1338
1292
  std::vector<enums::ClimatePreset> supported_presets{};
1339
1293
  std::vector<std::string> supported_custom_presets{};
1340
- bool disabled_by_default{false};
1341
- std::string icon{};
1342
- enums::EntityCategory entity_category{};
1343
1294
  float visual_current_temperature_step{0.0f};
1344
1295
  bool supports_current_humidity{false};
1345
1296
  bool supports_target_humidity{false};
@@ -1356,14 +1307,13 @@ class ListEntitiesClimateResponse : public ProtoMessage {
1356
1307
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1357
1308
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1358
1309
  };
1359
- class ClimateStateResponse : public ProtoMessage {
1310
+ class ClimateStateResponse : public StateResponseProtoMessage {
1360
1311
  public:
1361
1312
  static constexpr uint16_t MESSAGE_TYPE = 47;
1362
1313
  static constexpr uint16_t ESTIMATED_SIZE = 65;
1363
1314
  #ifdef HAS_PROTO_MESSAGE_DUMP
1364
1315
  static constexpr const char *message_name() { return "climate_state_response"; }
1365
1316
  #endif
1366
- uint32_t key{0};
1367
1317
  enums::ClimateMode mode{};
1368
1318
  float current_temperature{0.0f};
1369
1319
  float target_temperature{0.0f};
@@ -1430,23 +1380,16 @@ class ClimateCommandRequest : public ProtoMessage {
1430
1380
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1431
1381
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1432
1382
  };
1433
- class ListEntitiesNumberResponse : public ProtoMessage {
1383
+ class ListEntitiesNumberResponse : public InfoResponseProtoMessage {
1434
1384
  public:
1435
1385
  static constexpr uint16_t MESSAGE_TYPE = 49;
1436
1386
  static constexpr uint16_t ESTIMATED_SIZE = 80;
1437
1387
  #ifdef HAS_PROTO_MESSAGE_DUMP
1438
1388
  static constexpr const char *message_name() { return "list_entities_number_response"; }
1439
1389
  #endif
1440
- std::string object_id{};
1441
- uint32_t key{0};
1442
- std::string name{};
1443
- std::string unique_id{};
1444
- std::string icon{};
1445
1390
  float min_value{0.0f};
1446
1391
  float max_value{0.0f};
1447
1392
  float step{0.0f};
1448
- bool disabled_by_default{false};
1449
- enums::EntityCategory entity_category{};
1450
1393
  std::string unit_of_measurement{};
1451
1394
  enums::NumberMode mode{};
1452
1395
  std::string device_class{};
@@ -1461,14 +1404,13 @@ class ListEntitiesNumberResponse : public ProtoMessage {
1461
1404
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1462
1405
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1463
1406
  };
1464
- class NumberStateResponse : public ProtoMessage {
1407
+ class NumberStateResponse : public StateResponseProtoMessage {
1465
1408
  public:
1466
1409
  static constexpr uint16_t MESSAGE_TYPE = 50;
1467
1410
  static constexpr uint16_t ESTIMATED_SIZE = 12;
1468
1411
  #ifdef HAS_PROTO_MESSAGE_DUMP
1469
1412
  static constexpr const char *message_name() { return "number_state_response"; }
1470
1413
  #endif
1471
- uint32_t key{0};
1472
1414
  float state{0.0f};
1473
1415
  bool missing_state{false};
1474
1416
  void encode(ProtoWriteBuffer buffer) const override;
@@ -1499,21 +1441,14 @@ class NumberCommandRequest : public ProtoMessage {
1499
1441
  protected:
1500
1442
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
1501
1443
  };
1502
- class ListEntitiesSelectResponse : public ProtoMessage {
1444
+ class ListEntitiesSelectResponse : public InfoResponseProtoMessage {
1503
1445
  public:
1504
1446
  static constexpr uint16_t MESSAGE_TYPE = 52;
1505
1447
  static constexpr uint16_t ESTIMATED_SIZE = 63;
1506
1448
  #ifdef HAS_PROTO_MESSAGE_DUMP
1507
1449
  static constexpr const char *message_name() { return "list_entities_select_response"; }
1508
1450
  #endif
1509
- std::string object_id{};
1510
- uint32_t key{0};
1511
- std::string name{};
1512
- std::string unique_id{};
1513
- std::string icon{};
1514
1451
  std::vector<std::string> options{};
1515
- bool disabled_by_default{false};
1516
- enums::EntityCategory entity_category{};
1517
1452
  void encode(ProtoWriteBuffer buffer) const override;
1518
1453
  void calculate_size(uint32_t &total_size) const override;
1519
1454
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -1525,14 +1460,13 @@ class ListEntitiesSelectResponse : public ProtoMessage {
1525
1460
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1526
1461
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1527
1462
  };
1528
- class SelectStateResponse : public ProtoMessage {
1463
+ class SelectStateResponse : public StateResponseProtoMessage {
1529
1464
  public:
1530
1465
  static constexpr uint16_t MESSAGE_TYPE = 53;
1531
1466
  static constexpr uint16_t ESTIMATED_SIZE = 16;
1532
1467
  #ifdef HAS_PROTO_MESSAGE_DUMP
1533
1468
  static constexpr const char *message_name() { return "select_state_response"; }
1534
1469
  #endif
1535
- uint32_t key{0};
1536
1470
  std::string state{};
1537
1471
  bool missing_state{false};
1538
1472
  void encode(ProtoWriteBuffer buffer) const override;
@@ -1565,23 +1499,16 @@ class SelectCommandRequest : public ProtoMessage {
1565
1499
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
1566
1500
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1567
1501
  };
1568
- class ListEntitiesSirenResponse : public ProtoMessage {
1502
+ class ListEntitiesSirenResponse : public InfoResponseProtoMessage {
1569
1503
  public:
1570
1504
  static constexpr uint16_t MESSAGE_TYPE = 55;
1571
1505
  static constexpr uint16_t ESTIMATED_SIZE = 67;
1572
1506
  #ifdef HAS_PROTO_MESSAGE_DUMP
1573
1507
  static constexpr const char *message_name() { return "list_entities_siren_response"; }
1574
1508
  #endif
1575
- std::string object_id{};
1576
- uint32_t key{0};
1577
- std::string name{};
1578
- std::string unique_id{};
1579
- std::string icon{};
1580
- bool disabled_by_default{false};
1581
1509
  std::vector<std::string> tones{};
1582
1510
  bool supports_duration{false};
1583
1511
  bool supports_volume{false};
1584
- enums::EntityCategory entity_category{};
1585
1512
  void encode(ProtoWriteBuffer buffer) const override;
1586
1513
  void calculate_size(uint32_t &total_size) const override;
1587
1514
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -1593,14 +1520,13 @@ class ListEntitiesSirenResponse : public ProtoMessage {
1593
1520
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1594
1521
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1595
1522
  };
1596
- class SirenStateResponse : public ProtoMessage {
1523
+ class SirenStateResponse : public StateResponseProtoMessage {
1597
1524
  public:
1598
1525
  static constexpr uint16_t MESSAGE_TYPE = 56;
1599
1526
  static constexpr uint16_t ESTIMATED_SIZE = 7;
1600
1527
  #ifdef HAS_PROTO_MESSAGE_DUMP
1601
1528
  static constexpr const char *message_name() { return "siren_state_response"; }
1602
1529
  #endif
1603
- uint32_t key{0};
1604
1530
  bool state{false};
1605
1531
  void encode(ProtoWriteBuffer buffer) const override;
1606
1532
  void calculate_size(uint32_t &total_size) const override;
@@ -1639,20 +1565,13 @@ class SirenCommandRequest : public ProtoMessage {
1639
1565
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1640
1566
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1641
1567
  };
1642
- class ListEntitiesLockResponse : public ProtoMessage {
1568
+ class ListEntitiesLockResponse : public InfoResponseProtoMessage {
1643
1569
  public:
1644
1570
  static constexpr uint16_t MESSAGE_TYPE = 58;
1645
1571
  static constexpr uint16_t ESTIMATED_SIZE = 60;
1646
1572
  #ifdef HAS_PROTO_MESSAGE_DUMP
1647
1573
  static constexpr const char *message_name() { return "list_entities_lock_response"; }
1648
1574
  #endif
1649
- std::string object_id{};
1650
- uint32_t key{0};
1651
- std::string name{};
1652
- std::string unique_id{};
1653
- std::string icon{};
1654
- bool disabled_by_default{false};
1655
- enums::EntityCategory entity_category{};
1656
1575
  bool assumed_state{false};
1657
1576
  bool supports_open{false};
1658
1577
  bool requires_code{false};
@@ -1668,14 +1587,13 @@ class ListEntitiesLockResponse : public ProtoMessage {
1668
1587
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1669
1588
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1670
1589
  };
1671
- class LockStateResponse : public ProtoMessage {
1590
+ class LockStateResponse : public StateResponseProtoMessage {
1672
1591
  public:
1673
1592
  static constexpr uint16_t MESSAGE_TYPE = 59;
1674
1593
  static constexpr uint16_t ESTIMATED_SIZE = 7;
1675
1594
  #ifdef HAS_PROTO_MESSAGE_DUMP
1676
1595
  static constexpr const char *message_name() { return "lock_state_response"; }
1677
1596
  #endif
1678
- uint32_t key{0};
1679
1597
  enums::LockState state{};
1680
1598
  void encode(ProtoWriteBuffer buffer) const override;
1681
1599
  void calculate_size(uint32_t &total_size) const override;
@@ -1709,20 +1627,13 @@ class LockCommandRequest : public ProtoMessage {
1709
1627
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1710
1628
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1711
1629
  };
1712
- class ListEntitiesButtonResponse : public ProtoMessage {
1630
+ class ListEntitiesButtonResponse : public InfoResponseProtoMessage {
1713
1631
  public:
1714
1632
  static constexpr uint16_t MESSAGE_TYPE = 61;
1715
1633
  static constexpr uint16_t ESTIMATED_SIZE = 54;
1716
1634
  #ifdef HAS_PROTO_MESSAGE_DUMP
1717
1635
  static constexpr const char *message_name() { return "list_entities_button_response"; }
1718
1636
  #endif
1719
- std::string object_id{};
1720
- uint32_t key{0};
1721
- std::string name{};
1722
- std::string unique_id{};
1723
- std::string icon{};
1724
- bool disabled_by_default{false};
1725
- enums::EntityCategory entity_category{};
1726
1637
  std::string device_class{};
1727
1638
  void encode(ProtoWriteBuffer buffer) const override;
1728
1639
  void calculate_size(uint32_t &total_size) const override;
@@ -1769,20 +1680,13 @@ class MediaPlayerSupportedFormat : public ProtoMessage {
1769
1680
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1770
1681
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1771
1682
  };
1772
- class ListEntitiesMediaPlayerResponse : public ProtoMessage {
1683
+ class ListEntitiesMediaPlayerResponse : public InfoResponseProtoMessage {
1773
1684
  public:
1774
1685
  static constexpr uint16_t MESSAGE_TYPE = 63;
1775
1686
  static constexpr uint16_t ESTIMATED_SIZE = 81;
1776
1687
  #ifdef HAS_PROTO_MESSAGE_DUMP
1777
1688
  static constexpr const char *message_name() { return "list_entities_media_player_response"; }
1778
1689
  #endif
1779
- std::string object_id{};
1780
- uint32_t key{0};
1781
- std::string name{};
1782
- std::string unique_id{};
1783
- std::string icon{};
1784
- bool disabled_by_default{false};
1785
- enums::EntityCategory entity_category{};
1786
1690
  bool supports_pause{false};
1787
1691
  std::vector<MediaPlayerSupportedFormat> supported_formats{};
1788
1692
  void encode(ProtoWriteBuffer buffer) const override;
@@ -1796,14 +1700,13 @@ class ListEntitiesMediaPlayerResponse : public ProtoMessage {
1796
1700
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
1797
1701
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
1798
1702
  };
1799
- class MediaPlayerStateResponse : public ProtoMessage {
1703
+ class MediaPlayerStateResponse : public StateResponseProtoMessage {
1800
1704
  public:
1801
1705
  static constexpr uint16_t MESSAGE_TYPE = 64;
1802
1706
  static constexpr uint16_t ESTIMATED_SIZE = 14;
1803
1707
  #ifdef HAS_PROTO_MESSAGE_DUMP
1804
1708
  static constexpr const char *message_name() { return "media_player_state_response"; }
1805
1709
  #endif
1806
- uint32_t key{0};
1807
1710
  enums::MediaPlayerState state{};
1808
1711
  float volume{0.0f};
1809
1712
  bool muted{false};
@@ -2653,20 +2556,13 @@ class VoiceAssistantSetConfiguration : public ProtoMessage {
2653
2556
  protected:
2654
2557
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2655
2558
  };
2656
- class ListEntitiesAlarmControlPanelResponse : public ProtoMessage {
2559
+ class ListEntitiesAlarmControlPanelResponse : public InfoResponseProtoMessage {
2657
2560
  public:
2658
2561
  static constexpr uint16_t MESSAGE_TYPE = 94;
2659
2562
  static constexpr uint16_t ESTIMATED_SIZE = 53;
2660
2563
  #ifdef HAS_PROTO_MESSAGE_DUMP
2661
2564
  static constexpr const char *message_name() { return "list_entities_alarm_control_panel_response"; }
2662
2565
  #endif
2663
- std::string object_id{};
2664
- uint32_t key{0};
2665
- std::string name{};
2666
- std::string unique_id{};
2667
- std::string icon{};
2668
- bool disabled_by_default{false};
2669
- enums::EntityCategory entity_category{};
2670
2566
  uint32_t supported_features{0};
2671
2567
  bool requires_code{false};
2672
2568
  bool requires_code_to_arm{false};
@@ -2681,14 +2577,13 @@ class ListEntitiesAlarmControlPanelResponse : public ProtoMessage {
2681
2577
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2682
2578
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2683
2579
  };
2684
- class AlarmControlPanelStateResponse : public ProtoMessage {
2580
+ class AlarmControlPanelStateResponse : public StateResponseProtoMessage {
2685
2581
  public:
2686
2582
  static constexpr uint16_t MESSAGE_TYPE = 95;
2687
2583
  static constexpr uint16_t ESTIMATED_SIZE = 7;
2688
2584
  #ifdef HAS_PROTO_MESSAGE_DUMP
2689
2585
  static constexpr const char *message_name() { return "alarm_control_panel_state_response"; }
2690
2586
  #endif
2691
- uint32_t key{0};
2692
2587
  enums::AlarmControlPanelState state{};
2693
2588
  void encode(ProtoWriteBuffer buffer) const override;
2694
2589
  void calculate_size(uint32_t &total_size) const override;
@@ -2721,20 +2616,13 @@ class AlarmControlPanelCommandRequest : public ProtoMessage {
2721
2616
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2722
2617
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2723
2618
  };
2724
- class ListEntitiesTextResponse : public ProtoMessage {
2619
+ class ListEntitiesTextResponse : public InfoResponseProtoMessage {
2725
2620
  public:
2726
2621
  static constexpr uint16_t MESSAGE_TYPE = 97;
2727
2622
  static constexpr uint16_t ESTIMATED_SIZE = 64;
2728
2623
  #ifdef HAS_PROTO_MESSAGE_DUMP
2729
2624
  static constexpr const char *message_name() { return "list_entities_text_response"; }
2730
2625
  #endif
2731
- std::string object_id{};
2732
- uint32_t key{0};
2733
- std::string name{};
2734
- std::string unique_id{};
2735
- std::string icon{};
2736
- bool disabled_by_default{false};
2737
- enums::EntityCategory entity_category{};
2738
2626
  uint32_t min_length{0};
2739
2627
  uint32_t max_length{0};
2740
2628
  std::string pattern{};
@@ -2750,14 +2638,13 @@ class ListEntitiesTextResponse : public ProtoMessage {
2750
2638
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2751
2639
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2752
2640
  };
2753
- class TextStateResponse : public ProtoMessage {
2641
+ class TextStateResponse : public StateResponseProtoMessage {
2754
2642
  public:
2755
2643
  static constexpr uint16_t MESSAGE_TYPE = 98;
2756
2644
  static constexpr uint16_t ESTIMATED_SIZE = 16;
2757
2645
  #ifdef HAS_PROTO_MESSAGE_DUMP
2758
2646
  static constexpr const char *message_name() { return "text_state_response"; }
2759
2647
  #endif
2760
- uint32_t key{0};
2761
2648
  std::string state{};
2762
2649
  bool missing_state{false};
2763
2650
  void encode(ProtoWriteBuffer buffer) const override;
@@ -2790,20 +2677,13 @@ class TextCommandRequest : public ProtoMessage {
2790
2677
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
2791
2678
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2792
2679
  };
2793
- class ListEntitiesDateResponse : public ProtoMessage {
2680
+ class ListEntitiesDateResponse : public InfoResponseProtoMessage {
2794
2681
  public:
2795
2682
  static constexpr uint16_t MESSAGE_TYPE = 100;
2796
2683
  static constexpr uint16_t ESTIMATED_SIZE = 45;
2797
2684
  #ifdef HAS_PROTO_MESSAGE_DUMP
2798
2685
  static constexpr const char *message_name() { return "list_entities_date_response"; }
2799
2686
  #endif
2800
- std::string object_id{};
2801
- uint32_t key{0};
2802
- std::string name{};
2803
- std::string unique_id{};
2804
- std::string icon{};
2805
- bool disabled_by_default{false};
2806
- enums::EntityCategory entity_category{};
2807
2687
  void encode(ProtoWriteBuffer buffer) const override;
2808
2688
  void calculate_size(uint32_t &total_size) const override;
2809
2689
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -2815,14 +2695,13 @@ class ListEntitiesDateResponse : public ProtoMessage {
2815
2695
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2816
2696
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2817
2697
  };
2818
- class DateStateResponse : public ProtoMessage {
2698
+ class DateStateResponse : public StateResponseProtoMessage {
2819
2699
  public:
2820
2700
  static constexpr uint16_t MESSAGE_TYPE = 101;
2821
2701
  static constexpr uint16_t ESTIMATED_SIZE = 19;
2822
2702
  #ifdef HAS_PROTO_MESSAGE_DUMP
2823
2703
  static constexpr const char *message_name() { return "date_state_response"; }
2824
2704
  #endif
2825
- uint32_t key{0};
2826
2705
  bool missing_state{false};
2827
2706
  uint32_t year{0};
2828
2707
  uint32_t month{0};
@@ -2858,20 +2737,13 @@ class DateCommandRequest : public ProtoMessage {
2858
2737
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
2859
2738
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2860
2739
  };
2861
- class ListEntitiesTimeResponse : public ProtoMessage {
2740
+ class ListEntitiesTimeResponse : public InfoResponseProtoMessage {
2862
2741
  public:
2863
2742
  static constexpr uint16_t MESSAGE_TYPE = 103;
2864
2743
  static constexpr uint16_t ESTIMATED_SIZE = 45;
2865
2744
  #ifdef HAS_PROTO_MESSAGE_DUMP
2866
2745
  static constexpr const char *message_name() { return "list_entities_time_response"; }
2867
2746
  #endif
2868
- std::string object_id{};
2869
- uint32_t key{0};
2870
- std::string name{};
2871
- std::string unique_id{};
2872
- std::string icon{};
2873
- bool disabled_by_default{false};
2874
- enums::EntityCategory entity_category{};
2875
2747
  void encode(ProtoWriteBuffer buffer) const override;
2876
2748
  void calculate_size(uint32_t &total_size) const override;
2877
2749
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -2883,14 +2755,13 @@ class ListEntitiesTimeResponse : public ProtoMessage {
2883
2755
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2884
2756
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2885
2757
  };
2886
- class TimeStateResponse : public ProtoMessage {
2758
+ class TimeStateResponse : public StateResponseProtoMessage {
2887
2759
  public:
2888
2760
  static constexpr uint16_t MESSAGE_TYPE = 104;
2889
2761
  static constexpr uint16_t ESTIMATED_SIZE = 19;
2890
2762
  #ifdef HAS_PROTO_MESSAGE_DUMP
2891
2763
  static constexpr const char *message_name() { return "time_state_response"; }
2892
2764
  #endif
2893
- uint32_t key{0};
2894
2765
  bool missing_state{false};
2895
2766
  uint32_t hour{0};
2896
2767
  uint32_t minute{0};
@@ -2926,20 +2797,13 @@ class TimeCommandRequest : public ProtoMessage {
2926
2797
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
2927
2798
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2928
2799
  };
2929
- class ListEntitiesEventResponse : public ProtoMessage {
2800
+ class ListEntitiesEventResponse : public InfoResponseProtoMessage {
2930
2801
  public:
2931
2802
  static constexpr uint16_t MESSAGE_TYPE = 107;
2932
2803
  static constexpr uint16_t ESTIMATED_SIZE = 72;
2933
2804
  #ifdef HAS_PROTO_MESSAGE_DUMP
2934
2805
  static constexpr const char *message_name() { return "list_entities_event_response"; }
2935
2806
  #endif
2936
- std::string object_id{};
2937
- uint32_t key{0};
2938
- std::string name{};
2939
- std::string unique_id{};
2940
- std::string icon{};
2941
- bool disabled_by_default{false};
2942
- enums::EntityCategory entity_category{};
2943
2807
  std::string device_class{};
2944
2808
  std::vector<std::string> event_types{};
2945
2809
  void encode(ProtoWriteBuffer buffer) const override;
@@ -2953,14 +2817,13 @@ class ListEntitiesEventResponse : public ProtoMessage {
2953
2817
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2954
2818
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
2955
2819
  };
2956
- class EventResponse : public ProtoMessage {
2820
+ class EventResponse : public StateResponseProtoMessage {
2957
2821
  public:
2958
2822
  static constexpr uint16_t MESSAGE_TYPE = 108;
2959
2823
  static constexpr uint16_t ESTIMATED_SIZE = 14;
2960
2824
  #ifdef HAS_PROTO_MESSAGE_DUMP
2961
2825
  static constexpr const char *message_name() { return "event_response"; }
2962
2826
  #endif
2963
- uint32_t key{0};
2964
2827
  std::string event_type{};
2965
2828
  void encode(ProtoWriteBuffer buffer) const override;
2966
2829
  void calculate_size(uint32_t &total_size) const override;
@@ -2972,20 +2835,13 @@ class EventResponse : public ProtoMessage {
2972
2835
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
2973
2836
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
2974
2837
  };
2975
- class ListEntitiesValveResponse : public ProtoMessage {
2838
+ class ListEntitiesValveResponse : public InfoResponseProtoMessage {
2976
2839
  public:
2977
2840
  static constexpr uint16_t MESSAGE_TYPE = 109;
2978
2841
  static constexpr uint16_t ESTIMATED_SIZE = 60;
2979
2842
  #ifdef HAS_PROTO_MESSAGE_DUMP
2980
2843
  static constexpr const char *message_name() { return "list_entities_valve_response"; }
2981
2844
  #endif
2982
- std::string object_id{};
2983
- uint32_t key{0};
2984
- std::string name{};
2985
- std::string unique_id{};
2986
- std::string icon{};
2987
- bool disabled_by_default{false};
2988
- enums::EntityCategory entity_category{};
2989
2845
  std::string device_class{};
2990
2846
  bool assumed_state{false};
2991
2847
  bool supports_position{false};
@@ -3001,14 +2857,13 @@ class ListEntitiesValveResponse : public ProtoMessage {
3001
2857
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
3002
2858
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
3003
2859
  };
3004
- class ValveStateResponse : public ProtoMessage {
2860
+ class ValveStateResponse : public StateResponseProtoMessage {
3005
2861
  public:
3006
2862
  static constexpr uint16_t MESSAGE_TYPE = 110;
3007
2863
  static constexpr uint16_t ESTIMATED_SIZE = 12;
3008
2864
  #ifdef HAS_PROTO_MESSAGE_DUMP
3009
2865
  static constexpr const char *message_name() { return "valve_state_response"; }
3010
2866
  #endif
3011
- uint32_t key{0};
3012
2867
  float position{0.0f};
3013
2868
  enums::ValveOperation current_operation{};
3014
2869
  void encode(ProtoWriteBuffer buffer) const override;
@@ -3042,20 +2897,13 @@ class ValveCommandRequest : public ProtoMessage {
3042
2897
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
3043
2898
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
3044
2899
  };
3045
- class ListEntitiesDateTimeResponse : public ProtoMessage {
2900
+ class ListEntitiesDateTimeResponse : public InfoResponseProtoMessage {
3046
2901
  public:
3047
2902
  static constexpr uint16_t MESSAGE_TYPE = 112;
3048
2903
  static constexpr uint16_t ESTIMATED_SIZE = 45;
3049
2904
  #ifdef HAS_PROTO_MESSAGE_DUMP
3050
2905
  static constexpr const char *message_name() { return "list_entities_date_time_response"; }
3051
2906
  #endif
3052
- std::string object_id{};
3053
- uint32_t key{0};
3054
- std::string name{};
3055
- std::string unique_id{};
3056
- std::string icon{};
3057
- bool disabled_by_default{false};
3058
- enums::EntityCategory entity_category{};
3059
2907
  void encode(ProtoWriteBuffer buffer) const override;
3060
2908
  void calculate_size(uint32_t &total_size) const override;
3061
2909
  #ifdef HAS_PROTO_MESSAGE_DUMP
@@ -3067,14 +2915,13 @@ class ListEntitiesDateTimeResponse : public ProtoMessage {
3067
2915
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
3068
2916
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
3069
2917
  };
3070
- class DateTimeStateResponse : public ProtoMessage {
2918
+ class DateTimeStateResponse : public StateResponseProtoMessage {
3071
2919
  public:
3072
2920
  static constexpr uint16_t MESSAGE_TYPE = 113;
3073
2921
  static constexpr uint16_t ESTIMATED_SIZE = 12;
3074
2922
  #ifdef HAS_PROTO_MESSAGE_DUMP
3075
2923
  static constexpr const char *message_name() { return "date_time_state_response"; }
3076
2924
  #endif
3077
- uint32_t key{0};
3078
2925
  bool missing_state{false};
3079
2926
  uint32_t epoch_seconds{0};
3080
2927
  void encode(ProtoWriteBuffer buffer) const override;
@@ -3105,20 +2952,13 @@ class DateTimeCommandRequest : public ProtoMessage {
3105
2952
  protected:
3106
2953
  bool decode_32bit(uint32_t field_id, Proto32Bit value) override;
3107
2954
  };
3108
- class ListEntitiesUpdateResponse : public ProtoMessage {
2955
+ class ListEntitiesUpdateResponse : public InfoResponseProtoMessage {
3109
2956
  public:
3110
2957
  static constexpr uint16_t MESSAGE_TYPE = 116;
3111
2958
  static constexpr uint16_t ESTIMATED_SIZE = 54;
3112
2959
  #ifdef HAS_PROTO_MESSAGE_DUMP
3113
2960
  static constexpr const char *message_name() { return "list_entities_update_response"; }
3114
2961
  #endif
3115
- std::string object_id{};
3116
- uint32_t key{0};
3117
- std::string name{};
3118
- std::string unique_id{};
3119
- std::string icon{};
3120
- bool disabled_by_default{false};
3121
- enums::EntityCategory entity_category{};
3122
2962
  std::string device_class{};
3123
2963
  void encode(ProtoWriteBuffer buffer) const override;
3124
2964
  void calculate_size(uint32_t &total_size) const override;
@@ -3131,14 +2971,13 @@ class ListEntitiesUpdateResponse : public ProtoMessage {
3131
2971
  bool decode_length(uint32_t field_id, ProtoLengthDelimited value) override;
3132
2972
  bool decode_varint(uint32_t field_id, ProtoVarInt value) override;
3133
2973
  };
3134
- class UpdateStateResponse : public ProtoMessage {
2974
+ class UpdateStateResponse : public StateResponseProtoMessage {
3135
2975
  public:
3136
2976
  static constexpr uint16_t MESSAGE_TYPE = 117;
3137
2977
  static constexpr uint16_t ESTIMATED_SIZE = 61;
3138
2978
  #ifdef HAS_PROTO_MESSAGE_DUMP
3139
2979
  static constexpr const char *message_name() { return "update_state_response"; }
3140
2980
  #endif
3141
- uint32_t key{0};
3142
2981
  bool missing_state{false};
3143
2982
  bool in_progress{false};
3144
2983
  bool has_progress{false};