Start › Benutzerhandbuch › Hausautomation › Dashboard
Home Assistant · Schritt für Schritt

Bauen Sie dieses Home-Assistant-Dashboard in etwa einer Stunde

Zehn Schritte, das YAML jeder Karte und eine komplette Ansicht, die Sie in einem Rutsch einfügen können. Gebaut und fotografiert an einem echten Marantz CINEMA 30. Ändern Sie zwei Zeichenketten, und es gehört Ihnen.

Das fertige Dashboard: ein Now-Playing-Banner, Lautstärke mit dB-Presets, ein Quellenraster, Surround-Modi, Raumkorrektur, Szenen und ein Lautstärkeverlauf
Was Sie hier bauen
Wenig Zeit? Springen Sie zu Schritt 10, laden Sie die komplette Ansicht herunter, ändern Sie zwei Zeichenketten und fügen Sie sie ein. Die Schritte dazwischen erklären, was jedes Teil tut, damit Sie es anpassen können.

Bevor Sie beginnen

Dieses Dashboard speist sich aus zwei Quellen, und der Unterschied zählt bei jedem der folgenden Schritte.

Kommt vonLiefert
Den synchronisierten Skripten von AVR MaestroJedes Steuerelement. Eingänge, Surround-Modi, Audyssey, Dirac, Smart Selects, Presets, Dimmer, Eco, Ihre Szenen.
Der Media-Player-Entität der Denon-AVR-IntegrationDen Live-Status. Power, gewählte Quelle, Surround-Modus, Lautstärke, Stummschaltung.
Schritt 1

Vier Karten aus HACS installieren

Alle vier sind im Standard-HACS-Store. In Home Assistant: HACS › Frontend › Explore & Download Repositories, den Namen suchen, Download, dann den Browser neu laden.

Suchen nachVerwendet fürWenn Sie sie weglassen
MushroomJede Steuerkachel und den LautstärkereglerNehmen Sie eine einfache button-Karte. Funktioniert, sieht eckiger aus.
button-cardAbschnittsüberschriften mit Live-BeschriftungNehmen Sie eine markdown-Karte oder schlichte Überschriften.
card-modDie Farben und den Leuchtzustand der aktiven KachelAlles funktioniert weiterhin. Nichts leuchtet.
apexcharts-cardDie VerlaufsdiagrammeNehmen Sie die integrierte history-graph-Karte.
Keine davon ist zwingend nötig. Jedes Steuerelement unten läuft über eine Standard-Button-Karte von Home Assistant, die auf dasselbe Skript zeigt. Die benutzerdefinierten Karten sind Make-up, keine Installation.
Schritt 2

Ihre beiden Entity-IDs finden

Jedes Snippet auf dieser Seite verwendet zwei Platzhalter. Finden Sie Ihre einmal, den Rest erledigen Sie per Copy and Paste.

Der mittlere Teil jeder Skript-ID ist die MAC-Adresse Ihres Receivers, zwölf Kleinbuchstaben bzw. Ziffern, bei allen gleich. Kopieren Sie sie einmal. Überall dort, wo diese Seite MAC schreibt, setzen Sie Ihre ein.

Ignorieren Sie alle, in denen unavailable steht. Ältere Versionen benannten Skripte nach dem Namen des Receivers statt nach seiner MAC. Wenn Sie damals synchronisiert haben, sind diese älteren noch aufgelistet und tot. Die aktuellen sind die nach der MAC benannten.
Schritt 3

Die Ansicht erstellen

  1. 1. Einstellungen › Dashboards › Dashboard hinzufügen › Neues Dashboard von Grund auf. Nennen Sie es, wie Sie möchten.
  2. 2. Öffnen Sie es und klicken Sie oben rechts auf das Stiftsymbol, um zu bearbeiten.
  3. 3. Fügen Sie eine Ansicht hinzu und wählen Sie das Layout Sections. Nicht Masonry. Sections sorgt dafür, dass sich alles auf dem Handy sauber umbricht.
  4. 4. Stellen Sie in den Ansichtseinstellungen Max columns auf 3 und aktivieren Sie Dense section placement.

Ab hier läuft jeder Schritt gleich ab: einen Abschnitt hinzufügen, dann Karten hineinfügen. Zum Einfügen von YAML nutzen Sie das Drei-Punkte-Menü einer Karte und wählen Edit in YAML, oder das Drei-Punkte-Menü des Dashboards für den Raw configuration editor, um alles auf einmal einzufügen.

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

Ein Steuerelement hinzufügen

Beginnen Sie mit dem Einfachsten auf dem Board, damit Sie wissen, dass Ihre Entity-IDs stimmen, bevor Sie etwas Kompliziertes bauen. Fügen Sie einen Abschnitt und eine Karte hinzu, wählen Sie Edit in YAML und fügen Sie ein:

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. Kein HACS nötig.

Tippen Sie darauf. Reagiert der Receiver, stimmen Ihre IDs, und alles Weitere funktioniert. Passiert nichts, gehen Sie zurück zu Schritt 2.

Schritt 5

Zum Leuchten bringen, wenn es die aktive ist

Dieses Muster lohnt sich, und jede Quellen- und Surround-Kachel auf dem Board ist eine Kopie davon. Die Karte sendet ein Skript und färbt sich anhand der Receiver-Entität ein, sodass der Eingang, auf dem Sie wirklich sind, leuchtet und die anderen nicht.

Das Quellenraster mit Nvidia Shield in Orange leuchtend und den zwölf anderen Eingängen dunkel
Eine Kachel leuchtet, zwölf bleiben dunkel
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 %}
    }

Ändern Sie pro Eingang drei Dinge: das Skript, das Symbol und die Zeichenkette, mit der verglichen wird.

Zwei Dinge müssen stimmen, sonst leuchtet eine Kachel nie:

Surround-Modi sind dieselbe Karte, mit sound_mode anstelle von source.

Schritt 6

Jedem Abschnitt eine Live-Überschrift geben

Ein schlichter Titel ist verschenkter Platz. Setzen Sie den Live-Wert darunter, und aus „Quellen“ wird „Quellen / Jetzt auf 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

Das zweizeilige Raster setzt die Beschriftung unter den Titel statt daneben.

Ersetzen Sie bei der Surround-Überschrift attributes.source durch attributes.sound_mode, und so weiter.

Schritt 7

Lautstärke in dB anzeigen

Home Assistant meldet die Lautstärke als Bruchteil. Niemand stellt einen Receiver auf „0.67“. Eine Zeile Mathematik behebt das, und der ganze Abschnitt liest sich wie ein Receiver.

Der Lautstärkeabschnitt: ein Regler, lauter, leiser, Stumm und vier dB-Presets
Night, Dialog, Movie und Loud, jeweils mit dem dB-Wert beschriftet, den sie setzen
Die Umrechnung. Home Assistant veröffentlicht volume_level als Master-Lautstärke geteilt durch 100, und bei Denon- und Marantz-Receivern ist MV 80 die 0-dB-Referenz. Also dB = volume_level × 100 − 80. Ein volume_level von 0.67 entspricht der Master-Lautstärke 67, also −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
Wählen Sie Ihr lautestes Preset bewusst. Das Set oben endet bei −10 dB. Ein Dashboard trifft man viel leichter versehentlich als eine Fernbedienung, und der Referenzpegel an einem großen Receiver ist wirklich laut.
Schritt 8

Ihre Szenen hinzufügen

Lesen Sie den Namen aus dem Skript, statt ihn zu tippen, und das Umbenennen einer Szene in AVR Maestro benennt die Kachel um, ohne dass Sie das Dashboard bearbeiten müssen.

Vier Szenenkacheln, jeweils mit den Einstellungen, die diese Szene wiederherstellt
Jede Kachel sagt, was ihre Szene tatsächlich wiederherstellt
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

Die beiden replace()-Aufrufe schneiden das Präfix und den Receiver-Namen aus dem Anzeigenamen.

Eine zweite Zeile ist die zusätzliche Minute wert. Eine Wand aus blumig benannten Buttons sagt Ihnen um 11pm gar nichts; eine Zeile, die sagt, was jeder wiederherstellt, verrät Ihnen, welchen Sie drücken sollten.

Schritt 9

Verlauf hinzufügen

Die Media-Player-Entität des Receivers wird von Home Assistant wie jede andere aufgezeichnet, also bekommen Sie einen Hörverlauf gratis. Alles unten stammt aus dieser einen Entität: keine zusätzlichen Sensoren, keine Helfer, nichts, was vorher konfiguriert werden müsste.

Fünf Verlaufsdiagramme: Power und Aktivität, Master-Lautstärke in dB, Lautstärke pro Tag, genutzte Quelle und Surround-Modus
Fünf Diagramme, eine Entität, sieben Tage

Die einfache Zustandszeitleiste braucht überhaupt keine benutzerdefinierten Karten und ist die, die sich am meisten lohnt:

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

Ein, Aus und was der Receiver tat, über eine Woche.

Die Lautstärke in dB nutzt dieselbe Umrechnung wie in Schritt 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 mit fill: last macht aus vereinzelten Ereignissen eine durchgehende Linie. Die y-Achse muss in apex_config stehen, damit sie wirkt.

Ein Tagesdurchschnitt und -spitzenwert macht aus einer zackigen Linie etwas mit 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'; }"

Zwei Reihen aus demselben Attribut, nach Tag gruppiert.

Warum dieses Diagramm 0 bis 80 aufträgt und auf dB formatiert, statt dB aufzutragen. Balken wachsen vom Achsenboden aus. Trägt man dB direkt auf, hängt jeder Balken von 0 nach unten, sodass ein langer Balken leise bedeutet, was verkehrt herum wirkt. Tragen Sie stattdessen die rohe Master-Lautstärke auf und ziehen Sie 80 in den Formatierern von Achse und Tooltip ab, wachsen die Balken nach oben, und alles, was der Betrachter sieht, ist trotzdem dB. fill: 'null' bedeutet, dass ein Tag ohne Messwerte keinen Balken bekommt, statt den Wert von gestern fortzuschreiben.

Und die zwei, die beantworten: „Worüber schaue ich eigentlich, und in welchem Format?“: Quelle und Surround-Modus, aufgetragen als Zeitleiste dessen, was jeweils gewählt war.

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

Tragen Sie Ihre eigenen Quellen im transform-Array und in beiden Formatter-Arrays ein. Belassen Sie Index 0 als „Other“.

Eine Diagrammachse braucht Zahlen, daher ordnet transform jedem Quellennamen eine Position zu, und die Formatierer ordnen sie für die Beschriftungen und den Tooltip zurück. Machen Sie die Zuordnung total: null (Receiver aus) bleibt eine Lücke, und alles, was nicht in Ihrer Liste steht, fällt auf „Other“, sodass beides nie verwechselt werden kann. Dieselbe Karte mit sound_mode liefert den Surround-Modus, mit den Zeichenketten in Großbuchstaben, genau wie Ihr Receiver sie meldet.

Behalten Sie stepline bei diesen letzten beiden bei. Eine Quelle oder ein Surround-Modus ist eine Kategorie, keine Zahl. Glätten Sie die Kurve, schwingt die Linie zwischen Shield und Xbox durch alles, was dazwischen auf der Achse liegt, und zeichnet einen Eingang, der nie gewählt war. Lautstärke ist eine echte Größe und lässt sich ehrlich glätten; eine Kategorie nicht.
Prüfen Sie zuerst Ihre Recorder-Aufbewahrung. Home Assistant behält standardmäßig zehn Tage, sieben Tage sind also ungefähr das Maximum, was sich sinnvoll abfragen lässt. Für weiter zurückliegende Zeiträume brauchen Sie einen state_class: measurement-Template-Sensor, den Home Assistant als Langzeitstatistik über Jahre aufbewahrt.
Ein fehlender Tag ist meist korrekt. Home Assistant zeichnet Änderungen auf, keine Stichproben. Lassen Sie den Receiver zwei Tage lang auf einem Eingang bei einer Lautstärke, schreibt er gar nichts, also hat dieser Tag keinen Balken. Es sieht nach Datenverlust aus und ist das Gegenteil: Es ist nichts passiert.
Schritt 10

Oder nehmen Sie das Ganze

Die komplette Ansicht, jeder Abschnitt und jede Karte, mit Platzhaltern statt Entity-IDs.

  1. 1. Die View-YAML herunterladen.
  2. 2. Öffnen Sie sie in einem beliebigen Texteditor und ersetzen Sie überall zwei Zeichenketten: YOUR_RECEIVER durch den Namen Ihrer Media-Player-Entität und YOURMAC durch die zwölf Zeichen Ihres Receivers aus Schritt 2.
  3. 3. Öffnen Sie in Home Assistant Ihr Dashboard, Stiftsymbol, Drei-Punkte-Menü, Raw configuration editor, und fügen Sie sie als Ansicht ein.
Ihre Szenen-IDs passen nicht. Szenenskripte sind nach dem Zeitpunkt benannt, an dem die Szene erstellt wurde, daher existieren die vier in der Datei auf Ihrem System nicht: Diese Karten werden angezeigt und tun nichts. Ersetzen Sie deren Entity-IDs durch Ihre eigenen aus Schritt 2 oder löschen Sie den Szenenabschnitt und bauen ihn mit Schritt 8 neu.
Zwei weitere Dinge, mit denen Sie rechnen sollten. Die Quellen- und Surround-Diagramme enthalten die Quellennamen des Receivers, an dem dies gebaut wurde, bearbeiten Sie diese Arrays also wie in Schritt 9 beschrieben. Und die Kachelbeschriftungen sind englisch; nichts in der Datei ist übersetzt.

Wenn eine Kachel nie leuchtet

Bevor Sie annehmen, falsch gebaut zu haben: Manche können gar nicht leuchten, und es lohnt sich zu wissen, welche.

Eine Kachel kann ihren Zustand nur zeigen, wenn Home Assistant ihn lesen kann, und Ihren Receiver liest es aus zwei Quellen. Die Denon-AVR-Integration veröffentlicht die Grundlagen auf der Media-Player-Entität. AVR Maestro veröffentlicht den Rest: Es legt einen Status-Bridge-Sensor an, sensor.avr_maestro_your_receiver, und schreibt die Messwerte, die es ohnehin hat, als Attribute darauf.

Auf der Media-Player-EntitätAuf dem Status-Bridge-Sensor
PowerAudyssey-MultEQ-Kurve
Gewählte QuelleDynamic Volume und Referenzpegel
Surround-ModusWelcher Dirac-Slot geladen ist
Lautstärke und StummschaltungDimmer der Frontblende, Eco-Modus
Dynamic EQ, manchmalSpeaker Preset, Klang und Dutzende mehr

Beide Spalten sind jetzt lesbar. Holen Sie einen Media-Player-Wert aus states['media_player.your_receiver'].attributes und einen Status-Bridge-Wert mit state_attr('sensor.avr_maestro_your_receiver','dirac_slot'), damit eine Kachel für die tatsächlich aktive Einstellung leuchtet, statt nur das Skript auszulösen, das sie ändert.

Gemessen an dem Receiver, an dem dies gebaut wurde: Die Media-Player-Entität trägt etwa zwanzig der sechzig Steuerelemente, und der Status-Bridge-Sensor veröffentlicht grob vierzig weitere. Zusammen kann ein Dashboard nahezu alles lesen, was es ändern kann - der Unterschied zwischen einer Wand aus Buttons und einer Bedienoberfläche.

Wenn ein Wert zwei Dinge bedeuten kann, sagen Sie es. Dynamic EQ kommt als true, false oder gar nicht an. „Gar nicht“ als „Aus“ zu behandeln, hängt eine selbstbewusst falsche Antwort an Ihre Wand.
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 %}

Drei Zustände, nicht zwei.

Weitere wissenswerte Dinge

Dasselbe Dashboard in Handybreite, umgebrochen in eine einzige Spalte
Dasselbe Dashboard in Handybreite: aus den drei Spalten wird eine, und dafür wurde nichts konfiguriert
Häufige Fragen

Das Dashboard, beantwortet

Brauche ich dafür eigene Karten aus HACS?
Nicht damit es funktioniert. Jede Steuerung auf dieser Seite läuft über eine einfache Home Assistant Button-Karte. Mushroom, button-card, card-mod und apexcharts-card sorgen für das Aussehen aus den Screenshots, und jeder Abschnitt unten nennt, welche davon er verwendet und was Sie ohne sie verlieren.
Warum leuchten manche Tasten auf und andere nicht?
Ein Button leuchtet, wenn Home Assistant den passenden Zustand von Ihrem Receiver lesen kann. Quelle, Surround-Modus, Lautstärke und Stummschaltung kommen von der Media-Player-Entität des Receivers, daher werden diese hervorgehoben. Audyssey-Kurve, Dirac-Slot, Dimmer, Eco-Modus und Speaker Preset werden von Denon's Integration nicht veröffentlicht, daher kann Home Assistant nicht wissen, welcher aktiv ist, und die Buttons bleiben dunkel, bis Sie einen antippen.
Kann ich die echte dB-Lautstärke statt eines Prozentwerts anzeigen?
Ja. Home Assistant's volume_level ist die Master-Lautstärke des Receivers geteilt durch 100, und bei Denon- und Marantz-Receivern ist MV 80 die 0-dB-Referenz. Also entspricht dB volume_level mal 100 minus 80. Ein volume_level von 0.67 ist die Master-Lautstärke 67, also -13.0 dB.
Stimmen meine Entity-IDs mit denen in dieser Anleitung überein?
Das Muster ja, die Mitte nicht. Die App AVR Maestro benennt ihre Skripte nach der MAC-Adresse des Receivers, damit eine Umbenennung dasselbe Skript aktualisiert, statt es aufzuspalten. Bei Ihnen steht script.avr_maestro_, dann Ihre eigenen zwölf Zeichen, dann der Name des Steuerelements. Öffnen Sie in Home Assistant die Entwicklerwerkzeuge, dann Zustände, und filtern Sie nach avr_maestro, um Ihre eigene Liste zu sehen.
Mehr aus der Anleitung

Weitere AVR Maestro Anleitungen

Erste Schritte · Startbildschirm · Szenen · Eigene Symbole · Ton · Graphic EQ · Lautsprecher · Warum ein Regler gesperrt ist · Der Assistent · Hausautomation · Zonen · Fernbedienung · Radio (FM/AM) · Bildschirmanzeige · Einstellungen · Sprachen · Lautstärkeregler · Sichern & Wiederherstellen · Jetzt läuft & HEOS

Ihr ganzer Receiver, an einer Wand

Hausautomation ist die einzige kostenpflichtige Freischaltung in AVR Maestro. Alles andere, einschließlich des KI-Assistenten auf dem Gerät, ist enthalten.

Jetzt bei Google Play Laden im App Store Laden im Mac App Store Jetzt im Microsoft Store

Zurück zur Hausautomation → · Vollständiges Benutzerhandbuch →