System Monitoring - How does yours look?

Nah I use a large screen for monitoring too much stuff to fit on a smaller screen.

It takes me about a solid day to get it like this, but lucky for you I’ll give you the keys to the city. I will upload it all to my github shortly. I have put some of my other addons there already.

3 Likes

Any details about this UI? What is that application please?
Thanks

This is a custom addon I made for dwains theme.

2 Likes

hi tom_l - could you share any information on your rack fan control? I have a fan in mine which I’d like to control / integrate with HA, so curious what you are using? Would also appreciate it if you could share the lovelace config for it, if possible?

image

Thank you!

No Probs.

Lovelace (requires card-mod for styling, and custom-hui-element for the history graph, though I’m thinking of replacing that with a mini-graph card):

entities:
  - entity: switch.rack_fan
  - entity: input_number.rack_fan_off_temp
  - entity: input_number.rack_fan_on_temp
  - entity: input_number.rack_fan_dwell_time
  - card_type: history-graph
    entities:
      - entity: switch.rack_fan
    style: |
      ha-card {
        border: solid 1px var(--primary-color);
        --ha-card-background: 'rgba(0, 0, 0, 0)';
        --ha-card-box-shadow: 'none'
      }
    type: 'custom:hui-element'
show_header_toggle: false
state_color: true
style:
  .: |
    ha-card {
      border: solid 1px var(--primary-color);
      background: url("/local/background/card_bg_{{states('input_select.select_theme')}}.png");
    }
    ha-card div.card-header {
      padding-top: 8px;
      padding-bottom: 36px;
    }
title: Rack Fan
type: entities

Screenshot_2020-05-29 Overview - Home Assistant

Automations:

- id: rack_fan_on
  alias: 'Rack Fan On'
  initial_state: true
  trigger:
  - platform: template
    value_template: "{{ states('sensor.cpu_temperature')|float >= states('input_number.rack_fan_on_temp')|int }}"
    for:
      minutes: "{{ states('input_number.rack_fan_dwell_time')|int }}"
  - platform: state
    entity_id: media_player.lounge_osmc_kodi
    from: 'playing'
  - platform: state
    entity_id: binary_sensor.master_bed_occupied
    to: 'off'
  condition:
  - condition: state
    entity_id: switch.rack_fan
    state: 'off'
  - condition: template
    value_template: "{{ states('sensor.cpu_temperature')|float >= states('input_number.rack_fan_on_temp')|int }}"
  - condition: template
    value_template: "{{ states.media_player.lounge_osmc_kodi.state != 'playing'}}"
  - condition: state
    entity_id: binary_sensor.master_bed_occupied
    state: 'off'
  action:
  - service: switch.turn_on
    entity_id: switch.rack_fan
  - service: notify.telegram_system
    data_template:
      title: '*Information*'
      message: "Rack fan turned on. CPU temperature is {{ states('sensor.cpu_temperature') }}°C."

- id: rack_fan_emergency_on
  alias: 'Rack Fan Emergency On'
  initial_state: true
  trigger:
    platform: numeric_state
    entity_id: sensor.cpu_temperature
    above: 80
    for:
      minutes: 3
  condition:
  - condition: state
    entity_id: switch.rack_fan
    state: 'off'
  action:
  - service: switch.turn_on
    entity_id: switch.rack_fan
  - service: notify.telegram_system
    data_template:
      title: '*ALERT*'
      message: "Rack fan emergency turn on. CPU temperature is: {{ states('sensor.cpu_temperature') }}°C."

- id: rack_fan_off
  alias: 'Rack Fan Off'
  initial_state: true
  trigger:
  - platform: template
    value_template: "{{ states('sensor.cpu_temperature')|float <= states('input_number.rack_fan_off_temp')|int }}"
    for:
      minutes: "{{ states('input_number.rack_fan_dwell_time')|int }}"
  - platform: state
    entity_id: media_player.lounge_osmc_kodi
    to: 'playing'
  - platform: state
    entity_id: binary_sensor.master_bed_occupied
    to: 'on'
  condition:
  - condition: state
    entity_id: switch.rack_fan
    state: 'on'
  action:
  - service: switch.turn_off
    entity_id: switch.rack_fan
  - service: notify.telegram_system
    data_template:
      title: '*Information*'
      message: "Rack fan turned off. CPU temperature is {{ states('sensor.cpu_temperature') }}°C."

the rack is in my walk in wardrobe (for the moment, this will change) hence some of the conditions to reduce noise).

2 Likes

I have all my titles ‘outside’ the cards using a markdown card
image

But I have to say that everytime I see one of your posts it looks great and I am drawn to the new card header. I’m not sure if it’s just the ‘shock of the new’ but are you able to share your image in case I still love it tomorrow? :slight_smile:

3 Likes

The grass really is greener on the other side. I like yours better!

I can post up the image(s) later, it’s not using the card header though. As I find that way too big.

1 Like

Thanks tom_l!

@klogg - I know what you mean. I have an idea in my head how I want things to look, get started, stupidly start browsing topics like this one, and suddenly start to think I want to change it all again!!

I wish I could even say that! I almost always nick someone else’s ideas :blush:

1 Like

Can you share config for this card?
Thanks

Of course.
Which one? The title card or system info card?
…or both?

Just adding to this great thread that inspired me, I am sharing my dashboard below:

1 Like

Looks good, if you make the images you have used have transparent backgrounds it will make a huge difference :metal:

I did, they are png without background. But they still look like this. Tried all morning to fix it :frowning:

Insert a transparency layer.

1 Like

Thank you! Will try it tomorrow and come back with the results :slight_smile:

UPDATE:
And it’s just in :slight_smile: Thankyou very much!

4 Likes

This looks awesome! Are you able to share your config for this? Is that ha dockermon for the container stats?

Sure! Glad to share! Here is the hole view.
With this and the image you sould be able to reverse engineer it :slight_smile:
And the theme is Google Dark Theme.


    - badges: []
    cards:
      - entities:
          - entity: switch.docker_letsencrypt
          - entity: sensor.docker_letsencrypt_cpu_use
          - entity: sensor.docker_letsencrypt_memory_use
          - entity: sensor.docker_letsencrypt_status
          - type: divider
          - entity: switch.docker_plex
          - entity: sensor.docker_plex_cpu_use
          - entity: sensor.docker_plex_memory_use
          - entity: sensor.docker_plex_status
          - type: divider
          - entity: switch.docker_openvpn_as
          - entity: sensor.docker_openvpn_as_cpu_use
          - entity: sensor.docker_openvpn_as_memory_use
          - entity: sensor.docker_openvpn_as_status
          - type: divider
          - entity: switch.docker_hassio
          - entity: sensor.docker_hassio_cpu_use
          - entity: sensor.docker_hassio_memory_use
          - entity: sensor.docker_hassio_status
        show_header_toggle: false
        title: Docker Containers
        type: entities
      - cards:
          - cards:
              - hold_action:
                  action: none
                image: /local/nas.png?v=1
                tap_action:
                  action: none
                type: picture
              - entity: sensor.sas_status
                type: sensor
              - entity: sensor.sas_volume_used_datavol1
                graph: line
                max: 100
                min: 0
                name: Disk
                type: gauge
            type: horizontal-stack
          - cards:
              - entity: sensor.sas_cpu_usage
                graph: line
                type: sensor
              - entity: sensor.sas_memory_usage
                graph: line
                type: sensor
            type: horizontal-stack
          - cards:
              - entity: sensor.sas_network_down_eth0
                graph: line
                type: sensor
              - entity: sensor.sas_network_up_eth0
                graph: line
                type: sensor
            type: horizontal-stack
        type: vertical-stack
      - cards:
          - cards:
              - hold_action:
                  action: none
                image: /local/nuc.png?v=1
                tap_action:
                  action: none
                type: picture
              - entity: sensor.glances_cpu_used
                graph: line
                name: CPU Used
                type: sensor
              - entity: sensor.glances_cpu_load
                graph: line
                name: CPU Load
                type: sensor
            type: horizontal-stack
          - cards:
              - entity: sensor.glances_ram_used_percent
                max: 100
                min: 0
                name: RAM
                type: gauge
              - entity: sensor.glances_etc_hostname_used_percent
                max: 100
                min: 0
                name: SSD
                type: gauge
            type: horizontal-stack
          - cards:
              - entity: sensor.glances_core_0_temp
                graph: line
                name: Core 0
                type: sensor
              - entity: sensor.glances_core_1_temp
                graph: line
                name: Core 1
                type: sensor
              - entity: sensor.glances_core_2_temp
                graph: line
                name: Core 2
                type: sensor
            type: horizontal-stack
          - cards:
              - entity: sensor.glances_core_3_temp
                graph: line
                name: Core 3
                type: sensor
              - entity: sensor.glances_core_4_temp
                graph: line
                name: Core 4
                type: sensor
              - entity: sensor.glances_core_5_temp
                graph: line
                name: Core 5
                type: sensor
            type: horizontal-stack
        type: vertical-stack
      - entities:
          - entity: sensor.pi_hole_ads_blocked_today
          - entity: sensor.pi_hole_ads_percentage_blocked_today
          - entity: sensor.pi_hole_dns_queries_today
          - entity: sensor.pi_hole
          - entity: switch.pi_hole_switch
        show_header_toggle: false
        title: PiHole Metrics
        type: entities
      - cards:
          - cards:
              - entity: sensor.transmission_status
                graph: line
                type: sensor
              - entity: sensor.transmission_total_torrents
                name: Torrents
                type: sensor
            type: horizontal-stack
          - cards:
              - entity: sensor.transmission_down_speed
                graph: line
                name: Torrent Download
                type: sensor
              - entity: sensor.transmission_up_speed
                graph: line
                name: Torrent Upload
                type: sensor
            type: horizontal-stack
        type: vertical-stack
      - entities:
          - entity: sensor.lixo
          - entity: sensor.plastico
          - entity: sensor.papel
        show_icon: true
        show_name: true
        show_state: true
        title: Reciclagem
        type: glance
      - cards:
          - cards:
              - entity: sensor.vodafone_hs8247w_gateway_kib_s_received
                graph: line
                icon: 'mdi:download'
                name: Download
                type: sensor
              - entity: sensor.vodafone_hs8247w_gateway_kib_s_sent
                graph: line
                icon: 'mdi:upload'
                name: Upload
                type: sensor
            type: horizontal-stack
        type: vertical-stack
    path: scripts
    title: Scripts

2 Likes

Hey klogg,

I would love to see the code for that specific card you showed with the System Information.
Looks great!

That’s better we’ll done what do you use for Docker stat’s?