[Under New Management] Interactive history explorer custom card

Two Y axes are not supported by this card I’m afraid. There is an open FR on github about this, but I don’t have the time to implement this currently.

You’ve done an amazing job on this so far! Thank you for all your dedication.

Hi, any hint on this?

Hi,
I switched to this card 3 weeks ago, as it offers far more control on how things are displayed and thus enabling me to save a lot of space compared to the default history card.
But now I see an issue with values that are not changing for some time - in the image you can see that the timeline charts disappear when the value doesn’t change for some time (heating in the living room/Wohnzimmer is usually happening from sun through the window) and the target temperature (green line) is usually not changed and thus it disappears also after some time.
Is this an intentional behavior or is it possible that this is caused by the 'stacked cards that I’m using (custom room card → custom template card → history explorer card).
I used this combination to get all info in one line (room card with info entities incl. selection of visible timeframe for all cards - change in one and all other cards are using the same timeframe), therefor I need the template card to pass it to the history explorer card.

i really can‘t help here but i like your card. Is there a way to share this?

The fill flip pivot is always the zero line. Turning off the fill would help if that’s an issue.

No, that’s because the last state change was beyond the keep days of the history database. So the recorder component purged the last state change and there is nothing left to display. That’s a general problem with how the HA database engine operates. There needs to be at least one state change within the last n days, where n is the amount of days you keep in the DB.

Sorry for the the lack of updates on my side. To be honest with you guys, constant recurring issues between myself and a certain volunteer moderator of these forums, which ultimately culminated in events that left me rather speechless earlier this month, pretty much killed off all my motivation to come around here anymore and to work on things related to the Home Assistant project at this point. I’m unsure about the future of this card.

I’m at a point where I’m considering ditching HA altogether in favor of a full custom home automation solution that fits my needs better. I’ll let you guys know once I thought it over and know on how I will proceed. Thanks for all your support !

4 Likes

No problem.
Be aware that this setup is using:

type: custom:room-card
card_mod:
  style: |
    ha-card {
      background:  {% if states('switch.heizen_wz') =='on' %} var(--my-klima-heizen) {% else %} var(--card-background-color) {% endif %};
    }            
    .entity {
      font-size: 130%;
    }
    .entities-info-row {
      margin-top: -0.7em;
    }
    .card-header {
      margin-top: -0.3em;
      margin-bottom: -1.5em;
      font-size: 130%;
    } 
title: Wohnzimmer
entity: switch.heizen_wz
icon: mdi:bed
show_icon: false
cards:
  - type: custom:config-template-card
    variables:
      hours: states['input_select.zeitfenster_klima'].state
    entities:
      - input_select.zeitfenster_heizen
    card:
      card_mod:
        style: |
          ha-card {
            margin: 8px;
          }  
      type: custom:history-explorer-card
      cardName: WZ
      stateColors:
        'on': '--my-klima-state'
      lineGraphHeight: 180
      uiLayout:
        toolbar: hide
        selector: hide
      legendVisible: false
      showUnavailable: true
      labelAreaWidth: 65
      rounding: 2
      header: hide
      combineSameUnits: true
      defaultTimeRange: ${hours}
      axisAddMarginMin: true
      axisAddMarginMax: false
      tooltip:
        showColorsLine: false
        showColorsTimeline: false
      graphs:
        - type: timeline
          options:
            showTimeLabels: false
          entities:
            - entity: switch.heizen_wz
              name: Heizung
            - entity: binary_sensor.fenster_wz_contact
              name: Fenster
        - type: line
          options:
            showTimeLabels: false
          entities:
            - entity: sensor.wz_hygro_temperature
              color: '--my-klima-temp'
              fill: '--my-klima-temp-fill'
              name: Temperatur
            - entity: input_number.heizen_zieltemperatur_wz
              name: Zieltemperatur
        - type: line
          entities:
            - entity: sensor.wz_hygro_humidity
              color: '--my-klima-humid'
              fill: '--my-klima-humid-fill'
              name: rel. Luftfeuchtigkeit
              hidden: false
info_entities:
  - entity: input_select.zeitfenster_klima
    show_icon: true
    styles:
      '--mdc-icon-size': 45%
      margin: '-0.25em -0.5em 0 0'
  - entity: input_select.zeitfenster_klima
    styles:
      margin-right: 1.2em
  - entity: sensor.wz_hygro_temperature
    format: precision1
    styles:
      template: |
        return states["sensor.wztempcolor"].state
  - entity: input_number.heizen_zieltemperatur_wz
    show_icon: true
    tap_action: none
    styles:
      '--mdc-icon-size': 45%
      margin: '-0.25em -0.3em 0 -1.3em'
  - entity: input_number.heizen_zieltemperatur_wz
    format: precision1
    styles:
      margin-right: '-1em'

The template sensor snippet for one room …

    - name: "KuecheTempColor"
      unique_id: "KuecheTempColor_temp"
      state: >
        {% from 'tools.jinja' import color_temperature %}
        {{ color_temperature('sensor.kueche_hygro_temperature') }}

the regarding jinja template snippet (stored in custom_templates/tools.jinja

{% macro color_temperature(entity_id) %}
{% set status = states(entity_id) %}  
    {% if status == 'unknown' %} color: darkgrey 
      {% else %}
      {% if status| float >= 27 %} color: red
        {% elif status| float >= 26 %} color: orangered
        {% elif status| float >= 25 %} color: orange
        {% elif status| float >= 24 %} color: #FFAE42
        {% elif status| float >= 23 %} color: #DDDD00
        {% elif status| float >= 22 %} color: yellowgreen
        {% elif status| float >= 21 %} color: green
        {% elif status| float >= 20 %} color: #00ae71
        {% elif status| float >= 19 %} color: #00bea1
        {% elif status| float < 19 %} color: #0050ff
      {% endif %}
    {% endif %}
{% endmacro %}   

No no no! Please no.

Ignore those and still be here for HA and you - and of course us. :wink: Please.

5 Likes

Thanks for the info - and I should have checked this on my own obviously.

Hey Alex, thanks for your Update and letting us know! Too bad its really bad news :frowning:
If this is the only Way for you to turn Things into good, or better said avoid frustrating Moments, i can totally understand this.
I don’t know about recent Situations, but i think i read of such Arguments in the Past. I don’t want to judge anybody. Wondering if there isnt (for both of you) a Way to just ignore each other.
But on the other hand, we all know how such Arguments can develop. I think it is a really good decision not to react instantly, but to give Thoughts Time to develop.

I think i can speak for a Lot of People, who consider your Project to play a huge Role in their Setup and see it as an Essential Extension. Personally, it would be big loss for me if you give up. There are not so many Projects, who maybe not too fast, but continiously develop, and have constantly friendly support and Feedback.

So - i hope you can think of a Way to reduce/avoid bad (at least for you) Situations/Persons, while keeping your awesome Project alive. However you gonna decide - thank you for this incredible great Piece of Code!

4 Likes

I really sympathise with you.
I too have had a bad experience with a certain mod - I would have hoped that the title (“moderator”) is self defining, but obviously not.

I really hope you can put this to one side. I use your work throughout my HA implementation and it is great. I couldn’t use HA like I do without your card!

I’ll stay out of both of your way if you promise to:

  1. Do not amass a group of people to harass a volunteer developer because you simply didn’t like a change they made.
  2. Do not resort to private harassments.

Lets return to on-topic discussions please and as a reminder, please check out all the code of conduct rules in place. Also understand that I will involve a 3rd party moderator if you have an issue with me.

EoL (end of life) notice for the history explorer card

As much as I regret it, I will stop the development, maintenance and support for the history explorer card. I will also not be active in this community anymore.

I had a lot of fun developing this card and getting your guys feedback on it, exchanging ideas with the community to make it a better piece of software that would (hopefully) enhance everyones experience with HA. As most developers contributing to the HA project, I did this on my free time. Working as a software engineer in my daytime job, I generally avoid spending too much time in front of my computer after work and rather do other non-techy things. But I really enjoyed creating this card and some other random HA related side projects. Sadly, this has changed over the last few months.

Spending the (little) free time I have on a project where I am being constantly harassed by an individual who seems unable to handle the little bit of power that has been given to him, is not what I’d consider a fun experience. Another, but related part of the equation is that I’m disillusioned by the path Home Assistant has taken. The progressive erosion of advanced features in favor of mass market acceptance, the never ending breaking changes and the fine-combing through release notes, the time investment needed to maintain a functioning install over the long term. This thread here sums it up really well: Is Home Assistant shifting towards a different audience?

Like many others I have voiced my opinions on this matter here on the forums, in the hope of having the core devs reconsider and find a way to please both beginner and advanced users (because yes, that’s possible !). Sadly I realized that this will never happen and that dissenting voices are very often met with dismissal, ridicule and even open hostility by certain individuals. A common problem with open source projects, you may say. Maybe so, but having been involved in other FOSS projects before, I never experienced it quite as extreme as with HA. Maybe I just got lucky.

So after thinking this over and weighting the pros and cons, I came to the conclusion that Home Assistant is not the right tool for me anymore. I will replace it with a custom, specialized system based on my current MQTT backend.

I’m really sorry about how this is going to affect users of this card and I would like to apologize to you guys. I know that a lot of people rely on this card for their dashboards or workflows. You guys warm words mean a lot to me and I feel bad dropping this project. Rest assured that this wasn’t an easy decision to make. But given the circumstances, I feel this is the only way forward for me.

What happens to the card now

The card will keep working for you, as of now, it won’t just stop running. But it is very likely that in the future there will be breaking changes in the HA websocket, database or frontend APIs that will break it. There will also not be any new versions with new features released anymore. For the longer term future I would therefore advise users of the history explorer card to start looking for alternatives. Apex Chart card and Plotly interactive card may be possible candidates. Maybe the HA core devs will eventually improve the native history panel and turn it into something similar to this card.

Been a pleasure guys,
Alex

32 Likes

So sad to hear this. I truly hope the best for you. This card is so handy.

Hopefully we can find someone to maintain this before HA can improve their card to provide better explorability.

This is now at least the third big contributor in a more than short timeframe, who left this community. Some of them left their contributions and developments and great work as well. And all because of mostly the same reasons: problems with single mods and feedback on HA direction.

So I wonder and feel that something is currently running more than in the wrong direction.

7 Likes

Dude, thats such both sad and happy News. Sad, because (in Mid-Term) HomeAssistant looses one of its most awesome Cards, offering Features the Core System should have had for a long Time.
Happy, as i hope you will get rid of the Anger and bad Mood recently developed. Most important is your personal wellbeing, which obviously for you got harder to have.
I can understand that (from your perspective) constantly wrong Directions, and not beeing heard, or even worse, harshly ignored, lead to Frustration. Even in Daytime Jobs, this Kind of demotivation is something nobody wants.
I refrain from writing more here, as this Thread is about an awesome Card.

I really thank you for all your Time, and giving this great Project to the Community! All the best for the Future - and if whenever you think you might hop back on the Train, rest assured the Welcome-Cake is RC :slight_smile:

5 Likes

@HeyImAlex - Thank you for all that you’ve done with the History Explorer Card. It shows that there is a lot of untapped potential in the platform for advanced users who are really interested in meaningful use of their data.

Also I greatly appreciate that you used a permissive license should anyone come along and step up to make any changes going forward.

4 Likes

Can some one help me out with this? I’ve asked a while ago but heard nothing back.
I can’t figure out why same entity works with line type, but doesn’t with bar type


As this is gas usage it makes way more sense to be bars. Thank you in advance!

Compare the entity parameters of the entity which is working for you with those, which are not working. Do it in dev tools.