HACS: mini-media-player und swipe-cards für mehrere Lautsprecher

Mit der Custom-Card aus HACS “custom:mini-media-player” und Swipe-Card gelöst kann ich nun durch meine Lautsprecher swipen. Ähnlich wie der Blog Beitrag von Simon42: Warum Home Assistant Thermostat Karten nicht gut sind

Was ich noch nicht hinbekommen habe ist die Anpassung der Breite vom mini-media-player. Vielleicht geht da was mit card-mod.

cards:
  - cards:
      - type: custom:mini-media-player
        cards:
          - entity: media_player.buero
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.buero
        toggle_power: false
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: material
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_buero
            - name: BB
              type: script
              id: script.bb_radio_buero
            - type: script
              name: B2
              id: script.schlagerradio_buero
            - type: script
              name: AnNi
              id: script.anni_buero
            - type: script
              name: Andi
              id: script.playlist_andreas_buero
      - type: custom:mini-media-player
        cards:
          - entity: media_player.kueche
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.kueche
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: material
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_kueche
            - name: BB
              type: script
              id: script.bb_radio_kueche
            - type: script
              name: B2
              id: script.schlagerradio_3
            - type: script
              name: AnNi
              id: script.anni_kueche
            - type: script
              name: Andi
              id: script.playlist_andreas_kueche
      - type: custom:mini-media-player
        cards:
          - entity: media_player.sonos_wohnzimmer
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.sonos_wohnzimmer
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: material
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_wohn
            - name: BB
              type: script
              id: script.bb_radio_2
            - type: script
              name: B2
              id: script.schlagerradio_2
            - type: script
              name: AnNi
              id: script.anni_wohn
            - type: script
              name: Andi
              id: script.playlist_andreas_wohnzimmer
      - type: custom:mini-media-player
        cards:
          - entity: media_player.bad
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.bad
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: material
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_bad
            - name: BB
              type: script
              id: script.bb_radio_bad
            - type: script
              name: B2
              id: script.schlagerradio_bad
            - type: script
              name: AnNi
              id: script.anni_bad
            - type: script
              name: Andi
              id: script.playlist_andreas_bad
    type: custom:swipe-card
  - type: horizontal-stack
    cards:
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: script.lautsprechergruppe
          service_data: {}
          target: {}
        show_state: false
        hold_action:
          action: none
        icon: mdi:group
        icon_height: 25px
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: script.lautsprechereinzel
          service_data: {}
          target: {}
        hold_action:
          action: none
        icon: mdi:music-box-outline
        show_state: true
        icon_height: 25px
      - show_name: false
        show_icon: true
        type: button
        tap_action:
          action: toggle
        show_state: false
        icon: mdi:speaker-wireless
        icon_height: 25px
        hold_action:
          action: none
        entity: group.lautsprecher
type: vertical-stack

1 „Gefällt mir“

Moin, super Idee.
Hab es nachgebastelt.
Aber dürfte ich noch wissen wie du die Scripte geschrieben hast, wo du die Lautsprecher gruppierst und diese wieder aufhebst?
Danke

1 „Gefällt mir“

Moin Schuerschuh. Vielen Dank, das freut mich. Ja natürlich gerne. Ich habe ein Script zum gruppieren und eins zum degeruppieren angehangen. Das sind die Symbole unter dem Mediaplayer. Die Symbole bleiben fest stehen und swipen nicht mit. Es gibt zwar eine Funktion in dem "custom:mini-media-player”, aber die etwas langsam. So gefällt es mir besser. Ich habe am Design auch noch etwas verändert und mit dem card-mod gearbeitet.

So sieht das jetzt aus:

Hier der neue Code:

cards:
  - cards:
      - type: custom:mini-media-player
        cards:
          - entity: media_player.buero
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.buero
        toggle_power: false
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: full-cover
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_buero
            - name: BB
              type: script
              id: script.bb_radio_buero
            - type: script
              name: B2
              id: script.schlagerradio_buero
            - type: script
              name: AnNi
              id: script.anni_buero
            - type: script
              name: Andi
              id: script.playlist_andreas_buero
        style:
          .: >
            ha-card > div.mmp-player {

            padding-left: 0px !important;

            padding-right: 0px !important;

            padding-bottom: 0px !important;

            --paper-slider-knob-color: white;

            --paper-slider-active-color: white;

            --paper-slider-container-color: #303741;

            }

            ha-card > div.mmp-player div {

            padding-left: 10px !important;

            padding-right: 10px !important;

            background: rgba(0,0,0,0.8);

            }

            ha-card > div.mmp-player div .entity__info,

            ha-card > div.mmp-player div .entity__info__media {

            background: rgba(0,0,0,0);

            padding: 0px !important;

            }

            ha-card > div.mmp-player div .entity__info__media
            span:nth-of-type(2)::before {

            content: '\000A' !important;

            white-space: pre !important;

            }

            ha-card > div.mmp-player div .entity__info__media span {

            color: #FFFFFF !important;

            }

            ha-card > div.mmp-player .mmp-player__adds mmp-media-controls {

            padding-bottom: 10px !important;

            }
      - type: custom:mini-media-player
        cards:
          - entity: media_player.kueche
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.kueche
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: full-cover
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_kueche
            - name: BB
              type: script
              id: script.bb_radio_kueche
            - type: script
              name: B2
              id: script.schlagerradio_3
            - type: script
              name: AnNi
              id: script.anni_kueche
            - type: script
              name: Andi
              id: script.playlist_andreas_kueche
        style:
          .: >
            ha-card > div.mmp-player {

            padding-left: 0px !important;

            padding-right: 0px !important;

            padding-bottom: 0px !important;

            --paper-slider-knob-color: white;

            --paper-slider-active-color: white;

            --paper-slider-container-color: #303741;

            }

            ha-card > div.mmp-player div {

            padding-left: 10px !important;

            padding-right: 10px !important;

            background: rgba(0,0,0,0.8);

            }

            ha-card > div.mmp-player div .entity__info,

            ha-card > div.mmp-player div .entity__info__media {

            background: rgba(0,0,0,0);

            padding: 0px !important;

            }

            ha-card > div.mmp-player div .entity__info__media
            span:nth-of-type(2)::before {

            content: '\000A' !important;

            white-space: pre !important;

            }

            ha-card > div.mmp-player div .entity__info__media span {

            color: #FFFFFF !important;

            }

            ha-card > div.mmp-player .mmp-player__adds mmp-media-controls {

            padding-bottom: 10px !important;

            }
      - type: custom:mini-media-player
        cards:
          - entity: media_player.sonos_wohnzimmer
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.sonos_wohnzimmer
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: full-cover
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_wohn
            - name: BB
              type: script
              id: script.bb_radio_2
            - type: script
              name: B2
              id: script.schlagerradio_2
            - type: script
              name: AnNi
              id: script.anni_wohn
            - type: script
              name: Andi
              id: script.playlist_andreas_wohnzimmer
        style:
          .: >
            ha-card > div.mmp-player {

            padding-left: 0px !important;

            padding-right: 0px !important;

            padding-bottom: 0px !important;

            --paper-slider-knob-color: white;

            --paper-slider-active-color: white;

            --paper-slider-container-color: #303741;

            }

            ha-card > div.mmp-player div {

            padding-left: 10px !important;

            padding-right: 10px !important;

            background: rgba(0,0,0,0.8);

            }

            ha-card > div.mmp-player div .entity__info,

            ha-card > div.mmp-player div .entity__info__media {

            background: rgba(0,0,0,0);

            padding: 0px !important;

            }

            ha-card > div.mmp-player div .entity__info__media
            span:nth-of-type(2)::before {

            content: '\000A' !important;

            white-space: pre !important;

            }

            ha-card > div.mmp-player div .entity__info__media span {

            color: #FFFFFF !important;

            }

            ha-card > div.mmp-player .mmp-player__adds mmp-media-controls {

            padding-bottom: 10px !important;

            }
      - type: custom:mini-media-player
        cards:
          - entity: media_player.bad
            type: custom:mini-media-player
        group: false
        volume_stateless: true
        entity: media_player.bad
        toggle_power: true
        info: short
        scale: 1
        hide:
          power: true
          volume: false
          source: true
          icon: true
        artwork: full-cover
        shortcuts:
          columns: 5
          buttons:
            - name: Paloma
              type: script
              id: script.paloma_bad
            - name: BB
              type: script
              id: script.bb_radio_bad
            - type: script
              name: B2
              id: script.schlagerradio_bad
            - type: script
              name: AnNi
              id: script.anni_bad
            - type: script
              name: Andi
              id: script.playlist_andreas_bad
        style:
          .: >
            ha-card > div.mmp-player {

            padding-left: 0px !important;

            padding-right: 0px !important;

            padding-bottom: 0px !important;

            --paper-slider-knob-color: white;

            --paper-slider-active-color: white;

            --paper-slider-container-color: #303741;

            }

            ha-card > div.mmp-player div {

            padding-left: 10px !important;

            padding-right: 10px !important;

            background: rgba(0,0,0,0.8);

            }

            ha-card > div.mmp-player div .entity__info,

            ha-card > div.mmp-player div .entity__info__media {

            background: rgba(0,0,0,0);

            padding: 0px !important;

            }

            ha-card > div.mmp-player div .entity__info__media
            span:nth-of-type(2)::before {

            content: '\000A' !important;

            white-space: pre !important;

            }

            ha-card > div.mmp-player div .entity__info__media span {

            color: #FFFFFF !important;

            }

            ha-card > div.mmp-player .mmp-player__adds mmp-media-controls {

            padding-bottom: 10px !important;

            }
    type: custom:swipe-card
  - type: horizontal-stack
    cards:
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: script.lautsprechergruppe
          service_data: {}
          target: {}
        show_state: false
        hold_action:
          action: none
        icon: mdi:group
        icon_height: 25px
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: script.lautsprechereinzel
          service_data: {}
          target: {}
        hold_action:
          action: none
        icon: mdi:music-box-outline
        show_state: true
        icon_height: 25px
      - show_name: false
        show_icon: true
        type: button
        tap_action:
          action: toggle
        show_state: false
        icon: mdi:speaker-wireless
        icon_height: 25px
        hold_action:
          action: none
        entity: group.lautsprecher
type: vertical-stack

Zur Gruppierung (Das erste Symbol startet ein Script):

alias: Lautsprechergruppe
sequence:
  - service: media_player.join
    data:
      group_members:
        - media_player.sonos_wohnzimmer
        - media_player.bad
        - media_player.kueche
        - media_player.buero
    target:
      device_id: xxxxxxxxxxxxxxxxxxxxxxxx
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - service: media_player.volume_set
    data:
      volume_level: 0.06
    target:
      entity_id:
        - media_player.bad
        - media_player.buero
        - media_player.sonos_wohnzimmer
        - media_player.kueche
  - service: tts.cloud_say
    data:
      cache: false
      entity_id: media_player.buero
      message: >-
        Die Lautsprecher wurden gruppiert. Eine Wiedergabe ist nun in allen
        Räumen gleichzeitig möglich.
mode: single
icon: mdi:group

Zur DeGruppierung (Das zweite Symbol startet ein Script):

sequence:
  - service: media_player.volume_set
    data:
      volume_level: 0.1
    target:
      entity_id:
        - media_player.bad
        - media_player.buero
        - media_player.kueche
        - media_player.sonos_wohnzimmer
  - service: media_player.unjoin
    data: {}
    target:
      device_id:
        - xxxxxxxxxxxxxxxxxxxxxxxx
        - xxxxxxxxxxxxxxxxxxxxxxxx
        - xxxxxxxxxxxxxxxxxxxxxxxx
        - xxxxxxxxxxxxxxxxxxxxxxxx
  - service: tts.cloud_say
    data:
      cache: false
      entity_id: media_player.buero
      message: Die Gruppierung der Lautsprecher wurde aufgehoben.
mode: single
alias: LautsprecherEinzel
icon: mdi:music-box-outline

Bei den Targets werden die Device-ID’s des Hauptlautsprechers (beim Gruppieren der Bürolautsprecher) und beim DeGruppieren alle Lautsprecher vom System durch einen Code von Homeassistant ersetzt).

Achso, service: tts.cloud_say ist quasi Schmuck am Nachthemd. Ich bin zahlender NabuCasa Kunde, hier wird ein echt guter TTS Service bereitgestellt.

Was mich bei den Radiosender stört ist, dass der Sender ständig durch Werbung unterbrochen wird. Besser wäre hier denke ich ein Direkte URL vom Sender und nicht das werbeverseuchte Radio.net oder TuneIn. Gibt es noch alternativen die man über den Sonosdienst nutzen könnte?

Der Radiosender wird z.B. so gestartet:

alias: BB-Radio_Buero
sequence:
  - service: media_player.select_source
    data:
      source: BB RADIO
    target:
      entity_id: media_player.buero
mode: single
icon: mdi:radio

Dabei ist BB Radio der Eintrag des gespeicherten Senders in ‘Mein Sonos’

Hilft Dir das?

Gruß
Andreas

Was soll ich sagen….
Danke, es funktioniert wunderbar und einwandfrei

Nachtrag:
Noch was…
Ich bin auch zahlender Naba Casa Kunde.
Was kann die Benachrichtigung? Da hab ich noch nicht auf dem Schirm. Muss ich da was aktivieren in den Einstellungen?

Hat sich erledigt. :see_no_evil::joy:

:crayon:by HarryP: Zusammenführung Doppelpost.
*@schuerschuh *
Bitte für Nachträge/Korrekturen die “bearbeiten” Funktion verwenden. Danke!

1 „Gefällt mir“

Sehr gut. Falls Du noch was verbessern kannst lass es uns wissen :slight_smile:

ich hab in deinen Scripten hinten dran noch eine Wartezeit von 3 sekunden eingebaut und einen Dienst das der “mastermediaplayer” auf play gestellt wird. Bei mir war es so, das nach der Sprchmitteilung der Player ja stehen geblieben ist weil kein Abspielauftrag erteilt wurde

Interessant, müsste ich mal ausprobieren. Welche Lautsprecher hast du?

Ich habe Sonos und die sprachwiedergabe hab ich einen Echo ausgewählt

Habe die Sonos Lautsprecher von Ikea. Wie funktioniert das mit der Sprachausgabe auf dem Echo? Auch mit der Nabu-Casa Verbindung zum Echo sind keine Entitäten in die andere Richtung (zum Homeassistant) vorhanden,…

Ich verwende als Sonos-Dienst „myTuner Radio“. Ist werbefrei.