Add Home Assistant dashboard and config for the rack

Minimal HA content to reproduce the Butterfly Rack GUI: a YAML-mode
dashboard (power graphs in mW, temperature graph, dual dBm/mW output
readout, staged seed/booster controls, emergency-off), MQTT template
sensors deriving mW from the dBm telemetry, and an emergency-shutdown
script. Snippets merge into configuration.yaml / scripts.yaml; the
dashboard file is copied whole. See homeassistant/README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
James Bateman (hp-laptop)
2026-08-11 16:55:04 +01:00
co-authored by Claude Opus 4.8
parent b31065acd7
commit da466efdb3
4 changed files with 247 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Butterfly EDFA Rack — snippet to merge into Home Assistant's configuration.yaml.
# These are top-level keys; add them alongside your existing config (the rack's
# sensors/switches/numbers come in automatically over MQTT discovery, so only
# the derived mW power sensors and the dashboard registration live here).
#
# The internal PDs read ~0.5 dB optimistic, so the mW figures are indicative.
mqtt:
sensor:
- name: "Output Power mW"
unique_id: butterfly_edfa_rack_out_mw
state_topic: "lab/laser/butterfly_edfa_rack/amp/output1_power_dbm"
value_template: "{{ (10 ** (value | float / 10)) | round(1) }}"
unit_of_measurement: "mW"
device_class: power
state_class: measurement
availability_topic: "lab/laser/butterfly_edfa_rack/availability"
payload_available: "online"
payload_not_available: "offline"
device: { identifiers: ["butterfly_edfa_rack"] }
# EDFA input PD = seed AFTER the external attenuators (not seed output power).
- name: "Amp Input Power mW"
unique_id: butterfly_edfa_rack_ampin_mw
state_topic: "lab/laser/butterfly_edfa_rack/amp/input_power_dbm"
value_template: "{{ (10 ** (value | float / 10)) | round(3) }}"
unit_of_measurement: "mW"
device_class: power
state_class: measurement
availability_topic: "lab/laser/butterfly_edfa_rack/availability"
payload_available: "online"
payload_not_available: "offline"
device: { identifiers: ["butterfly_edfa_rack"] }
- name: "Pre-amp Power mW"
unique_id: butterfly_edfa_rack_preamp_mw
state_topic: "lab/laser/butterfly_edfa_rack/amp/preamp_power_dbm"
value_template: "{{ (10 ** (value | float / 10)) | round(1) }}"
unit_of_measurement: "mW"
device_class: power
state_class: measurement
availability_topic: "lab/laser/butterfly_edfa_rack/availability"
payload_available: "online"
payload_not_available: "offline"
device: { identifiers: ["butterfly_edfa_rack"] }
# YAML-mode dashboard registration. Points at ui-lovelace-butterfly.yaml, which
# must sit next to configuration.yaml in the HA config directory.
lovelace:
mode: storage
dashboards:
butterfly-rack:
mode: yaml
title: Butterfly Rack
icon: mdi:laser-pointer
show_in_sidebar: true
filename: ui-lovelace-butterfly.yaml