Home Assistant · ทีละขั้นตอน

สร้างแดชบอร์ด Home Assistant นี้ ได้ในเวลาราวหนึ่งชั่วโมง

สิบขั้นตอน YAML ของทุกการ์ด และวิวสมบูรณ์ที่วางได้ในครั้งเดียว สร้างและถ่ายภาพจาก Marantz CINEMA 30 ตัวจริง เปลี่ยนสองสตริงก็เป็นของคุณแล้ว

แดชบอร์ดที่เสร็จสมบูรณ์: การ์ดหลักแสดงสิ่งที่กำลังเล่น ระดับเสียงพร้อมพรีเซ็ต dB ตารางแหล่งสัญญาณ โหมดเซอร์ราวด์ การปรับแก้ห้อง ฉาก และกราฟระดับเสียง
สิ่งที่คุณกำลังจะสร้าง
รีบอยู่ใช่ไหม ข้ามไปที่ ขั้นตอนที่ 10 ดาวน์โหลดวิวสมบูรณ์ เปลี่ยนสองสตริงแล้ววางได้เลย ขั้นตอนระหว่างทางอธิบายว่าแต่ละส่วนทำอะไร เพื่อให้คุณปรับเปลี่ยนเองได้

ก่อนเริ่มต้น

แดชบอร์ดนี้ได้ข้อมูลจากสองแหล่ง และความแตกต่างนี้สำคัญในทุกขั้นตอนต่อจากนี้

มาจากให้คุณได้
สคริปต์ที่ AVR Maestro ซิงค์ให้ตัวควบคุม ทุกตัว ได้แก่ อินพุต โหมดเซอร์ราวด์ Audyssey Dirac Smart Select พรีเซ็ต ตัวหรี่ไฟ โหมดประหยัด และฉากของคุณ
เอนทิตีเครื่องเล่นสื่อของอินทิเกรชัน Denon AVRสถานะ สด ได้แก่ สถานะเปิดปิด แหล่งสัญญาณที่เลือก โหมดเซอร์ราวด์ ระดับเสียง และการปิดเสียง
ขั้นตอนที่ 1

ติดตั้งการ์ดสี่ตัวจาก HACS

ทั้งสี่ตัวอยู่ในร้านค้าเริ่มต้นของ HACS ใน Home Assistant ให้ไปที่ HACS › Frontend › Explore & Download Repositories ค้นหาชื่อ กด Download แล้วรีโหลดเบราว์เซอร์

ค้นหาว่าใช้สำหรับถ้าข้ามไป
Mushroomไทล์ควบคุมทุกอัน และแถบเลื่อนระดับเสียงใช้การ์ด button ธรรมดาแทน ใช้งานได้ แต่ดูเหลี่ยมกว่า
button-cardหัวข้อส่วนพร้อมป้ายสถานะสดใช้การ์ด markdown หรือหัวข้อธรรมดา
card-modสีสัน และสถานะสว่างบนไทล์ที่ใช้งานอยู่ทุกอย่างยังทำงานได้ แต่จะไม่มีอะไรสว่างขึ้น
apexcharts-cardกราฟประวัติใช้การ์ด history-graph ที่มีมาในตัว
ไม่มีตัวใดจำเป็นต่อการใช้งานเลย ตัวควบคุมทุกอันด้านล่างทำงานได้จากการ์ดปุ่มมาตรฐานของ Home Assistant ที่ชี้ไปยังสคริปต์เดียวกัน การ์ดแบบกำหนดเองเป็นแค่เครื่องสำอาง ไม่ใช่ระบบท่อ
ขั้นตอนที่ 2

หา Entity ID สองตัวของคุณ

ทุกโค้ดตัวอย่างในหน้านี้ใช้ตัวแทนสองตัว หาของคุณเพียงครั้งเดียว ที่เหลือก็แค่คัดลอกแล้ววาง

ส่วนกลางของ ID สคริปต์ทุกตัวคือที่อยู่ MAC ของเครื่องรับ เป็นอักษรตัวพิมพ์เล็ก 12 ตัว และเหมือนกันทุกตัว คัดลอกไว้ครั้งเดียว ทุกที่ที่หน้านี้เขียน MAC ให้ใส่ของคุณแทน

ไม่ต้องสนใจตัวที่ขึ้นว่า unavailable บิลด์เก่าตั้งชื่อสคริปต์ตามชื่อเครื่องรับ ไม่ใช่ MAC หากคุณเคยซิงค์ในตอนนั้น สคริปต์รุ่นเก่าเหล่านั้นจะยังค้างอยู่ในรายการและใช้งานไม่ได้แล้ว ตัวที่ใช้งานจริงคือตัวที่ตั้งชื่อตาม MAC
ขั้นตอนที่ 3

สร้างวิว

  1. 1. Settings › Dashboards › Add Dashboard › New dashboard from scratch ตั้งชื่ออะไรก็ได้ตามต้องการ
  2. 2. เปิดแดชบอร์ด แล้วแตะไอคอนดินสอที่มุมขวาบนเพื่อแก้ไข
  3. 3. เพิ่มวิว แล้วเลือกเลย์เอาต์ Sections ไม่ใช่ Masonry เลย์เอาต์ Sections คือสิ่งที่ทำให้จัดเรียงใหม่ได้ถูกต้องบนโทรศัพท์
  4. 4. ในการตั้งค่าวิว ตั้ง Max columns เป็น 3 และเปิด Dense section placement

จากนี้ไปทุกขั้นตอนคือ เพิ่มส่วน แล้ววางการ์ดลงไป หากต้องการวาง YAML ให้ใช้เมนูสามจุดบนการ์ดแล้วเลือก Edit in YAML หรือใช้เมนูสามจุดบนแดชบอร์ดเพื่อเปิด Raw configuration editor แล้ววางทั้งหมดในครั้งเดียว

# 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
ขั้นตอนที่ 4

เพิ่มตัวควบคุม

เริ่มจากสิ่งที่ง่ายที่สุดบนบอร์ด เพื่อให้แน่ใจว่า Entity ID ของคุณถูกต้องก่อนสร้างอะไรที่ซับซ้อน เพิ่มส่วน เพิ่มการ์ด เลือก Edit in YAML แล้ววาง:

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

Home Assistant มาตรฐาน ไม่ต้องใช้ HACS

แตะดู ถ้าเครื่องรับเปลี่ยนตาม แปลว่า ID ของคุณถูกต้อง และทุกอย่างด้านล่างจะใช้งานได้ ถ้าไม่มีอะไรเกิดขึ้น ให้กลับไปที่ขั้นตอนที่ 2

ขั้นตอนที่ 5

ทำให้สว่างขึ้นเมื่อเป็นตัวที่ใช้งานอยู่

นี่คือรูปแบบที่ควรเรียนรู้ และทุกไทล์แหล่งสัญญาณและเซอร์ราวด์บนบอร์ดก็คือสำเนาของมัน การ์ดจะส่งสคริปต์ และเปลี่ยนสีตัวเองตามเอนทิตีของเครื่องรับ ดังนั้นอินพุตที่คุณใช้อยู่จะสว่าง ส่วนตัวอื่นจะมืด

ตารางแหล่งสัญญาณที่ Nvidia Shield สว่างเป็นสีส้ม และอินพุตอีกสิบสองตัวมืดอยู่
สว่างหนึ่งไทล์ มืดสิบสองไทล์
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 %}
    }

เปลี่ยนสามอย่างต่อหนึ่งอินพุต ได้แก่ สคริปต์ ไอคอน และสตริงที่ใช้เปรียบเทียบ

มีสองเรื่องที่ต้องทำให้ถูก ไม่อย่างนั้นไทล์จะไม่มีวันสว่าง:

โหมดเซอร์ราวด์ใช้การ์ดเดียวกัน โดยใช้ sound_mode แทน source

ขั้นตอนที่ 6

ใส่หัวข้อสดให้แต่ละส่วน

ชื่อธรรมดาคือพื้นที่เปล่าที่เสียเปล่า ใส่ค่าสดไว้ใต้ชื่อ แล้วหัวข้อ “Sources” จะกลายเป็น “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

กริดสองบรรทัดคือสิ่งที่ทำให้ป้ายอยู่ใต้ชื่อ แทนที่จะอยู่ข้างๆ

สลับ attributes.source เป็น attributes.sound_mode ที่หัวข้อเซอร์ราวด์ และทำแบบเดียวกันกับส่วนอื่น

ขั้นตอนที่ 7

แสดงระดับเสียงเป็น dB

Home Assistant รายงานระดับเสียงเป็นเศษส่วน ไม่มีใครตั้งเครื่องรับที่ “0.67” หรอก คณิตศาสตร์บรรทัดเดียวแก้ปัญหานี้ได้ และทั้งส่วนจะอ่านแล้วเหมือนเครื่องรับจริงๆ

ส่วนระดับเสียง: แถบเลื่อน เพิ่ม ลด ปิดเสียง และพรีเซ็ต dB สี่ตัว
Night, Dialog, Movie และ Loud แต่ละตัวมีป้ายบอกค่า dB ที่ตั้งไว้
การแปลงค่า Home Assistant เผยแพร่ volume_level เป็นระดับเสียงหลักหารด้วย 100 และบนเครื่องรับ Denon และ Marantz ค่า MV 80 คือจุดอ้างอิง 0 dB ดังนั้น dB = volume_level × 100 − 80 ค่า volume_level ที่ 0.67 คือระดับเสียงหลัก 67 หรือ −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
เลือกพรีเซ็ตที่ดังที่สุดอย่างรอบคอบ ชุดด้านบนหยุดที่ −10 dB แดชบอร์ดกดพลาดได้ง่ายกว่ารีโมตมาก และระดับอ้างอิงบนเครื่องรับใหญ่ๆ ดังจริงจัง
ขั้นตอนที่ 8

เพิ่มฉากของคุณ

อ่านชื่อจากสคริปต์แทนการพิมพ์เอง แล้วเมื่อคุณเปลี่ยนชื่อฉากใน AVR Maestro ไทล์ก็เปลี่ยนชื่อตาม โดยไม่ต้องแก้แดชบอร์ด

ไทล์ฉากสี่ตัว แต่ละตัวแสดงรายการการตั้งค่าที่ฉากนั้นคืนค่า
แต่ละไทล์บอกว่าฉากของมันคืนค่าอะไรบ้างจริงๆ
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

การเรียก replace() สองครั้งตัดคำนำหน้าและชื่อเครื่องรับออกจากชื่อที่แสดง

บรรทัดที่สองคุ้มกับเวลาที่เพิ่มอีกหนึ่งนาที ปุ่มชื่อเก๋ๆ เรียงเป็นแผงไม่ได้บอกอะไรเลยตอน 11 โมงคืน แต่บรรทัดที่บอกว่าแต่ละปุ่มคืนค่าอะไรจะบอกคุณว่าควรกดปุ่มไหน

ขั้นตอนที่ 9

เพิ่มประวัติ

Home Assistant บันทึกเอนทิตีเครื่องเล่นสื่อของเครื่องรับเหมือนเอนทิตีอื่นทั่วไป คุณจึงได้ประวัติการรับฟังฟรีๆ ทุกอย่างด้านล่างมาจากเอนทิตีเดียวนั้น ไม่ต้องมีเซนเซอร์เพิ่ม ไม่ต้องมี helper และไม่ต้องตั้งค่าอะไรก่อน

กราฟประวัติห้าแบบ: สถานะเปิดปิดและกิจกรรม ระดับเสียงหลักเป็น dB ระดับเสียงรายวัน แหล่งสัญญาณที่ใช้ และโหมดเซอร์ราวด์
ห้ากราฟ หนึ่งเอนทิตี เจ็ดวัน

ไทม์ไลน์สถานะธรรมดาไม่ต้องใช้การ์ดแบบกำหนดเองเลย และเป็นอันที่ควรมีมากที่สุด:

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

เปิด ปิด และกำลังทำอะไรอยู่ ตลอดหนึ่งสัปดาห์

ระดับเสียงเป็น dB ใช้การแปลงค่าเดียวกับขั้นตอนที่ 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 กับ fill: last เปลี่ยนเหตุการณ์ที่กระจัดกระจายให้เป็นเส้นต่อเนื่อง แกน y ต้องใส่ใน apex_config จึงจะมีผล

ค่าเฉลี่ยและค่าสูงสุดรายวันเปลี่ยนเส้นที่ขึ้นลงแหลมให้เป็นรูปทรงที่อ่านออก:

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

สองชุดข้อมูลจากแอตทริบิวต์เดียวกัน จัดกลุ่มตามวัน

เหตุที่กราฟนี้พล็อต 0 ถึง 80 แล้วจัดรูปแบบเป็น dB แทนที่จะพล็อต dB ตรงๆ แท่งกราฟโตขึ้นจากพื้นของแกน ถ้าพล็อต dB ตรงๆ ทุกแท่งจะห้อยลงจาก 0 ทำให้แท่งยาวหมายถึงเสียงเบา ซึ่งอ่านแล้วกลับด้าน ให้พล็อตค่าระดับเสียงหลักดิบ แล้วลบ 80 ในตัวจัดรูปแบบของแกนและทูลทิป แท่งก็จะโตขึ้นด้านบน ขณะที่ทุกอย่างที่ผู้อ่านเห็นยังเป็น dB อยู่ fill: 'null' หมายความว่าวันที่ไม่มีค่าอ่านจะไม่มีแท่ง แทนที่จะยกค่าของเมื่อวานมาแสดง

และอีกสองกราฟที่ตอบคำถามว่า “จริงๆ แล้วฉันดูอะไรบนอะไร” ได้แก่ แหล่งสัญญาณและโหมดเซอร์ราวด์ พล็อตเป็นไทม์ไลน์ว่าตัวไหนถูกเลือกอยู่

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

ใส่แหล่งสัญญาณของคุณเองในอาร์เรย์ transform และในอาร์เรย์ตัวจัดรูปแบบทั้งสอง เก็บ index 0 ไว้เป็น “Other”

แกนของกราฟต้องใช้ตัวเลข ดังนั้น transform จึงจับคู่ชื่อแหล่งสัญญาณแต่ละตัวกับตำแหน่ง และตัวจัดรูปแบบจะแปลงกลับเป็นชื่อสำหรับป้ายและทูลทิป ทำให้การจับคู่นั้นครบถ้วน คือ null (เครื่องรับปิดอยู่) ยังคงเป็นช่องว่าง และสิ่งที่ไม่อยู่ในรายการของคุณจะตกไปที่ “Other” สองอย่างนี้จึงไม่มีวันสับสนกัน ใช้การ์ดเดียวกันกับ sound_mode จะได้โหมดเซอร์ราวด์ โดยใช้สตริงตัวพิมพ์ใหญ่ตรงตามที่เครื่องรับรายงาน

เก็บ stepline ไว้กับสองกราฟสุดท้ายนี้ แหล่งสัญญาณหรือโหมดเซอร์ราวด์เป็นหมวดหมู่ ไม่ใช่ตัวเลข ถ้าทำให้เส้นโค้งเนียน เส้นจะพุ่งโค้งระหว่าง Shield กับ Xbox ผ่านทุกอย่างที่อยู่ระหว่างกันบนแกน แล้ววาดอินพุตที่ไม่เคยถูกเลือกขึ้นมา ระดับเสียงเป็นปริมาณจริงจึงทำให้เนียนได้อย่างซื่อตรง แต่หมวดหมู่ทำไม่ได้
ตรวจสอบการเก็บข้อมูลของ recorder ก่อน Home Assistant เก็บข้อมูลสิบวันเป็นค่าเริ่มต้น ดังนั้นเจ็ดวันจึงเป็นช่วงที่ขอได้อย่างมีประโยชน์ที่สุด หากต้องการย้อนไปไกลกว่านั้นต้องใช้เซนเซอร์เทมเพลต state_class: measurement ซึ่ง Home Assistant เก็บเป็นสถิติระยะยาวได้หลายปี
วันที่หายไปมักถูกต้องแล้ว Home Assistant บันทึกการเปลี่ยนแปลง ไม่ใช่การสุ่มวัดค่า ถ้าปล่อยเครื่องรับไว้ที่อินพุตเดียวและระดับเสียงเดียวสองวัน มันจะไม่เขียนอะไรเลย วันนั้นจึงไม่มีแท่ง ดูเหมือนข้อมูลสูญหาย แต่จริงๆ ตรงกันข้าม คือไม่มีอะไรเกิดขึ้น
ขั้นตอนที่ 10

หรือเอาไปทั้งชุดเลย

วิวสมบูรณ์ ทุกส่วนและทุกการ์ด โดยใช้ตัวแทนแทน Entity ID

  1. 1. ดาวน์โหลดไฟล์ YAML ของมุมมอง
  2. 2. เปิดในโปรแกรมแก้ไขข้อความใดก็ได้ แล้วแทนที่สองสตริงทุกจุดที่ปรากฏ คือ YOUR_RECEIVER ด้วยชื่อเอนทิตีเครื่องเล่นสื่อของคุณ และ YOURMAC ด้วยอักขระ 12 ตัวของเครื่องรับที่ได้จากขั้นตอนที่ 2
  3. 3. ใน Home Assistant เปิดแดชบอร์ดของคุณ แตะไอคอนดินสอ เมนูสามจุด แล้วเลือก Raw configuration editor จากนั้นวางเป็นวิว
ID ของฉากของคุณจะไม่ตรงกัน สคริปต์ฉากตั้งชื่อตามเวลาที่สร้างฉาก ดังนั้นสี่ตัวในไฟล์จึงไม่มีอยู่ในระบบของคุณ การ์ดเหล่านั้นจะแสดงผลแต่ไม่ทำอะไร ให้แทนที่ Entity ID ของมันด้วยของคุณเองจากขั้นตอนที่ 2 หรือลบส่วนฉากทิ้งแล้วสร้างใหม่ตามขั้นตอนที่ 8
อีกสองอย่างที่ควรรู้ กราฟแหล่งสัญญาณและเซอร์ราวด์ใช้ชื่อแหล่งสัญญาณจากเครื่องรับที่ใช้สร้างวิวนี้ ให้แก้อาร์เรย์เหล่านั้นตามที่ขั้นตอนที่ 9 อธิบาย และป้ายบนไทล์เป็นภาษาอังกฤษ ไม่มีอะไรในไฟล์ที่แปลไว้

ถ้าไทล์ไม่เคยสว่างขึ้น

ก่อนจะคิดว่าสร้างผิด ต้องรู้ก่อนว่าบางตัวสว่างไม่ได้จริงๆ และควรรู้ด้วยว่าตัวไหน

ไทล์แสดงสถานะได้ก็ต่อเมื่อ Home Assistant อ่านค่านั้นได้ และ Home Assistant อ่านเครื่องรับของคุณจากสองที่ อินทิเกรชัน Denon AVR เผยแพร่ข้อมูลพื้นฐานบนเอนทิตีเครื่องเล่นสื่อ ส่วน AVR Maestro เผยแพร่ส่วนที่เหลือ โดยสร้างเซนเซอร์ Status Bridge คือ sensor.avr_maestro_your_receiver แล้วเขียนค่าที่แอปมีอยู่แล้วลงไปเป็นแอตทริบิวต์

บนเอนทิตีเครื่องเล่นสื่อบนเซนเซอร์ Status Bridge
สถานะเปิดปิดเส้นโค้ง Audyssey MultEQ
แหล่งสัญญาณที่เลือกDynamic Volume และระดับอ้างอิง
โหมดเซอร์ราวด์ช่อง Dirac ที่โหลดอยู่
ระดับเสียงและการปิดเสียงตัวหรี่ไฟแผงหน้าปัด โหมด Eco
Dynamic EQ เป็นบางครั้งพรีเซ็ตลำโพง โทนเสียง และอีกหลายสิบรายการ

ตอนนี้อ่านได้ทั้งสองคอลัมน์ ดึงค่าเครื่องเล่นสื่อจาก states['media_player.your_receiver'].attributes และค่า Status Bridge ด้วย state_attr('sensor.avr_maestro_your_receiver','dirac_slot') เพื่อให้ไทล์สว่างตามการตั้งค่าที่ใช้งานอยู่จริง แทนที่จะเป็นแค่การสั่งสคริปต์ที่เปลี่ยนค่านั้น

วัดจากเครื่องรับที่ใช้สร้างวิวนี้ เอนทิตีเครื่องเล่นสื่อมีตัวควบคุมราวยี่สิบจากหกสิบตัว และเซนเซอร์ Status Bridge เผยแพร่เพิ่มอีกราวสี่สิบ เมื่อรวมทั้งสองแหล่ง แดชบอร์ดจะอ่านได้เกือบทุกอย่างที่เปลี่ยนได้ ซึ่งเป็นความแตกต่างระหว่างกำแพงปุ่มกับแผงควบคุมจริงๆ

ถ้าค่าหนึ่งมีความหมายได้สองอย่าง ให้บอกตรงๆ Dynamic EQ มาเป็น true, false หรือไม่มาเลย การถือว่า “ไม่มาเลย” เท่ากับ “ปิด” คือการแปะคำตอบผิดๆ ที่มั่นใจเต็มร้อยไว้บนกำแพงของคุณ
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 %}

สามสถานะ ไม่ใช่สอง

เรื่องอื่นๆ ที่ควรรู้

แดชบอร์ดเดียวกันที่ความกว้างโทรศัพท์ จัดเรียงใหม่เป็นคอลัมน์เดียว
แดชบอร์ดเดียวกันที่ความกว้างโทรศัพท์: สามคอลัมน์กลายเป็นหนึ่ง และไม่ได้ตั้งค่าอะไรเพื่อให้เกิดขึ้น
คำถามที่พบบ่อย

แดชบอร์ด ถามตอบ

ต้องใช้การ์ดกำหนดเองจาก HACS เพื่อสร้างสิ่งนี้ไหม
ไม่จำเป็นเพื่อให้ใช้งานได้ ทุกตัวควบคุมในหน้านี้ทำงานได้จากการ์ดปุ่มธรรมดาของ Home Assistant ส่วน Mushroom, button-card, card-mod และ apexcharts-card คือสิ่งที่ทำให้หน้าตาออกมาเหมือนในภาพหน้าจอ และแต่ละส่วนด้านล่างจะบอกว่าใช้ตัวไหนและจะเสียอะไรไปหากไม่มี
ทำไมบางปุ่มจึงสว่างขึ้นแต่บางปุ่มไม่สว่าง
ปุ่มจะสว่างเมื่อ Home Assistant อ่านสถานะที่ตรงกันจากเครื่องรับของคุณได้ แหล่งสัญญาณ โหมดเซอร์ราวด์ ระดับเสียง และการปิดเสียงส่งกลับมาจากเอนทิตีเครื่องเล่นสื่อของเครื่องรับเอง จึงไฮไลต์ได้ ส่วนเส้นโค้ง Audyssey ช่อง Dirac ตัวหรี่ไฟ โหมดประหยัด และพรีเซ็ตลำโพง อินทิเกรชัน Denon ไม่ได้เผยแพร่ Home Assistant จึงไม่มีทางรู้ว่าตัวไหนใช้งานอยู่ ปุ่มเหล่านั้นจะไม่สว่างจนกว่าคุณจะแตะสักปุ่ม
แสดงระดับเสียง dB จริงแทนเปอร์เซ็นต์ได้ไหม
ได้ Home Assistant เผยแพร่ volume_level เป็นค่าระดับเสียงหลักของเครื่องรับหารด้วย 100 และบนเครื่องรับ Denon และ Marantz ค่า MV 80 คือจุดอ้างอิง 0 dB ดังนั้น dB เท่ากับ volume_level คูณ 100 แล้วลบ 80 ค่า volume_level ที่ 0.67 คือระดับเสียงหลัก 67 หรือ -13.0 dB
Entity ID ของฉันจะตรงกับในคู่มือนี้ไหม
รูปแบบจะตรงกัน แต่ส่วนตรงกลางจะไม่ตรง AVR Maestro ตั้งชื่อสคริปต์ตามที่อยู่ MAC ของเครื่องรับ เพื่อให้การเปลี่ยนชื่อไปอัปเดตสคริปต์เดิมแทนที่จะสร้างสคริปต์ใหม่ซ้ำ ของคุณจะเป็น script.avr_maestro_ ตามด้วยอักขระ 12 ตัวของคุณเอง แล้วจึงตามด้วยชื่อตัวควบคุม เปิด Developer Tools แล้วไปที่ States ใน Home Assistant และกรองด้วย avr_maestro เพื่อดูรายการของคุณเอง
เนื้อหาเพิ่มเติมของคู่มือ

คู่มือ AVR Maestro เรื่องอื่น ๆ

เริ่มต้นใช้งาน · หน้าจอหลัก · ฉาก · ไอคอนกำหนดเอง · เสียง · Graphic EQ · ลำโพง · เหตุใดตัวควบคุมจึงถูกล็อก · ผู้ช่วย · ระบบบ้านอัตโนมัติ · โซน · รีโมท · วิทยุ (FM/AM) · การแสดงผลบนหน้าจอ · การตั้งค่า · ภาษา · การควบคุมระดับเสียง · สำรอง & กู้คืนข้อมูล · กำลังเล่น & HEOS

เครื่องรับทั้งเครื่องของคุณ บนกำแพงเดียว

ระบบบ้านอัตโนมัติคือสิ่งเดียวที่ต้องปลดล็อกแบบเสียเงินใน AVR Maestro ส่วนอื่นทั้งหมด รวมถึงผู้ช่วย AI บนอุปกรณ์ รวมอยู่ให้แล้ว

ดาวน์โหลดบน Google Play ดาวน์โหลดบน App Store ดาวน์โหลดบน Mac App Store ดาวน์โหลดบน Microsoft Store

กลับไปที่ระบบบ้านอัตโนมัติ → · คู่มือผู้ใช้ฉบับเต็ม →