Skip to content

Commit 041c2bb

Browse files
committed
Use match case
1 parent 53fc766 commit 041c2bb

File tree

1 file changed

+39
-35
lines changed

1 file changed

+39
-35
lines changed

plugwise/helper.py

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -857,42 +857,46 @@ def _appliance_measurements(
857857
meas_rn = measurement
858858
if new_name := getattr(attrs, ATTR_NAME, None):
859859
meas_rn = new_name
860-
# measurements with states "on" or "off" that need to be passed directly
861-
if meas_rn == "select_dhw_mode":
862-
data["select_dhw_mode"] = appl_p_loc.text
863-
elif meas_rn in BINARY_SENSORS:
864-
bs_key = cast(BinarySensorType, meas_rn)
865-
bs_value = cast(
866-
bool,
867-
format_measure(
868-
appl_p_loc.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
869-
),
870-
)
871-
data["binary_sensors"][bs_key] = bs_value
872-
elif meas_rn in SENSORS:
873-
s_key = cast(SensorType, meas_rn)
874-
s_value = format_measure(
875-
appl_p_loc.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
876-
)
877-
data["sensors"][s_key] = s_value
878-
elif meas_rn in SWITCHES:
879-
sw_key = cast(SwitchType, meas_rn)
880-
sw_value = cast(
881-
bool,
882-
format_measure(
883-
appl_p_loc.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
884-
),
885-
)
886-
data["switches"][sw_key] = sw_value
887-
elif meas_rn == "c_heating_state":
888-
data["c_heating_state"] = cast(
889-
bool,
890-
format_measure(
860+
match meas_rn:
861+
# measurements with states "on" or "off" that need to be passed directly
862+
case "select_dhw_mode":
863+
data["select_dhw_mode"] = appl_p_loc.text
864+
case _ as meas_rn if meas_rn in BINARY_SENSORS:
865+
bs_key = cast(BinarySensorType, meas_rn)
866+
bs_value = cast(
867+
bool,
868+
format_measure(
869+
appl_p_loc.text,
870+
getattr(attrs, ATTR_UNIT_OF_MEASUREMENT),
871+
),
872+
)
873+
data["binary_sensors"][bs_key] = bs_value
874+
case _ as meas_rn if meas_rn in SENSORS:
875+
s_key = cast(SensorType, meas_rn)
876+
s_value = format_measure(
891877
appl_p_loc.text, getattr(attrs, ATTR_UNIT_OF_MEASUREMENT)
892-
),
893-
)
894-
elif meas_rn == "elga_status_code":
895-
data["elga_status_code"] = int(appl_p_loc.text)
878+
)
879+
data["sensors"][s_key] = s_value
880+
case _ as meas_rn if meas_rn in SWITCHES:
881+
sw_key = cast(SwitchType, meas_rn)
882+
sw_value = cast(
883+
bool,
884+
format_measure(
885+
appl_p_loc.text,
886+
getattr(attrs, ATTR_UNIT_OF_MEASUREMENT),
887+
),
888+
)
889+
data["switches"][sw_key] = sw_value
890+
case "c_heating_state":
891+
data["c_heating_state"] = cast(
892+
bool,
893+
format_measure(
894+
appl_p_loc.text,
895+
getattr(attrs, ATTR_UNIT_OF_MEASUREMENT),
896+
),
897+
)
898+
case "elga_status_code":
899+
data["elga_status_code"] = int(appl_p_loc.text)
896900

897901
# Anna: save cooling-related measurements for later use
898902
# Use the local outdoor temperature as reference for turning cooling on/off

0 commit comments

Comments
 (0)