Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. jarvis v2.2.0 - just another remarkable vis

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

jarvis v2.2.0 - just another remarkable vis

Geplant Angeheftet Gesperrt Verschoben Tester
jarvismaterialmaterial uimaterialdesignvisvisualisierungvisualization
6.1k Beiträge 316 Kommentatoren 4.2m Aufrufe 273 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • VukoV Vuko

    @Zuki gerne!

    Das Multiroom-Audio basiert auf jede Menge Amazon Echos, konkret 2 x Echo Studio, 2 x Echo Show und 2 x Echo Spot (die NSA freut sich über so viele Daten ;-) ).

    Die Lautsprecher sind in Multiroom-Gruppen zusammengefasst, die kriegen dann eine eigene Device-ID im Alexa-Adapter. In jeder dieser Gruppen gibt es eine eigene Player-Section. D.h. wenn zwei Gruppen existieren, deren Lautsprecher sich nicht überschneiden, kann man mit den Echos auch zwei unterschiedliche Wiedergaben fahren. Wenn eine Wiedergabe läuft und ein Lautsprecher in zwei Gruppen drinnen ist und man aktiviert die zweite Gruppe, stoppt die Wiedergabe der ersten Gruppe.

    Bei mir gibts aktuell folgende Gruppen:

    • Überall - is klar ;-)
    • Cockpit - ist ein einzelner Echo Show
    • Wohnzimmer - sind alle Echos im Erdgeschoss (2 x Studio, 1 x Show, 1 x Spot)
    • Büro - ist ein einzelner Echo Show
    • Heimkino - sind die beiden Studios in Heimkino-Konfig. Damit war ich nicht so zufrieden, deshalb derzeit deaktiviert

    MultiroomAudio.jpg

    Das Konzept ist einfach: Das Widget steuert immer den gerade ausgewählten Player und zeigt die Daten und den Fortschritt dieses Players an.

    Das mache ich über eigene Datenpunkte

    userdata_multiroom.jpg

    Die Datenpunkte beschreiben immer den Status des aktuellen Players, diesen wähle ich über die Buttons links aus.

    Dazu gibt es ein elendslanges Skript im Hintergrund (ein programmiertechnisches Desaster, weil ganz viel redundanter Code), das für jede Gruppe auf jeden relevanten Datenpunkt (Miniart Url, Playerstatus, Zufallswiedergabe etc) einen Listener anlegt und wenn der Player gerade aktiv ist, dann die Änderungen an die userdata-Datenpunkte weitergibt.

    Der Listener fürs Roomswitching

    var deviceID="Unknown Device ID";
    
    on({id: '0_userdata.0.multiroom.Alexa_Player'/*Alexa Player*/, change: "ne"}, function (obj) {
    
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
    
      console.log("Player Value is: "+value)
    
      switch (value) {
          case 0: //Überall
               deviceID = "yourDeviceId";
               break;
          case 1: //Cockpit
               deviceID = "yourDeviceId";
               break;
          case 2: //Wohnzimmer
               deviceID = "yourDeviceId";
               break;
          case 3: //Büro
               deviceID = "yourDeviceId";
               break;
          case 4: //Heimkino
               deviceID = "yourDeviceId";
               break;
          default: 
               break;
      }
    
      setState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/, deviceID);
    });
    

    Beispiele für die Eventlistener für die einzelnen Felder...

    // Miniart
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.miniArtUrl'/*current mini Art*/,'0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_MiniartUrl'/*Alexa Player Actual MiniartUrl*/, getState('alexa2.0.Echo-Devices.YourDeviceId.Player.imageURL'/*current mini Art*/).val);
     }
    
    });
    
    ..
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.mediaProgressPercent','0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Percentage'/*Alexa Player Actual Percentage*/, getState('alexa2.0.Echo-Devices.YourDeviceId.Player.mediaProgressPercent').val);
     }
    
    });
    
    ...
    
    // Album
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.currentAlbum'/*current album*/,'0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Album', getState('alexa2.0.Echo-Devices.YourDeviceId.Player.currentAlbum').val);
     }
    
    });
    
    ..
    
    // Artist
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.currentArtist'/*current artist*/,'0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Artist', getState('alexa2.0.Echo-Devices.YourDeviceId.Player.currentArtist').val);
     }
    
    });
    
    ..
    
    // Title
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.currentTitle'/*current title*/,'0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Title', getState('alexa2.0.Echo-Devices.YourDeviceId.Player.currentTitle').val);
     }
    
    });
    
    ..
    
    // Actual Playing
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.currentState'/*currentState*/,'0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Playing', getState('alexa2.0.Echo-Devices.YourDeviceId.Player.currentState').val);
     }
    
    });
    
    ..
    
    // Actual Volume
    
    on({id: ['alexa2.0.Echo-Devices.YourDeviceId.Player.volume','0_userdata.0.multiroom.Alexa_Player_DeviceID'], change: "any"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
     
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId" &&
         getState('0_userdata.0.multiroom.Alexa_Player_Actual_Volume').val != getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val) {
         setState('0_userdata.0.multiroom.Alexa_Player_Actual_Volume', getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val);
     }
    
    });
    
    
    
    

    Wie man sieht muss man Listener für jede DeviceId, die beteiligt ist (YourDeviceId durch Deine jeweilige DeviceId ersetzen) anlegen, damit die Infos in die zentralen States übernommen werden.

    Für die Volumeregelung braucht es eine Reverseregelung, die nicht durch direkten Zugriff möglich ist:

    //Reverse Volume
    
    
    on({id: ['0_userdata.0.multiroom.Alexa_Player_Actual_Volume'], change: "ne"}, function (obj) {
    
     var value = obj.state.val;
     var oldValue = obj.oldState.val;
    
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         if (getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val != value) {
           setState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume', value);
         }
         
     }
    
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         if (getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val != value) {
           setState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume', value);
         }
         
     }
    
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         if (getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val != value) {
           setState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume', value);
         }
         
     }
    
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         if (getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val != value) {
           setState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume', value);
         }
         
     }
    
     if (getState('0_userdata.0.multiroom.Alexa_Player_DeviceID'/*Alexa Player DeviceID*/).val == "YourDeviceId") {
         if (getState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume').val != value) {
           setState('alexa2.0.Echo-Devices.YourDeviceId.Player.volume', value);
         }
         
     }
    
    });
    

    Für jede zu steuernde Device ID braucht es in dem Skript einen Eintrag.

    So nun zum Widget. Das Widget zeigt die meisten Datenpunkte direkt aus dem Player an indem einfach der Pfad zum Player-State manipuliert wird. Also z. B. alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.controlPause

    In der Leiste unten sind die wichtigsten Sender hinterlegt, sowie zwei Amazon Music Playlists. Durch Klick werden diese in der gerade selektierten Gruppe gestartet. Aktuell kann ich also nur diese Radiosender und die zwei Playlists über das Widget starten. Der Player zeigt aber natürlich auch alles was über die Alexa-App oder über Sprachsteuerung auf der jeweiligen Gruppe gestartet wurde.

    Als Startpunkt hier noch der Export des VIS-Views für das Widget:

    {
     "settings": {
       "style": {
         "background_class": ""
       },
       "theme": "redmond",
       "sizex": "",
       "sizey": "",
       "gridSize": "",
       "useBackground": false,
       "snapType": null
     },
     "widgets": {
       "e00001": {
         "tpl": "tplImage",
         "data": {
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "refreshInterval": "0",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "src": "{0_userdata.0.multiroom.Alexa_Player_Actual_MiniartUrl}",
           "stretch": false,
           "refreshOnWakeUp": true,
           "refreshOnViewChange": true,
           "allowUserInteractions": false,
           "refreshWithNoQuery": true
         },
         "style": {
           "left": "31%",
           "top": "0px",
           "width": "69%",
           "height": "150px",
           "z-index": 0
         },
         "widgetSet": "basic"
       },
       "e00002": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s8514",
           "image": "https://cdn-radiotime-logos.tunein.com/s8514q.png",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "-5px",
           "top": "279px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00003": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s8007",
           "image": "https://cdn-radiotime-logos.tunein.com/s8007q.png",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "40px",
           "top": "278px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00004": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s253666",
           "image": "https://cdn-profiles.tunein.com/s253666/images/logoq.png?t=1",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "85px",
           "top": "278px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00005": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s296257",
           "image": "https://cdn-profiles.tunein.com/s296257/images/logoq.png",
           "iconHeight": "40",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "red",
           "lockFilterGrayscale": "30",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1"
         },
         "style": {
           "left": "130px",
           "top": "278px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00006": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s8235",
           "image": "https://cdn-radiotime-logos.tunein.com/s8235q.png",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "176px",
           "top": "278px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00007": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.TuneIn-Station",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "s9211",
           "image": "https://cdn-profiles.tunein.com/s9211/images/logoq.png?t=155067",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "221px",
           "top": "278px",
           "width": "67px",
           "height": "66px",
           "z-index": 1
         },
         "widgetSet": "materialdesign"
       },
       "e00008": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Music-Provider.Amazon-Music-Playlist",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "Nicole",
           "image": "/vis.0/main/img/Nicole.png",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "266px",
           "top": "278px",
           "width": "67px",
           "height": "66px"
         },
         "widgetSet": "materialdesign"
       },
       "e00009": {
         "tpl": "tplVis-materialdesign-Icon-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Music-Provider.Amazon-Music-Playlist",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "vibrateOnMobilDevices": "50",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "Vuko",
           "image": "/vis.0/main/img/Vuko.png",
           "iconHeight": "40",
           "imageColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.icon_off;dark:vis-materialdesign.0.colors.dark.button.icon.icon_off; mode === \"true\" ? dark : light}",
           "colorBgFalse": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.background_off;dark:vis-materialdesign.0.colors.dark.button.icon.background_off; mode === \"true\" ? dark : light}",
           "colorPress": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.pressed;dark:vis-materialdesign.0.colors.dark.button.icon.pressed; mode === \"true\" ? dark : light}",
           "autoLockAfter": "10",
           "lockIconTop": "45",
           "lockIconLeft": "55",
           "lockIconSize": "20",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon; mode === \"true\" ? dark : light}",
           "lockIconBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.icon.lock_icon_background;dark:vis-materialdesign.0.colors.dark.button.icon.lock_icon_background; mode === \"true\" ? dark : light}",
           "lockBackgroundSizeFactor": "1",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "311px",
           "top": "278px",
           "width": "67px",
           "height": "66px"
         },
         "widgetSet": "materialdesign"
       },
       "e00010": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.controlShuffle",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "raised",
           "toggleType": "boolean",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "colorBgFalse": "#6b665e",
           "colorBgTrue": "#b7a98b",
           "image": "/icons-mfd-png/audio_shuffle.png",
           "iconHeight": "50",
           "labelWidth": "0",
           "valueOff": "false",
           "valueOn": "true",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "g_lock": false,
           "autoLockAfter": "10",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "lockFilterGrayscale": "30",
           "labelColorTrue": "",
           "colorPress": "#b7a98b"
         },
         "style": {
           "left": "77%",
           "top": "160px",
           "width": "22%",
           "height": "40px",
           "z-index": "20",
           "position": ""
         },
         "widgetSet": "materialdesign"
       },
       "e00011": {
         "tpl": "tplVis-materialdesign-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.controlNext",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": true,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "unelevated",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "true",
           "colorPress": "#b7a98b",
           "image": "/icons-mfd-png/audio_ff.png",
           "iconHeight": "55",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "autoLockAfter": "10",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "54%",
           "top": "160px",
           "width": "22%",
           "height": "40px",
           "background-color": "#b7a98b",
           "z-index": 21,
           "background": "#6b665e"
         },
         "widgetSet": "materialdesign"
       },
       "e00012": {
         "tpl": "tplValueString",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Title",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "html_prepend": "",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false
         },
         "style": {
           "left": "10px",
           "top": "256px",
           "width": "100%",
           "height": "42px",
           "color": "#c9c9c9",
           "z-index": 0,
           "font-size": "large",
           "text-align": "left"
         },
         "widgetSet": "basic"
       },
       "e00013": {
         "tpl": "tplValueString",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Artist",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "html_prepend": "",
           "html_append": "    {0_userdata.0.multiroom.Alexa_Player_Actual_Album}"
         },
         "style": {
           "left": "10px",
           "top": "220px",
           "width": "100%",
           "height": "36px",
           "color": "#c9c9c9",
           "z-index": "4",
           "font-size": "small"
         },
         "widgetSet": "basic"
       },
       "e00014": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "text",
           "toggleType": "value",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "valueOn": "2",
           "buttontext": "Wohnzimmer",
           "colorBgFalse": "",
           "colorBgTrue": "#b7a98b",
           "autoLockAfter": "10",
           "lockFilterGrayscale": "30",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "labelColorTrue": "#FFFFFF"
         },
         "style": {
           "left": "0px",
           "top": "60px",
           "width": "29%",
           "height": "30px",
           "text-align": "left",
           "z-index": 31,
           "color": "#c9c9c9"
         },
         "widgetSet": "materialdesign"
       },
       "e00015": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "text",
           "toggleType": "value",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "valueOn": "1",
           "buttontext": "Cockpit",
           "colorBgFalse": "",
           "colorBgTrue": "#b7a98b",
           "autoLockAfter": "10",
           "lockFilterGrayscale": "30",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "labelColorTrue": "#FFFFFF"
         },
         "style": {
           "left": "0px",
           "top": "30px",
           "width": "29%",
           "height": "30px",
           "text-align": "left",
           "z-index": 31,
           "color": "#c9c9c9"
         },
         "widgetSet": "materialdesign"
       },
       "e00016": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "text",
           "toggleType": "value",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "valueOn": "0",
           "buttontext": "Überall",
           "colorBgFalse": "",
           "colorBgTrue": "#b7a98b",
           "autoLockAfter": "10",
           "lockFilterGrayscale": "30",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "labelColorTrue": "#FFFFFF"
         },
         "style": {
           "left": "0px",
           "top": "0px",
           "width": "29%",
           "height": "30px",
           "text-align": "left",
           "z-index": 31,
           "color": "#c9c9c9"
         },
         "widgetSet": "materialdesign"
       },
       "e00017": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "text",
           "toggleType": "value",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "valueOn": "3",
           "buttontext": "Büro",
           "colorBgFalse": "",
           "colorBgTrue": "#b7a98b",
           "autoLockAfter": "10",
           "lockFilterGrayscale": "30",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "labelColorTrue": "#FFFFFF"
         },
         "style": {
           "left": "0px",
           "top": "90px",
           "width": "29%",
           "height": "30px",
           "text-align": "left",
           "z-index": 31,
           "color": "#c9c9c9"
         },
         "widgetSet": "materialdesign"
       },
       "e00018": {
         "tpl": "tplVis-materialdesign-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.controlPlay",
           "g_fixed": false,
           "g_visibility": true,
           "g_css_font_text": false,
           "g_css_background": true,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": "false",
           "visibility-groups-action": "hide",
           "buttonStyle": "unelevated",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "true",
           "colorPress": "#b7a98b",
           "image": "/icons-mfd-png/audio_play.png",
           "iconHeight": "55",
           "visibility-oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Playing",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "autoLockAfter": "10",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "31%",
           "top": "160px",
           "width": "22%",
           "height": "40px",
           "background-color": "#b7a98b",
           "z-index": 11,
           "background": "#6b665e"
         },
         "widgetSet": "materialdesign"
       },
       "e00019": {
         "tpl": "tplVis-materialdesign-Button-State",
         "data": {
           "oid": "alexa2.0.Echo-Devices.{0_userdata.0.multiroom.Alexa_Player_DeviceID}.Player.controlPause",
           "g_fixed": false,
           "g_visibility": true,
           "g_css_font_text": false,
           "g_css_background": true,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": "true",
           "visibility-groups-action": "hide",
           "buttonStyle": "unelevated",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "value": "true",
           "colorPress": "#b7a98b",
           "image": "/icons-mfd-png/audio_pause.png",
           "iconHeight": "55",
           "visibility-oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Playing",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "autoLockAfter": "10",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "lockFilterGrayscale": "30"
         },
         "style": {
           "left": "31%",
           "top": "160px",
           "width": "22%",
           "height": "40px",
           "background-color": "#b7a98b",
           "z-index": 11,
           "background": "#b7a98b"
         },
         "widgetSet": "materialdesign"
       },
       "e00020": {
         "tpl": "tplVis-materialdesign-Progress",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Percentage",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "showValueLabel": false,
           "valuePosition": "inside",
           "valueLabelWidth": "25",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "min": "0",
           "max": "100",
           "colorProgress": "#b7a98b",
           "progressRounded": "true",
           "colorProgressBackground": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.progress.track_background;dark:vis-materialdesign.0.colors.dark.progress.track_background; mode === \"true\" ? dark : light}",
           "colorOne": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.progress.track_condition1;dark:vis-materialdesign.0.colors.dark.progress.track_condition1; mode === \"true\" ? dark : light}",
           "colorTwo": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.progress.track_condition2;dark:vis-materialdesign.0.colors.dark.progress.track_condition2; mode === \"true\" ? dark : light}",
           "valueLabelStyle": "progressPercent",
           "textColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.progress.text;dark:vis-materialdesign.0.colors.dark.progress.text; mode === \"true\" ? dark : light}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.progress.text}",
           "textFontFamily": "{vis-materialdesign.0.fonts.progress.text}",
           "textAlign": "end"
         },
         "style": {
           "left": "31%",
           "top": "146px",
           "width": "69%",
           "height": "5px",
           "z-index": "55",
           "overflow-x": ""
         },
         "widgetSet": "materialdesign"
       },
       "e00021": {
         "tpl": "tplVis-materialdesign-Button-Toggle",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": true,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "buttonStyle": "text",
           "toggleType": "value",
           "stateIfNotTrueValue": "off",
           "vibrateOnMobilDevices": "50",
           "iconPosition": "left",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "valueOn": "4",
           "buttontext": "Heimkino",
           "colorBgFalse": "",
           "colorBgTrue": "#b7a98b",
           "autoLockAfter": "10",
           "lockFilterGrayscale": "30",
           "textFontFamily": "{vis-materialdesign.0.fonts.button.text}",
           "textFontSize": "{vis-materialdesign.0.fontSizes.button.text}",
           "lockIconColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.button.lock_icon;dark:vis-materialdesign.0.colors.dark.button.lock_icon; mode === \"true\" ? dark : light}",
           "labelColorTrue": "#FFFFFF"
         },
         "style": {
           "left": "0px",
           "top": "120px",
           "width": "29%",
           "height": "30px",
           "text-align": "left",
           "z-index": 31,
           "color": "#c9c9c9"
         },
         "widgetSet": "materialdesign"
       },
       "e00022": {
         "tpl": "tplVis-materialdesign-Vuetify-Slider",
         "data": {
           "oid": "0_userdata.0.multiroom.Alexa_Player_Actual_Volume",
           "g_fixed": false,
           "g_visibility": false,
           "g_css_font_text": false,
           "g_css_background": false,
           "g_css_shadow_padding": false,
           "g_css_border": false,
           "g_gestures": false,
           "g_signals": false,
           "g_last_change": false,
           "visibility-cond": "==",
           "visibility-val": 1,
           "visibility-groups-action": "hide",
           "orientation": "horizontal",
           "knobSize": "knobSmall",
           "step": "1",
           "vibrateOnMobilDevices": "50",
           "showTicks": "no",
           "tickTextColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.tick;dark:vis-materialdesign.0.colors.dark.slider.tick; mode === \"true\" ? dark : light}",
           "tickFontFamily": "{vis-materialdesign.0.fonts.slider.ticks}",
           "tickFontSize": "{vis-materialdesign.0.fontSizes.slider.ticks}",
           "tickColorBefore": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.tick_before;dark:vis-materialdesign.0.colors.dark.slider.tick_before; mode === \"true\" ? dark : light}",
           "tickColorAfter": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.tick_after;dark:vis-materialdesign.0.colors.dark.slider.tick_after; mode === \"true\" ? dark : light}",
           "colorBeforeThumb": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.control_before;dark:vis-materialdesign.0.colors.dark.slider.control_before; mode === \"true\" ? dark : light}",
           "colorThumb": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.control;dark:vis-materialdesign.0.colors.dark.slider.control; mode === \"true\" ? dark : light}",
           "colorAfterThumb": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.control_behind;dark:vis-materialdesign.0.colors.dark.slider.control_behind; mode === \"true\" ? dark : light}",
           "prepandTextColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.text_prepand;dark:vis-materialdesign.0.colors.dark.slider.text_prepand; mode === \"true\" ? dark : light}",
           "prepandTextFontSize": "{vis-materialdesign.0.fontSizes.slider.prepand}",
           "prepandTextFontFamily": "{vis-materialdesign.0.fonts.slider.prepand}",
           "showValueLabel": "true",
           "valueLabelStyle": "sliderValue",
           "valueFontFamily": "{vis-materialdesign.0.fonts.slider.value}",
           "valueFontSize": "{vis-materialdesign.0.fontSizes.slider.value}",
           "valueLabelColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.text;dark:vis-materialdesign.0.colors.dark.slider.text; mode === \"true\" ? dark : light}",
           "valueLabelWidth": "50",
           "showThumbLabel": "no",
           "thumbBackgroundColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.control_background;dark:vis-materialdesign.0.colors.dark.slider.control_background; mode === \"true\" ? dark : light}",
           "thumbFontColor": "{mode:vis-materialdesign.0.colors.darkTheme;light:vis-materialdesign.0.colors.light.slider.control_text;dark:vis-materialdesign.0.colors.dark.slider.control_text; mode === \"true\" ? dark : light}",
           "thumbFontSize": "{vis-materialdesign.0.fontSizes.slider.control}",
           "thumbFontFamily": "{vis-materialdesign.0.fonts.slider.control}",
           "signals-cond-0": "==",
           "signals-val-0": true,
           "signals-icon-0": "/vis/signals/lowbattery.png",
           "signals-icon-size-0": 0,
           "signals-blink-0": false,
           "signals-horz-0": 0,
           "signals-vert-0": 0,
           "signals-hide-edit-0": false,
           "signals-cond-1": "==",
           "signals-val-1": true,
           "signals-icon-1": "/vis/signals/lowbattery.png",
           "signals-icon-size-1": 0,
           "signals-blink-1": false,
           "signals-horz-1": 0,
           "signals-vert-1": 0,
           "signals-hide-edit-1": false,
           "signals-cond-2": "==",
           "signals-val-2": true,
           "signals-icon-2": "/vis/signals/lowbattery.png",
           "signals-icon-size-2": 0,
           "signals-blink-2": false,
           "signals-horz-2": 0,
           "signals-vert-2": 0,
           "signals-hide-edit-2": false,
           "lc-type": "last-change",
           "lc-is-interval": true,
           "lc-is-moment": false,
           "lc-format": "",
           "lc-position-vert": "top",
           "lc-position-horz": "right",
           "lc-offset-vert": 0,
           "lc-offset-horz": 0,
           "lc-font-size": "12px",
           "lc-font-family": "",
           "lc-font-style": "",
           "lc-bkg-color": "",
           "lc-color": "",
           "lc-border-width": "0",
           "lc-border-style": "",
           "lc-border-color": "",
           "lc-border-radius": 10,
           "lc-zindex": 0,
           "oid-working": "",
           "min": "1",
           "max": "100",
           "prepandText": ""
         },
         "style": {
           "left": "10px",
           "top": "160px",
           "width": "29%",
           "height": "30px"
         },
         "widgetSet": "materialdesign"
       }
     },
     "name": "jarvis_card_multiroom",
     "filterList": []
    }
    

    Und zum Abschluss noch das Widget eingebunden in Jarvis (könntest Du im Expertenmodus einfügen)...

                     {
                        "moduleConfig": {
                           "url": "https://youriobIP:8082/vis/index.html?jarvis_cards#jarvis_card_multiroom"
                        },
                        "devices": [],
                        "module": "iFrame",
                        "title": "Multiroom Audio",
                        "icon": "music",
                        "id": "d4e0db0c-58d9-4e02-9139-eff86cc518c2",
                        "minHeight": "400",
                        "index": 0
                     }
    
    

    Um das zu verwenden müsstest Du auch die IP anpassen, sowie das richtige Projekt und den Widgetnamen anpassen, analog wie Dus im VIS genannt hast.

    Was noch etwas hatschert gelöst ist, ist der Button für Play und Pause, das sind eigentlich. zwei, die je nach State angezeigt/versteckt werden. Das geht mit einem Button vermutlich auch.

    Das VIS-Widget benötigt die materialdesign Widgets installiert.

    T Offline
    T Offline
    Torrid
    schrieb am zuletzt editiert von
    #2231

    @Vuko
    Danke dir für diese sehr ausführliche Erklärung, danach hätte ich auch gefragt:grin:
    Könntest du noch ein zwei Worte zur Integration von "Bring" verlieren?:hugging_face:

    VukoV 1 Antwort Letzte Antwort
    0
    • U uwe72

      @mandragora

      zu Punkt 2. Geht schon. Muss einen Datenpunkt machen in iobroker. Dann diesen Datenpunkt in Jarvics als Gerät einbinden und als Trigger verwenden im Widget.

      Ich binde so einen Read-Only Datenpunkt ein:
      ba6a5a26-baf3-4687-9504-16ea9f270632-image.png
      Du müsstest den gleichen Datenpunkt noch unter trigger einfügen.

      zu Punkt 3:
      Ggf. mit Iframe Widget!?
      <iframe src="videos/1.mp4" width="540" height="310"></iframe>

      M Offline
      M Offline
      mandragora
      schrieb am zuletzt editiert von mandragora
      #2232

      @uwe72

      Hallo uwe72
      Das mit dem iframe hat wunderbar funktioniert.
      Aber leider startet mir das Video immer automatisch wenn ich mal einen refresh mache.
      Gibt es da eine Möglichkeit ein Video erst zu starten wenn man draufklickt ?
      Ich hab bei den ifram Einstellungen da leider nichts gefunden.

      Würde mich freuen wenn du mir das vielleicht erklären könntest.

      zu Punkt 3:
      Ggf. mit Iframe Widget!?
      <iframe src="videos/1.mp4" width="540" height="310"></iframe>
      
      
      

      Vielen Dank
      LG
      mandragora

      ioBroker auf Synology DS218+ (Docker); VIS: 2x8" Tablets; Homematic CCU2 und Komponenten; Echo DOT; Unifi Ap-Ac Pro; Landroid S; Jovision IPCams

      1 Antwort Letzte Antwort
      0
      • m4.tzeM m4.tze

        @Zefau said in jarvis - just another remarkable vis:

        @m4-tze sagte in jarvis - just another remarkable vis:

        Habe ich hier irgendwo einen Denkfehler? Oder muss beim State ein anderes Format rein?

        Du musst vor dem Style noch den Wert der Datenpunkts angeben, der formatiert werden soll, siehe https://github.com/Zefau/ioBroker.jarvis/wiki/de-Devices#datenpunkt--icon-stil

        Alternativ geht auch { "default": ... } (... entspricht deinem Stil)

        Perfekt! So einfach kann es manchmal sein.
        Vielen Dank für die schnelle Hilfe :+1:

        L Offline
        L Offline
        loi83
        schrieb am zuletzt editiert von loi83
        #2233

        @m4-tze sagte in jarvis v2.0.0 - just another remarkable vis:

        @Zefau said in jarvis - just another remarkable vis:

        @m4-tze sagte in jarvis - just another remarkable vis:

        Habe ich hier irgendwo einen Denkfehler? Oder muss beim State ein anderes Format rein?

        Du musst vor dem Style noch den Wert der Datenpunkts angeben, der formatiert werden soll, siehe https://github.com/Zefau/ioBroker.jarvis/wiki/de-Devices#datenpunkt--icon-stil

        Alternativ geht auch { "default": ... } (... entspricht deinem Stil)

        Perfekt! So einfach kann es manchmal sein.
        Vielen Dank für die schnelle Hilfe :+1:

        @m4-tze wie hast du es nun gelöst? Wenn ich in dem Icon Stil was anpasse, ändert sich nichts.

        Gruß Michi

        1 Antwort Letzte Antwort
        0
        • ZefauZ Zefau

          jarvis - just another remarkable vis

          Was ist jarvis?

          jarvis ist eine Material Design Visualisierung, die auf Material UI basiert. jarvis gibt eine Struktur und Module vor, die zur Visualisierung genutzt werden, aber sehr flexibel konfiguriert werden können.

          jarvis ist responsive und passt sich der Größe des Screens an.

          Das Layout ist flexibel konfigurierbar. Es können optional (beliebig viele) Tabs verwendet werden. Jeder Tab kann entweder fullscreen sein oder beliebig viele columns haben, die die einzelnen modules in flexibler Reihenfolge beinhalten.

          Jedes Modul hat spezielle Konfigurationsmöglichkeiten (siehe Wiki je Modul).

          Warum jarvis?

          jarvis ist weitaus weniger flexibel als ioBroker.vis, aber bietet dafür ein standardisiertes Design, um schnell eine Visualisierung zusammenzustellen. Wer besonders spezifische Anforderungen hat, sollte (weiterhin) ioBroker.vis verwendet.

          Mehr Informationen

          Mehr Informationen - insbesondere zur Konfiguration - gibt es im Wiki.

          Gestalte mit und stimme ab

          Bitte stimmt für eure gewünschten Feature Requests ab: Nutzt dazu die Emoticon auf Github, um für eure favorisierten Feature Requests abzustimmen:

          https://forum.iobroker.net/assets/uploads/files/1606215967286-1c3e566f-8d54-4f19-8948-eb8833c5b15f-image.png

          Jeder Emoticon zählt gleich. Bitte stimmt nicht für alle / zu viele Feature Requests ab, sonst gibt es am Ende keine großen Unterschiede mehr.

          Die Reihenfolge nach abgegebenen Stimmen seht ihr hier: Übersicht der Feature Requests nach Stimmen

          Siehe https://forum.iobroker.net/post/526170


          Impressionen

          Die Konfiguration von Modulen kann frei angeordnet werden.
          Nachfolgend einige Impressionen / Beispiele:

          Users

          @braindead: https://forum.iobroker.net/post/490283
          @JackDaniel: https://forum.iobroker.net/post/490928
          @Mooo: https://forum.iobroker.net/post/493843

          Screencast / Video

          play.png

          Screenshots

          Beispiel: Dashboard (3 columns)

          Dashboard.png

          Beispiel: Karte (Vollbild)

          Map.png

          Beispiel: Statistiken (2 columns)

          Statistik.png

          Beispiel: Status (3 columns, davon 2 leer)

          Status.png

          Module

          Die folgenden Module sind aktuell (Februar 2020) verfügbar und können frei konfiguriert werden. Eine aktuelle Liste der Module ist im Wiki zu finden.

          AdapterStatus

          AdapterStatus

          Chart

          Chart

          DateTime

          DateTime1

          Map

          Map

          StateList

          StateList1.png
          StateList2.png
          StateList3.png
          StateList4.png

          StateListHorizontal

          StateListHorizontal1.png


          Konfiguration / erste Schritte

          siehe Wiki auf Github


          Ausblick / Roadmap

          Ihr habt Wünsche? Bitte legt ein Issue auf Github an.

          MEILENSTEINE / ROADMAPs

          siehe https://github.com/Zefau/ioBroker.jarvis/milestones

          nächste Release

          • ROADMAP v2.1.0
          • ROADMAP v3.0.0
          C Offline
          C Offline
          CAVE_news
          schrieb am zuletzt editiert von
          #2234

          @Zefau Toller Adapter. Mega VIS. Ich liebe es. Sehr schön zu konfigurieren. Ich habe ein Problem:

          1c8935fe-92cc-40bc-a148-a35a1267b59d-image.png

          Es steht immer "aus %" Egal welchen Wert ich einstelle. Was mache ich falsch?

          ZefauZ 1 Antwort Letzte Antwort
          0
          • C CAVE_news

            @Zefau Toller Adapter. Mega VIS. Ich liebe es. Sehr schön zu konfigurieren. Ich habe ein Problem:

            1c8935fe-92cc-40bc-a148-a35a1267b59d-image.png

            Es steht immer "aus %" Egal welchen Wert ich einstelle. Was mache ich falsch?

            ZefauZ Offline
            ZefauZ Offline
            Zefau
            schrieb am zuletzt editiert von
            #2235

            @CAVE_news kannst du einen Screenshot der Geräte Konfiguration posten?

            Meine Adapter: https://zefau.github.io/iobroker/

            C 1 Antwort Letzte Antwort
            0
            • ZefauZ Zefau

              @CAVE_news kannst du einen Screenshot der Geräte Konfiguration posten?

              C Offline
              C Offline
              CAVE_news
              schrieb am zuletzt editiert von
              #2236

              @Zefau Langt der Part?

              0852a994-b814-4a68-a937-0404a95a0186-image.png

              ZefauZ 1 Antwort Letzte Antwort
              0
              • ZefauZ Zefau

                jarvis - just another remarkable vis

                Was ist jarvis?

                jarvis ist eine Material Design Visualisierung, die auf Material UI basiert. jarvis gibt eine Struktur und Module vor, die zur Visualisierung genutzt werden, aber sehr flexibel konfiguriert werden können.

                jarvis ist responsive und passt sich der Größe des Screens an.

                Das Layout ist flexibel konfigurierbar. Es können optional (beliebig viele) Tabs verwendet werden. Jeder Tab kann entweder fullscreen sein oder beliebig viele columns haben, die die einzelnen modules in flexibler Reihenfolge beinhalten.

                Jedes Modul hat spezielle Konfigurationsmöglichkeiten (siehe Wiki je Modul).

                Warum jarvis?

                jarvis ist weitaus weniger flexibel als ioBroker.vis, aber bietet dafür ein standardisiertes Design, um schnell eine Visualisierung zusammenzustellen. Wer besonders spezifische Anforderungen hat, sollte (weiterhin) ioBroker.vis verwendet.

                Mehr Informationen

                Mehr Informationen - insbesondere zur Konfiguration - gibt es im Wiki.

                Gestalte mit und stimme ab

                Bitte stimmt für eure gewünschten Feature Requests ab: Nutzt dazu die Emoticon auf Github, um für eure favorisierten Feature Requests abzustimmen:

                https://forum.iobroker.net/assets/uploads/files/1606215967286-1c3e566f-8d54-4f19-8948-eb8833c5b15f-image.png

                Jeder Emoticon zählt gleich. Bitte stimmt nicht für alle / zu viele Feature Requests ab, sonst gibt es am Ende keine großen Unterschiede mehr.

                Die Reihenfolge nach abgegebenen Stimmen seht ihr hier: Übersicht der Feature Requests nach Stimmen

                Siehe https://forum.iobroker.net/post/526170


                Impressionen

                Die Konfiguration von Modulen kann frei angeordnet werden.
                Nachfolgend einige Impressionen / Beispiele:

                Users

                @braindead: https://forum.iobroker.net/post/490283
                @JackDaniel: https://forum.iobroker.net/post/490928
                @Mooo: https://forum.iobroker.net/post/493843

                Screencast / Video

                play.png

                Screenshots

                Beispiel: Dashboard (3 columns)

                Dashboard.png

                Beispiel: Karte (Vollbild)

                Map.png

                Beispiel: Statistiken (2 columns)

                Statistik.png

                Beispiel: Status (3 columns, davon 2 leer)

                Status.png

                Module

                Die folgenden Module sind aktuell (Februar 2020) verfügbar und können frei konfiguriert werden. Eine aktuelle Liste der Module ist im Wiki zu finden.

                AdapterStatus

                AdapterStatus

                Chart

                Chart

                DateTime

                DateTime1

                Map

                Map

                StateList

                StateList1.png
                StateList2.png
                StateList3.png
                StateList4.png

                StateListHorizontal

                StateListHorizontal1.png


                Konfiguration / erste Schritte

                siehe Wiki auf Github


                Ausblick / Roadmap

                Ihr habt Wünsche? Bitte legt ein Issue auf Github an.

                MEILENSTEINE / ROADMAPs

                siehe https://github.com/Zefau/ioBroker.jarvis/milestones

                nächste Release

                • ROADMAP v2.1.0
                • ROADMAP v3.0.0
                sigi234S Online
                sigi234S Online
                sigi234
                Forum Testing Most Active
                schrieb am zuletzt editiert von sigi234
                #2237

                @Zefau

                Hallo, kann man eigentlich Jarvis in einen anderen Host importieren?

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Immer Daten sichern!

                Stephan SchleichS 1 Antwort Letzte Antwort
                0
                • sigi234S sigi234

                  @Zefau

                  Hallo, kann man eigentlich Jarvis in einen anderen Host importieren?

                  Stephan SchleichS Offline
                  Stephan SchleichS Offline
                  Stephan Schleich
                  schrieb am zuletzt editiert von
                  #2238

                  @sigi234 Objektbaum exportieren und am anderen importieren

                  sigi234S 1 Antwort Letzte Antwort
                  0
                  • Stephan SchleichS Stephan Schleich

                    @sigi234 Objektbaum exportieren und am anderen importieren

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #2239

                    @Stephan-Schleich sagte in jarvis v2.0.0 - just another remarkable vis:

                    Objektbaum

                    ?

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Immer Daten sichern!

                    K 1 Antwort Letzte Antwort
                    0
                    • sigi234S sigi234

                      @Stephan-Schleich sagte in jarvis v2.0.0 - just another remarkable vis:

                      Objektbaum

                      ?

                      K Offline
                      K Offline
                      Kueppert
                      schrieb am zuletzt editiert von
                      #2240

                      @sigi234 da lernt auch der Sigi noch was dazu hahaha.
                      PS: keine Ahnung, wie das geht ^^

                      UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                      sigi234S 1 Antwort Letzte Antwort
                      0
                      • K Kueppert

                        @sigi234 da lernt auch der Sigi noch was dazu hahaha.
                        PS: keine Ahnung, wie das geht ^^

                        sigi234S Online
                        sigi234S Online
                        sigi234
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von sigi234
                        #2241

                        @Kueppert sagte in jarvis v2.0.0 - just another remarkable vis:

                        @sigi234 da lernt auch der Sigi noch was dazu hahaha.
                        PS: keine Ahnung, wie das geht ^^

                        Ja, wie wahr, man lernt nie aus. Aber bin schon drann. Denke es geht mit Backups im Adapter. :grinning:

                        Nein geht so nicht.

                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Immer Daten sichern!

                        Stephan SchleichS 1 Antwort Letzte Antwort
                        0
                        • sigi234S sigi234

                          @Kueppert sagte in jarvis v2.0.0 - just another remarkable vis:

                          @sigi234 da lernt auch der Sigi noch was dazu hahaha.
                          PS: keine Ahnung, wie das geht ^^

                          Ja, wie wahr, man lernt nie aus. Aber bin schon drann. Denke es geht mit Backups im Adapter. :grinning:

                          Nein geht so nicht.

                          Stephan SchleichS Offline
                          Stephan SchleichS Offline
                          Stephan Schleich
                          schrieb am zuletzt editiert von Stephan Schleich
                          #2242

                          @sigi234 Kannst doch den zweig in'n json speichern und dann wieder am neuen host importieren
                          2b93dc9b-ffdf-4965-bc18-a6405c431937-image.png

                          sigi234S 1 Antwort Letzte Antwort
                          0
                          • Stephan SchleichS Stephan Schleich

                            @sigi234 Kannst doch den zweig in'n json speichern und dann wieder am neuen host importieren
                            2b93dc9b-ffdf-4965-bc18-a6405c431937-image.png

                            sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #2243

                            @Stephan-Schleich sagte in jarvis v2.0.0 - just another remarkable vis:

                            @sigi234 Kannst doch den zweig in'n json speichern und dann wieder am neuen host importieren
                            2b93dc9b-ffdf-4965-bc18-a6405c431937-image.png

                            Das funktioniert nicht.

                            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Immer Daten sichern!

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              mirK
                              schrieb am zuletzt editiert von
                              #2244

                              gibt es eine Möglichkeit die Farbe (hier der Gelbe Stop Button) zu ändern ? ich habe mich tot gesucht und schon alles mögliche ausprobiert :-(

                              3b28d31a-86a2-435a-a81f-bc3a5ff65388-image.png

                              W 1 Antwort Letzte Antwort
                              0
                              • M mirK

                                gibt es eine Möglichkeit die Farbe (hier der Gelbe Stop Button) zu ändern ? ich habe mich tot gesucht und schon alles mögliche ausprobiert :-(

                                3b28d31a-86a2-435a-a81f-bc3a5ff65388-image.png

                                W Offline
                                W Offline
                                WW1983
                                schrieb am zuletzt editiert von WW1983
                                #2245

                                @mirK
                                Ja. Ist die sekundäre Farbe. Die musst du anpassen

                                Screenshot 2020-12-15 180030.png

                                1 Antwort Letzte Antwort
                                0
                                • W Offline
                                  W Offline
                                  WW1983
                                  schrieb am zuletzt editiert von
                                  #2246

                                  Hat jemand zufällig auch Jarvis in 24/7 Betrieb? Hat jemand auch das Problem, dass Jarvis nach einer unbestimmten Zeit einfriert und nichts mehr reagiert?

                                  Weiß aktuell nicht ob es an Jarvis, oder an meinem iPad liegt.

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • ZefauZ Zefau

                                    v2.1.0-beta.1:

                                    https://forum.iobroker.net/post/531950

                                    v2.1.0-beta.3

                                    • Drag&Drop in der Geräte-Konfiguration sowie in der Layout- und Widget-Konfiguration (#67)
                                    • Verschieben (durch Drag&Drop) der Widgets zu anderen Spalten (auch Tab-übergreifend) in der Layout-Konfiguration (#175)
                                    ZefauZ Offline
                                    ZefauZ Offline
                                    Zefau
                                    schrieb am zuletzt editiert von
                                    #2247

                                    v2.1.0-beta.1:

                                    https://forum.iobroker.net/post/531950

                                    v2.1.0-beta.3

                                    https://forum.iobroker.net/post/535058

                                    v2.1.0-beta.5

                                    • JSON Editor für alle Eingabefelder in der Geräte-Konfiguration (#98)
                                    • Objektauswahl für Datenpunkte (Anzeige und Trigger) (#321)

                                    Meine Adapter: https://zefau.github.io/iobroker/

                                    M 1 Antwort Letzte Antwort
                                    0
                                    • C CAVE_news

                                      @Zefau Langt der Part?

                                      0852a994-b814-4a68-a937-0404a95a0186-image.png

                                      ZefauZ Offline
                                      ZefauZ Offline
                                      Zefau
                                      schrieb am zuletzt editiert von
                                      #2248

                                      @CAVE_news sagte in jarvis v2.0.0 - just another remarkable vis:

                                      Langt der Part?

                                      Du musst bei Einheit noch das JSON so ergänzen, dass er die Einheit raus nimmt.

                                      {
                                         "default":"%",
                                         "0":""
                                      }
                                      

                                      Meine Adapter: https://zefau.github.io/iobroker/

                                      1 Antwort Letzte Antwort
                                      0
                                      • ZefauZ Zefau

                                        v2.1.0-beta.1:

                                        https://forum.iobroker.net/post/531950

                                        v2.1.0-beta.3

                                        https://forum.iobroker.net/post/535058

                                        v2.1.0-beta.5

                                        • JSON Editor für alle Eingabefelder in der Geräte-Konfiguration (#98)
                                        • Objektauswahl für Datenpunkte (Anzeige und Trigger) (#321)
                                        M Offline
                                        M Offline
                                        MCU
                                        schrieb am zuletzt editiert von MCU
                                        #2249

                                        @Zefau sagte in jarvis v2.0.0 - just another remarkable vis:

                                        Objektauswahl für Datenpunkte

                                        Prima. Echt Klasse. Kann man das auch nach Oben ziehen:
                                        3254624e-0bf3-4d17-b914-e85a258a39e8-image.png

                                        Denn wenn man ein neues Geräte anlegt, möchte man eigentlich die vorhandenen Datenpunkte auswählen und den entsprechenden Namen von dem Objekt nehmen. Damit könnte man dann auch die Datenpunkte (Anzeige und Trigger) automatisch füllen?

                                        v2.1.0 Beta 5
                                        Widget-Konfiguration Body-Element sehr schmal:

                                        b4779082-d98a-4a3d-996a-d28ecd5f4858-image.png

                                        Filterung bei Geräten:
                                        Exakte Schreibweise -> OK
                                        groß-/kleinschreibung nicht beachtet -> Kein Ergebnis
                                        ergänzende Zeichen "*" ->Kein Ergebnis


                                        14bb4ec4-a279-4c46-ab18-be6a4039fe51-image.png

                                        8a190b78-24d6-40aa-a63f-9571cdfb802d-image.png

                                        2e3b232f-3e39-4b92-abfd-58e49eda5da7-image.png

                                        JSON-Editor:

                                        53fdd135-1669-4524-8a4a-672bb5f9b0e2-image.png
                                        Vielleicht ein Beispiel passend zum Typ der Eingabe neben "Text" oder eine "graue Zeile" ->
                                        Beispiel: {"1":"Weiss","2":"Schwarz"}
                                        unter der Blauen Zeile?

                                        InputAction nicht als Trigger-Element im Widget, verursacht schlecht Darstellung in der Ansicht:


                                        b41670f7-b7e7-45ab-bfa9-a858702cdbc1-image.png

                                        4b880728-64a4-4630-9d75-30f4f5559cdd-image.png

                                        cb2a724e-d408-4b9c-8b8c-03ca66094bea-image.png

                                        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                                        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                                        ZefauZ 1 Antwort Letzte Antwort
                                        0
                                        • T Torrid

                                          @Vuko
                                          Danke dir für diese sehr ausführliche Erklärung, danach hätte ich auch gefragt:grin:
                                          Könntest du noch ein zwei Worte zur Integration von "Bring" verlieren?:hugging_face:

                                          VukoV Offline
                                          VukoV Offline
                                          Vuko
                                          schrieb am zuletzt editiert von
                                          #2250

                                          @Torrid Das Bring-Widget ist ganz einfach. Zuerst muss der Bring-Adapter installiert sein, sobald der da ist, gibts in der VIS auch das Bring-Widget. Das hab ich zu einem VIS-View hinzugefügt und mit 100%/100% gesized. Die Größe der Kacheln kann man einstellen, die hab ich etwas reduziert. Leider kann man die Farbe (weiss) der Eingabeschrift für ein neues Item nicht ändern, deshalb hab ich so einen grauen Hintergrund hinzugefügt. Mit CSS kann man das vermutlich zielgerichtet umstellen. Aja. und die Bringliste muss man noch aus dem Objektbaum auswählen. Den VIS-View hab ich dann wieder über iFrame in Jarvis eingebunden.

                                          Hier noch der exportierte View...

                                          {
                                           "settings": {
                                             "style": {
                                               "background-color": "#f0f0f0"
                                             },
                                             "theme": "redmond",
                                             "sizex": "",
                                             "sizey": "",
                                             "gridSize": "",
                                             "useBackground": false
                                           },
                                           "widgets": {
                                             "e00001": {
                                               "tpl": "tplBringShoppingList",
                                               "data": {
                                                 "g_fixed": false,
                                                 "g_visibility": false,
                                                 "g_css_font_text": false,
                                                 "g_css_background": false,
                                                 "g_css_shadow_padding": false,
                                                 "g_css_border": false,
                                                 "g_gestures": false,
                                                 "g_signals": false,
                                                 "g_last_change": false,
                                                 "visibility-cond": "==",
                                                 "visibility-val": 1,
                                                 "visibility-groups-action": "hide",
                                                 "max-width-item": "84",
                                                 "signals-cond-0": "==",
                                                 "signals-val-0": true,
                                                 "signals-icon-0": "/vis/signals/lowbattery.png",
                                                 "signals-icon-size-0": 0,
                                                 "signals-blink-0": false,
                                                 "signals-horz-0": 0,
                                                 "signals-vert-0": 0,
                                                 "signals-hide-edit-0": false,
                                                 "signals-cond-1": "==",
                                                 "signals-val-1": true,
                                                 "signals-icon-1": "/vis/signals/lowbattery.png",
                                                 "signals-icon-size-1": 0,
                                                 "signals-blink-1": false,
                                                 "signals-horz-1": 0,
                                                 "signals-vert-1": 0,
                                                 "signals-hide-edit-1": false,
                                                 "signals-cond-2": "==",
                                                 "signals-val-2": true,
                                                 "signals-icon-2": "/vis/signals/lowbattery.png",
                                                 "signals-icon-size-2": 0,
                                                 "signals-blink-2": false,
                                                 "signals-horz-2": 0,
                                                 "signals-vert-2": 0,
                                                 "signals-hide-edit-2": false,
                                                 "lc-type": "last-change",
                                                 "lc-is-interval": true,
                                                 "lc-is-moment": false,
                                                 "lc-format": "",
                                                 "lc-position-vert": "top",
                                                 "lc-position-horz": "right",
                                                 "lc-offset-vert": 0,
                                                 "lc-offset-horz": 0,
                                                 "lc-font-size": "12px",
                                                 "lc-font-family": "",
                                                 "lc-font-style": "",
                                                 "lc-bkg-color": "",
                                                 "lc-color": "",
                                                 "lc-border-width": "0",
                                                 "lc-border-style": "",
                                                 "lc-border-color": "",
                                                 "lc-border-radius": 10,
                                                 "lc-zindex": 0,
                                                 "oid-list": "bring.0.f0bacd77-ca30-4e72-a438-45cf430402af"
                                               },
                                               "style": {
                                                 "left": "0px",
                                                 "top": "0px",
                                                 "width": "100%",
                                                 "position": "",
                                                 "height": "100%",
                                                 "z-index": ""
                                               },
                                               "widgetSet": "bring"
                                             }
                                           },
                                           "name": "jarvis_card_bring",
                                           "filterList": []
                                          }
                                          

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          400

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe