System Monitoring - How does yours look?

A user has created a neat docker card if you’d like to revise your view:

@kamtschatka
Possible to share your source code for this card please?
thank you

I’m using PING in combination with the Uptime Card: https://smarthomepursuits.com/how-to-monitor-devices-in-home-assistant/

1 Like

Sure:

type: custom:auto-entities
card:
  type: custom:easy-layout-card
  cards:
    type: custom:config-template-card
    variables:
      getEntityId: |
        entityid => {
          return entityid.replace("switch", "sensor");
        }
    entities:
      - this.entity_id
    card:
      type: entities
      entities:
        - type: custom:fold-entity-row
          head:
            entity: this.entity_id
            type: custom:multiple-entity-row
            show_state: false
            image: >-
              "${'/local/logos/' +
              states['this.entity_id'].attributes.friendly_name + '-icon.png'}"
            entities:
              - entity: this.entity_id
                name: Off / On
                toggle: true
              - entity: ${getEntityId('this.entity_id') + '_status'}
                name: Uptime
                styles:
                  width: 200px
                  align: center
              - icon: mdi:memory
              - entity: ${getEntityId('this.entity_id') + '_cpu'}
                name: CPU
                styles:
                  width: 90px
                  text-align: left
              - icon: mdi:memory
              - entity: ${getEntityId('this.entity_id') + '_memory'}
                name: Memory
                styles:
                  width: 90px
                  text-align: left
              - icon: mdi:upload
              - entity: ${getEntityId('this.entity_id') + '_network_speed_up'}
                name: Up
                default: '-'
                styles:
                  width: 90px
                  text-align: left
              - icon: mdi:download
              - entity: ${getEntityId('this.entity_id') + '_network_speed_down'}
                name: Down
                default: '-'
                styles:
                  width: 90px
                  text-align: left
              - icon: mdi:upload
              - entity: ${getEntityId('this.entity_id') + '_network_total_up'}
                name: Total Up
                default: '-'
                styles:
                  width: 90px
                  text-align: left
              - icon: mdi:download
              - entity: ${getEntityId('this.entity_id') + '_network_total_down'}
                name: Total Down
                default: '-'
                styles:
                  width: 90px
                  text-align: left
          entities:
            - entities:
                - entity: ${getEntityId('this.entity_id') + '_cpu'}
                - entity: ${getEntityId('this.entity_id') + '_memory'}
                - entity: ${getEntityId('this.entity_id') + '_network_speed_up'}
                - entity: ${getEntityId('this.entity_id') + '_network_speed_down'}
              type: custom:easy-layout-card
              layout_type: custom:horizontal-layout
              placeholder: this.entity_id1
              layout:
                width: 300
                max_width: 450
                max_cols: 4
              cards:
                entities:
                  - entity: this.entity_id1
                lower_bound: 0
                hours_to_show: 24
                points_per_hour: 60
                line_width: 1
                line_color: lightgreen
                type: custom:mini-graph-card
                show:
                  average: true
                  extrema: true
                  labels: true
                style: |
                  ha-card {
                   border-radius: 10px; 
                   background-color: rgba(0, 0, 0, 0.0);
                  }
  layout_type: vertical
  layout_options:
    width: 1400
filter:
  include:
    - entity_id: switch.docker_*
sort:
  method: friendly_name
show_empty: true
unique: true

I am using a few different cards for that, should be possible to find out which ones are used. The only thing you need to do manually is to download the icons for the docker containers and put them into the folder HA uses to serve files.

Thank you!

Some adjustments were needed:

type: custom:auto-entities
filter:
  include:
    - entity_id: switch.docker*
      options:
        type: custom:config-template-card
        variables:
          getEntityId: |
            entityid => {
              return entityid.replace("switch", "sensor");
            }
        entities:
          - this.entity_id
        card:
          type: entities
          entities:
            - type: custom:fold-entity-row
              open: true
              head:
                entity: this.entity_id
                type: custom:multiple-entity-row
                show_state: false
                image: >-
                  "${'/local/assets/img/logos/' +
                  states['this.entity_id'].attributes.friendly_name + '.png'}"
                entities:
                  - entity: this.entity_id
                    name: Off / On
                    toggle: true
                  - entity: ${getEntityId('this.entity_id') + '_status'}
                    name: Uptime
                    styles:
                      width: 200px
                      align: center
                  - icon: mdi:memory
                  - entity: ${getEntityId('this.entity_id') + '_cpu'}
                    name: CPU
                    styles:
                      width: 90px
                      text-align: left
                  - icon: mdi:memory
                  - entity: ${getEntityId('this.entity_id') + '_memory'}
                    name: Memory
                    styles:
                      width: 90px
                      text-align: left
                  - icon: mdi:upload
                  - entity: ${getEntityId('this.entity_id') + '_network_speed_up'}
                    name: Up
                    default: '-'
                    styles:
                      width: 90px
                      text-align: left
                  - icon: mdi:download
                  - entity: ${getEntityId('this.entity_id') + '_network_speed_down'}
                    name: Down
                    default: '-'
                    styles:
                      width: 90px
                      text-align: left
                  - icon: mdi:upload
                  - entity: ${getEntityId('this.entity_id') + '_network_total_up'}
                    name: Total Up
                    default: '-'
                    styles:
                      width: 90px
                      text-align: left
                  - icon: mdi:download
                  - entity: ${getEntityId('this.entity_id') + '_network_total_down'}
                    name: Total Down
                    default: '-'
                    styles:
                      width: 90px
                      text-align: left
              entities:
                - type: custom:layout-card
                  layout_type: custom:horizontal-layout
                  layout:
                    width: 300
                    max_width: 450
                    max_cols: 4
                  entities:
                    - entity: ${getEntityId('this.entity_id') + '_cpu'}
                    - entity: ${getEntityId('this.entity_id') + '_memory'}
                    - entity: ${getEntityId('this.entity_id') + '_network_speed_up'}
                    - entity: ${getEntityId('this.entity_id') + '_network_speed_down'}
                  placeholder: this.entity_id1
                  cards:
                    entities:
                      - entity: this.entity_id1
                    lower_bound: 0
                    hours_to_show: 24
                    points_per_hour: 60
                    line_width: 1
                    line_color: lightgreen
                    type: custom:mini-graph-card
                    show:
                      average: true
                      extrema: true
                      labels: true
                    style: |
                      ha-card {
                       border-radius: 10px; 
                       background-color: rgba(0, 0, 0, 0.0);
                      }
sort:
  method: friendly_name
show_empty: true
unique: true
card_param: cards
card:
  type: custom:layout-card
  layout_type: vertical
  layout_options:
    width: 1400

Last point I don’t understand is:

entities:
                - type: custom:layout-card
                  layout_type: custom:horizontal-layout
                  layout:
                    width: 300
                    max_width: 450
                    max_cols: 4
                  entities:
                    - entity: ${getEntityId('this.entity_id') + '_cpu'}
                    - entity: ${getEntityId('this.entity_id') + '_memory'}
                    - entity: ${getEntityId('this.entity_id') + '_network_speed_up'}
                    - entity: ${getEntityId('this.entity_id') + '_network_speed_down'}
                  placeholder: this.entity_id2
                  cards:
                    entities:
                      - entity: this.entity_id2
                    lower_bound: 0
                    hours_to_show: 24
                    points_per_hour: 60
                    line_width: 1
                    line_color: lightgreen
                    type: custom:mini-graph-card
                    show:
                      average: true
                      extrema: true
                      labels: true
                    style: |
                      ha-card {
                       border-radius: 10px; 
                       background-color: rgba(0, 0, 0, 0.0);
                      }

First time I see “placeholder” here. I understand how it should work but it doesn’t…

Well, you have completely exchanged a card for another one, so it is not surprising that it doesn’t work :wink:
I am using the easy-layout-card: Easy-Layout-Card: Duplicate cards for multiple entities
You have used the layout-card, which does not have this possibility(which is why I created the easy-layout-card)

OK! understood.
Sorry, I did a search on Google about this easy-layout-card and didn’t find it. I thought it was linked to an old version of layout-card.
Thank you for sharing and explanation.
I really like the result of this dashboard. What a nice job :wink:

Already in need of three tabs :slight_smile:

Not looking really professional, but hey, I’ve started from scratch about two years ago, not knowing a bit about HA, Linux and so… :slight_smile:

1 Like

Are you with Aussie Broadband? How did you get to pull the internet data usage information?

I just use the stats from my router now. I used to use this:

The developer is no longer with them so it may no longer be maintained.

I’m looking into netdata. Is that the one you use currently?
Here’s my setup for reference.

No I have a Ubiquiti ERX and use SNMP.

Im trying to set this up.

I have this info under system. But cant find any entitys to suface this to a dashboard. What am I missing?

Im also trying to make the SNMP sensors a little more readable and relevant,

Is there a way to do that? convert bytes to show gigabytes and have it show some weekly stats or something?

image

Thanks guys :slight_smile:

1 Like

Thanks Tom, You’re a champ as always :slight_smile:

Hi @duncan86, which addon do you use for the crypto?

Hi @Jevada72

I use the built in Coinbase integration with some template sensors to calculate value’s. And I have a node-red flow for Binance in which I use an API call to get the info. However you can use this HACS integration for Binance instead (wasn’t available when I implemented it)

1 Like

Mine so far being devided into multi icons.

And multitab and in some case slider use
Main Dashboard
Screen Shot 2021-09-09 at 5.46.55 PM

Mikrotik Router

NAS and Server

Docker

Proxmox, Remote Server and My Domain monitor

Still work in progress hahahahaha

3 Likes

Just standard TKL dashboard :slightly_smiling_face:
Screenshot 2021-09-08 12.46.43 PM

1 Like

Love the setup can you share your configs?