mirror of
https://github.com/home-assistant/core.git
synced 2025-07-28 07:37:34 +00:00
Fix voltage and current values for Fritz!DECT smart plugs (#73608)
fix voltage and current values
This commit is contained in:
parent
cdd5a5f68b
commit
e30478457b
@ -96,7 +96,7 @@ SENSOR_TYPES: Final[tuple[FritzSensorEntityDescription, ...]] = (
|
|||||||
device_class=SensorDeviceClass.VOLTAGE,
|
device_class=SensorDeviceClass.VOLTAGE,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
suitable=lambda device: device.has_powermeter, # type: ignore[no-any-return]
|
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)
|
if getattr(device, "voltage", None)
|
||||||
else 0.0,
|
else 0.0,
|
||||||
),
|
),
|
||||||
@ -107,7 +107,7 @@ SENSOR_TYPES: Final[tuple[FritzSensorEntityDescription, ...]] = (
|
|||||||
device_class=SensorDeviceClass.CURRENT,
|
device_class=SensorDeviceClass.CURRENT,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
suitable=lambda device: device.has_powermeter, # type: ignore[no-any-return]
|
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
|
||||||
if device.power and getattr(device, "voltage", None)
|
if device.power and getattr(device, "voltage", None)
|
||||||
else 0.0,
|
else 0.0,
|
||||||
),
|
),
|
||||||
|
@ -16,6 +16,8 @@ from homeassistant.const import (
|
|||||||
ATTR_FRIENDLY_NAME,
|
ATTR_FRIENDLY_NAME,
|
||||||
ATTR_UNIT_OF_MEASUREMENT,
|
ATTR_UNIT_OF_MEASUREMENT,
|
||||||
CONF_DEVICES,
|
CONF_DEVICES,
|
||||||
|
ELECTRIC_CURRENT_AMPERE,
|
||||||
|
ELECTRIC_POTENTIAL_VOLT,
|
||||||
ENERGY_KILO_WATT_HOUR,
|
ENERGY_KILO_WATT_HOUR,
|
||||||
POWER_WATT,
|
POWER_WATT,
|
||||||
SERVICE_TURN_OFF,
|
SERVICE_TURN_OFF,
|
||||||
@ -48,29 +50,54 @@ async def test_setup(hass: HomeAssistant, fritz: Mock):
|
|||||||
assert state.attributes[ATTR_FRIENDLY_NAME] == CONF_FAKE_NAME
|
assert state.attributes[ATTR_FRIENDLY_NAME] == CONF_FAKE_NAME
|
||||||
assert ATTR_STATE_CLASS not in state.attributes
|
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")
|
state = hass.states.get(f"{ENTITY_ID}_humidity")
|
||||||
assert state is None
|
assert state is None
|
||||||
|
|
||||||
state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_power_consumption")
|
sensors = (
|
||||||
assert state
|
[
|
||||||
assert state.state == "5.678"
|
f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_temperature",
|
||||||
assert state.attributes[ATTR_FRIENDLY_NAME] == f"{CONF_FAKE_NAME} Power Consumption"
|
"1.23",
|
||||||
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == POWER_WATT
|
f"{CONF_FAKE_NAME} Temperature",
|
||||||
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.MEASUREMENT
|
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")
|
for sensor in sensors:
|
||||||
|
state = hass.states.get(sensor[0])
|
||||||
assert state
|
assert state
|
||||||
assert state.state == "1.234"
|
assert state.state == sensor[1]
|
||||||
assert state.attributes[ATTR_FRIENDLY_NAME] == f"{CONF_FAKE_NAME} Total Energy"
|
assert state.attributes[ATTR_FRIENDLY_NAME] == sensor[2]
|
||||||
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == ENERGY_KILO_WATT_HOUR
|
assert state.attributes[ATTR_UNIT_OF_MEASUREMENT] == sensor[3]
|
||||||
assert state.attributes[ATTR_STATE_CLASS] == SensorStateClass.TOTAL_INCREASING
|
assert state.attributes[ATTR_STATE_CLASS] == sensor[4]
|
||||||
|
|
||||||
|
|
||||||
async def test_turn_on(hass: HomeAssistant, fritz: Mock):
|
async def test_turn_on(hass: HomeAssistant, fritz: Mock):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user