Ti trin, YAML til hvert kort og en komplet visning, du kan indsætte i ét hug. Bygget og fotograferet på en rigtig Marantz CINEMA 30. Ret to strenge, og den er din.
To ting fodrer dette dashboard, og forskellen har betydning i hvert eneste trin nedenfor.
| Kommer fra | Giver dig |
|---|---|
| AVR Maestros synkroniserede scripts | Alle kontroller. Indgange, surroundtilstande, Audyssey, Dirac, Smart Selects, forudindstillinger, dæmper, eco, dine scener. |
| Medieafspillerentiteten fra Denon AVR-integrationen | Live-status. Strøm, valgt kilde, surroundtilstand, lydstyrke, lydløs. |
Alle fire findes i den almindelige HACS-butik. I Home Assistant: HACS › Frontend › Explore & Download Repositories, søg på navnet, tryk Download, og genindlæs derefter din browser.
| Søg efter | Bruges til | Hvis du springer det over |
|---|---|---|
| Mushroom | Alle kontrolfliser og lydstyrkeskyderen | Brug et almindeligt button-kort. Det virker, men ser mere kantet ud. |
| button-card | Sektionsoverskrifter med en live-etiket | Brug et markdown-kort eller almindelige overskrifter. |
| card-mod | Farverne og den oplyste tilstand på den aktive flise | Alt virker stadig. Intet lyser op. |
| apexcharts-card | Historikgraferne | Brug det indbyggede history-graph-kort. |
Hvert eksempel på denne side bruger to pladsholdere. Find dine én gang, så er resten copy-paste.
media_player.your_receiver → Indstillinger › Enheder & tjenester › din receiver › medieafspiller-entiteten. Noget i stil med media_player.marantz_cinema_30.script.avr_maestro_MAC_... → Udviklerværktøjer › Tilstande, og skriv avr_maestro i entitetsfiltret. Hele din kontrolliste vises.Midterdelen af hvert script-id er din receivers MAC-adresse, tolv små bogstaver eller tal, den samme på dem alle. Kopiér den én gang. Overalt hvor denne side skriver MAC, skal du indsætte din egen.
unavailable. Ældre versioner opkaldte scripts efter receiverens navn i stedet for dens MAC-adresse. Hvis du synkroniserede dengang, står de gamle stadig på listen og er døde. De levende er dem, der er opkaldt efter MAC-adressen.Herfra og ud er hvert trin det samme: tilføj en sektion, og indsæt derefter kort i den. For at indsætte YAML skal du bruge tre-prikkers-menuen på et kort og vælge Edit in YAML, eller tre-prikkers-menuen på dashboardet for Raw configuration editor, så du kan indsætte det hele på én gang.
# The view's own settings, if you prefer to type them
type: sections
title: AVR Maestro
icon: mdi:audio-video
max_columns: 3
dense_section_placement: true
Start med det enkleste på tavlen, så du ved, at dine enheds-id'er er rigtige, før du bygger noget kompliceret. Tilføj en sektion, tilføj et kort, vælg Edit in YAML, og indsæt:
type: button
name: Pure Direct
icon: mdi:speaker
tap_action:
action: perform-action
perform_action: script.turn_on
target:
entity_id: script.avr_maestro_MAC_mode_pure_direct
Standard Home Assistant. Ingen HACS nødvendig.
Tryk på den. Hvis receiveren reagerer, er dine id'er rigtige, og alt nedenfor vil virke. Sker der ingenting, så gå tilbage til trin 2.
Det her er mønsteret, der er værd at lære, og hver eneste kilde- og surroundflise på tavlen er en kopi af det. Kortet sender et script og farver sig selv ud fra receiverentiteten, så den indgang, du faktisk er på, lyser, og de andre ikke gør.

type: custom:mushroom-template-card
entity: script.avr_maestro_MAC_input_cd
icon: mdi:disc
primary: CD
icon_color: >-
{{ 'orange' if (state_attr('media_player.your_receiver','source') or '')|lower
== 'cd' else 'grey' }}
layout: vertical
fill_container: true
tap_action:
action: perform-action
perform_action: script.turn_on
target:
entity_id: script.avr_maestro_MAC_input_cd
card_mod:
style: |
ha-card {
border-radius: 14px;
{% if (state_attr('media_player.your_receiver','source') or '')|lower == 'cd' %}
background: linear-gradient(160deg, rgba(226,86,10,0.34), rgba(15,15,17,0.88));
border: 1px solid rgba(255,122,24,0.80);
{% else %}
background: rgba(15,15,17,0.72);
border: 1px solid rgba(255,122,24,0.14);
{% endif %}
}
Ret tre ting pr. indgang: scriptet, ikonet og den streng, den sammenlignes med.
To ting skal være rigtige, ellers lyser en flise aldrig:
source_list og sound_mode_list. Det er de præcise strenge. Sammenlign med små bogstaver, som ovenfor.Xbox, mens AVR Maestro-kontrollen stadig hedder input_game1. Match på det, receiveren rapporterer, ikke på script-navnet.Surroundtilstande er det samme kort med sound_mode i stedet for source.
En almindelig titel er spildt plads. Sæt den aktuelle værdi under den, så bliver „Sources“ til „Sources / Now on Nvidia Shield“.
type: custom:button-card
name: Sources
icon: mdi:video-input-hdmi
color_type: label-card
entity: media_player.your_receiver
show_label: true
label: >-
[[[ var v = states["media_player.your_receiver"].attributes.source;
return v ? ("Now on " + v) : "Receiver in standby"; ]]]
tap_action:
action: none
styles:
grid:
- grid-template-areas: '"i n" "i l"'
- grid-template-columns: min-content auto
name:
- font-size: 13px
- letter-spacing: 3px
- text-transform: uppercase
- justify-self: start
label:
- font-size: 11px
- justify-self: start
Det todelte gitter er det, der placerer etiketten under titlen i stedet for ved siden af.
Byt attributes.source ud med attributes.sound_mode i Surround-overskriften, og så videre.
Home Assistant rapporterer lydstyrke som en brøk. Ingen indstiller en receiver til „0.67“. Én linje matematik løser det, og hele sektionen begynder at læse som en receiver.

volume_level som hovedlydstyrke divideret med 100, og på Denon- og Marantz-receivere er MV 80 referencen på 0 dB. Så dB = volume_level × 100 − 80. Et volume_level på 0.67 er hovedlydstyrke 67, hvilket er −13.0 dB.# The readout
type: custom:mushroom-template-card
entity: media_player.your_receiver
icon: mdi:volume-high
primary: >-
{% set v = state_attr('media_player.your_receiver','volume_level') %}
{% if v is not none %}{{ (v * 100 - 80) | round(1) }} dB{% else %}Standby{% endif %}
secondary: Master volume
layout: vertical
# The slider. media_controls must be empty or the bar becomes a power button
type: custom:mushroom-media-player-card
entity: media_player.your_receiver
volume_controls:
- volume_set
media_controls: []
show_volume_level: true
# A preset. 0.50 is master volume 50, which is -30 dB
type: custom:mushroom-template-card
entity: media_player.your_receiver
icon: mdi:weather-night
primary: Night
secondary: "-30 dB"
tap_action:
action: perform-action
perform_action: media_player.volume_set
target:
entity_id: media_player.your_receiver
data:
volume_level: 0.50
Læs navnet fra scriptet i stedet for at skrive det, så omdøber en omdøbning af en scene i AVR Maestro flisen uden at du skal redigere dashboardet.

type: custom:mushroom-template-card
entity: script.avr_maestro_MAC_scene_1234567890123
icon: mdi:theater
primary: >-
{{ state_attr('script.avr_maestro_MAC_scene_1234567890123','friendly_name')
| replace('AVR Maestro - ', '') | replace(' (Your Receiver)', '') }}
secondary: >-
{% set t = states.script['avr_maestro_MAC_scene_1234567890123'].attributes.last_triggered %}
{{ 'recalled ' ~ relative_time(t) ~ ' ago' if t else 'not run yet' }}
multiline_secondary: true
tap_action:
action: perform-action
perform_action: script.turn_on
target:
entity_id: script.avr_maestro_MAC_scene_1234567890123
De to replace()-kald fjerner præfikset og receiverens navn fra det viste navn.
En ekstra linje er de ekstra minutter værd. En væg af fantasifuldt navngivne knapper fortæller dig intet klokken 11 om aftenen; en linje, der siger, hvad hver enkelt gendanner, fortæller dig, hvilken du skal trykke på.
Receiverens medieafspillerentitet bliver optaget af Home Assistant som enhver anden, så du får en lyttehistorik gratis. Alt nedenfor kommer fra den ene entitet: ingen ekstra sensorer, ingen hjælpere, intet at konfigurere først.

Den almindelige tilstandstidslinje kræver slet ingen tilpassede kort og er den, der er mest værd at have:
type: history-graph
hours_to_show: 168
entities:
- entity: media_player.your_receiver
name: Receiver
Tændt, slukket og hvad den lavede, over en uge.
Lydstyrke i dB bruger den samme omregning som i trin 7:
type: custom:apexcharts-card
graph_span: 7d
header:
show: true
title: Master volume, last 7 days
series:
- entity: media_player.your_receiver
attribute: volume_level
name: Master volume
type: line
curve: smooth
unit: dB
float_precision: 1
transform: "return x == null ? null : Number(x) * 100 - 80;"
extend_to: now
group_by:
duration: 1h
func: last
fill: last
apex_config:
chart:
height: 240
yaxis:
min: -60
max: 0
group_by med fill: last gør spredte hændelser til en sammenhængende linje. Y-aksen skal stå i apex_config for at få effekt.
Et dagligt gennemsnit og en daglig top gør en takket linje til noget med form:
type: custom:apexcharts-card
graph_span: 7d
span:
end: day
header:
show: true
title: Master volume by day in dB, average and peak
series:
- entity: media_player.your_receiver
attribute: volume_level
name: Day average
type: column
float_precision: 1
transform: "return x == null ? null : Number(x) * 100;"
group_by: {duration: 1d, func: avg, fill: 'null'}
- entity: media_player.your_receiver
attribute: volume_level
name: Day peak
type: line
curve: smooth
float_precision: 1
transform: "return x == null ? null : Number(x) * 100;"
group_by: {duration: 1d, func: max, fill: 'null'}
apex_config:
yaxis:
min: 0
max: 80
labels:
formatter: "EVAL:function (v) { return (v - 80).toFixed(0); }"
tooltip:
y:
formatter: "EVAL:function (v) { return v == null ? '' : (v - 80).toFixed(1) + ' dB'; }"
To serier fra den samme attribut, grupperet efter dag.
fill: 'null' betyder, at en dag uden målinger ikke får nogen søjle i stedet for gårsdagens værdi overført.Og de to, der svarer på „hvad ser jeg egentlig på, og i hvad“: kilde og surroundtilstand, plottet som en tidslinje over, hvilken der var valgt.
type: custom:apexcharts-card
graph_span: 7d
span:
end: day
header:
show: true
title: Source in use, last 7 days
series:
- entity: media_player.your_receiver
attribute: source
name: Source
type: line
curve: stepline
stroke_width: 3
extend_to: now
float_precision: 0
transform: |
if (x == null) return null;
var m = ["Phono", "NET", "Xbox", "Nvidia Shield"];
var i = m.indexOf(x);
return i < 0 ? 0 : i + 1;
apex_config:
yaxis:
min: 0
max: 4
tickAmount: 4
labels:
formatter: >-
EVAL:function (v) { return ["Other", "Phono", "HEOS Net", "Xbox",
"Shield"][Math.round(v)] || ''; }
tooltip:
y:
formatter: >-
EVAL:function (v) { return v == null ? 'off' : ["Other", "Phono",
"HEOS Net", "Xbox", "Shield"][Math.round(v)] || 'Other'; }
Sæt dine egne kilder i transform-arrayet og i begge formatter-arrays. Behold indeks 0 som „Other“.
En grafakse kræver tal, så transform kobler hvert kildenavn til en position, og formaterne kobler det tilbage til etiketterne og tooltippet. Gør koblingen total: null (receiver slukket) forbliver et hul, og alt, der ikke står på din liste, falder til „Other“, så de to aldrig kan forveksles. Det samme kort igen med sound_mode giver dig surroundtilstand, med strengene med store bogstaver præcis som din receiver rapporterer dem.
stepline på de to sidste. En kilde eller en surroundtilstand er en kategori, ikke et tal. Udglat kurven, og linjen svinger mellem Shield og Xbox gennem alt, hvad der ligger imellem dem på aksen, og tegner en indgang, der aldrig blev valgt. Lydstyrke er en reel størrelse og udglattes ærligt; en kategori gør ikke.state_class: measurement-skabelonsensor, som Home Assistant gemmer som langtidsstatistik i årevis.Den komplette visning, hver sektion og hvert kort, med pladsholdere i stedet for enheds-id'er.
YOUR_RECEIVER med navnet på din medieafspillerentitet og YOURMAC med din receivers tolv tegn fra trin 2.Før du antager, at du har bygget den forkert: nogle af dem kan ikke lyse op, og det er værd at vide hvilke.
En flise kan kun vise sin tilstand, hvis Home Assistant kan læse den, og den læser din receiver fra to steder. Denon AVR-integrationen udgiver det basale på medieafspillerentiteten. AVR Maestro udgiver resten: den opretter en Status Bridge-sensor, sensor.avr_maestro_your_receiver, og skriver de aflæsninger, den allerede har, på den som attributter.
| På medieafspillerentiteten | På Status Bridge-sensoren |
|---|---|
| Strøm | Audyssey MultEQ-kurve |
| Valgt kilde | Dynamic Volume og referenceniveau |
| Surroundtilstand | Hvilken Dirac-slot der er indlæst |
| Lydstyrke og lydløs | Frontpanel-dæmper, Eco-tilstand |
| Dynamic EQ, nogle gange | Højttalerforudindstilling, tone og snesevis af andre |
Begge kolonner kan nu læses. Hent en medieafspillerværdi fra states['media_player.your_receiver'].attributes og en Status Bridge-værdi med state_attr('sensor.avr_maestro_your_receiver','dirac_slot'), så en flise lyser op for den indstilling, der faktisk er aktiv, i stedet for kun at udløse det script, der ændrer den.
Målt på den receiver, den er bygget på: medieafspillerentiteten bærer cirka tyve af de tres kontroller, og Status Bridge-sensoren udgiver omkring fyrre mere. Mellem de to kan et dashboard læse næsten alt, det kan ændre - forskellen mellem en væg af knapper og en rigtig betjeningsflade.
true, false eller slet ikke. Behandler du „slet ikke“ som „fra“, sætter du et selvsikkert forkert svar på din væg.icon_color: >-
{% set d = state_attr('media_player.your_receiver','dynamic_eq') %}
{{ 'orange' if d is true else 'grey' }}
secondary: >-
{% set d = state_attr('media_player.your_receiver','dynamic_eq') %}
{% if d is none %}state not published{% elif d %}on{% else %}off{% endif %}
Tre tilstande, ikke to.
grid_options: {columns: 9}. For seks på tværs, 6.media_controls med on_off i. Sæt media_controls: [].multiline_secondary: true.experimental.color_threshold. Den tegner stregen som en lodret farveovergang, og et helt vandret stykke har ingen højde at lave en overgang over, så det bliver usynligt. En session på 43 timer ved én lydstyrke forsvandt helt. Brug en ensfarvet color.
Kom i gang · Startskærm · Scener · Brugerdefinerede ikoner · Lyd · Graphic EQ · Højttalere · Hvorfor en kontrol er låst · Assistenten · Hjemmeautomatisering · Zoner · Fjernbetjening · Radio (FM/AM) · Skærmmenu · Indstillinger · Sprog · Lydstyrkekontrol · Backup & gendannelse · Afspiller nu & HEOS
Hjemmeautomatisering er den ene betalte oplåsning i AVR Maestro. Alt andet, inklusive AI-assistenten på enheden, er inkluderet.
Tilbage til Hjemmeautomatisering → · Hele brugervejledningen →