@@ -71,6 +71,7 @@ def __init__(self, device_data: dict, api_interface: "ThermiaAPI"):
7171 self .__group_operational_status = None
7272 self .__group_operational_time = None
7373 self .__group_operational_operation = None
74+ self .__group_operational_operation_read_only = None
7475 self .__group_hot_water : Dict [str , Optional [int ]] = {
7576 "hot_water_switch" : None ,
7677 "hot_water_boost_switch" : None ,
@@ -116,6 +117,9 @@ def update_data(self):
116117 self .__group_operational_operation = (
117118 self .__api_interface .get_group_operational_operation (self )
118119 )
120+ self .__group_operational_operation_read_only = (
121+ self .__api_interface .get_group_operational_operation_from_status (self )
122+ )
119123 self .__group_hot_water = self .__api_interface .get_group_hot_water (self )
120124
121125 self .__alarms = self .__api_interface .get_all_alarms (self .__device_id )
@@ -892,25 +896,50 @@ def auxiliary_heater_3_operational_time(self):
892896
893897 @property
894898 def operation_mode (self ):
895- return get_dict_value_or_none (self .__group_operational_operation , "current" )
899+ if self .__group_operational_operation is not None :
900+ return get_dict_value_or_none (self .__group_operational_operation , "current" )
901+
902+ return get_dict_value_or_none (
903+ self .__group_operational_operation_read_only , "current"
904+ )
896905
897906 @property
898907 def available_operation_modes (self ):
908+ if self .__group_operational_operation is not None :
909+ return list (
910+ get_dict_value_or_default (
911+ self .__group_operational_operation , "available" , {}
912+ ).values ()
913+ )
914+
899915 return list (
900916 get_dict_value_or_default (
901- self .__group_operational_operation , "available" , {}
917+ self .__group_operational_operation_read_only , "available" , {}
902918 ).values ()
903919 )
904920
905921 @property
906922 def available_operation_mode_map (self ):
923+ if self .__group_operational_operation is not None :
924+ return get_dict_value_or_default (
925+ self .__group_operational_operation , "available" , {}
926+ )
927+
907928 return get_dict_value_or_default (
908- self .__group_operational_operation , "available" , {}
929+ self .__group_operational_operation_read_only , "available" , {}
909930 )
910931
911932 @property
912933 def is_operation_mode_read_only (self ):
913- return get_dict_value_or_none (self .__group_operational_operation , "isReadOnly" )
934+ if self .__group_operational_operation is not None :
935+ return get_dict_value_or_none (
936+ self .__group_operational_operation , "isReadOnly"
937+ )
938+
939+ if self .__group_operational_operation_read_only is not None :
940+ True
941+
942+ return None
914943
915944 ###########################################################################
916945 # Hot water data
0 commit comments