Home Assistant · krok za krokem

Postavte si tento dashboard pro Home Assistant zhruba za hodinu

Deset kroků, YAML každé karty a kompletní zobrazení, které vložíte najednou. Vytvořeno a nafoceno na skutečném Marantz CINEMA 30. Změňte dva řetězce a je váš.

Hotový dashboard: hlavní karta přehrávání, hlasitost s předvolbami v dB, mřížka zdrojů, surroundové režimy, korekce prostoru, scény a graf hlasitosti
Co budete stavět
Spěcháte? Přeskočte na krok 10, stáhněte si kompletní zobrazení, změňte dva řetězce a vložte ho. Kroky mezi tím vysvětlují, co každá část dělá, abyste ji mohli upravit.

Než začnete

Dashboard je napájen dvěma zdroji a rozdíl mezi nimi je důležitý v každém z kroků níže.

Pochází zPoskytuje
Synchronizované skripty AVR MaestroKaždý ovládací prvek. Vstupy, surroundové režimy, Audyssey, Dirac, Smart Selects, předvolby, stmívač, eco, vaše Scény.
Entita přehrávače médií z integrace Denon AVRŽivý stav. Napájení, zvolený zdroj, surroundový režim, hlasitost, ztlumení.
Krok 1

Nainstalujte čtyři karty z HACS

Všechny čtyři jsou ve výchozím obchodě HACS. V Home Assistantu: HACS › Frontend › Prozkoumat & stáhnout repozitáře, vyhledejte název, klikněte na Stáhnout a poté znovu načtěte prohlížeč.

HledejtePoužito proPokud ji vynecháte
MushroomKaždou ovládací dlaždici a posuvník hlasitostiPoužijte běžnou kartu button. Funguje, jen vypadá hranatěji.
button-cardZáhlaví sekcí s živým popiskemPoužijte kartu markdown nebo obyčejné nadpisy.
card-modBarvy a rozsvícený stav aktivní dlaždiceVšechno stále funguje. Jen se nic nerozsvítí.
apexcharts-cardGrafy historiePoužijte vestavěnou kartu history-graph.
Žádná z nich není pro funkčnost nutná. Každý ovládací prvek níže běží z běžné tlačítkové karty Home Assistantu namířené na stejný skript. Vlastní karty jsou make-up, ne instalatérství.
Krok 2

Najděte svá dvě ID entit

Každý úryvek na této stránce používá dva zástupné symboly. Najděte ty své jednou a zbytek je jen kopírování a vkládání.

Prostřední část každého ID skriptu je MAC adresa vašeho přijímače, dvanáct malých písmen, u všech stejná. Zkopírujte si ji jednou. Všude, kde tato stránka píše MAC, dosaďte své.

Ignorujte všechny, které obsahují unavailable. Starší verze pojmenovávaly skripty podle názvu přijímače, nikoli podle MAC adresy. Pokud jste synchronizovali tehdy, jsou tyto starší skripty stále v seznamu a jsou mrtvé. Živé jsou ty pojmenované podle MAC.
Krok 3

Vytvořte zobrazení

  1. 1. Nastavení › Dashboardy › Přidat dashboard › Nový dashboard od nuly. Pojmenujte ho, jak chcete.
  2. 2. Otevřete ho a vpravo nahoře klikněte na ikonu tužky pro úpravy.
  3. 3. Přidejte zobrazení a zvolte rozvržení Sekce. Ne Zdivo. Právě Sekce zajistí, že se na telefonu správně přeskupí.
  4. 4. V nastavení zobrazení nastavte Maximální počet sloupců na 3 a zapněte Husté umístění sekcí.

Od teď je každý krok stejný: přidejte sekci a vložte do ní karty. YAML vložíte přes nabídku se třemi tečkami na kartě a volbu Upravit v YAML nebo přes nabídku se třemi tečkami na dashboardu a Editor surové konfigurace, kam vložíte všechno najednou.

# 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
Krok 4

Přidejte ovládací prvek

Začněte tím nejjednodušším, co na ploše je, abyste věděli, že jsou vaše ID entit správně, dřív než začnete stavět něco složitého. Přidejte sekci, přidejte kartu, Upravit v YAML, vložte:

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

Běžný Home Assistant. HACS není potřeba.

Klepněte na něj. Pokud se přijímač změní, vaše ID jsou správná a vše níže bude fungovat. Pokud se nic nestane, vraťte se ke kroku 2.

Krok 5

Ať se rozsvítí, když je právě aktivní

Tohle je vzor, který stojí za to se naučit, a každá dlaždice zdroje a surroundu na ploše je jeho kopií. Karta odešle skript a barvu si bere z entity přijímače, takže vstup, na kterém skutečně jste, svítí a ostatní ne.

Mřížka zdrojů, kde Nvidia Shield svítí oranžově a ostatních dvanáct vstupů je tmavých
Jedna rozsvícená dlaždice, dvanáct tmavých
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 %}
    }

U každého vstupu změníte tři věci: skript, ikonu a řetězec, se kterým se porovnává.

Dvě věci musí sedět, jinak se dlaždice nikdy nerozsvítí:

Surroundové režimy jsou stejná karta s sound_mode místo source.

Krok 6

Dejte každé sekci živé záhlaví

Obyčejný nadpis je mrtvé místo. Dejte pod něj živou hodnotu a z „Zdroje“ se stane „Zdroje / Právě na 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

Právě dvouřádková mřížka dá popisek pod nadpis místo vedle něj.

U záhlaví Surround vyměňte attributes.source za attributes.sound_mode a podobně u dalších.

Krok 7

Zobrazte hlasitost v dB

Home Assistant hlásí hlasitost jako zlomek. Nikdo nenastavuje přijímač na „0,67“. Jeden řádek matematiky to spraví a celá sekce začne vypadat jako přijímač.

Sekce hlasitosti: posuvník, nahoru, dolů, ztlumení a čtyři předvolby v dB
Noc, Dialog, Film a Hlasitě, každá popsaná hodnotou dB, kterou nastavuje
Převod. Home Assistant publikuje volume_level jako hlavní hlasitost vydělenou 100 a u přijímačů Denon a Marantz je MV 80 referenční hodnotou 0 dB. Takže dB = volume_level × 100 − 80. Hodnota volume_level 0,67 odpovídá hlavní hlasitosti 67, tedy −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
Nejhlasitější předvolbu volte uvážlivě. Výše uvedená sada končí na −10 dB. Na dashboard se omylem trefíte mnohem snadněji než na dálkový ovladač a referenční úroveň na velkém přijímači je opravdu hlasitá.
Krok 8

Přidejte své Scény

Název čtěte ze skriptu, místo abyste ho psali ručně, a přejmenování Scény v AVR Maestro přejmenuje dlaždici bez jakékoli úpravy dashboardu.

Čtyři dlaždice scén, každá s výčtem nastavení, která scéna obnoví
Každá dlaždice říká, co její scéna skutečně obnoví
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

Dvě volání replace() ořezávají z popisného názvu předponu a název přijímače.

Druhý řádek stojí za tu minutu navíc. Zeď efektně pojmenovaných tlačítek vám ve 11 večer nic neřekne; řádek s popisem, co každé obnoví, vám řekne, které zmáčknout.

Krok 9

Přidejte historii

Entitu přehrávače médií přijímače zaznamenává Home Assistant jako každou jinou, takže historii poslechu máte zadarmo. Všechno níže pochází z té jediné entity: žádné další senzory, žádní pomocníci, nic, co by bylo třeba předem nastavovat.

Pět grafů historie: napájení a aktivita, hlavní hlasitost v dB, hlasitost podle dne, používaný zdroj a surroundový režim
Pět grafů, jedna entita, sedm dní

Prostá časová osa stavů nepotřebuje žádné vlastní karty a je to ta, kterou stojí za to mít především:

type: history-graph
hours_to_show: 168
entities:
  - entity: media_player.your_receiver
    name: Receiver

Zapnuto, vypnuto a co přijímač dělal, v průběhu týdne.

Hlasitost v dB používá stejný převod jako krok 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 s fill: last promění řídké události ve spojitou čáru. Osa y musí být v apex_config, aby se projevila.

Denní průměr a špička promění zubatou čáru v něco s tvarem:

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'; }"

Dvě řady ze stejného atributu, seskupené podle dne.

Proč tento graf vykresluje 0 až 80 a formátuje na dB, místo aby vykresloval dB. Sloupce rostou od základny osy. Vykreslíte-li přímo dB, každý sloupec visí dolů od 0, takže dlouhý sloupec znamená ticho, což se čte pozpátku. Vykreslete surové číslo hlavní hlasitosti a 80 odečtěte ve formátovačích osy a tooltipu, a sloupce porostou nahoru, zatímco vše, co čtenář vidí, jsou stále dB. fill: 'null' znamená, že den bez měření nedostane žádný sloupec, místo aby se přenesla hodnota ze včerejška.

A dva grafy, které odpovídají na otázku „na čem se skutečně dívám a v jakém režimu“: zdroj a surroundový režim, vykreslené jako časová osa toho, co bylo zvoleno.

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'; }

Své vlastní zdroje vložte do pole transform i do obou polí formátovačů. Index 0 ponechte jako „Other“.

Osa grafu potřebuje čísla, takže transform přiřadí každému názvu zdroje pozici a formátovače ji pro popisky a tooltip převedou zpět. Zajistěte, aby bylo mapování úplné: null (přijímač vypnutý) zůstane mezerou a cokoli, co není ve vašem seznamu, spadne do „Other“, takže se obojí nikdy nemůže splést. Stejná karta s sound_mode vám dá surroundový režim, s řetězci velkými písmeny přesně tak, jak je hlásí váš přijímač.

U těch dvou posledních ponechte stepline. Zdroj nebo surroundový režim je kategorie, ne číslo. Vyhlaďte křivku a čára se vznese mezi Shield a Xbox přes všechno, co leží mezi nimi na ose, a nakreslí vstup, který nikdy nebyl zvolen. Hlasitost je skutečná veličina a vyhlazuje se poctivě; kategorie ne.
Nejdřív zkontrolujte retenci recorderu. Home Assistant ve výchozím nastavení uchovává deset dní, takže sedm dní je asi tak maximum, co smysluplně chcete. Chcete-li jít dál do minulosti, potřebujete šablonový senzor state_class: measurement, který Home Assistant uchovává jako dlouhodobé statistiky po léta.
Chybějící den je obvykle správně. Home Assistant zaznamenává změny, ne vzorky. Nechte přijímač dva dny na jednom vstupu s jednou hlasitostí a nezapíše nic, takže ten den nemá sloupec. Vypadá to jako ztráta dat a je to pravý opak: nic se nestalo.
Krok 10

Nebo si vezměte všechno

Kompletní zobrazení, každá sekce a každá karta, se zástupnými symboly místo ID entit.

  1. 1. Stáhněte si YAML zobrazení.
  2. 2. Otevřete ho v libovolném textovém editoru a nahraďte dva řetězce všude, kde se objevují: YOUR_RECEIVER názvem entity vašeho přehrávače médií a YOURMAC dvanácti znaky vašeho přijímače z kroku 2.
  3. 3. V Home Assistantu otevřete svůj dashboard, ikonu tužky, nabídku se třemi tečkami, Editor surové konfigurace a vložte to jako zobrazení.
ID vašich Scén nebudou odpovídat. Skripty scén se jmenují podle doby, kdy byla Scéna vytvořena, takže čtyři ve vašem souboru ve vašem systému neexistují: tyto karty se zobrazí a nic nedělají. Nahraďte jejich ID entit vlastními z kroku 2 nebo sekci Scén smažte a znovu ji postavte podle kroku 8.
Dvě další věci, které čekejte. Grafy zdrojů a surroundu nesou názvy zdrojů z přijímače, na kterém to vzniklo, takže ta pole upravte, jak popisuje krok 9. A popisky dlaždic jsou anglicky; nic v souboru není přeloženo.

Pokud se dlaždice nikdy nerozsvítí

Než usoudíte, že jste to postavili špatně: některé se rozsvítit nemohou a stojí za to vědět které.

Dlaždice může zobrazit svůj stav, jen když ho Home Assistant dokáže přečíst, a váš přijímač čte ze dvou míst. Integrace Denon AVR publikuje základní údaje na entitě přehrávače médií. AVR Maestro publikuje zbytek: vytvoří senzor Status Bridge, sensor.avr_maestro_your_receiver, a zapisuje na něj jako atributy hodnoty, které už má.

Na entitě přehrávače médiíNa senzoru Status Bridge
NapájeníKřivka Audyssey MultEQ
Zvolený zdrojDynamic Volume a referenční úroveň
Surroundový režimKterý slot Dirac je načten
Hlasitost a ztlumeníStmívač předního panelu, režim Eco
Dynamic EQ, někdyPředvolba reproduktorů, tón a desítky dalších

Oba sloupce jsou nyní čitelné. Hodnotu přehrávače médií vezměte z states['media_player.your_receiver'].attributes a hodnotu Status Bridge pomocí state_attr('sensor.avr_maestro_your_receiver','dirac_slot'), aby se dlaždice rozsvítila pro nastavení, které je skutečně aktivní, a nejen spouštěla skript, který ho mění.

Změřeno na přijímači, na kterém to vzniklo: entita přehrávače médií nese asi dvacet ze šedesáti ovládacích prvků a senzor Status Bridge publikuje zhruba čtyřicet dalších. Dohromady může dashboard číst téměř vše, co umí měnit - rozdíl mezi zdí tlačítek a skutečným ovládacím panelem.

Pokud hodnota může znamenat dvě věci, řekněte to. Dynamic EQ přichází jako true, false nebo vůbec. Pokud „vůbec“ bereme jako „vypnuto“, dostane vaše zeď sebevědomě špatnou odpověď.
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 %}

Tři stavy, ne dva.

Další věci, které stojí za to vědět

Stejný dashboard v šířce telefonu, přeskupený do jednoho sloupce
Stejný dashboard v šířce telefonu: tři sloupce se stanou jedním a nic pro to nebylo nastaveno
Časté dotazy

K dashboardu odpovědi

Potřebuji k tomu vlastní karty z HACS?
K tomu, aby to fungovalo, ne. Každý ovládací prvek na této stránce běží z obyčejné tlačítkové karty Home Assistant. Mushroom, button-card, card-mod a apexcharts-card jsou to, co dává dashboardu vzhled ze snímků obrazovky, a každá sekce níže říká, kterou z nich používá a o co bez ní přijdete.
Proč se některá tlačítka rozsvěcují a jiná ne?
Tlačítko se rozsvítí, když Home Assistant dokáže z vašeho přijímače přečíst odpovídající stav. Zdroj, surroundový režim, hlasitost a ztlumení přicházejí z entity přehrávače médií přijímače, takže se zvýrazní. Křivku Audyssey, slot Dirac, stmívač, režim Eco a předvolbu reproduktorů integrace Denon nepublikuje, takže Home Assistant nemá jak zjistit, které je aktivní, a tlačítka zůstanou nerozsvícená, dokud na některé neklepnete.
Mohu zobrazit skutečnou hlasitost v dB místo procent?
Ano. Home Assistant publikuje volume_level jako hlavní hlasitost přijímače vydělenou 100 a u přijímačů Denon a Marantz je MV 80 referenční hodnotou 0 dB. Takže dB se rovná volume_level krát 100 minus 80. Hodnota volume_level 0,67 odpovídá hlavní hlasitosti 67, tedy -13,0 dB.
Budou moje ID entit odpovídat těm v tomto návodu?
Vzor ano, prostřední část ne. AVR Maestro pojmenovává své skripty podle MAC adresy přijímače, takže přejmenování aktualizuje stejný skript, místo aby vznikla jeho kopie. U vás to bude script.avr_maestro_, pak vašich dvanáct znaků a nakonec název ovládacího prvku. V Home Assistantu otevřete Nástroje pro vývojáře, pak Stavy, a vyfiltrujte avr_maestro, abyste viděli svůj vlastní seznam.
Další z průvodce

Další průvodce aplikací AVR Maestro

Začínáme · Domovská obrazovka · Scény · Vlastní ikony · Zvuk · Grafický ekvalizér · Reproduktory · Proč je ovládací prvek uzamčen · Asistent · Domácí automatizace · Zóny · Dálkový ovladač · Rádio (FM/AM) · Zobrazení na obrazovce · Nastavení · Jazyky · Ovládání hlasitosti · Záloha & obnova · Právě se přehrává & HEOS

Celý váš přijímač na jedné zdi

Domácí automatizace je jediné placené odemčení v AVR Maestro. Všechno ostatní, včetně AI asistenta přímo v zařízení, je v ceně.

Stáhnout z Google Play Stáhnout z App Store Stáhnout z Mac App Store Stáhnout z Microsoft Store

Zpět na Domácí automatizaci → · Celá uživatelská příručka →