Fix Freebox Home battery sensor (#99756)

pull/99950/head
Quentame 2023-09-07 17:28:50 +02:00 committed by Bram Kragten
parent 718f1a6673
commit fb56e48e07
3 changed files with 33 additions and 4 deletions

View File

@ -85,4 +85,7 @@ CATEGORY_TO_MODEL = {
HOME_COMPATIBLE_CATEGORIES = [
FreeboxHomeCategory.CAMERA,
FreeboxHomeCategory.DWS,
FreeboxHomeCategory.KFB,
FreeboxHomeCategory.PIR,
]

View File

@ -1986,7 +1986,7 @@ DATA_HOME_GET_NODES = [
"category": "kfb",
"group": {"label": ""},
"id": 9,
"label": "Télécommande I",
"label": "Télécommande",
"name": "node_9",
"props": {
"Address": 5,
@ -2067,7 +2067,7 @@ DATA_HOME_GET_NODES = [
"category": "dws",
"group": {"label": "Entrée"},
"id": 11,
"label": "dws i",
"label": "Ouverture porte",
"name": "node_11",
"props": {
"Address": 6,
@ -2259,7 +2259,7 @@ DATA_HOME_GET_NODES = [
"category": "pir",
"group": {"label": "Salon"},
"id": 26,
"label": "Salon Détecteur s",
"label": "Détecteur",
"name": "node_26",
"props": {
"Address": 9,

View File

@ -9,7 +9,7 @@ from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.core import HomeAssistant
from .common import setup_platform
from .const import DATA_STORAGE_GET_DISKS
from .const import DATA_HOME_GET_NODES, DATA_STORAGE_GET_DISKS
from tests.common import async_fire_time_changed
@ -43,3 +43,29 @@ async def test_disk(
# To execute the save
await hass.async_block_till_done()
assert hass.states.get("sensor.freebox_free_space").state == "44.9"
async def test_battery(
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
) -> None:
"""Test battery sensor."""
await setup_platform(hass, SENSOR_DOMAIN)
assert hass.states.get("sensor.telecommande_niveau_de_batterie").state == "100"
assert hass.states.get("sensor.ouverture_porte_niveau_de_batterie").state == "100"
assert hass.states.get("sensor.detecteur_niveau_de_batterie").state == "100"
# Simulate a changed battery
data_home_get_nodes_changed = deepcopy(DATA_HOME_GET_NODES)
data_home_get_nodes_changed[2]["show_endpoints"][3]["value"] = 25
data_home_get_nodes_changed[3]["show_endpoints"][3]["value"] = 50
data_home_get_nodes_changed[4]["show_endpoints"][3]["value"] = 75
router().home.get_home_nodes.return_value = data_home_get_nodes_changed
# Simulate an update
freezer.tick(SCAN_INTERVAL)
async_fire_time_changed(hass)
# To execute the save
await hass.async_block_till_done()
assert hass.states.get("sensor.telecommande_niveau_de_batterie").state == "25"
assert hass.states.get("sensor.ouverture_porte_niveau_de_batterie").state == "50"
assert hass.states.get("sensor.detecteur_niveau_de_batterie").state == "75"