Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Betatest NSPanel-lovelace-ui v0.2.x

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Betatest NSPanel-lovelace-ui v0.2.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @ilovegym last edited by

      @ilovegym
      @arteck

      Hab schon länger keines mehr neu eingerichtet - aber seit Berry 10 kommt es bei mir kaum noch vor das ich Probleme habe.

      arteck 1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer last edited by ticaki

        Nach längerer Diskussion mit skynet kam das hier bei raus - recht bunt find ich.

        Mediaplayer (cardMedia)

        Stand: 11.06.2025
        Unterstützte Adapter: spotify-premium, alexa2, mpd, sonos

        Die Karte cardMedia zeigt einen Mediaplayer mit Titel/Artist, Play/Pause, Lautstärke u.v.m. an. Je nach Adapter werden unterschiedliche Funktionen automatisch erkannt (z. B. Playlisten, Shuffle, Seek).


        Minimal-Setup

        const pageMediaTest1: PageType = {
          type: 'cardMedia',
          heading: 'main',
          uniqueName: 'main',
          media: {
            id: 'sonos.0.root.192_168_178_209', // Dein Player
          },
          items: [],
        };
        

        mediaplayer1.png mediaplayer2.png

        media.id – Beispiele

        • alexa2: alexa2.0.Echo-Devices.<DEINE_ID>
        • spotify: spotify-premium.0
        • mpd: mpd.0
        • sonos: sonos.0.root.192_168_178_209

        Hinweis: Gibst du nur den Adapternamen ohne Instanznummer an (z. B. spotify ), wird automatisch die kleinste vorhandene Instanz verwendet.


        Eigene PageItems

        items verhält sich wie bei cardGrid/cardEntities. Du kannst eigene PageItems hinzufügen. Adapter‑interne Templates sind auf cardMedia nicht anwendbar.


        Wichtige media‑Optionen (Kurzüberblick)

        Option Bedeutung Hinweise/Beispiele
        id Quelle/Player (Ordner/Device/Channel, kein State) Siehe Beispiele oben
        name Anzeigename Leer lassen → Name wird automatisch ermittelt
        colorMediaIcon Farbe für das Media‑Icon Verwende Farbnamen (z. B. Blue, MSRed)
        colorMediaArtist Farbe für die Artist‑Zeile s. Farbe
        colorMediaTitle Farbe für die Titel‑Zeile s. Farbe
        speakerList Liste erlaubter/angezeigter Lautsprecher Sonos/Spotify: Auswahl ohne Liste → keine Speaker. Andere: Whitelist (leer = alle)
        favoriteList Whitelist für Favoriten‑Playlists Leer oder nicht gesetzt = zeige alle
        playList Liste verfügbarer Playlists Alexa/Spotify: aus Adapter. Sonos: nutzergeneriert (Adapter kann sie nicht einlesen)
        minValue Minimale Lautstärke (Panel) Mapping auf Geräte‑Skala
        maxValue Maximale Lautstärke (Panel) Mapping auf Geräte‑Skala
        itemsColorOn On‑Farbe für einzelne Standard‑PageItems pro Item überschreibbar (s. unten)
        itemsColorOff Off‑Farbe für einzelne Standard‑PageItems s. unten
        deactivateDefaultItems Standard‑PageItems gezielt ausblenden s. unten + Beispiel

        Standard‑PageItems (für Farben/Deaktivieren)

        • trackList, speakerList, repeat, equalizer, playList, online, reminder, clock, favoriteList, crossfade

        Farben verwenden: An dieser Stelle bitte Farbnamen wie Blue, MSRed, HMIOn, HMIOff etc. benutzen – es ist auch möglich eigene zu verwenden {red:…, green:…, blue:…}‑JSON.
        (Nur in Beispielen unten werden Farbnamen gezeigt – es gibt keine separate Farbtabelle in dieser Doku.)


        Beispiele

        1) Farben pro Item überschreiben

        media: {
          id: 'spotify-premium.0',
          itemsColorOn: {
            playList: Blue,
            speakerList: MSRed,
          },
          itemsColorOff: {
            playList: Gray,
          },
        }
        

        2) Standard‑Items ausblenden

        media: {
          id: 'alexa2.0.Echo-Devices.DEINE_ID',
          deactivateDefaultItems: {
            trackList: true,
            equalizer: true,
            crossfade: true,
          },
        }
        

        3) Whitelist für Favoriten / eigene Playlists

        media: {
          id: 'sonos.0.root.192_168_178_209',
          favoriteList: ['Best of 90s', 'Morning Vibes'], // Whitelist – nur diese anzeigen
          playList: ['Living Room Mix', 'Party'],        // Sonos: nutzergeneriert
        }
        

        4) Lautstärke‑Range am Panel begrenzen

        media: {
          id: 'mpd.0',
          minValue: 5,   // Panel lässt nicht unter 5
          maxValue: 80,  // und nicht über 80
        }
        

        Hinweise & Verhalten

        • Der Adapter sammelt je nach Quelle automatisch passende States (Titel, Artist, isPlaying, Shuffle, Volume …) und erzeugt passende PageItems. Nicht jeder Adapter kann alles (z. B. Playlists).
        • Seek/Repeat/Crossfade/Shuffle/Speaker: Wenn die Quelle es anbietet, werden die Controls eingeblendet.
        • Logo‑Feld: Je nach Quelle kann das Logo z. B. Play/Pause toggeln oder ein Seek‑Popup öffnen.

        // Nur als Referenz – die Erklärung steht oben.
        // Farben bitte als Symbolnamen (z. B. Blue, MSRed) nutzen.
        
        type RGB = { r: number; g: number; b: number };
        
        type MediaOptions = {
          id: string;
          name?: string;
          colorMediaIcon?: RGB;
          colorMediaArtist?: RGB;
          colorMediaTitle?: RGB;
          speakerList?: string[];
          /** Whitelist von Favoriten; leer/fehlend → zeige alle */
          favoriteList?: string[];
          /** Playlisten: Alexa/Spotify aus Adapter; Sonos nutzergeneriert */
          playList?: string[];
          /** Lautstärke-Grenzen (Panel-Seite) */
          minValue?: number;
          maxValue?: number;
        
          /** On-/Off-Farben pro Default-Item */
          itemsColorOn?: Partial<Record<
            'trackList' | 'speakerList' | 'repeat' | 'equalizer' | 'playList' | 'online' | 'reminder' | 'crossfade' | 'favoriteList',
            RGB
          >>;
          itemsColorOff?: Partial<Record<
            'trackList' | 'speakerList' | 'repeat' | 'equalizer' | 'playList' | 'online' | 'reminder' | 'crossfade' | 'favoriteList',
            RGB
          >>;
        
          /** Default-Items ausblenden */
          deactivateDefaultItems?: Partial<Record<
            'trackList' | 'speakerList' | 'repeat' | 'equalizer' | 'playList' | 'online' | 'reminder' | 'clock' | 'favoriteList' | 'crossfade',
            boolean
          >>;
        };
        

        @TT-Tom @Armilar

        1 Reply Last reply Reply Quote 3
        • arteck
          arteck Developer Most Active @ticaki last edited by arteck

          @ticaki sagte in Betatest NSPanel-lovelace-ui v0.2.x:

          Hab schon länger keines mehr neu eingerichtet - aber seit Berry 10 kommt es bei mir kaum noch vor das ich Probleme habe.

          na ich guck mal

          ahhh das sieht doch besser aus... ohne probleme geklappt..

          saubere arbeit

          1 Reply Last reply Reply Quote 1
          • T
            ticaki Developer last edited by ticaki

            @TT-Tom @Armilar

            Anleitung: Verwendung von Templates in NSPanel PageItems

            Einleitung

            Templates bieten eine einfache Möglichkeit, häufig verwendete Anzeige- und Steuerungselemente in PageItems zu integrieren.
            Ein Template wird als Objekt im items-Array einer Seite eingebunden und stellt automatisch die passende Visualisierung und Logik bereit.

            Verwendung

            Ein Template wird über das Attribut native.template definiert.
            Über dpInit wird die Datenpunkt-ID angegeben, an die das Template gebunden ist.

            Beispiel für eine Uhr (digitale Anzeige):

            { native: { template: 'text.clock', dpInit: '' } },
            

            Beispiel für Batterieanzeige (niedriger Batteriestand, mit indicator.lowbat-Role):

            { native: { template: 'text.battery.low', dpInit: 'hm-rpc.1.0000DYXSDSDEF71111B7.0.LOW_BAT' } },
            

            Navigationserweiterung

            Alle Templates unterstützen zusätzlich die Attribute navigate und targetpage. Damit kann beim Auslösen eine andere Seite geöffnet werden.
            Falls notwendig, muss type: 'button' ergänzt werden.

            {
              navigate: true,
              targetpage: 'zielseite',
              native: { template: 'text.battery.low', dpInit: '', type: 'button' },
            },
            

            Beispiele

            Grid mit Template

            Templates können in cardGrid-Seiten genutzt werden:

            const subgrid1: PageType = {
              uniqueName: 'media2',
              heading: 'Grid 1',
              items: [
                { native: { template: 'text.battery.low', dpInit: '0_userdata.0' } },
              ],
              type: 'cardGrid',
              home: 'hidden',
              parent: 'cardGrid1',
              hiddenByTrigger: false,
            };
            

            Einschränkungen

            • Templates stehen in cardMedia-Seiten nicht zur Verfügung.
              Benutzerdefinierte PageItems können jedoch weiterhin genutzt werden.
              Bei cardMedia ist der Suchpfad für Datenpunkte fest vorgegeben und nicht veränderbar.

            • Bei Rollen muss die Schreibweise exakt stimmen (z. B. indicator.lowbat).

            Verfügbare Templates

            Die folgende Übersicht zeigt gängige Templates und ihre Einsatzbereiche:

            Template Beschreibung
            text.clock Digitale Uhr
            text.battery.low Batterieanzeige (niedrig)
            text.battery Batterieanzeige allgemein
            text.window.isOpen Fenster offen
            text.window.isClose Fenster geschlossen
            text.temperature Temperaturanzeige
            text.door.isOpen Tür offen
            text.gate.isOpen Tor offen
            text.motion Bewegungserkennung
            text.info Infotext
            text.warning Warnanzeige
            text.wlan WLAN-Status
            text.shutter.navigation Rollladensteuerung (Navigation)
            text.lock Schlosszustand
            text.isOnline Online-/Offline-Status

            Zusätzlich existieren Templates für spezielle Anwendungsfälle (z. B. text.sainlogic.windarrow, text.custom.windarrow, text.hmip.windcombo).

            Es gibt noch weitere Templates, die je nach Anwendungsfall genutzt werden können.
            Die Benennung orientiert sich am vorgesehenen Einsatzgebiet (z. B. button, light, shutter).

            Eine vollständige Übersicht kann bei Bedarf bereitgestellt werden.

            Erweiterte Anpassungen (für Experten)

            Templates können vollständig angepasst werden – etwa Farbe, Icon oder auch die zugehörigen Datenpunkte.
            Dies sollte jedoch nur von erfahrenen Anwendern und nach Rücksprache erfolgen, da solche Änderungen leicht zu Fehlern führen können.

            Ein Beispiel: Änderung der Farbe der Uhr (text.clock) :

            // Beispiel 1: Feste Farbe (const)
            native: {
                template: 'text.clock',
                dpInit: '',
                data: {
                    icon: {
                        true: {
                            color: { type: 'const', constVal: Red },
                        },
                    },
                },
            },
            
            // Beispiel 2: Dynamische Farbe aus einem State (RGB JSON-String)
            native: {
                template: 'text.battery.low',
                dpInit: 'hm-rpc.1.Battery-Device.0.LOW_BAT',
                data: {
                    icon: {
                        true: {
                            color: { type: 'state', dp: '0_userdata.0.visuals.batteryColorRGB' },
                        },
                    },
                },
            },
            
            // Beispiel 3: Dynamische Farbe per Trigger (RGB JSON-String)
            native: {
                template: 'text.battery.low',
                dpInit: 'hm-rpc.1.Battery-Device.0.LOW_BAT',
                data: {
                    icon: {
                        true: {
                            color: { type: 'triggered', dp: '0_userdata.0.visuals.triggeredBatteryColor' },
                        },
                    },
                },
            },
            

            Wichtige Hinweise zum Schluss

            1. Für den Block native existieren keine Typdefinitionen im Konfigurationsskript.
              Der Grund: Hier wird direkt die adapterinterne Konfiguration berührt, die aufwendig ist und sich teilweise noch ändern kann.

            2. Alle beschriebenen Möglichkeiten funktionieren grundsätzlich.
              Es kann jedoch vorkommen, dass bestimmte Optionen noch nicht im Konfigurationsskript eingebaut sind.
              Das Hinzufügen ist meist in wenigen Minuten erledigt – bitte einfach Bescheid sagen, wenn etwas fehlt oder nicht wie erwartet funktioniert.

            1 Reply Last reply Reply Quote 5
            • T
              ticaki Developer last edited by ticaki

              Noch kurze dazu:
              Ich hab die überwiegend für mich gemacht - und halt ein paar abwandlungen wie isOpen oder isClose - was hilft ein template für offene Fenster wenn es nur einen Datenpunkt gibt der true wird wenn es zu ist 🙂

              Da kann man für shelly, zigbee, zigbee2mqtt usw. weitere templates hinzufügen, so das man nur noch das gerät angibt und dann wird daraus ne steckdose, ein rolladen, ne lampe usw ohne Aliase anlegen zu müssen.

              Das mache ich aber nur auf Anfrage - keine Lust 100 Templates zu schreiben, die keiner braucht 🤣

              1 Reply Last reply Reply Quote 5
              • T
                ticaki Developer last edited by ticaki

                Wichtig

                Gestern abend gab es für ein paar Stunden eine "kaputte" Version des Adapters auf Github -> Panel reagiert merkwürdig und zeigt nix oder nur teile an. Falls ihr also gestern abend installiert habt, noch mal neu installieren bitte.

                1 Reply Last reply Reply Quote 0
                • H
                  holgerwolf last edited by holgerwolf

                  Wo kommt denn dieses "Schraubenschlüssel/Uhrzeit" Symbol zwischen Uhrzeit und Datum her?
                  4b2675bd-8814-4cd0-91dd-084737fead02-grafik.png

                  T Armilar 3 Replies Last reply Reply Quote 0
                  • T
                    ticaki Developer @holgerwolf last edited by

                    @holgerwolf
                    Ja da will ich jetzt schon seit 3 Tagen nachgucken und habs bis jetzt immer wieder vergessen - dann mache ich das mal 🙂 Da sollte eigentlich nur ein Symbol erscheinen wenn man nicht up to date ist, mit dem tft.

                    1 Reply Last reply Reply Quote 0
                    • Armilar
                      Armilar Most Active Forum Testing @holgerwolf last edited by

                      @holgerwolf

                      Immer dann wenn es etwas zum Aktualisieren gibt, erscheint das Symbol...

                      Kann im Adapter-Admin dann eine neue Scriptversion oder ein TFT Update, etc. sein

                      1 Reply Last reply Reply Quote 1
                      • T
                        ticaki Developer @holgerwolf last edited by ticaki

                        @holgerwolf
                        Deine Frage hat Armilar beantwortet - jedoch gibt es in dem Bezug auch einen Fehler durch Multitasking den ich hoffe ich jetzt behoben habe.

                        EDIT - jetzt hab ich ihn gefunden und behoben 🙂

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        843
                        Online

                        32.1k
                        Users

                        80.6k
                        Topics

                        1.3m
                        Posts

                        19
                        475
                        36142
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo