Skip to content

Commit 02ce372

Browse files
committed
fixed unnamed host in config
1 parent 61c0a57 commit 02ce372

File tree

3 files changed

+49
-42
lines changed

3 files changed

+49
-42
lines changed

hush/control.py

Lines changed: 42 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -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

hush/drawer.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def toggle_drawer():
8383
chevron.props(f"color=primary text-color=accent")
8484

8585
def _add_host_to_table(self, name):
86-
if len(name) > 0:
86+
if name:
8787
for row in self._table.rows:
8888
if name == row["name"]:
8989
return
@@ -152,7 +152,7 @@ def host_check(value: str) -> Optional[bool]:
152152
save_ea = el.ErrorAggregator(host_input)
153153
el.DButton("SAVE", on_click=lambda: host_dialog.submit("save")).bind_enabled_from(save_ea, "no_errors")
154154
host_input.value = name
155-
if name != "":
155+
if name:
156156
s = ssh.Ssh(name)
157157
if "oob" in storage.host(name):
158158
oob_hostname_input.value = storage.host(name)["oob"].get("hostname", "")
@@ -169,19 +169,19 @@ def host_check(value: str) -> Optional[bool]:
169169
result = await host_dialog
170170
if result == "save":
171171
host = host_input.value.strip()
172-
if len(host) > 0:
172+
if host:
173173
ssh.Ssh(name).remove()
174174
ssh.Ssh(f"{name}_oob").remove()
175175
if name in storage.hosts:
176176
del storage.hosts[name]
177177
for row in self._table.rows:
178178
if name == row["name"]:
179179
self._table.remove_rows(row)
180-
if "oob" not in storage.host(name):
180+
if "oob" not in storage.host(host):
181181
storage.host(host)["oob"] = {}
182-
if "os" not in storage.host(name):
182+
if "os" not in storage.host(host):
183183
storage.host(host)["os"] = {}
184-
if "mqtt" not in storage.host(name):
184+
if "mqtt" not in storage.host(host):
185185
storage.host(host)["mqtt"] = {}
186186
storage.host(host)["oob"]["hostname"] = oob_hostname_input.value
187187
storage.host(host)["oob"]["username"] = oob_username_input.value

hush/storage.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848

4949
def host(name: str) -> dict:
50-
if name not in hosts:
50+
if name and name not in hosts:
5151
hosts[name] = {
5252
"oob": {
5353
"hostname": "",

0 commit comments

Comments
 (0)