Skip to content

A Raspberry Pi status display Card for Home Assistant Lovelace

License

Notifications You must be signed in to change notification settings

Henry-Sir/lovelace-rpi-monitor-card

 
 

Repository files navigation

Lovelace RPi Monitor Card

Project Maintenance

hacs_badge

License

GitHub Release

Release

If you have a number of Raspberry Pis on your network then this might be the card you need to setup your Dashboard for monitoring all of you RPi's. Setup the sensor software on your RPi: See RPi Reporter MQTT2HA Daemon. Then install this card to display the state of your RPi.

About this card

This is a Lovelace card showing you the status of one of the Raspberry Pi's on your network. This card offers a choice of smaller 'glance' style card or the larger 'full' card. You choose which you'd like for each of your RPi's.

Actual Card Layouts

Place one of these cards for each of your RPi's on your network (and install the sensor/daemon script on each RPi) and you can monitor your entire constellation of RPi's "at a glance"!

RPi Health Indicators

All of the card forms (as seen above) now have a row of RPi health indicators. With these indicators you can tell:

  • If the RPi OS has reached end of support (no longer getting security updates) so it probably should be updated
  • OS package updates are available
  • If a new version of the RPi reporter Daemon is avaialble for install
  • When the data shown on the card was last updated


If you like my work and/or this has helped you in some way then feel free to help me out for a couple of ☕'s or 🍕 slices! Or you can support my work via Patreon!

coffee    -OR-    PatreonPatreon.com/IronSheep


Installation

Use HACS (recommended) or download rpi-monitor-card.js from our Latest Release and place it in your www directory.

In your ui-lovelace.yaml (or resources.yaml, whichever you use for resources) add this:

- url: /hacsfiles/lovelace-rpi-monitor-card/rpi-monitor-card.js
  type: module

If you don't use HACS please change the url accordingly.

Configuration

If you wish to override some of the built-in coloring or display of titles/values, etc. The following adjustments are available for you to use.

Name Type Default Description
type string Required custom:rpi-monitor-card
entity string Required Entity State
name string none Overrides default title of the card. (Default: RPi Monitor {FQDN})
name_prefix string 'RPi monitor' Overrides default name prefix(Default: 'RPi Monitor')
card_style string 'glance' or 'full' Card layout desired for this RPi. (Default is full)
temp_scale string 'C' or 'F' Show Temperature in Celsius (C) or Fahrenheit (F). (Default is C)
fs_severity object none A list of severity values. See Severity Coloring.
temp_severity object none A list of severity values. See Severity Coloring.
memory_severity object none A list of severity values. See Severity Coloring.
os_age object none A list of os name and color values. See OS Coloring.
os_update_severity object none A list of update count values. See Severity Options.
show_title boolean true Show / hide the Title for this card. (Default is show - 'true')
show_os_age boolean true Show / hide the os release name (Default is show - 'true')
show_update_age boolean true Show / hide time since last values reported for this card. (Default is show - 'true')
show_daemon_upd boolean true Show / hide Daemon update needed flag. (Default is show - 'true')
show_os_upd_count boolean true Show / hide count of os updates pending. (Default is show - 'true')

Threashold Monitoring

The system temperature, disk space used and memory used values & icons are colored by threshold. The following defaults can be overridden for each card (each RPi.)

The default coloring is

Value/color from to
Storage Used %
default 0 60
orange 61 85
red 86 100
Temperature C
default 0 59
orange 60 79
red 80 100
Memory Used %
default 0 60
orange 61 74
red 75 100

The OS release name is also colored by expiration of support. The following defaults can be overridden for each card (each RPi.) with red meaning the named released is no longer supported / is not getting updates any longer.

The default release coloring is

Value/color Release Exp. Date
OS Release
red wheezy 31 May 2018
red jessie 30 June 2020
red stretch 30 June 2022

NOTE: The release colors are based on when the named released reaches end of support When a release reaches end of support we no longer get security updates. It is best to simply move to the current release (or last release supporting your RPi version) when this happens. These color flags on the OS release let us know when we should be thinking about building a new OS image for the affected RPi.

RPi Daemon update available coloring

The Daemon update needed flag is colored according to version being run vs. the latest release. If the version being run is one back from the latest, the update is colored yellow. If current version is not in the list of most recent versions then it update is colored red. There is currently no override for this coloring.

Count of Pending OS Updates coloring

The number of pending OS updates value is colored by threshold. The following defaults can be overridden for each card (each RPi.)

The default coloring is

Value/color from to
Nbr Updates Pending
default 0 24
orange 25 99
red 100 10000

Severity Coloring

Name Type Default Description
from number Required Defines from which value the color should be displayed.
to number Required Defines to which value the color should be displayed.
color string Required Defines the color to be displayed.

OS Coloring

Name Type Default Description
os string Required Defines for which named release this color is displayed (e.g., 'buster', 'stretch')
color string Required Defines the color to be displayed.

Example card specifications

NOTE: this card must always be attached to the 'sensor.rpimonitor{hostname}' sensor, the other sensors from the same RPi will not work to drive this card!

A 'glance' card example

type: 'custom:rpi-monitor-card'
entity: sensor.rpi_monitor_hostname
card_style: glance
temp_scale: f

A 'full' card example (with additional coloring override example)

type: 'custom:rpi-monitor-card'
entity: sensor.rpi_monitor_hostname
card_style: full
temp_scale: C
fs_severity:
  - color: Green
    from: 0
    to: 25
  - color: Orange
    from: 26
    to: 50
  - color: Red
    from: 51
    to: 100

Example monitoring of specific attributes

While we have the Glance and Full layout cards, you may wish to monitor other values. Here's an example of monitoring the RPi CPU Throttling that can occur or viewing the active network interfaces. Add the sensor(s) as follows:

 - type: attribute
    entity: sensor.rpi_monitor_hostname
    attribute: throttle
    name: Throttle status

or...

 - type: attribute
    entity: sensor.rpi_monitor_hostname
    attribute: networking
    name: Network

This shows the sensor add and the resultant output:

Actual Card Layouts

(Thanks to gihub user @bsimmo for provinding this example.)

Example control of your RPi (avail. in Daemon v1.8.0 and later)

From v1.8.0 and later of the RPi Reporter MQTT2HA Daemon we can enable control over our RPi. We can then expose buttons offering this control with something like:

- type: entities
  entities:
    - entity: button.rpi_command_pip2iotgw_reboot
      name: Reboot pip2iotgw
    - entity: button.rpi_command_pip2iotgw_restart_service
      name: Restart Service pip2iotgw
    - entity: button.rpi_command_pip2iotgw_shutdown
      name: Shutdown pip2iotgw
  title: RPi-pip2iotgw.home

This presents an interface like:

Credits

  • Ian iantrich for the card template and cards you've created which made my implementation effort much easier.
  • Lucas Gluwc for the custom-card: bar-card for his example of how to handle users specifying coloring overrides.

License

Copyright © 2022 Iron Sheep Productions, LLC. All rights reserved.
Licensed under the MIT License.

Follow these links for more information:

About

A Raspberry Pi status display Card for Home Assistant Lovelace

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 97.2%
  • JavaScript 2.7%
  • Shell 0.1%