Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entity State displays „raw“ Informations #685

Closed
mcfly2283 opened this issue Apr 13, 2023 · 40 comments
Closed

Entity State displays „raw“ Informations #685

mcfly2283 opened this issue Apr 13, 2023 · 40 comments
Labels

Comments

@mcfly2283
Copy link

mcfly2283 commented Apr 13, 2023

With the latest Version of HA 2023.4.3 the State of a Person inside a Button-Card is displayed as state "home" and "not_home", not as usual with the corresponding German Translation "Zu Hause" or "Abwesend". Other Zones and other Native-Cards are right.

Button-Card Version: [3.5.0] (2023-04-02) latest

In this case it seems there is a Problem related to Button-Card and not with HA.

Button-Card:
image

Native Card:
image

Syntax:
- type: custom:button-card
entity: person.XXYY
show_name: false
show_state: true
show_entity_picture: true
styles:
card:
- font-size: 14px
- padding: 10%
icon:
- width: 70px
- height: 70px
- padding: 0px 0px 0px 0px

@mcfly2283 mcfly2283 added the bug Something isn't working label Apr 13, 2023
@FieserOstfriese
Copy link

I have a similar problem. After the update, on and off are now displayed and no longer the German designation. The same applies to windows/doors as on/off. In Home Assistant, however, it is correctly displayed as open/closed.

@micium
Copy link

micium commented Apr 13, 2023

I have the same problem in italian language after HA update to 2023.4.3, the entity state is displayed in English language not in italian as in HA 2023.4.2.

@pejotigrek
Copy link

it's affecting all entity domains. language translations are ignored in button-card in latest HA.
it just displays "raw" state of an entity:
image

@pejotigrek
Copy link

@mcfly2283 are you able to change the issue's topic? maybe "entity state displays raw information, not local/translated value" or something similar would be more fitting?

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Apr 14, 2023

seems identical to benct/lovelace-multiple-entity-row#292 (comment)

quoting Frontend dev Paul:

With 2023.4, HA core added support for translations attributes and name so entity state translation keys have changed too.
The computeStateDisplay in this repository is outdated and need to be updated with new translation keys.

https://github.com/home-assistant/frontend/blob/dev/src/common/entity/compute_state_display.ts

fixing this would probably also fix the long standing FR/Issue on respecting core configured icons

also, hopefully, setting a rounding in HA core would also be used by button-card if that were to be implemented

@mcfly2283 mcfly2283 changed the title State of "Person" wrong Display Entity State displays „raw“ Informations Apr 14, 2023
@mcfly2283
Copy link
Author

@mcfly2283 are you able to change the issue's topic? maybe "entity state displays raw information, not local/translated value" or something similar would be more fitting?

Done 👍

@jjprz
Copy link

jjprz commented Apr 14, 2023

same problem here but in spanish

@sheminasalam
Copy link

same problem here with my door binary sensors.
image

@gabrymed
Copy link

Same problem for me with my gas and fire binary sensors.
Immagine

@h4nnes
Copy link

h4nnes commented Apr 17, 2023

I have a similar problem. After the update, on and off are now displayed and no longer the German designation. The same applies to windows/doors as on/off. In Home Assistant, however, it is correctly displayed as open/closed.

Same here

@Scoff123
Copy link

Same with my Binary Sensors for windows and doors - previously they would show a 'state' of Open or Closed, but now they show the actual Binary state of On or Off

image

image

Garage Door Sensor contact (binary_sensor.garage_door_sensor_contact)
MQTT discovery data:
Topic: homeassistant/binary_sensor/0x00158d00090ee999/contact/config
Payload
availability:
  - topic: zigbee2mqtt/bridge/state
    value_template: '{{ value_json.state }}'
  - topic: zigbee2mqtt/Garage Door Sensor/availability
    value_template: '{{ value_json.state }}'
availability_mode: all
device:
  identifiers:
    - zigbee2mqtt_0x00158d00090ee999
  manufacturer: Xiaomi
  model: Aqara door & window contact sensor (MCCGQ11LM)
  name: Garage Door Sensor
  sw_version: 3000-0001
device_class: door
name: Garage Door Sensor contact
payload_off: true
payload_on: false
state_topic: zigbee2mqtt/Garage Door Sensor
unique_id: 0x00158d00090ee999_contact_zigbee2mqtt
value_template: '{{ value_json.contact }}'
platform: mqtt

@micium
Copy link

micium commented Apr 19, 2023

Hi all,
waiting for an updated version that solves the problem, is it possible to apply a workaround?

Kind Regards

@mcfly2283
Copy link
Author

Hi all, waiting for an updated version that solves the problem, is it possible to apply a workaround?

Kind Regards

I don‘t think there is a workarounds. This issue is related to every 3rd Party Card. It is a bit courios that there was no breaking change for the devs before…

@jensrossbach
Copy link

You could use state_display as workaround.

@micium
Copy link

micium commented Apr 19, 2023

You could use state_display as workaround.

Perfect !! work fine

I added the statement in the card :

  state_display: |
    [[[
      if (entity.state == 'open') return 'aperta';
      if (entity.state == 'opening') return 'in apertura';
      if (entity.state == 'closing') return 'in chiusura';
      if (entity.state == 'closed') return 'chiusa';
      else return '??';
    ]]]

I can set the state to my liking .. in italian.

Many thanks

@FieserOstfriese
Copy link

So I can't get it with the state_display somehow. No matter how I embed it, it doesn't work. There won't be an update anymore because the button card is no longer maintained, right? Maybe someone has a code example how to include state_display exactly?

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Apr 25, 2023

what are you trying to do? we cant help you if you dont give us anything.
btw, this is better suited for the Community, as there is no 'bug' here, and config questions shouldnt be littering these repo issues.

state_display is really easy btw.
just set a value to display, (template or not) and also use the show_state: true option of course.

@FieserOstfriese
Copy link

what are you trying to do? we cant help you if you dont give us anything. btw, this is better suited for the Community, as there is no 'bug' here, and config questions shouldnt be littering these repo issues.

state_display is really easy btw. just set a value to display, (template or not) and also use the show_state: true option of course.

I've tried everything. It just doesn't work. Only on or off is displayed. I think I'm just too stupid for that g

type: custom:button-card
template: container
name: Fenster & Türen
custom_fields:
  buttons:
    card:
      type: horizontal-stack
      cards:
        - entity: binary_sensor.fenster_kuche_contact
          label: Küche
          name: Küche
          icon: mdi:window-closed-variant
          show_state: true
          state_color: true
          show_name: false
          show_label: true
          device_class: window
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.fenster_kinderzimmer_contact
          label: Kinderzimmer
          name: Kinderzimmer
          icon: mdi:window-closed-variant
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.fenster_schlafzimmer_contact
          label: Schlafzimmer
          icon: mdi:window-closed-variant
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.badezimmerfenster_contact
          label: Badezimmer
          icon: mdi:window-closed-variant
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.garagentur_contact
          label: Garagentür
          icon: mdi:door-closed
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.haustur_contact
          label: Haustür
          icon: mdi:door-closed
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.terassentur_contact
          label: Terassentür
          icon: mdi:door-closed
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px
        - entity: binary_sensor.garagentor_contact
          label: Garagentor
          icon: mdi:garage
          show_state: true
          show_name: false
          state_color: true
          show_label: true
          type: custom:button-card
          styles:
            grid:
              - grid-template-areas: '"l" "i" "n" "s"'
              - grid-template-rows: min-content 1fr min-content min-content
              - grid-template-columns: 1fr
            card:
              - width: 117px
              - height: 90px

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Apr 25, 2023

uhm.... you dont have state_display set at all?

also, always post a minimal failing config, not complete dashboards.....

there is a lot wrong here:

        - entity: binary_sensor.fenster_kuche_contact
          label: Küche
          name: Küche
          icon: mdi:window-closed-variant
          show_state: true
          state_color: true
          show_name: false
          show_label: true
          device_class: window

label and name are identical
no state_display:
device_class ??
why show_name: false And set a name...
state_color: ??

you should really read the docs, and move to the community.

try:

        - type: custom:button-card
          entity: binary_sensor.fenster_kuche_contact
          name: Küche
          show_state: true
          show_last_changed: true # uses the label space
          state_display: >
            [[[ return (entity.state === 'on') ? 'Open' : 'Closed'; ]]]
          icon: >
             [[[ return (entity.state === 'on') ? 'mdi:door-open' : 'mdi:door-closed'; ]]]

or any other translation you want ofc

Scherm­afbeelding 2023-04-25 om 15 36 35

@octaviz
Copy link

octaviz commented Apr 28, 2023

It has worked for me by simply adding
"state_display: Inactivo" Obviously you have to have the show_state: true.

imagen
imagen

@pejotigrek
Copy link

guys, let's remember, that the state_display trick, especially if it involves templates or state conditions, is just a dirty and uber-temporary solution for a few cards.

while it sure works, and I thought about that in the first place - there are many situations it can't and won't be used [unfortunately adding this "patch" to all cards on bigger dashboards is just ridiculous pain in the... you know ;) my dashboard is one of them..]

@Mariusthvdb
Copy link
Contributor

You really should have added the 'imho' there...

@pejotigrek
Copy link

you think? I don't see it as just "my opinion" :)
this is clearly an issue - I am not telling "me good, button-card bad" [because button-card is one of the best additions to the HA that I'm using], but this [probably] is caused by some changes in the HA, so using state_display is just a quick workaround, not the desired "go-to" setting. as far as it is a good fix [no matter if I'll use it or not] it is just a way of dealing with something that [I hope] will be eventually fixed in the card's code itself. I am not ranting or something, I am just wishing to keep this issue open, so with a dash of good luck we'll see states working correctly in near or at least not so far future ;)

believe me, if I'd know a bit about developing cards/extensions/integrations, I'd be more than happy to prepare pull request and fix it. but sadly I am total noob in terms of dealing with python, or programming at all ;(

@Mariusthvdb
Copy link
Contributor

Well, state_display is capable of way more than fixing this, so it is hardly a hack, but has been a long standing main feature.

And yes, it would be great if the HA change could be adapted by button-card. But that too has been posted at least 2 weeks ago.

So agreed on the latter, however no use stating it over and over.

Meanwhile, adapt your cards. On the positive side: you won't be forced to use the sometimes silly official lokalizations...

@pejotigrek
Copy link

Well, state_display is capable of way more than fixing this, so it is hardly a hack, but has been a long standing main feature.

OMG. dude, this is a hack in THIS particular situation!
we all know this is a normal, legit, main feature of the button-card! I use it on a daily basis in some other scenarios.
but in case of wrongly displayed translations, caused by HA modification - this is a hack to fix the issue.

Meanwhile, adapt your cards. On the positive side: you won't be forced to use the sometimes silly official lokalizations...

this is plainly a joke, right?
it's not up to you to judge the localizations I, or others from above comments, want to use.. if yours are silly, well, I feel bad for you. but please don't try to push your agenda to us all.

@ildar170975
Copy link

Test this:
#692

github-actions bot pushed a commit that referenced this issue Jul 23, 2023
## [4.0.0-dev.1](v3.5.0...v4.0.0-dev.1) (2023-07-23)

### ⚠ BREAKING CHANGES

* this might break some of your color settings

### Bug Fixes

* Color are now aligned with HA > 2022.12 ([685d55e](685d55e)), closes [#635](#635)
* localization fix ([02dfab3](02dfab3)), closes [#685](#685) [#693](#693)
* lock icon was displaying over more-info dialog ([bf075b0](bf075b0)), closes [#694](#694)
* lock would go out of the button ([0b3e4d3](0b3e4d3))
@github-actions
Copy link

🎉 This issue has been resolved in version 4.0.0-dev.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 23, 2023

HI Rom,

thanks for updating, many issues have been resolved, also those state translations (binary_sensor motion now no longer show on/off and battery sensors show there correct device_class icon And color ;-)

Scherm­afbeelding 2023-07-23 om 22 42 17

Again, thank you very much for that, device_class has been a long standing wish, even from far before the translations issue...
Guess I can close that now ;-)

Now you're back, please let m quickly followup with this
I still see eg this 'rainy':

Scherm­afbeelding 2023-07-23 om 22 35 16

while it should translate to Regenachtig:

Scherm­afbeelding 2023-07-23 om 22 34 58

confg:

type: custom:button-card
template:
  - styles_cf_notification
  - styles_cf_notification_left
show_entity_picture: true
entity_picture: >
  [[[ return states['sensor.weather_animated_icon'].attributes.entity_picture; ]]]
show_state: true
show_name: false
size: 100%
aspect_ratio: 1
show_icon: false
entity: sensor.buienradar_condition

please have another look at that?

@RomRider
Copy link
Collaborator

@Mariusthvdb, I'm about to release a new version with support for new actions that should also fix this translation issue.

RomRider added a commit that referenced this issue Jul 23, 2023
…e ones

This also fixes the latest translations missing and starts the work to remove custom-cards-helper from the dependencies.

BREAKING CHANGE: Requires HA 2023.4 minimum. Support for the new action format (`target` is also be supported), `service_data` should be renamed to `data` (but it still works with the old format)

Fix #711, #685
github-actions bot pushed a commit that referenced this issue Jul 23, 2023
## [4.0.0-dev.3](v4.0.0-dev.2...v4.0.0-dev.3) (2023-07-23)

### ⚠ BREAKING CHANGES

* **actions:** Requires HA 2023.4 minimum. Support for the new action format (`target` is also be supported), `service_data` should be renamed to `data` (but it still works with the old format)

### Features

* **actions:** Support for the new action (assist) and all the future ones ([d9c17a4](d9c17a4)), closes [#711](#711) [#685](#685)
@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 24, 2023

@Mariusthvdb, I'm about to release a new version with support for new actions that should also fix this translation issue.

confirmed:

Scherm­afbeelding 2023-07-24 om 07 55 32

great.

Btw, for this specific integration (entity): why wouldn't this show the set entity_picture. this is a buienradar entity, and the integration sets an entity_picture as you can see in the screenshot above. Currently it is Cloudy (translates to Bewolkt), ent the entity_picture shows as:

Scherm­afbeelding 2023-07-24 om 07 57 56

silly me.... I hadn't set the card to show it......

type: custom:button-card
entity: sensor.buienradar_condition
show_state: true
show_entity_picture: true

it now does, however ugly in this size. just showing for reference, all perfect now:

Scherm­afbeelding 2023-07-24 om 08 01 40

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 24, 2023

getting back to this... sorry

I am using many buttons that have a template with

  custom_fields:
    notification: >
      [[[ return entity.state; ]]]

these are not translated and get the 'raw' core state:

Scherm­afbeelding 2023-07-24 om 10 39 11

note that in this screen, also the name of the right button gets Cover: Closed because of its template in state_display:

state_display: >
  [[[ return 'Cover: ' + entity.state; ]]]

The entity.state does get a capital in the state_display (not in the notification circle), so some translation is done ;-)

please see if this is expected, or, maybe still needs enhancement so we can see these templates translated correctly too?

for reference, using the entity as is, so without anything set on state other than show_state: true:

Scherm­afbeelding 2023-07-24 om 10 52 58

the state Is translated correctly, which is terrific. I might even leave it at that for this button.
Its just that using the template, it would be great if these could be translated too

@RomRider
Copy link
Collaborator

This translation will be possible in the next beta release. I just commited the code for that @Mariusthvdb

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 24, 2023

just installed b6, but still those entity templates use the raw value, was this supposed to have changed with that? (also, still need that .toString() on the notification custom field

@RomRider
Copy link
Collaborator

RomRider commented Jul 24, 2023

Yes, check the documentation, you need to use a function.

  • localize(entity, state?): a function which localizes a state (eg. localize(entity)) and returns a string. Takes an entity object as argument (not the state of the entity as we need context) and takes an optional state string as argument. If state is not provided, it localizes the state of the entity (Eg. localize(entity) or localize(states['weather.your_city'])). If state is provided, it localizes state in the context of the entity (eg. : localize(states['weather.your_city'], states['weather.your_city'].attributes.forecast[0].condition))

For you that would be as simple as:
[[[ return localize(entity); ]]]

or for the other one: [[[ return 'Cover: ' + localize(entity); ]]]

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 24, 2023

right, I completely didnt do that, thinking I could blindly keep my configs as always..

you're completely making sense though, and I will follow instructions.

just to give you an idea of the power if this localize:

    [[[ return (entity.state === 'open' && entity.attributes.current_position != 100)
        ? entity.attributes.current_position + '%'
        : localize(entity); ]]]

in stead of

    [[[ return (entity.state === 'open' && entity.attributes.current_position != 100)
        ? entity.attributes.current_position + '%'
        : entity.state; ]]]

is all that is takes..

Scherm­afbeelding 2023-07-24 om 13 58 22

bit more elaborate:

  state_display: >
    [[[ var id = entity.entity_id.split('.')[1];
        var power = states['sensor.' + id + '_actueel'].state;
        var fakestate = `<span style="color: var(--active-color);"> ${localize(entity)}</span>`;
        var fakestateOff = `<span style="color: var(--active-background-color);"> ${localize(entity)}</span>`;
        var powerState = `<span style="color: var(--power-color);"> ${power} W</span>`;
        return (entity.state === 'on') ? fakestate +': ' + powerState :
        (entity.state === 'off' && power > 0) ? fakestateOff +': ' + powerState : null; ]]]
Scherm­afbeelding 2023-07-24 om 14 12 45

as if it has always been like this....except it hasn't.
I've never ever seen those buttons in my own language, so I am very very happy with this latest development!!
really nice

@Mariusthvdb
Copy link
Contributor

Mariusthvdb commented Jul 24, 2023

Jerome,

on localizing attributes, might be cool to also add the to the documentation, on translating local 'entity' attributes

  [[[ return localize( entity, entity.attributes.forecast[0].condition ); ]]]

in addition to what you posted above on localizing..

@RomRider
Copy link
Collaborator

RomRider commented Jul 24, 2023

It's in the example of the documentation, am I wrong? : localize(states['weather.your_city'], states['weather.your_city'].attributes.forecast[0].condition)

EDIT: Oh I see what you mean, about 'local' entity. The entity of the card itself... I'll add an example

@Mariusthvdb
Copy link
Contributor

no not wrong.... it took me a while to figure out this (using an external entity)

[[[ return localize(states['weather.your_city'], states['weather.your_city'].attributes.forecast[0].condition); ]]]

would work likewise for a local entity

[[[ return localize( entity, entity.attributes.forecast[0].condition ); ]]]

just believe it would help prevent questions ;-)

@Mariusthvdb
Copy link
Contributor

EDIT: Oh I see what you mean, about 'local' entity. The entity of the card itself... I'll add an example

exactly that yes. Might me be, but since I learned the hard way that templating those global variables hurts the UI performance much more than local variables, my eye is just focussed on it, and I try to prevent it as much a possible.

Not sure if from your perspective this still holds ( I mean, the warning was written in a completely different stage of HA development, actually still using the states frontend....) but still, can hurt to be aware.

github-actions bot pushed a commit that referenced this issue Jul 29, 2023
## [4.0.0](v3.5.0...v4.0.0) (2023-07-29)

### ⚠ BREAKING CHANGES

* **helpers:** If you were using any of the beta before `4.0.0-dev14`. Please replace all the calls to helper functions with `helpers.xxx` for eg. `helpers.relativeTime(entity.state)` or `helpers.localize(entity)`
* **hacs:** Minimum required HA Version is now 2023.7
* **actions:** Requires HA 2023.4 minimum. Support for the new action format (`target` is also be supported), `service_data` should be renamed to `data` (but it still works with the old format)
* **icons:** This might break your card-mod setup
* this might break some of your color settings

### Features

* **action:** `repeat_limit` for `hold_action` ([73c216f](73c216f)), closes [#564](#564) [#555](#555)
* **actions:** Support for the new action (assist) and all the future ones ([d9c17a4](d9c17a4)), closes [#711](#711) [#685](#685)
* **custom_fields:** Add `do_not_eval` to stop evaluating js templates in an embedded card ([1638cf8](1638cf8))
* **helpers:** all template functions are now available through the `helpers` object ([f22ed69](f22ed69))
* **icons:** replace ha-icon with ha-state-icon to follow new HA's icons per domain automatically ([ab6a3f5](ab6a3f5))
* **templates:** new `relativeTime` function to display a relative time in a template and update it automatically ([965a3d7](965a3d7)), closes [#701](#701)
* **templates:** New date and time format helpers ([9b4fb05](9b4fb05))
* **variables:** A variable can depend on another variable based on their name's alphabetical order ([8cddccb](8cddccb)), closes [#656](#656)
* Force the `numeric_precision` for states which are numbers ([24d75c2](24d75c2))
* new helper functions for date/time in templates ([2b75993](2b75993)), closes [#701](#701)
* Support for localization in templates ([5de2dc9](5de2dc9))

### Bug Fixes

* *_action more-info entity as a template was not evaluated ([02441b2](02441b2)), closes [#734](#734)
* `group_expand` now works even if the entity is not a `group.xxx` ([f192ded](f192ded)), closes [#645](#645)
* Color are now aligned with HA > 2022.12 ([685d55e](685d55e)), closes [#635](#635)
* custom fields would sometime throw unsafeHTML errors ([c67e1d5](c67e1d5)), closes [#725](#725)
* ha-icon (if in custom_fields) size was weird ([a448c8e](a448c8e))
* ha-state-icon CSS selector was wrong ([a1bb39a](a1bb39a))
* icon would be cut with card height defined ([19f8393](19f8393)), closes [#731](#731)
* localization fix ([02dfab3](02dfab3)), closes [#685](#685) [#693](#693)
* lock icon was displaying over more-info dialog ([bf075b0](bf075b0)), closes [#694](#694)
* lock would go out of the button ([0b3e4d3](0b3e4d3))
* non string fiels would error with an unsafeHTML error ([d65c347](d65c347)), closes [#725](#725)
* numerical states would not follow HA's format ([72d7c41](72d7c41)), closes [#662](#662)
* optimize contrast color compute ([35109c3](35109c3))
* relativeTime didn't support to set the first letter uppercase ([f8b9b09](f8b9b09)), closes [#735](#735)
* Some cards with child cards wouldn't be clickable ([9f21c58](9f21c58))
* text/icon contrast when using label-card ([01e199b](01e199b))
* variable which were objects were only evaluated once ([e40bda9](e40bda9))
* **templates:** `variables` was `undefined` if none where provided. ([fad332b](fad332b)), closes [#718](#718)
* tooltip would show over everything ([1bc8f99](1bc8f99))
* **color:** main config `color` was broken ([b93c996](b93c996))
* **hacs:** minimum HA version 2023.7 ([db3b394](db3b394))
* **templates:** don't use the `numeric_precision` from the card config for `localize` in js templates by default ([2cc384f](2cc384f))
@github-actions
Copy link

🎉 This issue has been resolved in version 4.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests