Add Wi-Fi RSSI sensor in HomeWizard (#136754)

This commit is contained in:
Duco Sebel 2025-02-06 23:37:26 +01:00 committed by GitHub
parent 8a08a87a25
commit fd6e2a6e19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 368 additions and 0 deletions

View File

@ -19,6 +19,7 @@ from homeassistant.components.sensor import (
from homeassistant.const import (
ATTR_VIA_DEVICE,
PERCENTAGE,
SIGNAL_STRENGTH_DECIBELS,
EntityCategory,
UnitOfApparentPower,
UnitOfElectricCurrent,
@ -137,6 +138,21 @@ SENSORS: Final[tuple[HomeWizardSensorEntityDescription, ...]] = (
else None
),
),
HomeWizardSensorEntityDescription(
key="wifi_rssi",
translation_key="wifi_rssi",
native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS,
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
has_fn=(
lambda data: data.system is not None
and data.system.wifi_rssi_db is not None
),
value_fn=(
lambda data: data.system.wifi_rssi_db if data.system is not None else None
),
),
HomeWizardSensorEntityDescription(
key="total_power_import_kwh",
translation_key="total_energy_import_kwh",

View File

@ -78,6 +78,9 @@
"wifi_strength": {
"name": "Wi-Fi strength"
},
"wifi_rssi": {
"name": "Wi-Fi RSSI"
},
"total_energy_import_kwh": {
"name": "Energy import"
},

View File

@ -782,6 +782,174 @@
'state': '230.0',
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_rssi:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
tuple(
'mac',
'5c:2f:af:ab:cd:ef',
),
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'homewizard',
'5c2fafabcdef',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'HomeWizard',
'model': 'Plug-In Battery',
'model_id': 'HWE-BAT',
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': '1.00',
'via_device_id': None,
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_rssi:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.device_wi_fi_rssi',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi RSSI',
'platform': 'homewizard',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'wifi_rssi',
'unique_id': 'HWE-P1_5c2fafabcdef_wifi_rssi',
'unit_of_measurement': 'dB',
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_rssi:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Device Wi-Fi RSSI',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': 'dB',
}),
'context': <ANY>,
'entity_id': 'sensor.device_wi_fi_rssi',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '-77',
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_ssid:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
tuple(
'mac',
'5c:2f:af:ab:cd:ef',
),
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'homewizard',
'5c2fafabcdef',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'HomeWizard',
'model': 'Plug-In Battery',
'model_id': 'HWE-BAT',
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': '1.00',
'via_device_id': None,
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_ssid:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.device_wi_fi_ssid',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi SSID',
'platform': 'homewizard',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'wifi_ssid',
'unique_id': 'HWE-P1_5c2fafabcdef_wifi_ssid',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[HWE-BAT-entity_ids10][sensor.device_wi_fi_ssid:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Device Wi-Fi SSID',
}),
'context': <ANY>,
'entity_id': 'sensor.device_wi_fi_ssid',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'simulating v1 support',
})
# ---
# name: test_sensors[HWE-KWH1-entity_ids7][sensor.device_apparent_power:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,
@ -14363,6 +14531,174 @@
'state': '0.0',
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_ssid:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
tuple(
'mac',
'5c:2f:af:ab:cd:ef',
),
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'homewizard',
'5c2fafabcdef',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'HomeWizard',
'model': 'Wi-Fi P1 Meter',
'model_id': 'HWE-P1',
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': '4.19',
'via_device_id': None,
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_ssid:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.device_wi_fi_ssid',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi SSID',
'platform': 'homewizard',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'wifi_ssid',
'unique_id': 'HWE-P1_5c2fafabcdef_wifi_ssid',
'unit_of_measurement': None,
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_ssid:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Device Wi-Fi SSID',
}),
'context': <ANY>,
'entity_id': 'sensor.device_wi_fi_ssid',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'My Wi-Fi',
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_strength:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,
'config_entries': <ANY>,
'configuration_url': None,
'connections': set({
tuple(
'mac',
'5c:2f:af:ab:cd:ef',
),
}),
'disabled_by': None,
'entry_type': None,
'hw_version': None,
'id': <ANY>,
'identifiers': set({
tuple(
'homewizard',
'5c2fafabcdef',
),
}),
'is_new': False,
'labels': set({
}),
'manufacturer': 'HomeWizard',
'model': 'Wi-Fi P1 Meter',
'model_id': 'HWE-P1',
'name': 'Device',
'name_by_user': None,
'primary_config_entry': <ANY>,
'serial_number': None,
'suggested_area': None,
'sw_version': '4.19',
'via_device_id': None,
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_strength:entity-registry]
EntityRegistryEntrySnapshot({
'aliases': set({
}),
'area_id': None,
'capabilities': dict({
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
}),
'config_entry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.device_wi_fi_strength',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Wi-Fi strength',
'platform': 'homewizard',
'previous_unique_id': None,
'supported_features': 0,
'translation_key': 'wifi_strength',
'unique_id': 'HWE-P1_5c2fafabcdef_wifi_strength',
'unit_of_measurement': '%',
})
# ---
# name: test_sensors[HWE-P1-zero-values-entity_ids1][sensor.device_wi_fi_strength:state]
StateSnapshot({
'attributes': ReadOnlyDict({
'friendly_name': 'Device Wi-Fi strength',
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
'unit_of_measurement': '%',
}),
'context': <ANY>,
'entity_id': 'sensor.device_wi_fi_strength',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '100',
})
# ---
# name: test_sensors[HWE-SKT-11-entity_ids2][sensor.device_energy_export:device-registry]
DeviceRegistryEntrySnapshot({
'area_id': None,

View File

@ -108,6 +108,8 @@ pytestmark = [
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_water_usage",
"sensor.device_wi_fi_ssid",
"sensor.device_wi_fi_strength",
],
),
(
@ -304,6 +306,8 @@ pytestmark = [
"sensor.device_state_of_charge",
"sensor.device_uptime",
"sensor.device_voltage",
"sensor.device_wi_fi_rssi",
"sensor.device_wi_fi_ssid",
],
),
],
@ -453,6 +457,7 @@ async def test_sensors(
"sensor.device_frequency",
"sensor.device_uptime",
"sensor.device_voltage",
"sensor.device_wi_fi_rssi",
],
),
],
@ -561,6 +566,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_voltage",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -610,6 +616,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -667,6 +674,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_voltage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -718,6 +726,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -758,6 +767,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_voltage",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -809,6 +819,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -849,6 +860,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_voltage",
"sensor.device_water_usage",
"sensor.device_wi_fi_rssi",
],
),
(
@ -897,6 +909,7 @@ async def test_external_sensors_unreachable(
"sensor.device_voltage_swells_detected_phase_2",
"sensor.device_voltage_swells_detected_phase_3",
"sensor.device_water_usage",
"sensor.device_wi_fi_strength",
],
),
],