@@ -84,43 +84,50 @@ async def _calc(self):
8484 hosts = self ._shared_speed_hosts
8585 hosts .append (self ._host )
8686 for host in hosts :
87- for sensor in ["cpu" , "pci" , "drive" , "gpu" , "chassis" ]:
88- driver = await Factory .driver (host , sensor )
89- if driver is not None :
90- meas_temp = await driver .get_temp ()
91- if mqtt_active :
92- mqtt_names = {"cpu" : "CPU Temperature" , "pci" : "PCI Temperature" , "drive" : "Drive Temperature" , "gpu" : "GPU Temperature" , "chassis" : "Chassis Temperature" }
93- mqtt_sensor_info = SensorInfo (
94- name = mqtt_names [sensor ],
95- device_class = "temperature" ,
96- unique_id = f"hush_{ host .replace (' ' ,'_' )} _{ sensor } _temperature" ,
97- unit_of_measurement = "°C" ,
98- device = mqtt_device_info ,
99- )
100- mqtt_sensor_settings = Settings (mqtt = mqtt_settings , entity = mqtt_sensor_info )
101- mqtt_sensor = Sensor (mqtt_sensor_settings )
102- mqtt_sensor .set_state (meas_temp )
103- temperatures [sensor ] = meas_temp
104- if control is not None :
105- if storage .algo_sensor (host , sensor )["type" ] == "pid" :
106- pid = Pid (host , sensor )
107- speed = round (- 1 * pid .controller (meas_temp ))
108- logger .debug (f"{ host } Temperature={ meas_temp } Speed={ speed } " )
109- else :
110- curve = Curve (host , sensor )
111- speed = curve .calc (meas_temp )
112- logger .debug (f"{ host } Temperature={ meas_temp } Speed={ speed } Speeds={ curve .speeds } " )
113- if speed is not None :
114- if isinstance (speed , str ) is True :
115- current_speed = curve .speeds .index (speed )
116- else :
117- current_speed = speed
118- if highest_speed is None or current_speed > highest_speed :
119- highest_speed = current_speed
87+ if host :
88+ for sensor in ["cpu" , "pci" , "drive" , "gpu" , "chassis" ]:
89+ driver = await Factory .driver (host , sensor )
90+ if driver :
91+ meas_temp = await driver .get_temp ()
92+ if mqtt_active :
93+ mqtt_names = {
94+ "cpu" : "CPU Temperature" ,
95+ "pci" : "PCI Temperature" ,
96+ "drive" : "Drive Temperature" ,
97+ "gpu" : "GPU Temperature" ,
98+ "chassis" : "Chassis Temperature" ,
99+ }
100+ mqtt_sensor_info = SensorInfo (
101+ name = mqtt_names [sensor ],
102+ device_class = "temperature" ,
103+ unique_id = f"hush_{ host .replace (' ' ,'_' )} _{ sensor } _temperature" ,
104+ unit_of_measurement = "°C" ,
105+ device = mqtt_device_info ,
106+ )
107+ mqtt_sensor_settings = Settings (mqtt = mqtt_settings , entity = mqtt_sensor_info )
108+ mqtt_sensor = Sensor (mqtt_sensor_settings )
109+ mqtt_sensor .set_state (meas_temp )
110+ temperatures [sensor ] = meas_temp
111+ if control is not None :
112+ if storage .algo_sensor (host , sensor )["type" ] == "pid" :
113+ pid = Pid (host , sensor )
114+ speed = round (- 1 * pid .controller (meas_temp ))
115+ logger .debug (f"{ host } Temperature={ meas_temp } Speed={ speed } " )
116+ else :
117+ curve = Curve (host , sensor )
118+ speed = curve .calc (meas_temp )
119+ logger .debug (f"{ host } Temperature={ meas_temp } Speed={ speed } Speeds={ curve .speeds } " )
120+ if speed is not None :
120121 if isinstance (speed , str ) is True :
121- final_speed = curve .speeds [ highest_speed ]
122+ current_speed = curve .speeds . index ( speed )
122123 else :
123- final_speed = highest_speed
124+ current_speed = speed
125+ if highest_speed is None or current_speed > highest_speed :
126+ highest_speed = current_speed
127+ if isinstance (speed , str ) is True :
128+ final_speed = curve .speeds [highest_speed ]
129+ else :
130+ final_speed = highest_speed
124131 if final_speed is not None :
125132 if mqtt_active :
126133 unit_of_measurement = None
0 commit comments