JurajNyiri / HomeAssistant-Tapo-Control

Control for Tapo cameras as a Home Assistant component
Apache License 2.0
945 stars 80 forks source link

Incorrect device_class for D230 doorbell battery sensor. #571

Open Spamfast opened 1 month ago

Spamfast commented 1 month ago

Description

I have a Tapo D230 doorbell connected via an H200 hub. The integration is exposing all its attributes correctly except that the sensor.xxxx_battery battery level percentage is being given a device class of 'mdi:battery' and not 'battery' and so is not showing up in battery-filtered cards, automations etc. For now I've corrected it in my customization YAML file.

Reproduction Steps

  1. Install the Tapo app on Android device.
  2. Add the H200 hub.
  3. Add the D230 doorbell.
  4. Install Tapo: Cameras Control from HACS.
  5. Add the hub to the integration - doorbell auto-detected and configured.
  6. Check in Developer Tools->States -- device_class shows as 'mdi:battery'.

Expected behavior

The device class should be the string 'battery' not 'mdi:battery'.

If applicable, add error logs.

No response

Device Firmware

D230 1.1.14, H200 1.3.1

Integration Version

5.4.18

Using stream component

Yes

Does camera work via official integrations?

Yes

Camera has all attributes filled out in developer tools

Yes

HASS Environment

Vanilla HAOS image on x86_64 PC.

Search for similar issues

Yes

Additional information

Core 2024.5.3, supervisor 2024.05.1, OS 12.3, frontent 20240501.1.

Spamfast commented 2 weeks ago

Problem is a one-liner in the TapoBatterySensor class constructor where it's setting the device_class argument instead of the icon argument in the base class constructor call.

https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/blob/88949f32742659fd8ba805d00b8bfb63c87d2681/custom_components/tapo_control/sensor.py#L215

I'll try to find time to clone, fix & pull request but I'm busy elsewhere so might not be soon.