Skip to content

Instantly share code, notes, and snippets.

@esbenr
Last active May 4, 2025 10:03
Show Gist options
  • Save esbenr/6cb54253060e290ea515562f3c3d8c97 to your computer and use it in GitHub Desktop.
Save esbenr/6cb54253060e290ea515562f3c3d8c97 to your computer and use it in GitHub Desktop.
Sensor templates for Yuka progress and charge soc/state
- sensor:
- name: "yuka_soc"
state: "{{ states('sensor.robbie_battery')|int }}%"
icon: >-
{%if is_state('binary_sensor.robbie_oplader', 'on') %}
{% if states('sensor.robbie_battery')|int < 10 %}
mdi:battery-charging-outline
{% elif states('sensor.robbie_battery')|int < 20 %}
mdi:battery-charging-10
{% elif states('sensor.robbie_battery')|int < 30 %}
mdi:battery-charging-20
{% elif states('sensor.robbie_battery')|int < 40 %}
mdi:battery-charging-30
{% elif states('sensor.robbie_battery')|int < 50 %}
mdi:battery-charging-40
{% elif states('sensor.robbie_battery')|int < 60 %}
mdi:battery-charging-50
{% elif states('sensor.robbie_battery')|int < 70 %}
mdi:battery-charging-60
{% elif states('sensor.robbie_battery')|int < 80 %}
mdi:battery-charging-70
{% elif states('sensor.robbie_battery')|int < 90 %}
mdi:battery-charging-80
{% elif states('sensor.robbie_battery')|int < 100 %}
mdi:battery-charging-90
{% elif states('sensor.robbie_battery')|int == 100 %}
mdi:battery-charging-100
{% endif %}
{% else %}
{% if states('sensor.robbie_battery')|int < 10 %}
mdi:battery-outline
{% elif states('sensor.robbie_battery')|int < 20 %}
mdi:battery-10
{% elif states('sensor.robbie_battery')|int < 30 %}
mdi:battery-20
{% elif states('sensor.robbie_battery')|int < 40 %}
mdi:battery-30
{% elif states('sensor.robbie_battery')|int < 50 %}
mdi:battery-40
{% elif states('sensor.robbie_battery')|int < 60 %}
mdi:battery-50
{% elif states('sensor.robbie_battery')|int < 70 %}
mdi:battery-60
{% elif states('sensor.robbie_battery')|int < 80 %}
mdi:battery-70
{% elif states('sensor.robbie_battery')|int < 90 %}
mdi:battery-80
{% elif states('sensor.robbie_battery')|int < 100 %}
mdi:battery-90
{% elif states('sensor.robbie_battery')|int == 100 %}
mdi:battery
{% endif %}
{% endif %}
- name: "yuka_progress"
state: >-
{%if is_state('sensor.robbie_work_area', 'Not working') %}
{{ states('sensor.robbie_progress')|int }}%
{% else %}
{{ states('sensor.robbie_progress')|int }}%/{{ states('sensor.robbie_time_left') }}min
{% endif %}
icon: >-
{%if is_state('sensor.robbie_work_area', 'Not working') %}
{% if states('sensor.robbie_progress')|int < 10 %}
mdi:circle-outline
{% elif states('sensor.robbie_progress')|int < 20 %}
mdi:circle-slice-1
{% elif states('sensor.robbie_progress')|int < 30 %}
mdi:circle-slice-2
{% elif states('sensor.robbie_progress')|int < 40 %}
mdi:circle-slice-3
{% elif states('sensor.robbie_progress')|int < 50 %}
mdi:circle-slice-3
{% elif states('sensor.robbie_progress')|int < 60 %}
mdi:circle-slice-4
{% elif states('sensor.robbie_progress')|int < 70 %}
mdi:circle-slice-5
{% elif states('sensor.robbie_progress')|int < 80 %}
mdi:circle-slice-6
{% elif states('sensor.robbie_progress')|int < 90 %}
mdi:circle-slice-6
{% elif states('sensor.robbie_progress')|int < 100 %}
mdi:circle-slice-7
{% elif states('sensor.robbie_progress')|int == 100 %}
mdi:circle-slice-8
{% endif %}
{% else %}
{% if states('sensor.robbie_progress')|int < 10 %}
mdi:circle-outline
{% elif states('sensor.robbie_progress')|int < 20 %}
mdi:circle-slice-1
{% elif states('sensor.robbie_progress')|int < 30 %}
mdi:circle-slice-2
{% elif states('sensor.robbie_progress')|int < 40 %}
mdi:circle-slice-3
{% elif states('sensor.robbie_progress')|int < 50 %}
mdi:circle-slice-3
{% elif states('sensor.robbie_progress')|int < 60 %}
mdi:circle-slice-4
{% elif states('sensor.robbie_progress')|int < 70 %}
mdi:circle-slice-5
{% elif states('sensor.robbie_progress')|int < 80 %}
mdi:circle-slice-6
{% elif states('sensor.robbie_progress')|int < 90 %}
mdi:circle-slice-6
{% elif states('sensor.robbie_progress')|int < 100 %}
mdi:circle-slice-7
{% elif states('sensor.robbie_progress')|int == 100 %}
mdi:circle-slice-8
{% endif %}
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment