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 !!!