Mon problème
Je sollicite votre aide pour m’aider a faire du formatage dans un type: custom:button-card
J’ai configurer un custom:button-card avec ça ( qui fonctionne ) :
type: custom:button-card
...
label: |
[[[
if (states['input_boolean.xxxx'].state == "on")
return 'Ce soir à ' + states['input_datetime.yyyy'].state;
else
return "Eteint" ;
]]]
Ca affiche Ce soir à 00:45:00
J’aimerais retirer les secondes pour rendre ça plus lisible.
En template jinja, le code serait {{ strptime(states('input_datetime.yyyy'),'%H:%M:%S').strftime('%-H:%M') }}
Mais c’est pas du jinja mais du javascript (je crois)
Vous savez comment faire ?
Merci.
Bonjour,
tu peu utiliser le helpers.format, ta plusieurs type de formatage.
tu peu essayer:
type: custom:button-card
...
label: |
[[[
if (states['input_boolean.xxxx'].state == "on")
return 'Ce soir à ' + helpers.formatTime24h(states['input_datetime.yyyy'].state);
else
return "Eteint" ;
]]]
format possible:
- Date, Time and Date Time format helpers, all localized (takes a string or a
Date object as input):
helpers.formatTime(time): 21:15 / 9:15
helpers.formatTimeWithSeconds(time): 9:15:24 PM || 21:15:24
helpers.formatTimeWeekday(time): Tuesday 7:00 PM || Tuesday 19:00
helpers.formatTime24h(time): 21:15
helpers.formatDateWeekdayDay(date): Tuesday, August 10
helpers.formatDate(date): August 10, 2021
helpers.formatDateNumeric(date): 10/08/2021
helpers.formatDateShort(date): Aug 10
helpers.formatDateMonthYear(date): August 2021
helpers.formatDateMonth(date): August
helpers.formatDateYear(date): 2021
helpers.formatDateWeekday(date): Monday
helpers.formatDateWeekdayShort(date): Mon
helpers.formatDateTime(datetime): August 9, 2021, 8:23 AM
helpers.formatDateTimeNumeric(datetime): Aug 9, 2021, 8:23 AM
helpers.formatDateTimeWithSeconds(datetime): Aug 9, 8:23 AM
helpers.formatShortDateTime(datetime): August 9, 2021, 8:23:15 AM
helpers.formatShortDateTimeWithYear(datetime): 9/8/2021, 8:23 AM
- Example:
return helpers.formatDateTime(entity.attribute.last_changed)
GitHub - custom-cards/button-card: ❇️ Lovelace button-card for home assistant
J’ai rien réussi à faire avec helpers…
En revanche ceci fonctionne :
type: custom:button-card
show_label: true
label: |
[[[
var date = states['input_datetime.yyyy'].state
if (states['input_boolean.xxxx'].state == 'on')
return "Ce soir à " + date.substr(0,5);
else
return "Eteint";
]]]
Voila comment faire:
type: custom:button-card
entity: input_datetime.time
show_name: false
show_state: true
show_label: true
state_display: |
[[[ return 'Ce soir à ' + helpers.formatTime24h(states['input_datetime.time'].state); ]]]
sans format:
Y avait déja un sujet dessus Button-card - comment afficher un attribut date "formaté"?
C’est quand même plus simple comme ça

type: custom:button-card
show_label: true
label: |
[[[
if (states['input_boolean.xxxx'].state == 'on')
return "Ce soir à " + states['input_datetime.yyyy'].state.substr(0,5);
else
return "Eteint";
]]]
Enfin si l’heure uniquement est saisie dans le input_datetime…
Et oui, mais si ta la date, faut modifier. J’ai du compter … que par la commande format, j’aurais pas eu mal a la tête 
Bah, une date standard, c’est 10 caractères + 1 pour l’espace entre la date et l’heure et c’est joué 
Puis avec substr je peux prendre ta date complète : " 2023-10-20 00:45:00 " et écrire à la place : Ce soir à 00h45 le 20/10/2023 "
Merci, c’est vrai que c’est pas conventionnel mais ça fonctionne !
Sauf que ça fonctionne pas chez moi, dès que je met le helpers.formatTime24h(..., plus rien s’affiche, donc ça doit partir en erreur.
Mais c’est pas grave, avec la façon moins conventionnel de substr, ça fonctionne.
Merci de vos retour !!!