thank you!
Is anyone monitoring backup, sync or parity status? Eg. Duplicati? Syncthing? Snapraid?
Nice work on the lovelace configurations. I like the graphs and stuff. Can you share your lovelace.yaml file on how you did some of those? Curious on the Plex histogram and how you did that setup.
Sure, here is the Plex card, I’m simply using the Plex sensors through the Plex component. Displayed using the amazing mini graph from @kalkih
cards:
- accuracy: 5
align_icon: left
entities:
- color_thresholds:
- color: '#64f211'
value: 1
- color: '#f1f111'
value: 2
- color: '#c0392b'
value: 3
- color: '#f09b11'
value: 4
- color: '#ef5710'
value: 5
- color: '#ef0f0f'
value: 6
- conditions:
- entity: sensor.plex_watching
state_not: '0'
extrema: true
icon: false
points: false
type: conditional
entity: sensor.plex_watching
name: Plex users
show: null
show_state: true
unit: user/s
- entity: sensor.plex_bandwidth
name: Plex badwidth
show_state: true
unit: Mbits/s
hours_to_show: 168
icon: 'mdi:plex'
line_color: '#0073D4'
name: Plex
points_per_hour: 0.05
show:
points: false
type: 'custom:mini-graph-card'
type: vertical-stack
What’s the code for your Upgrade HASS, Restart, Refresh? Thank you
Here you go:
cards:
- entity: script.upgrade_system
tap_action:
action: call-service
service: script.turn_on
service_data:
entity_id: script.upgrade_system
type: entity-button
- entity: script.restart_system
tap_action:
action: call-service
service: script.turn_on
service_data:
entity_id: script.restart_system
type: entity-button
- entity: input_boolean.refresh_counts
tap_action:
action: toggle
type: entity-button
type: horizontal-stack
And the template sensors:
- platform: template
sensors:
#----- Count Automations
count_automations:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.automation | list | length }}"
#----- Count Scripts
count_scripts:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.script | list | length }}"
#----- Count Zwave
count_zwave:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.zwave | list | length }}"
#----- Count Lights
count_lights:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.light | list | length }}"
#----- Count Sensors
count_sensors:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.sensor | list | length }}"
#----- Count Switches
count_switches:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.switch | list | length }}"
#----- Count Fans
count_fans:
entity_id: input_boolean.refresh_counts
value_template: "{{ states.fan | list | length }}"
Thanks raschoc for posting that.
how do you do a switch to toggle docker container?
how do you get which docker container are running?
thx
I think I get my count of docker containers from glances, but I’ll check when I get home
edit yes, running glances on my docker machine, using that as a sensor which is displayed on the monitoring page
Can you share you lovelace.yaml on your system monitor page? Love the way yours likes on some parts.
Can you share this page of your lovelace? I love some of the ways you did your histograms and stuff.
Here’s away via bash to get your docker info, you’ll need to install the jq
package for your distro
It returns JSON formatted data:
#!/bin/bash
hostname="$(hostname -s)"
running=`docker ps --format '{{.Names}}' | jq -sR '[sub("\n$";"") | splits("\n")]'`
all="$(docker ps -a --format '{{.Names}}' | jq -sR '[sub("\n$";"") | splits("\n")]')"
count="$(docker ps | wc -l)"
total="$(docker ps -a | wc -l)"
printf '{"hostname":"%s","data":{"total":"%s","active":"%s","running":%s,"containers":%s} }\n' "$hostname" "$total" "$count" "$running" "$all"
Mohesles1 can you share your config for this screen shoot? Looks great and I love the buttons on HA section
I have had the Plex Sensor setup but how are you getting the Plex.watching sensor? I can see what is added to Plex through the Upcoming Media Card. Can you share your sensor configs? Thanks
I think I’m using Tautulli for that, will update when I get home.
edit yes
sensors:
plex_watching:
friendly_name: "Plex watching"
value_template: "{{ states.sensor.tautulli.attributes.stream_count }}"
CPU card
cards:
- entity: sensor.glances_cpu_used
severity:
- color: '#238823'
value: 33
- color: '#FFA701'
value: 66
- color: '#D2222D'
value: 100
title: CPU usage
type: 'custom:bar-card'
- entity: sensor.glances_disk_used_percent
severity:
- color: '#238823'
value: 33
- color: '#FFA701'
value: 66
- color: '#D2222D'
value: 100
title: Disk usage
type: 'custom:bar-card'
- entity: sensor.glances_ram_used_percent
severity:
- color: '#238823'
value: 25
- color: '#FFA701'
value: 75
- color: '#D2222D'
value: 100
title: RAM usage
type: 'custom:bar-card'
- entity: sensor.glances_cpu_load
max: 1
min: 0
severity:
- color: '#238823'
value: 0.33
- color: '#FFA701'
value: 0.66
- color: '#D2222D'
value: 1
title: CPU 15 mins
type: 'custom:bar-card'
unit_of_measurement: '%'
type: vertical-stack
Internet card
cards:
- accuracy: 5
align_icon: left
entities:
- entity: sensor.pi_hole_ads_blocked_today
name: Ads blocked
show_state: true
unit: ads
- entity: sensor.pi_hole_dns_queries_today
name: DNS queries
show_state: true
unit: queries
hours_to_show: 168
icon: 'mdi:pi-hole'
line_color: '#0073D4'
name: Pi-hole today
points_per_hour: 0.05
show:
points: false
type: 'custom:mini-graph-card'
- accuracy: 5
align_icon: left
entities:
- entity: sensor.asuswrt_download
show_state: true
unit: Mbit/s
- entity: sensor.asuswrt_upload
show_state: true
unit: Mbit/s
hours_to_show: 12
icon: 'mdi:wan'
name: Internet last 12 hours
points_per_hour: 1
show:
points: false
type: 'custom:mini-graph-card'
- accuracy: 5
align_icon: left
color_thresholds:
- color: '#ff9966'
value: 200
- color: '#ff6600'
value: 400
- color: '#c0392b'
value: 600
entities:
- entity: sensor.deluge_down_speed
show_state: true
- entity: sensor.deluge_up_speed
show_state: true
hours_to_show: 12
icon: 'mdi:cloud-download-outline'
name: Deluge past 12 hours
points_per_hour: 1
show:
points: false
type: 'custom:mini-graph-card'
type: vertical-stack
Internet speed card
cards:
- accuracy: 5
align_icon: left
entities:
- entity: sensor.speedtest_download
show_state: true
unit: Mbit/s
group: true
hours_to_show: 168
icon: 'mdi:arrow-down-bold'
line_color: '#0073D4'
name: Last speed test download
points_per_hour: 0.05
show:
extrema: true
points: false
type: 'custom:mini-graph-card'
- accuracy: 5
align_icon: left
entities:
- entity: sensor.speedtest_upload
show_state: true
unit: Mbit/s
group: true
hours_to_show: 168
icon: 'mdi:arrow-up-bold'
line_color: '#A20F30'
name: Last speed test upload
points_per_hour: 0.05
show:
extrema: true
points: false
type: 'custom:mini-graph-card'
- accuracy: 5
align_icon: left
entities:
- entity: sensor.speedtest_ping
group: true
show_state: true
unit: m/s
hours_to_show: 168
line_color: '#01BEAA'
lower_bound: 0
name: Last speed test ping
points_per_hour: 0.05
show:
extrema: true
graph: bar
points: false
type: 'custom:mini-graph-card'
type: vertical-stack
Shure, this is my current monitoring page:
Meanwhile I have migrated from Docker on Synology NAS to Docker on Ubuntu running on an Intel NUC - so much faster .
I think I have to declutter some parts, but here is my current config for this card:
#################################################
# #
# SYSTEM View #
# #
#################################################
- title: System
path: system
icon: mdi:settings
cards:
##################################
### Card Home Assistant Status ###
##################################
- id: card_haststus
type: vertical-stack
cards:
- type: markdown
content: >
# HA Status:
- type: picture-elements
image: /local/LovalaceUI/home_assistant.png
elements:
# HA Laufzeit
- type: state-icon
entity: sensor.ha_laufzeit
style: {left: 72%, top: 35%}
- type: state-label
entity: sensor.ha_laufzeit
prefix: 'Laufzeit: '
unit_of_measurement: "Stunden"
style: {left: 72%, top: 45%}
# HA Aktuelle Version
- type: state-icon
entity: sensor.installierte_ha_version
style: {left: 59%, top: 60%}
- type: state-label
entity: sensor.installierte_ha_version
prefix: 'Version: '
style: {left: 59%, top: 70%}
# HA Update
- type: state-icon
entity: sensor.hass_update_available
style: {left: 59%, top: 85%}
- type: state-label
entity: sensor.hass_update_available
prefix: 'Update: '
style: {left: 59%, top: 95%}
# HA DB
- type: state-icon
entity: sensor.home_assistant_v2_db
style: {left: 85%, top: 60%}
- type: state-label
entity: sensor.home_assistant_v2_db
prefix: 'DB: '
style: {left: 85%, top: 70%}
# HA Zertifikat Laufzeit
- type: state-icon
entity: sensor.ssl_certificate_expiry
style: {left: 85%, top: 85%}
- type: state-label
entity: sensor.ssl_certificate_expiry
prefix: 'SSL: '
style: {left: 85%, top: 95%}
- type: conditional
conditions:
- entity: sensor.hacs
state_not: "0"
card:
type: entities
entities:
- entity: sensor.hacs
name: Community Updates
# Things That Are Probably Broken Card
- type: custom:monster-card
show_empty: false
card:
type: entities
title: Defekte Objekte
show_header_toggle: false
filter:
include:
- state: "unknown"
exclude:
- entity_id: group.*
##########################
### Card Docker Status ###
##########################
- id: card_dockerstatus
type: vertical-stack
cards:
- type: markdown
content: >
# DockerHub Status:
- type: picture-elements
image: /local/LovalaceUI/intel-nuc2.png
elements:
# CPU
- type: state-icon
entity: sensor.processor_use
style: {left: 20%, top: 75%}
- type: state-label
entity: sensor.processor_use
prefix: 'CPU: '
style: {left: 20%, top: 85%}
- type: state-label
entity: sensor.cpu_temperature
prefix: 'Temp: '
style: {left: 20%, top: 92%}
# Memory
- type: state-icon
entity: sensor.memory_use_percent
style: {left: 50%, top: 75%}
- type: state-label
entity: sensor.memory_use_percent
prefix: 'RAM: '
style: {left: 50%, top: 85%}
- type: state-label
entity: sensor.memory_free
prefix: 'Free: '
style: {left: 50%, top: 92%}
# Disk
- type: state-icon
entity: sensor.disk_use_percent
style: {left: 80%, top: 75%}
- type: state-label
entity: sensor.disk_use_percent
prefix: 'Disk: '
style: {left: 80%, top: 85%}
- type: state-label
entity: sensor.disk_free
prefix: 'Free: '
style: {left: 80%, top: 92%}
- type: entities
# title: Entities card sample
show_header_toggle: false
entities:
- entity: sensor.docker_version
icon: mdi:docker
- type: horizontal-stack
cards:
- type: entity-button
entity: sensor.docker_hass_status
name: HASS
- type: entity-button
entity: sensor.docker_hacc_status
name: HACC
- type: entity-button
entity: sensor.docker_deconz_status
name: deCONZ
- type: entity-button
entity: sensor.docker_portainer_status
name: Portainer
############################
### Card Internet Status ###
############################
- id: card_internetstatus
type: vertical-stack
cards:
- type: markdown
content: >
# Internet Status:
- type: picture-elements
image: /local/LovalaceUI/Internet2.png
elements:
# Internet Status
- type: state-icon
entity: sensor.fritz_netmonitor
style: {left: 20%, top: 75%}
- type: state-label
entity: sensor.fritz_netmonitor
prefix: 'Status: '
style: {left: 20%, top: 85%}
- type: state-label
entity: sensor.verbindungs_typ
prefix: 'Typ: '
style: {left: 20%, top: 92%}
# Internet Speed
- type: state-icon
entity: sensor.speedtest_download
style: {left: 47%, top: 75%}
- type: state-icon
entity: sensor.speedtest_upload
style: {left: 53%, top: 75%}
- type: state-label
entity: sensor.speedtest_download
prefix: 'Down: '
style: {left: 50%, top: 85%}
- type: state-label
entity: sensor.speedtest_upload
prefix: 'Up: '
style: {left: 50%, top: 92%}
# Internet IP-Ping
- type: state-icon
entity: sensor.extene_ip
style: {left: 77%, top: 75%}
- type: state-icon
entity: sensor.speedtest_ping
style: {left: 83%, top: 75%}
- type: state-label
entity: sensor.extene_ip
prefix: 'IP: '
style: {left: 80%, top: 85%}
- type: state-label
entity: sensor.speedtest_ping
prefix: 'Ping: '
style: {left: 80%, top: 92%}
- type: custom:mini-graph-card
name: Fritz.Box Internet Traffic
icon: mdi:router-wireless
entities:
- entity: sensor.fritzbox_7490_kbytesec_received
name: empfangen
- entity: sensor.fritzbox_7490_kbytesec_sent
name: gesendet
- type: horizontal-stack
cards:
- type: entity-button
entity: switch.fritzbox_guestwifi
name: Gast WLAN
- type: entity-button
entity: binary_sensor.is_fritzbox_online
name: DSL neu verbinden
tap_action:
action: call-service
service: fritzbox_tools.reconnect
icon: mdi:web
- type: conditional
conditions:
- entity: switch.fritzbox_guestwifi
state: "on"
card:
type: picture
image: /local/LovalaceUI/Gast-Zugang.png
########################
### Card Syno Status ###
########################
- id: card_synostatus
type: vertical-stack
cards:
- type: markdown
content: >
# Synology Status:
- type: picture-elements
image: /local/LovalaceUI/DS1517plus.png
elements:
### Synoloy Status
- type: state-icon
entity: sensor.syno_status
style: {left: 25%, top: 25%}
- type: state-label
entity: sensor.syno_status
prefix: 'Status: '
style: {left: 25%, top: 35%}
### Volume Status
- type: state-icon
entity: sensor.synology_dsm_status_volume_1
style: {left: 25%, top: 45%}
- type: state-label
entity: sensor.synology_dsm_status_volume_1
prefix: 'Volume: '
style: {left: 25%, top: 55%}
### Syno Type
- type: state-icon
entity: sensor.syno_snmp_name
style: {left: 25%, top: 65%}
- type: state-label
entity: sensor.syno_snmp_name
prefix: 'Typ: '
style: {left: 25%, top: 75%}
### CPU Load
- type: state-icon
entity: sensor.synology_dsm_cpu_load_total
style: {left: 50%, top: 25%}
- type: state-label
entity: sensor.synology_dsm_cpu_load_total
prefix: 'CPU: '
style: {left: 50%, top: 35%}
### Memory Load
- type: state-icon
entity: sensor.synology_dsm_memory_usage_real
style: {left: 50%, top: 45%}
- type: state-label
entity: sensor.synology_dsm_memory_usage_real
prefix: 'RAM: '
style: {left: 50%, top: 55%}
### DSM Version
- type: state-icon
entity: sensor.syno_snmp_version
style: {left: 50%, top: 65%}
- type: state-label
entity: sensor.syno_snmp_version
# prefix: 'Typ: '
style: {left: 50%, top: 75%}
### Volume Size
- type: state-icon
entity: sensor.synology_dsm_total_size_volume_1
style: {left: 75%, top: 25%}
- type: state-label
entity: sensor.synology_dsm_total_size_volume_1
prefix: 'Volume1: '
style: {left: 75%, top: 35%}
### Volume Used
- type: state-icon
entity: sensor.synology_dsm_used_space_volume_1
style: {left: 75%, top: 45%}
- type: state-label
entity: sensor.synology_dsm_used_space_volume_1
prefix: 'Benutzt: '
style: {left: 75%, top: 55%}
### Volume Used %
- type: state-icon
entity: sensor.synology_dsm_volume_used_volume_1
style: {left: 75%, top: 65%}
- type: state-label
entity: sensor.synology_dsm_volume_used_volume_1
prefix: 'Belegt: '
style: {left: 75%, top: 75%}
- type: horizontal-stack
cards:
- type: custom:mini-graph-card
entities:
- sensor.synology_dsm_cpu_load_total
name: Synology CPU
line_color: var(--accent-color)
line_width: 8
font_size: 75
- type: custom:mini-graph-card
entities:
- sensor.synology_dsm_memory_usage_real
name: Synology RAM
line_color: var(--primary-color)
line_width: 8
font_size: 75
##################################
### Card Entertainment-Systeme ###
##################################
- id: card_vuststus
type: vertical-stack
cards:
- type: markdown
content: >
# Entertainment-Systeme:
- type: horizontal-stack
cards:
- type: entity-button
entity: binary_sensor.is_samsungtv_online
name: TV
- type: entity-button
entity: binary_sensor.is_vuuno_online
name: VU Uno4K
- type: entity-button
entity: binary_sensor.is_teufel_online
name: Teufel 5.1
- type: entity-button
entity: switch.subwoofer
name: Subwoofer
- type: entity-button
entity: binary_sensor.is_vusolo_online
name: VU Solo2
- type: picture-elements
image: /local/LovalaceUI/vuuno4kse.png
elements:
# VU Status
- type: state-icon
entity: sensor.vuuno4k_standby
style: {left: 15%, top: 78%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.vuuno4k_standby
prefix: 'Status: '
style: {left: 15%, top: 87%, color: black }
- type: state-label
entity: sensor.vti_kanal
prefix: 'Kanal: '
style: {left: 15%, top: 93%, color: black }
# VU HDD
- type: state-icon
entity: sensor.vu_hdd_capacity
style: {left: 50%, top: 78%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.vu_hdd_capacity
prefix: 'HDD: '
style: {left: 50%, top: 87%, color: black }
- type: state-label
entity: sensor.vu_hdd_free
prefix: 'Frei: '
style: {left: 50%, top: 93%, color: black }
# VU Version
- type: state-icon
entity: sensor.vti_image_version
style: {left: 85%, top: 78%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.vti_image_version
prefix: 'Image: VTi '
style: {left: 85%, top: 87%, color: black }
###########################
### Card Netatmo Status ###
###########################
- id: card_netatmostatus
type: vertical-stack
cards:
- type: picture-elements
image: /local/LovalaceUI/netatmo.png
elements:
- type: custom:text-element
text: "Netatmo Status"
style: {left: 25%, top: 16%, color: black, font-weight: bold, font-size: 150% }
# Wohnen Status
- type: state-icon
entity: sensor.netatmobasis_online
style: {left: 15%, top: 65%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.netatmobasis_online
prefix: 'Basis: '
style: {left: 15%, top: 71%, color: black }
- type: state-label
entity: sensor.netatmo_wohnen_wifi
prefix: 'WLAN: '
style: {left: 15%, top: 75%, color: black }
# Balkon Status
- type: state-icon
entity: sensor.netatmo_balkon_radio
style: {left: 86%, top: 20%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.netatmo_balkon_radio
prefix: 'Balkon: '
style: {left: 86%, top: 26%, color: black }
- type: state-label
entity: sensor.netatmo_balkon_battery_percent
prefix: 'Batterie: '
style: {left: 86%, top: 30%, color: black }
# Schlafzimmer Status
- type: state-icon
entity: sensor.netatmo_schlafen_radio
style: {left: 86%, top: 45%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.netatmo_schlafen_radio
prefix: 'Schlafen: '
style: {left: 86%, top: 51%, color: black }
- type: state-label
entity: sensor.netatmo_schlafen_battery_percent
prefix: 'Batterie: '
style: {left: 86%, top: 55%, color: black }
# Bad Status
- type: state-icon
entity: sensor.netatmo_bad_radio
style: {left: 86%, top: 70%, '--paper-item-icon-color': black }
- type: state-label
entity: sensor.netatmo_bad_radio
prefix: 'Bad: '
style: {left: 86%, top: 76%, color: black }
- type: state-label
entity: sensor.netatmo_bad_battery_percent
prefix: 'Batterie: '
style: {left: 86%, top: 80%, color: black }
# Devices with low battery state
- type: custom:monster-card
show_empty: false
card:
type: entities
title: Beräte mit Batterie unter 25%
show_header_toggle: false
filter:
include:
- entity_id: "*battery_level*"
state: '< 25'
- entity_id: "*battery_percent*"
state: '< 25'
- attributes:
battery: '< 25'
- attributes:
battery_level: '< 25'
#######################
### Card IT-Systeme ###
#######################
- id: card_itsysteme
type: vertical-stack
cards:
- type: markdown
content: >
# IT-Systeme:
- type: horizontal-stack
cards:
- type: entity-button
entity: binary_sensor.is_deathstar_online
name: Main-Syno Deathstar
- type: entity-button
entity: binary_sensor.is_dockerhub_online
name: DockerHub
- type: entity-button
entity: binary_sensor.is_endor_online
name: Backup-Syno Endor
- type: horizontal-stack
cards:
- type: entity-button
entity: binary_sensor.is_fritzbox_online
name: AVM Fritz.Box
- type: entity-button
entity: sensor.anruf_status
name: Anrufstatus
- type: entity-button
entity: binary_sensor.is_camterasse_online
- type: horizontal-stack
cards:
- type: entity-button
entity: binary_sensor.is_switchaz_online
name: Switch AZ
- type: entity-button
entity: binary_sensor.is_switchwz_online
name: Switch WZ
- type: entity-button
entity: binary_sensor.is_fritzrepeater_online
name: AVM 450E
- type: entity-button
entity: binary_sensor.is_ex3700_online
name: EX3700
Awesome thanks. Yeah I moved off the NAS too on to a NUCi7 much better response and clears up the NAS for all media stuff. I am noticing most people use ui-lovelace.yaml over letting HASSIO create it in the .store directory. I am wondering if this is a better way to do it and more flexible to break up each page to a separate yaml file.
Not shure about the UI editor. Haven´t tryed yet.
Started with YAML mode back in the days, so I think I´ll stick with it… ¯\_(ツ)_/¯
Thought about going with packages* next, but splitting up the ui-lovelace.yaml** looks quite interesting too.
THX 4 the idea!
*https://www.home-assistant.io/docs/configuration/packages/
**Lovelace and !include