Track your phone battery level


Android and iOS Devices

The Home Assistant Companion Apps for iOS and Android pass the current battery level to Home Assistant with every location update. The default name of the sensor used is sensor.battery_level.

iOS Devices

If you have a device running iOS (iPhone, iPad, etc), The iCloud integration is gathering various details about your device including the battery level. To display it in the Frontend use a template sensor. You can also use the battery sensor device class to dynamically change the icon with the battery level.

sensor:
  - platform: template
    sensors:
      battery_iphone:
        friendly_name: iPhone Battery
        unit_of_measurement: '%'
        value_template: >-
            {%- if state_attr('device_tracker.iphone', 'battery') %}
                {{ state_attr('device_tracker.iphone', 'battery')|round }}
            {% else %}
                {{ states('sensor.battery_iphone') }}
            {%- endif %}
        device_class: battery

Android Devices

On your Android device, once the official Home Assistant companion app is installed and connected to your Home Assistance instance, you will be able to display the battery level in the frontend by adding a template sensor to your configuration YAML file. You can also use the battery sensor device class to dynamically change the icon with the battery level.

sensor:
  - platform: template
    sensors:
      battery_phone:
        friendly_name: AndroidPhone Battery
        unit_of_measurement: '%'
        value_template: >-
            {%- if state_attr('device_tracker.xxxxx', 'battery_level') %}
                {{ state_attr('device_tracker.xxxxx', 'battery_level')|round }}
            {% else %}
                {{ states('device_tracker.xxxxx') }}
            {%- endif %}
        device_class: battery

Replace ‘device_tracker.xxxxx’ with your phone name as shown under Configuration/Devices Device Info/Entities, for example: ‘device_tracker.mi_a1’

MQTT

If you have configured Owntracks to send reports via MQTT you can use the received data via a MQTT sensor. Replace username with your MQTT username (for the embedded MQTT it’s simply homeassistant), and deviceid with the set Device ID in Owntracks.

sensor:
  - platform: mqtt
    state_topic: "owntracks/username/deviceid"
    name: "Battery Tablet"
    unit_of_measurement: "%"
    value_template: '{{ value_json.batt }}'
    device_class: battery

HTTP

If you have configured Owntracks to send reports to your Home Assistant instance via HTTP you can use a template sensor. Replace deviceid with the set Device ID in Owntracks.

sensor:
- platform: template
    sensors:
      your_battery_sensor_name:
        value_template: "{{ state_attr('device_tracker.deviceid', 'battery_level') }}"
        unit_of_measurement: '%'