Home Assistant · adım adım

Bu Home Assistant gösterge panelini yaklaşık bir saatte kurun

On adım, her kartın YAML'ı ve tek seferde yapıştırabileceğiniz eksiksiz bir görünüm. Gerçek bir Marantz CINEMA 30 üzerinde kuruldu ve fotoğraflandı. İki metni değiştirin, sizin olsun.

Bitmiş gösterge paneli: şu an çalanı gösteren ana kart, dB ön ayarlı ses, kaynak ızgarası, surround modları, oda düzeltme, sahneler ve ses grafiği
Ne kuruyorsunuz
Aceleniz mi var? 10. adıma geçin, eksiksiz görünümü indirin, iki metni değiştirip yapıştırın. Aradaki adımlar her parçanın ne işe yaradığını anlatır; böylece istediğiniz gibi değiştirebilirsiniz.

Başlamadan önce

Bu gösterge panelini iki şey besler ve aşağıdaki her adımda aradaki fark önemlidir.

KaynağıSağladığı
AVR Maestro ile eşitlenen betiklerHer kontrol. Girişler, surround modları, Audyssey, Dirac, Smart Select'ler, ön ayarlar, kararma, eco, Sahneleriniz.
Denon AVR entegrasyonunun medya oynatıcı varlığıCanlı durum. Güç, seçili kaynak, surround modu, ses, sessize alma.
Adım 1

HACS'ten dört kart kurun

Dördü de varsayılan HACS mağazasında. Home Assistant'ta: HACS › Ön Yüz › Depoları Keşfet & İndir, adı aratın, İndir'e basın, ardından tarayıcınızı yenileyin.

Aranacak adKullanım amacıAtlarsanız
MushroomHer kontrol karosu ve ses kaydırıcısıSade bir button kartı kullanın. Çalışır, ama daha köşeli görünür.
button-cardCanlı etiketli bölüm başlıklarıBir markdown kartı ya da sade başlıklar kullanın.
card-modRenkler ve etkin karodaki yanık durumHer şey yine çalışır. Hiçbir şey yanmaz.
apexcharts-cardGeçmiş grafikleriYerleşik history-graph kartını kullanın.
Hiçbiri çalışması için gerekli değildir. Aşağıdaki her kontrol, aynı betiği gösteren standart bir Home Assistant düğme kartıyla çalışır. Özel kartlar altyapı değil, makyajdır.
Adım 2

İki varlık kimliğinizi bulun

Bu sayfadaki her kod parçası iki yer tutucu kullanır. Kendinizinkileri bir kez bulun, gerisi kopyala yapıştır.

Her betik kimliğinin ortası alıcınızın MAC adresidir: on iki küçük harfli karakter, hepsinde aynı. Bir kez kopyalayın. Bu sayfada MAC yazan her yere kendinizinkini koyun.

unavailable yazan olanları yok sayın. Eski sürümler betikleri MAC yerine alıcının adına göre adlandırıyordu. O zamanlar eşitlediyseniz bu eski betikler hâlâ listelenir ve ölüdür. Canlı olanlar MAC adıyla adlandırılmış olanlardır.
Adım 3

Görünümü oluşturun

  1. 1. Ayarlar › Gösterge Panelleri › Gösterge Paneli Ekle › Sıfırdan yeni gösterge paneli. İstediğiniz adı verin.
  2. 2. Açın, ardından düzenlemek için sağ üstteki kalem simgesine dokunun.
  3. 3. Bir görünüm ekleyin ve Bölümler düzenini seçin. Masonry değil. Telefonda düzgün yeniden akmasını sağlayan Bölümler düzenidir.
  4. 4. Görünüm ayarlarında Maksimum sütun değerini 3 yapın ve Yoğun bölüm yerleşimi seçeneğini açın.

Bundan sonra her adım şöyle: bir bölüm ekleyin, ardından kartları içine yapıştırın. YAML yapıştırmak için kartın üç nokta menüsünden YAML'da düzenle seçeneğini kullanın; ya da her şeyi bir seferde yapıştırmak için gösterge panelinin üç nokta menüsünden Ham yapılandırma düzenleyicisi seçeneğine gidin.

# 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
Adım 4

Bir kontrol ekleyin

Tahtadaki en basit şeyle başlayın; böylece karmaşık bir şey kurmadan önce varlık kimliklerinizin doğru olduğunu görürsünüz. Bir bölüm ekleyin, bir kart ekleyin, YAML'da düzenle deyin ve yapıştırın:

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

Standart Home Assistant. HACS gerekmez.

Dokunun. Alıcı değişirse kimlikleriniz doğrudur ve aşağıdaki her şey çalışır. Hiçbir şey olmazsa 2. adıma dönün.

Adım 5

Etkin olan olduğunda yansın

Öğrenmeye değer kalıp budur; panodaki her kaynak ve surround karosu bunun bir kopyasıdır. Kart bir betik gönderir ve rengini alıcı varlığından alır; böylece gerçekten açık olan giriş yanar, diğerleri yanmaz.

Nvidia Shield'ın turuncu yandığı ve diğer on iki girişin karanlık olduğu kaynak ızgarası
Bir karo yanık, on iki karo karanlık
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 %}
    }

Her giriş için üç şeyi değiştirin: betiği, simgeyi ve karşılaştırılan metni.

İki şeyi doğru yapın, yoksa bir karo hiç yanmaz:

Surround modları aynı karttır; source yerine sound_mode kullanılır.

Adım 6

Her bölüme canlı bir başlık verin

Sade bir başlık boşa giden alandır. Canlı değeri altına koyun, “Kaynaklar” da “Kaynaklar / Şu an Nvidia Shield” olsun.

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

Etiketi başlığın yanına değil altına koyan, iki satırlı ızgaradır.

Surround başlığında attributes.source yerine attributes.sound_mode yazın, diğerlerinde de böyle.

Adım 7

Sesi dB olarak gösterin

Home Assistant sesi kesir olarak bildirir. Kimse alıcıyı “0.67” değerine ayarlamaz. Tek satırlık bir hesap bunu düzeltir ve bölümün tamamı bir alıcı gibi okunmaya başlar.

Ses bölümü: bir kaydırıcı, yukarı, aşağı, sessize alma ve dört dB ön ayarı
Gece, Diyalog, Film ve Yüksek; her biri ayarladığı dB ile etiketli
Dönüşüm. Home Assistant, volume_level değerini ana ses seviyesinin 100'e bölünmüş hali olarak yayınlar; Denon ve Marantz alıcılarda MV 80, 0 dB referansıdır. Yani dB = volume_level × 100 − 80. 0.67 değerindeki bir volume_level, ana ses seviyesi 67 demektir; bu da −13.0 dB eder.
# 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
En yüksek ön ayarınızı bilerek seçin. Yukarıdaki set −10 dB'de durur. Gösterge paneline yanlışlıkla basmak bir kumandadan çok daha kolaydır ve büyük bir alıcıda referans seviyesi gerçekten yüksektir.
Adım 8

Sahnelerinizi ekleyin

Adı yazmak yerine betikten okuyun; AVR Maestro'da bir Sahneyi yeniden adlandırdığınızda gösterge paneline dokunmadan karo da yeni adı alır.

Her biri geri yüklediği ayarları sıralayan dört sahne karosu
Her karo, sahnesinin gerçekte neyi geri yüklediğini söyler
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

İki replace() çağrısı, ön eki ve alıcı adını kolay addan ayıklar.

İkinci satır fazladan bir dakikaya değer. Havalı adlı düğmelerden oluşan bir duvar akşam 11'de size hiçbir şey söylemez; her birinin neyi geri yüklediğini söyleyen bir satır ise hangisine basacağınızı söyler.

Adım 9

Geçmiş ekleyin

Alıcının medya oynatıcı varlığı Home Assistant tarafından diğerleri gibi kaydedilir; yani dinleme geçmişi bedavadır. Aşağıdaki her şey o tek varlıktan gelir: ek sensör yok, yardımcı yok, önce yapılandırılacak hiçbir şey yok.

Beş geçmiş grafiği: güç ve etkinlik, dB cinsinden ana ses, güne göre ses, kullanılan kaynak ve surround modu
Beş grafik, tek varlık, yedi gün

Sade durum zaman çizelgesi hiç özel kart gerektirmez ve sahip olmaya en değer olanıdır:

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

Bir hafta boyunca açık, kapalı ve ne yaptığı.

dB cinsinden ses, 7. adımdaki dönüşümün aynısını kullanır:

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

fill: last ile group_by, seyrek olayları kesintisiz bir çizgiye çevirir. Y ekseninin etkili olması için apex_config içine konması gerekir.

Günlük ortalama ve tepe değeri, sivri bir çizgiyi şekli olan bir şeye dönüştürür:

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

Aynı öznitelikten iki seri, güne göre gruplanmış.

Bu grafik neden dB'yi çizmek yerine 0 ile 80 arasını çizip dB olarak biçimlendiriyor. Çubuklar eksen tabanından büyür. dB'yi doğrudan çizerseniz her çubuk 0'dan aşağı sarkar ve uzun bir çubuk sessiz demek olur; bu tersten okunur. Ham ana ses seviyesi sayısını çizip eksen ve ipucu biçimlendiricilerinde 80 çıkarırsanız çubuklar yukarı büyür, okuyucunun gördüğü her şey ise yine dB olur. fill: 'null', okuması olmayan bir güne dünden devralınan bir çubuk yerine çubuk verilmemesi demektir.

Ve “asıl ne üzerinde, neyle izliyorum” sorusunu yanıtlayan ikisi: kaynak ve surround modu, hangisinin seçili olduğunu gösteren bir zaman çizelgesi olarak çizilir.

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

Kendi kaynaklarınızı transform dizisine ve her iki biçimlendirici dizisine koyun. 0 numaralı dizini “Diğer” olarak bırakın.

Grafik ekseni sayı ister; bu yüzden transform her kaynak adını bir konuma eşler, biçimlendiriciler de etiket ve ipucu için geri çevirir. Eşlemeyi tam yapın: null (alıcı kapalı) boşluk olarak kalır ve listenizde olmayan her şey “Diğer”e düşer; böylece ikisi asla karışmaz. sound_mode ile aynı kartı kullanırsanız surround modunu elde edersiniz; metinler alıcınızın bildirdiği gibi büyük harfle olmalıdır.

Son ikisinde stepline değerini koruyun. Kaynak ya da surround modu bir kategoridir, sayı değil. Eğriyi yumuşatırsanız çizgi, eksende aralarında kalan her şeyin üzerinden Shield ile Xbox arasında savrulur ve hiç seçilmemiş bir girişi çizer. Ses gerçek bir niceliktir ve dürüstçe yumuşar; kategori yumuşamaz.
Önce kayıt saklama sürenizi kontrol edin. Home Assistant varsayılan olarak on gün saklar; yani yedi gün, makul olarak isteyebileceğiniz en uzun süreye yakındır. Daha geriye gitmek için state_class: measurement şablon sensörüne ihtiyacınız var; Home Assistant bunu yıllarca uzun vadeli istatistik olarak tutar.
Eksik bir gün genellikle doğrudur. Home Assistant örnekleri değil, değişiklikleri kaydeder. Alıcıyı iki gün boyunca tek girişte ve tek ses seviyesinde bırakırsanız hiçbir şey yazılmaz ve o günün çubuğu olmaz. Veri kaybı gibi görünür ama tam tersidir: hiçbir şey olmamıştır.
Adım 10

Ya da hepsini alın

Eksiksiz görünüm, her bölüm ve her kart; varlık kimlikleri yerine yer tutucularla.

  1. 1. Görünüm YAML dosyasını indirin.
  2. 2. Herhangi bir metin düzenleyicide açın ve göründükleri her yerde iki metni değiştirin: YOUR_RECEIVER yerine medya oynatıcı varlığınızın adını, YOURMAC yerine 2. adımdaki alıcınıza ait on iki karakteri yazın.
  3. 3. Home Assistant'ta gösterge panelinizi açın, kalem simgesine, üç nokta menüsüne ve Ham yapılandırma düzenleyicisi seçeneğine gidin, ardından bir görünüm olarak yapıştırın.
Sahne kimlikleriniz eşleşmeyecek. Sahne betikleri, Sahnenin oluşturulduğu ana göre adlandırılır; dosyadaki dört tanesi sisteminizde yoktur, bu yüzden o kartlar görünür ama hiçbir şey yapmaz. Varlık kimliklerini 2. adımdaki kendi kimliklerinizle değiştirin ya da Sahneler bölümünü silip 8. adımla yeniden kurun.
Beklemeniz gereken iki şey daha. Kaynak ve surround grafikleri bunun kurulduğu alıcının kaynak adlarını taşır; bu yüzden 9. adımda anlatıldığı gibi o dizileri düzenleyin. Ayrıca karo etiketleri İngilizcedir; dosyadaki hiçbir şey çevrilmemiştir.

Bir karo hiç yanmıyorsa

Yanlış kurduğunuzu düşünmeden önce: bazıları yanamaz ve hangileri olduğunu bilmeye değer.

Bir karo, ancak Home Assistant durumu okuyabiliyorsa gösterebilir ve alıcınızı iki yerden okur. Denon AVR entegrasyonu temel bilgileri medya oynatıcı varlığında yayınlar. Gerisini AVR Maestro yayınlar: bir Status Bridge sensörü, sensor.avr_maestro_your_receiver, oluşturur ve zaten elinde olan okumaları öznitelik olarak üzerine yazar.

Medya oynatıcı varlığındaStatus Bridge sensöründe
GüçAudyssey MultEQ eğrisi
Seçili kaynakDynamic Volume ve referans seviyesi
Surround moduHangi Dirac yuvası yüklü
Ses ve sessize almaÖn panel kararma, Eco modu
Dynamic EQ, bazenHoparlör ön ayarı, ton ve düzinelercesi

Artık her iki sütun da okunabilir. Medya oynatıcı değerini states['media_player.your_receiver'].attributes ile, Status Bridge değerini state_attr('sensor.avr_maestro_your_receiver','dirac_slot') ile alın; böylece bir karo yalnızca ayarı değiştiren betiği çalıştırmakla kalmaz, gerçekten etkin olan ayar için yanar.

Bunun kurulduğu alıcıda ölçülen: medya oynatıcı varlığı altmış kontrolün yaklaşık yirmisini taşıyor, Status Bridge sensörü ise kabaca kırk tanesini daha yayınlıyor. İkisi birlikte, bir gösterge paneli değiştirebildiği hemen her şeyi okuyabiliyor - bir düğme duvarı ile bir kontrol yüzeyi arasındaki fark bu.

Bir değer iki anlama gelebiliyorsa, bunu söyleyin. Dynamic EQ true, false olarak gelir ya da hiç gelmez. “Hiç gelmemesini” “kapalı” saymak, duvarınıza kendinden emin yanlış bir cevap koyar.
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 %}

İki durum değil, üç durum.

Bilmeye değer diğer şeyler

Aynı gösterge paneli telefon genişliğinde, tek sütuna yeniden akmış halde
Telefon genişliğinde aynı gösterge paneli: üç sütun bire iniyor ve bunun için hiçbir şey yapılandırılmadı
Sık sorulan sorular

Gösterge paneli, yanıtlandı

Bunu oluşturmak için HACS üzerinden özel kartlara ihtiyacım var mı?
Çalışması için hayır. Bu sayfadaki her kontrol sade bir Home Assistant düğme kartından çalışır. Mushroom, button-card, card-mod ve apexcharts-card ise ekran görüntülerindeki görünümü veren şeylerdir; aşağıdaki her bölüm hangisini kullandığını ve o olmadan neyi kaybettiğinizi söyler.
Bazı düğmeler neden yanıyor, bazıları neden yanmıyor?
Home Assistant, alıcınızdan eşleşen durumu okuyabildiğinde bir düğme yanar. Kaynak, surround modu, ses ve sessize alma alıcının kendi medya oynatıcı varlığından gelir; bunlar yanar. Audyssey eğrisi, Dirac yuvası, kararma, eco modu ve hoparlör ön ayarı Denon entegrasyonu tarafından yayınlanmaz; Home Assistant hangisinin etkin olduğunu bilemez ve siz birine dokunana kadar düğmeler yanmaz.
Yüzde yerine gerçek dB sesini gösterebilir miyim?
Evet. Home Assistant, volume_level değerini alıcının ana ses seviyesinin 100'e bölünmüş hali olarak yayınlar; Denon ve Marantz alıcılarda MV 80, 0 dB referansıdır. Yani dB, volume_level çarpı 100 eksi 80'e eşittir. 0.67 değerindeki bir volume_level, ana ses seviyesi 67 demektir; bu da -13.0 dB eder.
Varlık kimliklerim bu kılavuzdakilerle aynı olacak mı?
Kalıp aynı olur, orta kısım olmaz. AVR Maestro betiklerini alıcının MAC adresine göre adlandırır; böylece yeniden adlandırma betiği çatallamak yerine aynı betiği günceller. Sizinkinde önce script.avr_maestro_ gelir, ardından kendi on iki karakteriniz, sonra kontrolün adı. Kendi listenizi görmek için Home Assistant'ta Geliştirici Araçları, ardından Durumlar bölümünü açın ve avr_maestro ile filtreleyin.
Rehberin devamı

Diğer AVR Maestro rehberleri

Başlarken · Ana Ekran · Sahneler · Özel Simgeler · Ses · Graphic EQ · Hoparlörler · Bir kontrol neden kilitli · Asistan · Ev Otomasyonu · Bölgeler · Uzaktan Kumanda · Radyo (FM/AM) · Ekran Menüsü · Ayarlar · Diller · Ses Kontrolleri · Yedekleme & Geri Yükleme · Şimdi Çalıyor & HEOS

Alıcınızın tamamı, tek bir duvarda

Ev Otomasyonu, AVR Maestro'daki tek ücretli kilittir. Cihaz üzerindeki yapay zeka asistanı dahil geri kalan her şey ücretsizdir.

Google Play üzerinden edinin App Store üzerinden indirin Mac App Store üzerinden indirin Microsoft Store üzerinden edinin

Ev Otomasyonu sayfasına dön → · Kullanım Kılavuzunun tamamı →