feat(dashboards): data-dense Overview, dedicated UPS tab, Automations tab [#344]
Overview: at-a-glance markdown (UPS/PDU/hottest temps/fleet count) + Power entities + key-temp history; giant status card dropped. New UPS view (charge+runtime gauges, battery V, 7d charge / 24h V+runtime graphs, unit facts incl. no-input/output-voltage note, UPS automations). Automations moved to own tab with trend sensors. NUT runtime/voltage/ setpoint entities enabled via registry (disabled-by-default). New pfv_ups_runtime_minutes template sensor. https://projects.knownelement.com/issues/344
This commit is contained in:
+132
-23
@@ -1,43 +1,152 @@
|
|||||||
# Server Room dashboard [#618] — git-deployed via KNEL/pfv-bms
|
# Server Room dashboard [#618/#344] — git-deployed via KNEL/pfv-bms
|
||||||
title: Server Room
|
title: Server Room
|
||||||
views:
|
views:
|
||||||
- title: Overview
|
- title: Overview
|
||||||
type: panel
|
type: sections
|
||||||
cards:
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: markdown
|
||||||
|
content: >
|
||||||
|
## At a glance
|
||||||
|
|
||||||
|
|
||||||
|
**UPS** {{ states('sensor.tsys1_ups_status') }} ·
|
||||||
|
{{ states('sensor.tsys1_ups_battery_charge') }}% ·
|
||||||
|
{{ states('sensor.pfv_ups_runtime_minutes') }} min runtime ·
|
||||||
|
{{ states('sensor.tsys1_ups_battery_voltage') }} V battery
|
||||||
|
|
||||||
|
|
||||||
|
**PDU** {{ states('sensor.pfv_garage_pdu_output_current') }} A ·
|
||||||
|
{{ states('sensor.pfv_garage_pdu_power') }} W ·
|
||||||
|
{{ states('sensor.garage_pdu_daily_energy') | float(-1) | round(2) }} kWh today
|
||||||
|
|
||||||
|
|
||||||
|
{% set s = states.sensor | selectattr('entity_id','search','pfv_')
|
||||||
|
| selectattr('attributes.device_class','defined')
|
||||||
|
| selectattr('attributes.device_class','eq','temperature')
|
||||||
|
| rejectattr('state','in',['unavailable','unknown']) | list %}
|
||||||
|
**Fleet temps** {{ s | count }} reporting ·
|
||||||
|
{% set ns = namespace(items=[]) %}{% for x in s %}{% set ns.items
|
||||||
|
= ns.items + [(x.state | float, x.name)] %}{% endfor %}{% for v,n
|
||||||
|
in ns.items | sort(reverse=true) | batch(3) | first %}**{{ n }}**
|
||||||
|
{{ v | round(1) }}°F {% endfor %}
|
||||||
|
|
||||||
|
- type: entities
|
||||||
|
title: Power
|
||||||
|
entities:
|
||||||
|
- sensor.tsys1_ups_status
|
||||||
|
- sensor.tsys1_ups_battery_charge
|
||||||
|
- sensor.pfv_ups_runtime_minutes
|
||||||
|
- sensor.tsys1_ups_battery_voltage
|
||||||
|
- sensor.pfv_garage_pdu_output_current
|
||||||
|
- sensor.pfv_garage_pdu_power
|
||||||
|
- sensor.pfv_garage_pdu_energy
|
||||||
|
- sensor.garage_pdu_daily_energy
|
||||||
|
- sensor.pfv_tsys6_node_power
|
||||||
|
- sensor.pfv_tsys7_node_power
|
||||||
|
- sensor.pfv_power_meter
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: history-graph
|
||||||
|
title: Key temps (24h)
|
||||||
|
entities:
|
||||||
|
- sensor.pfv_tsys1_rack_temperature
|
||||||
|
- sensor.pfv_tsys3_cpu_temperature
|
||||||
|
- sensor.pfv_tsys6_drac_ambient
|
||||||
|
- sensor.pfv_tsys7_drac_inlet
|
||||||
|
- sensor.pfv_tsys5_nvme_temperature
|
||||||
|
hours_to_show: 24
|
||||||
|
|
||||||
|
- title: UPS
|
||||||
|
type: sections
|
||||||
|
sections:
|
||||||
- type: grid
|
- type: grid
|
||||||
columns: 2
|
|
||||||
square: false
|
|
||||||
cards:
|
cards:
|
||||||
- type: gauge
|
- type: gauge
|
||||||
entity: sensor.tsys1_ups_battery_charge
|
entity: sensor.tsys1_ups_battery_charge
|
||||||
name: tsys1 UPS battery
|
name: Battery charge
|
||||||
unit: "%"
|
min: 0
|
||||||
|
max: 100
|
||||||
severity:
|
severity:
|
||||||
green: 60
|
green: 60
|
||||||
yellow: 40
|
yellow: 40
|
||||||
red: 20
|
red: 20
|
||||||
- type: entity
|
- type: gauge
|
||||||
entity: sensor.tsys1_ups_status
|
entity: sensor.pfv_ups_runtime_minutes
|
||||||
name: tsys1 UPS
|
name: Runtime (min)
|
||||||
icon: mdi:ups
|
min: 0
|
||||||
- type: history-graph
|
max: 60
|
||||||
title: tsys1 UPS battery
|
severity:
|
||||||
entities:
|
green: 25
|
||||||
- sensor.tsys1_ups_battery_charge
|
yellow: 15
|
||||||
hours_to_show: 24
|
red: 5
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
- type: entities
|
- type: entities
|
||||||
title: Plant automations
|
title: Status
|
||||||
|
entities:
|
||||||
|
- sensor.tsys1_ups_status
|
||||||
|
- sensor.tsys1_ups_status_data
|
||||||
|
- sensor.tsys1_ups_battery_charge
|
||||||
|
- sensor.pfv_ups_runtime_minutes
|
||||||
|
- sensor.tsys1_ups_battery_runtime
|
||||||
|
- sensor.tsys1_ups_battery_voltage
|
||||||
|
- sensor.tsys1_ups_nominal_battery_voltage
|
||||||
|
- sensor.tsys1_ups_low_battery_setpoint
|
||||||
|
- sensor.tsys1_ups_beeper_status
|
||||||
|
- type: markdown
|
||||||
|
content: >
|
||||||
|
**APC Smart-UPS C 1500** · serial AS1213210423 · mfr 2012-03 ·
|
||||||
|
fw UPS 02.2 · PbAc, 24 V nominal · usbhid-ups via pfv-tsys1
|
||||||
|
(NUT :3493). This unit reports no input/output voltage over
|
||||||
|
USB HID — battery-side metrics only.
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: entities
|
||||||
|
title: UPS automations
|
||||||
entities:
|
entities:
|
||||||
- automation.pfv_plant_high_temperature
|
|
||||||
- automation.pfv_plant_ups_on_battery
|
- automation.pfv_plant_ups_on_battery
|
||||||
- automation.pfv_plant_ups_battery_low
|
- automation.pfv_plant_ups_battery_low
|
||||||
- automation.pfv_plant_ups_communication_lost
|
- automation.pfv_plant_ups_communication_lost
|
||||||
- automation.pfv_plant_utility_power_restored
|
- automation.pfv_plant_utility_power_restored
|
||||||
- type: markdown
|
- type: grid
|
||||||
content: >
|
cards:
|
||||||
**Server Room** — Proxmox hosts + Pis. Temperature sensors
|
- type: history-graph
|
||||||
populate here after the SNMP migration (#618). Minisplit
|
title: Charge (7 days)
|
||||||
climate control lands with #614 (BTU loop Friday).
|
entities:
|
||||||
|
- sensor.tsys1_ups_battery_charge
|
||||||
|
hours_to_show: 168
|
||||||
|
- type: history-graph
|
||||||
|
title: Battery voltage · runtime (24h)
|
||||||
|
entities:
|
||||||
|
- sensor.tsys1_ups_battery_voltage
|
||||||
|
- sensor.pfv_ups_runtime_minutes
|
||||||
|
hours_to_show: 24
|
||||||
|
|
||||||
|
- title: Automations
|
||||||
|
type: sections
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: entities
|
||||||
|
title: Plant automations
|
||||||
|
entities:
|
||||||
|
- automation.pfv_plant_high_temperature
|
||||||
|
- automation.pfv_plant_temperature_rising_fast_rate_of_change
|
||||||
|
- automation.pfv_plant_sensor_watchdog_unavailable_sensors
|
||||||
|
- automation.pfv_plant_ups_on_battery
|
||||||
|
- automation.pfv_plant_ups_battery_low
|
||||||
|
- automation.pfv_plant_ups_communication_lost
|
||||||
|
- automation.pfv_plant_utility_power_restored
|
||||||
|
- type: entities
|
||||||
|
title: Trend early-warning (rate-of-change, #682)
|
||||||
|
entities:
|
||||||
|
- binary_sensor.server_room_temp_rising
|
||||||
|
- binary_sensor.tsys6_ambient_rising
|
||||||
|
- binary_sensor.tsys7_inlet_rising
|
||||||
|
- binary_sensor.garage_temp_rising
|
||||||
|
|
||||||
- title: Temps
|
- title: Temps
|
||||||
type: sections
|
type: sections
|
||||||
sections:
|
sections:
|
||||||
|
|||||||
@@ -641,3 +641,10 @@ template:
|
|||||||
state: >-
|
state: >-
|
||||||
{% set v = states('sensor.pfv_tsys9_pch_temperature_raw') %}
|
{% set v = states('sensor.pfv_tsys9_pch_temperature_raw') %}
|
||||||
{{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }}
|
{{ ((v | float * 9 / 5) + 32) | round(1) if is_number(v) else none }}
|
||||||
|
- name: "PFV UPS runtime minutes"
|
||||||
|
unique_id: pfv_ups_runtime_minutes
|
||||||
|
device_class: duration
|
||||||
|
unit_of_measurement: "min"
|
||||||
|
state: >-
|
||||||
|
{% set v = states('sensor.tsys1_ups_battery_runtime') %}
|
||||||
|
{{ (v | float / 60) | round(0) if is_number(v) else none }}
|
||||||
|
|||||||
Reference in New Issue
Block a user