Track your battery level
iOS Devices
If you have a device running iOS (iPhone, iPad, etc), The iCloud 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 icon template option to create a dynamic icon that changes with the battery level.
sensor:
- platform: template
sensors:
battery_iphone:
friendly_name: iPhone Battery
# "entity_id:" ensures that this sensor will only update when your device tracker does.
entity_id: device_tracker.iphone
unit_of_measurement: '%'
value_template: >-
{%- if states.device_tracker.iphone.attributes.battery %}
{{ states.device_tracker.iphone.attributes.battery|round }}
{% else %}
{{ states.sensor.battery_iphone.state }}
{%- endif %}
icon_template: >
{% set battery_level = states.sensor.battery_iphone.state|default(0)|int %}
{% set battery_round = (battery_level / 10) |int * 10 %}
{% if battery_round >= 100 %}
mdi:battery
{% elif battery_round > 0 %}
mdi:battery-{{ battery_round }}
{% else %}
mdi:battery-alert
{% endif %}
The else
part is used to have the sensor keep its last state if the newest iCloud update doesn’t have any battery state in it (which happens sometimes). Otherwise the sensor will be blank.
Android and iOS Devices
While running the Owntracks device tracker you can retrieve the battery level with 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 }}'