Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions homeassistant/components/fritzbox/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class FritzSensorEntityDescription(
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
suitable=lambda device: device.has_powermeter, # type: ignore[no-any-return]
native_value=lambda device: device.voltage / 1000
native_value=lambda device: device.voltage
if getattr(device, "voltage", None)
else 0.0,
),
Expand All @@ -107,7 +107,7 @@ class FritzSensorEntityDescription(
device_class=SensorDeviceClass.CURRENT,
state_class=SensorStateClass.MEASUREMENT,
suitable=lambda device: device.has_powermeter, # type: ignore[no-any-return]
native_value=lambda device: device.power / device.voltage
native_value=lambda device: device.power / device.voltage / 1000
Comment thread
mib1185 marked this conversation as resolved.
if device.power and getattr(device, "voltage", None)
else 0.0,
),
Expand Down
65 changes: 46 additions & 19 deletions tests/components/fritzbox/test_switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
ATTR_FRIENDLY_NAME,
ATTR_UNIT_OF_MEASUREMENT,
CONF_DEVICES,
ELECTRIC_CURRENT_AMPERE,
ELECTRIC_POTENTIAL_VOLT,
ENERGY_KILO_WATT_HOUR,
POWER_WATT,
SERVICE_TURN_OFF,
Expand Down Expand Up @@ -48,29 +50,54 @@ async def test_setup(hass: HomeAssistant, fritz: Mock):
assert state.attributes[ATTR_FRIENDLY_NAME] == CONF_FAKE_NAME
assert ATTR_STATE_CLASS not in state.attributes

state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_temperature")
assert state
assert state.state == "1.23"
assert state.attributes[ATTR_FRIENDLY_NAME] == f"{CONF_FAKE_NAME} Temperature"
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == TEMP_CELSIUS
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.MEASUREMENT

state = hass.states.get(f"{ENTITY_ID}_humidity")
assert state is None

state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_power_consumption")
assert state
assert state.state == "5.678"
assert state.attributes[ATTR_FRIENDLY_NAME] == f"{CONF_FAKE_NAME} Power Consumption"
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == POWER_WATT
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.MEASUREMENT
sensors = (
[
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_temperature",
"1.23",
f"{CONF_FAKE_NAME} Temperature",
TEMP_CELSIUS,
SensorStateClass.MEASUREMENT,
],
[
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_power_consumption",
"5.678",
f"{CONF_FAKE_NAME} Power Consumption",
POWER_WATT,
SensorStateClass.MEASUREMENT,
],
[
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_total_energy",
"1.234",
f"{CONF_FAKE_NAME} Total Energy",
ENERGY_KILO_WATT_HOUR,
SensorStateClass.TOTAL_INCREASING,
],
[
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_voltage",
"230",
f"{CONF_FAKE_NAME} Voltage",
ELECTRIC_POTENTIAL_VOLT,
SensorStateClass.MEASUREMENT,
],
[
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_electric_current",
"0.0246869565217391",
f"{CONF_FAKE_NAME} Electric Current",
ELECTRIC_CURRENT_AMPERE,
SensorStateClass.MEASUREMENT,
],
)

state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_total_energy")
assert state
assert state.state == "1.234"
assert state.attributes[ATTR_FRIENDLY_NAME] == f"{CONF_FAKE_NAME} Total Energy"
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == ENERGY_KILO_WATT_HOUR
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.TOTAL_INCREASING
for sensor in sensors:
state = hass.states.get(sensor[0])
assert state
assert state.state == sensor[1]
assert state.attributes[ATTR_FRIENDLY_NAME] == sensor[2]
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == sensor[3]
assert state.attributes[ATTR_STATE_CLASS] == sensor[4]


async def test_turn_on(hass: HomeAssistant, fritz: Mock):
Expand Down