Trying to extract the day of the week from a sensor

{{ (“2024-04-22 21:25:31.474553-06:00”|as_datetime).strftime(“%A”) }}
This is the format of the output of my sensor andit gives Monday as output but this gives a template value error:

{%- set day = (states.sensor.keul_last_update_time |as_datetime).strftime('%w') %}
          {%- set days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] %}
          {{- days[ day | int -1 ] }}

ValueError: Template error: as_datetime got invalid input ‘<template TemplateState(<state sensor.keul_last_update_time=2024-04-23 00:00:00.216592-06:00; friendly_name=KEUL last update time @ 2024-04-23T00:00:00.216633-06:00>)>’ when rendering template ‘{{ (“2024-04-22 21:25:31.474553-06:00”|as_datetime).strftime(“%A”) }} {%- set day = (states.sensor.keul_last_update_time |as_datetime).strftime(’%w’) %} {%- set days = [“Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”, “Sunday”] %} {{- days[ day | int -1 ] }}’ but no default was specified

I also tried

{%- set day = (states('sensor.keul_last_update_time') |as_datetime).strftime('%A') %}

But that’s empty.

Try this:

{% set day = (states('sensor.keul_last_update_time')|as_datetime).strftime('%w') %}
{% set days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] %}
{{ days[ day | int ] }}

Or just this:

{{ (states('sensor.keul_last_update_time')|as_datetime).strftime('%A') }}

Beautiful! That works. Thanks!

Cheat-sheet for next time: https://strftime.org/

1 Like