@@ -676,6 +676,8 @@ def get_supported_features(self) -> list[str]:
676676 RoborockDockTypeCode .o4_dock ,
677677 RoborockDockTypeCode .o5_dock ,
678678 RoborockDockTypeCode .o6_dock ,
679+ RoborockDockTypeCode .o7_dock ,
680+ RoborockDockTypeCode .o7h_dock ,
679681}
680682
681683_CLEAN_FLUID_AUTO_DELIVERY_DOCK_TYPES = {
@@ -685,6 +687,10 @@ def get_supported_features(self) -> list[str]:
685687 RoborockDockTypeCode .shell_3s_dock ,
686688 RoborockDockTypeCode .o6_dock ,
687689 RoborockDockTypeCode .couple_dock ,
690+ RoborockDockTypeCode .type_27_dock ,
691+ RoborockDockTypeCode .o7_dock ,
692+ RoborockDockTypeCode .f1s_dock ,
693+ RoborockDockTypeCode .o7h_dock ,
688694}
689695
690696_CLEAN_FLUID_AUTO_DELIVERY_AM_DOCK_TYPES = {
@@ -696,6 +702,7 @@ def get_supported_features(self) -> list[str]:
696702 RoborockDockTypeCode .shell_e_dock ,
697703 RoborockDockTypeCode .shell_2e_dock ,
698704 RoborockDockTypeCode .shell_3c_dock ,
705+ RoborockDockTypeCode .k1c_dock ,
699706}
700707
701708_AUTO_STERILIZE_DOCK_TYPES = {
@@ -725,6 +732,18 @@ def get_supported_features(self) -> list[str]:
725732 RoborockDockTypeCode .shell_3s_dock ,
726733 RoborockDockTypeCode .k1s_dock ,
727734 RoborockDockTypeCode .shell_3c_dock ,
735+ RoborockDockTypeCode .k1s_pro_dock ,
736+ RoborockDockTypeCode .type_27_dock ,
737+ RoborockDockTypeCode .k1r_dock ,
738+ RoborockDockTypeCode .shell_4rc_dock ,
739+ RoborockDockTypeCode .shell_4p_dock ,
740+ RoborockDockTypeCode .shell_4s_dock ,
741+ RoborockDockTypeCode .k1d_dock ,
742+ RoborockDockTypeCode .shell_3p_dock ,
743+ RoborockDockTypeCode .f1_dock ,
744+ RoborockDockTypeCode .f2r_dock ,
745+ RoborockDockTypeCode .f1s_dock ,
746+ RoborockDockTypeCode .f1c_dock ,
728747}
729748
730749_WATER_UPDOWN_DRAIN_DOCK_TYPES = {
@@ -745,6 +764,19 @@ def get_supported_features(self) -> list[str]:
745764 RoborockDockTypeCode .shell_e_dock ,
746765 RoborockDockTypeCode .shell_2e_dock ,
747766 RoborockDockTypeCode .shell_3c_dock ,
767+ RoborockDockTypeCode .k1c_dock ,
768+ RoborockDockTypeCode .hera_dock ,
769+ RoborockDockTypeCode .k1s_pro_dock ,
770+ RoborockDockTypeCode .type_27_dock ,
771+ RoborockDockTypeCode .shell_4rc_dock ,
772+ RoborockDockTypeCode .shell_4r_dock ,
773+ RoborockDockTypeCode .shell_4p_dock ,
774+ RoborockDockTypeCode .shell_4s_dock ,
775+ RoborockDockTypeCode .o7_dock ,
776+ RoborockDockTypeCode .shell_4d_dock ,
777+ RoborockDockTypeCode .f1r_dock ,
778+ RoborockDockTypeCode .f1s_dock ,
779+ RoborockDockTypeCode .o7h_dock ,
748780}
749781
750782_HATCH_DOOR_DOCK_COOL_FAN_DOCK_TYPES = {
@@ -755,6 +787,56 @@ def get_supported_features(self) -> list[str]:
755787 RoborockDockTypeCode .shell_2e_lite_dock ,
756788}
757789
790+ _HIGH_TMP_WATER_DOCK_TYPES = {
791+ RoborockDockTypeCode .k1r_dock ,
792+ RoborockDockTypeCode .shell_4rc_dock ,
793+ RoborockDockTypeCode .shell_2e_heat_dock ,
794+ RoborockDockTypeCode .f1_dock ,
795+ RoborockDockTypeCode .f1r_dock ,
796+ RoborockDockTypeCode .f2r_dock ,
797+ RoborockDockTypeCode .f1c_dock ,
798+ }
799+
800+ _DOUBLE_SERIAL_COMMUNICATION_DOCK_TYPES = {
801+ RoborockDockTypeCode .k1s_pro_dock ,
802+ RoborockDockTypeCode .type_27_dock ,
803+ RoborockDockTypeCode .k1r_dock ,
804+ RoborockDockTypeCode .shell_4r_dock ,
805+ RoborockDockTypeCode .shell_4p_dock ,
806+ RoborockDockTypeCode .shell_4s_dock ,
807+ RoborockDockTypeCode .o7_dock ,
808+ RoborockDockTypeCode .k1d_dock ,
809+ RoborockDockTypeCode .shell_3p_dock ,
810+ RoborockDockTypeCode .f1_dock ,
811+ RoborockDockTypeCode .f1r_dock ,
812+ RoborockDockTypeCode .f2r_dock ,
813+ RoborockDockTypeCode .f1s_dock ,
814+ RoborockDockTypeCode .o7h_dock ,
815+ RoborockDockTypeCode .f1c_dock ,
816+ }
817+
818+ _DOUBLE_SERIAL_COMMUNICATION_AM_DOCK_TYPES = {
819+ RoborockDockTypeCode .shell_4rc_dock ,
820+ RoborockDockTypeCode .shell_4d_dock ,
821+ }
822+
823+ _NO_WATER_FLOW_CAROUSEL_DOCK_TYPES = {
824+ RoborockDockTypeCode .f1r_dock ,
825+ RoborockDockTypeCode .f2r_dock ,
826+ RoborockDockTypeCode .f1s_dock ,
827+ }
828+
829+ _SIMPLE_WASH_MODE_DOCK_TYPES = {
830+ RoborockDockTypeCode .f1_dock ,
831+ RoborockDockTypeCode .f1r_dock ,
832+ RoborockDockTypeCode .f2r_dock ,
833+ RoborockDockTypeCode .f1c_dock ,
834+ }
835+
836+ _STEAM_WASH_DOCK_TYPES = {
837+ RoborockDockTypeCode .o7h_dock ,
838+ }
839+
758840
759841@dataclass (frozen = True )
760842class RoborockDockFeatures :
@@ -855,6 +937,28 @@ def is_hatch_door_dock_cool_fan_supported(self) -> bool:
855937 def is_special_support_wash_temp (self ) -> bool :
856938 return self .dock_type in _SPECIAL_WASH_TEMP_DOCK_TYPES
857939
940+ @property
941+ def is_high_tmp_water_supported (self ) -> bool :
942+ return self .dock_type in _HIGH_TMP_WATER_DOCK_TYPES
943+
944+ @property
945+ def is_double_serial_communication_supported (self ) -> bool :
946+ return self .dock_type in _DOUBLE_SERIAL_COMMUNICATION_DOCK_TYPES or self ._matches_am_variant (
947+ _DOUBLE_SERIAL_COMMUNICATION_AM_DOCK_TYPES
948+ )
949+
950+ @property
951+ def is_no_water_flow_carousel (self ) -> bool :
952+ return self .dock_type in _NO_WATER_FLOW_CAROUSEL_DOCK_TYPES
953+
954+ @property
955+ def is_simple_wash_mode_supported (self ) -> bool :
956+ return self .dock_type in _SIMPLE_WASH_MODE_DOCK_TYPES
957+
958+ @property
959+ def is_steam_wash_supported (self ) -> bool :
960+ return self .dock_type in _STEAM_WASH_DOCK_TYPES
961+
858962
859963WASH_N_FILL_DOCK_TYPES = [
860964 dock_type for dock_type in RoborockDockTypeCode if RoborockDockFeatures .from_dock_type (dock_type ).is_washable
0 commit comments