Code dans custom:button-card

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 :joy: :upside_down_face:

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 :rofl:

Bah, une date standard, c’est 10 caractères + 1 pour l’espace entre la date et l’heure et c’est joué :wink:

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