Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Automatischer View-Wechsel u. Slideshow

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    12
    1
    134

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

[Vorlage] Automatischer View-Wechsel u. Slideshow

Scheduled Pinned Locked Moved JavaScript
143 Posts 22 Posters 24.9k Views 48 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Andre R.
    // *******************************************************************************************************
    
    //
    
    // Seitenwechsel-Script
    
    // Autor: Peoples
    
    //
    
    //
    
    // Funktionen:  1. Bei Viewwechsel wird geprüft ob eine andere View als Home gewählt ist
    
    //                 wenn das der Fall ist wird ein Timer gesetzt nach dessen Ablauf wieder zurück
    
    //                 auf Home gewechselt wird.
    
    //              2. Wenn die Alarmanlage eingeschalten ist wird die PinEingabeView angezeigt.
    
    //              3. Bei SystemView läuft kein Timer
    
    //
    
    //
    
    // v2.0.0 - 30.09.2018  Neue Version - Grundaufbau geändert
    
    // v2.0.1 - 09.03.2019  Slideshow aller gewünschen Views integriert
    
    // v2.0.2 - 23.03.2019  Zusatzfunktion zum steuern der Sonderdatenpunkte eingebaut
    
    // v2.0.3 - 28.03.2019  Zahlenwerte durch parseInt konvertiert
    
    // *******************************************************************************************************
    
     
    
    // -----------------------------------------------------------------------------
    
    // allgemeine Variablen
    
    // -----------------------------------------------------------------------------
    
    var logging = true;                                        // Logging on/off
    
    var instanz = 'javascript.0';   instanz = instanz + '.';    // 
    
                                                                //
    
    var pfad0 =   'System.Iobroker';      pfad0 = pfad0 + '.';  // Pfad innerhalb der Instanz 
    
    var timerTout;
    
    var timerAutoSV;
    
    var DefaultView = 'Home';                                   // Standard-View
    
     
    // Aus Datenpunkt vis.0.control.data entnehmen 
    
    // der Teil vor dem Slash ist der Projektname:
    
    // "Wandtablet/Home"
    
    var project = "main";     project = project + '/';    // Name des Vis-Projekts
    
     
    
    var DisplayTime = '60';    // Darstellungszeit der Views bei Autowechsel
    
    var startView = 1;  // Startview bei Autowechsel
    
     
    
    //Alle vorhandenen Views
    
    var VisViews = [
    
        
    
            /* View Name */                  /* Anzeigezeit */   /* In Slideshow anzeigen? */
    
     
        {'view':'Spotify',                      'SWSec':60,             'ShowIAV':'yes'},
        
        {'view':'Musik',                        'SWSec':60,             'ShowIAV':'yes'},
        
        {'view':'Sonos_Bad',                      'SWSec':60,              'ShowIAV':'yes'},
    
        {'view':'Sonos_Schlaf',                   'SWSec':60,            'ShowIAV':'yes'},
        
        {'view':'Multimedia',                   'SWSec':60,             'ShowIAV':'yes'},
        
        {'view':'Netzwerk',                     'SWSec':60,             'ShowIAV':'yes'},
    
        {'view':'Kameras',                       'SWSec':90,             'ShowIAV':'yes'},
      
        {'view':'Saugi',                          'SWSec':60,            'ShowIAV':'yes'},
    
        {'view':'Pflanzen',                       'SWSec':60,            'ShowIAV':'yes'},
        
        {'view':'Energie',                        'SWSec':60,            'ShowIAV':'yes'},
        
        {'view':'Statistik',                      'SWSec':60,             'ShowIAV':'yes'},
        
        {'view':'3D_Drucker',                    'SWSec':180,            'ShowIAV':'yes'},
        
        {'view':'1_Proxmox_stats',               'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'2_IObroker_stats',              'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'3_NAS_stats',                   'SWSec':0,            'ShowIAV':'no'},
    
        {'view':'4_Fritzbox4040_stats',          'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'5_MotionEye_stats',              'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'6_Fritzbox4020_stats',           'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'test',                           'SWSec':0,            'ShowIAV':'no'}
    
    ];
    
    // -----------------------------------------------------------------------------
    
    // Objekte
    
    // -----------------------------------------------------------------------------
    
    // Objekt für Alle Automatischen Abläufe
    
    createState(pfad0 + 'Timer_View_Switch',  {def: '0',type: 'number',name: 'Timer für Wechsel auf DefaultView'});
    
    createState(pfad0 + 'Auto_Switch_View',  {def: 'true',type: 'boolean',name: 'Alle Views durchlaufen lassen'});
    
     
    
     
    
    if(logging)log("Total "+Object.keys(VisViews).length+" entries");
    
     
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum automatischen Viewwechsel nach Timerablauf                  #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function switchToHomeView() {
    
            timerTout = setTimeout(function () {
    
                var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
    
                if (timer > 1) {
    
                    setState(pfad0 + 'Timer_View_Switch',timer - 1);
    
                    switchToHomeView();
    
                }
    
                else{
    
                    setState(pfad0 + 'Timer_View_Switch', 0);
    
                    setState('vis.0.control.instance', 'FFFFFFFF'); //getState("vis.0.control.instance").val/*Control vis*/);
    
                    setState('vis.0.control.data', project + DefaultView);
    
                    setState('vis.0.control.command', 'changeView');
    
                }
    
            }, 1000);
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum automatisch umlaufenden Viewwechsel                         #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function autoSwitchView(dspTime,i) {
    
            if(i === '') i = 0;
    
            log(i);
    
            if(i < Object.keys(VisViews).length){
    
                if(VisViews[i].ShowIAV == 'yes'){
    
                    timerAutoSV = setTimeout(function () {
    
                        var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
    
                        if (timer > 1) {
    
                            setState(pfad0 + 'Timer_View_Switch', timer - 1);
    
                            autoSwitchView(dspTime, i);
    
                        }
    
                        else{
    
                                setState(pfad0 + 'Timer_View_Switch', 0);
    
                                if(getState(pfad0 + 'Auto_Switch_View').val === true) switchView(project+VisViews[i].view);
    
                                startAutoSwitchView(dspTime,(i+1));
    
                        }
    
                    }, 1000);
    
                }
    
                else{
    
                    startAutoSwitchView(dspTime,(i+1));
    
                }
    
            }
    
            else{
    
               startAutoSwitchView(dspTime,startView); 
    
            }
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Starten und Stoppen des automatischen Viewwechsel           #
    
    // #                                                                           #
    
    // #############################################################################
    
    function startAutoSwitchView(dspTime,i){
    
        if(getState(pfad0 + 'Auto_Switch_View').val === true){
    
            if(dspTime !== ''){
    
                setState(pfad0 + 'Timer_View_Switch',parseInt(dspTime, 10));
    
            }
    
            else{
    
                setState(pfad0 + 'Timer_View_Switch',15);
    
            }
    
            autoSwitchView(dspTime,i);
    
        } 
    
        else{
    
            if(timerTout) clearTimeout(timerTout);
    
            switchView(project + DefaultView);
    
            setStateDelayed(pfad0 + 'Timer_View_Switch',0,2000);
    
        }
    
    }
    
    //
    
    // Beobachten des View Datenpunktes
    
    on({id:"javascript.0.System.Iobroker.Auto_Switch_View", change: "ne"}, function (dp) {
    
        startAutoSwitchView(DisplayTime,startView);
    
    });
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Scriptbasierten Viewwechsel                                 #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function switchView(view){
    
        setState('vis.0.control.instance', 'FFFFFFFF');
    
        setState('vis.0.control.data', view);
    
        setState('vis.0.control.command', 'changeView');
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Prüfen der Wunsch View und zum auslesen der Darstellzeit    #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function checkView(wishView){
    
        if(logging) log('View to check:'+wishView);
    
        if(getState(pfad0 + 'Auto_Switch_View').val === false ){
    
            for(var i = 0; i < Object.keys(VisViews).length; i++) {  
    
                if(project+VisViews[i].view == wishView) {
    
                    if(logging) log('View found in:' + i);
    
                    if(timerTout) clearTimeout(timerTout);
    
                    setState(pfad0 + 'Timer_View_Switch', 0);
    
                    if(VisViews[i].SWSec !== 0){
    
                        setState(pfad0 + 'Timer_View_Switch', VisViews[i].SWSec);
    
                        switchToHomeView();
    
                    }
    
                }
    
            }
    
        }
    
    }
    
     
    
    // Beobachten des View Datenpunktes für Auswertung
    
    on({id:"vis.0.control.data", change: "ne"}, function (dp) {
    
        checkView(dp.state.val);
    
    });
    
     
    
     
    
     
    
     
    
    //Bei Bewegung auf Kamerabild umschalten
    
    on({id:"hm-rpc.0.xxxxxxxxx.1.MOTION"/*Bewegungsmelder.xxxxxxxxxx:1.MOTION*/, change: 'any'}, function (dp) {
    
         if(getState("javascript.0.Alarmanlage.Status.Status").val != 2 || getState("javascript.0.Alarmanlage.Status.Status").val != '2'){
    
            checkView('Kamera_Garage');
    
         }
    
         else{
    
            checkView('Alarmanlage_code');
    
        }
    
    });
    
     
    
     
    
    GlasfaserG Offline
    GlasfaserG Offline
    Glasfaser
    wrote on last edited by Glasfaser
    #50

    @Andre-R

    Stop mal dein Skript und nimm mal dieses zum testen als neues Skript !
    Wurde schon von mir auf deine Angaben geändert .

    // *******************************************************************************************************
    
    //
    
    // Seitenwechsel-Script
    
    // Autor: Peoples
    
    //
    
    //
    
    // Funktionen:  1. Bei Viewwechsel wird geprüft ob eine andere View als Home gewählt ist
    
    //                 wenn das der Fall ist wird ein Timer gesetzt nach dessen Ablauf wieder zurück
    
    //                 auf Home gewechselt wird.
    
    //              2. Wenn die Alarmanlage eingeschalten ist wird die PinEingabeView angezeigt.
    
    //              3. Bei SystemView läuft kein Timer
    
    //
    
    //
    
    // v2.0.0 - 30.09.2018  Neue Version - Grundaufbau geändert
    
    // v2.0.1 - 09.03.2019  Slideshow aller gewünschen Views integriert
    
    // v2.0.2 - 23.03.2019  Zusatzfunktion zum steuern der Sonderdatenpunkte eingebaut
    
    // v2.0.3 - 28.03.2019  Zahlenwerte durch parseInt konvertiert
    
    // *******************************************************************************************************
    
     
    
    // -----------------------------------------------------------------------------
    
    // allgemeine Variablen
    
    // -----------------------------------------------------------------------------
    
    var logging = true;                                        // Logging on/off
    
    var instanz = 'javascript.0';   instanz = instanz + '.';    // 
    
                                                                //
    
    var pfad0 =   'System.Iobroker';      pfad0 = pfad0 + '.';  // Pfad innerhalb der Instanz 
    
    var timerTout;
    
    var timerAutoSV;
    
    var DefaultView = 'Home';                                   // Standard-View
    
     
    
    // Aus Datenpunkt vis.0.control.data entnehmen 
    
    // der Teil vor dem Slash ist der Projektname:
    
    // "Wandtablet/Home"
    
    var project = "main";     project = project + '/';    // Name des Vis-Projekts
    
     
    
    var DisplayTime = '25';    // Darstellungszeit der Views bei Autowechsel
    
    var startView = 1;  // Startview bei Autowechsel
    
     
    
    //Alle vorhandenen Views
    
    var VisViews = [
    
        
    
            /* View Name */                  /* Anzeigezeit */   /* In Slideshow anzeigen? */
    
     
    
        {'view':'Spotify',             'SWSec':33,            'ShowIAV':'yes'},
    
        {'view':'Musik',         'SWSec':33,            'ShowIAV':'yes'},
    
        {'view':'5_MotionEye_stats',              'SWSec':0,             'ShowIAV':'no'},
    
        {'view':'6_Fritzbox4020_stats',           'SWSec':0,             'ShowIAV':'no'}
        
    ];
    
    // -----------------------------------------------------------------------------
    
    // Objekte
    
    // -----------------------------------------------------------------------------
    
    // Objekt für Alle Automatischen Abläufe
    
    createState(pfad0 + 'Timer_View_Switch',  {def: '0',type: 'number',name: 'Timer für Wechsel auf DefaultView'});
    
    createState(pfad0 + 'Auto_Switch_View',  {def: 'false',type: 'boolean',name: 'Alle Views durchlaufen lassen'});
    
     
    
     
    
    if(logging)log("Total "+Object.keys(VisViews).length+" entries");
    
     
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
    // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum automatischen Viewwechsel nach Timerablauf                  #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function switchToHomeView() {
    
            timerTout = setTimeout(function () {
    
                var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
    
                if (timer > 1) {
    
                    setState(pfad0 + 'Timer_View_Switch',timer - 1);
    
                    switchToHomeView();
    
                }
    
                else{
    
                    setState(pfad0 + 'Timer_View_Switch', 0);
    
                    setState('vis.0.control.instance', 'FFFFFFFF'); //getState("vis.0.control.instance").val/*Control vis*/);
    
                    setState('vis.0.control.data', project + DefaultView);
    
                    setState('vis.0.control.command', 'changeView');
    
                }
    
            }, 1000);
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum automatisch umlaufenden Viewwechsel                         #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function autoSwitchView(dspTime,i) {
    
            if(i === '') i = 0;
    
            log(i);
    
            if(i < Object.keys(VisViews).length){
    
                if(VisViews[i].ShowIAV == 'yes'){
    
                    timerAutoSV = setTimeout(function () {
    
                        var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
    
                        if (timer > 1) {
    
                            setState(pfad0 + 'Timer_View_Switch', timer - 1);
    
                            autoSwitchView(dspTime, i);
    
                        }
    
                        else{
    
                                setState(pfad0 + 'Timer_View_Switch', 0);
    
                                if(getState(pfad0 + 'Auto_Switch_View').val === true) switchView(project+VisViews[i].view);
    
                                startAutoSwitchView(dspTime,(i+1));
    
                        }
    
                    }, 1000);
    
                }
    
                else{
    
                    startAutoSwitchView(dspTime,(i+1));
    
                }
    
            }
    
            else{
    
               startAutoSwitchView(dspTime,startView); 
    
            }
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Starten und Stoppen des automatischen Viewwechsel           #
    
    // #                                                                           #
    
    // #############################################################################
    
    function startAutoSwitchView(dspTime,i){
    
        if(getState(pfad0 + 'Auto_Switch_View').val === true){
    
            if(dspTime !== ''){
    
                setState(pfad0 + 'Timer_View_Switch',parseInt(dspTime, 10));
    
            }
    
            else{
    
                setState(pfad0 + 'Timer_View_Switch',15);
    
            }
    
            autoSwitchView(dspTime,i);
    
        } 
    
        else{
    
            if(timerTout) clearTimeout(timerTout);
    
            switchView(project + DefaultView);
    
            setStateDelayed(pfad0 + 'Timer_View_Switch',0,2000);
    
        }
    
    }
    
    //
    
    // Beobachten des View Datenpunktes
    
    on({id:"javascript.0.System.Iobroker.Auto_Switch_View", change: "ne"}, function (dp) {
    
        startAutoSwitchView(DisplayTime,startView);
    
    });
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Scriptbasierten Viewwechsel                                 #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function switchView(view){
    
        setState('vis.0.control.instance', 'FFFFFFFF');
    
        setState('vis.0.control.data', view);
    
        setState('vis.0.control.command', 'changeView');
    
    }
    
     
    
    // #############################################################################
    
    // #                                                                           #
    
    // #  Funktion zum Prüfen der Wunsch View und zum auslesen der Darstellzeit    #
    
    // #                                                                           #
    
    // #############################################################################
    
     
    
    function checkView(wishView){
    
        if(logging) log('View to check:'+wishView);
    
        if(getState(pfad0 + 'Auto_Switch_View').val === false ){
    
            for(var i = 0; i < Object.keys(VisViews).length; i++) {  
    
                if(project+VisViews[i].view == wishView) {
    
                    if(logging) log('View found in:' + i);
    
                    if(timerTout) clearTimeout(timerTout);
    
                    setState(pfad0 + 'Timer_View_Switch', 0);
    
                    if(VisViews[i].SWSec !== 0){
    
                        setState(pfad0 + 'Timer_View_Switch', VisViews[i].SWSec);
    
                        switchToHomeView();
    
                    }
    
                }
    
            }
    
        }
    
    }
    
     
    
    // Beobachten des View Datenpunktes für Auswertung
    
    on({id:"vis.0.control.data", change: "ne"}, function (dp) {
    
        checkView(dp.state.val);
    
    });
    
     
    
     
    
     
    
     
    
    //Bei Bewegung auf Kamerabild umschalten
    
    on({id:"hm-rpc.0.xxxxxxxxx.1.MOTION"/*Bewegungsmelder.xxxxxxxxxx:1.MOTION*/, change: 'any'}, function (dp) {
    
         if(getState("javascript.0.Alarmanlage.Status.Status").val != 2 || getState("javascript.0.Alarmanlage.Status.Status").val != '2'){
    
            checkView('Kamera_Garage');
    
         }
    
         else{
    
            checkView('Alarmanlage_code');
    
        }
    
    });
    

    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Andre R.
      wrote on last edited by
      #51

      Bei deinem stürzt die VIS ab

      GlasfaserG 1 Reply Last reply
      0
      • A Andre R.

        Bei deinem stürzt die VIS ab

        GlasfaserG Offline
        GlasfaserG Offline
        Glasfaser
        wrote on last edited by Glasfaser
        #52

        @Andre-R

        Sehr komisch ?!

        Nimm mal das:

        // *******************************************************************************************************
        
        
        
        //
        
        
        
        // Seitenwechsel-Script
        
        
        
        // Autor: Peoples
        
        
        
        //
        
        
        
        //
        
        
        
        // Funktionen:  1. Bei Viewwechsel wird geprüft ob eine andere View als Home gewählt ist
        
        
        
        //                 wenn das der Fall ist wird ein Timer gesetzt nach dessen Ablauf wieder zurück
        
        
        
        //                 auf Home gewechselt wird.
        
        
        
        //              2. Wenn die Alarmanlage eingeschalten ist wird die PinEingabeView angezeigt.
        
        
        
        //              3. Bei SystemView läuft kein Timer
        
        
        
        //
        
        
        
        //
        
        
        
        // v2.0.0 - 30.09.2018  Neue Version - Grundaufbau geändert
        
        
        
        // v2.0.1 - 09.03.2019  Slideshow aller gewünschen Views integriert
        
        
        
        // v2.0.2 - 23.03.2019  Zusatzfunktion zum steuern der Sonderdatenpunkte eingebaut
        
        
        
        // v2.0.3 - 28.03.2019  Zahlenwerte durch parseInt konvertiert
        
        
        
        // *******************************************************************************************************
        
        
        
        
        
        
        
        // -----------------------------------------------------------------------------
        
        
        
        // allgemeine Variablen
        
        
        
        // -----------------------------------------------------------------------------
        
        
        
        var logging = true;                                        // Logging on/off
        
        
        
        var instanz = 'javascript.0';   instanz = instanz + '.';    // 
        
        
        
                                                                   //
        
        
        
        var pfad0 =   'System.Iobroker';      pfad0 = pfad0 + '.';  // Pfad innerhalb der Instanz 
        
        
        
        var timerTout;
        
        
        
        var timerAutoSV;
        
        
        
        var DefaultView = 'Home';                                   // Standard-View
        
        
        
        
        
        // Aus Datenpunkt vis.0.control.data entnehmen 
        
        
        
        // der Teil vor dem Slash ist der Projektname:
        
        
        
        // "Wandtablet/Home"
        
        
        
        var project = "main";     project = project + '/';    // Name des Vis-Projekts
        
        
        
        
        
        
        
        var DisplayTime = '25';    // Darstellungszeit der Views bei Autowechsel
        
        
        
        var startView = 1;  // Startview bei Autowechsel
        
        
        
        
        
        
        
        //Alle vorhandenen Views
        
        
        
        var VisViews = [
        
        
        
           
        
        
        
               /* View Name */                  /* Anzeigezeit */   /* In Slideshow anzeigen? */
        
        
        
        
        
           {'view':'Spotify',                      'SWSec':60,             'ShowIAV':'yes'},
        
           
        
           {'view':'Musik',                        'SWSec':60,             'ShowIAV':'yes'},
        
           
        
           {'view':'Sonos_Bad',                      'SWSec':60,              'ShowIAV':'yes'},
        
        
        
           {'view':'Sonos_Schlaf',                   'SWSec':60,            'ShowIAV':'yes'},
        
         
        
           {'view':'3_NAS_stats',                           'SWSec':0,            'ShowIAV':'no'}
        
        
        
        ];
        
        
        
        // -----------------------------------------------------------------------------
        
        
        
        // Objekte
        
        
        
        // -----------------------------------------------------------------------------
        
        
        
        // Objekt für Alle Automatischen Abläufe
        
        
        
        createState(pfad0 + 'Timer_View_Switch',  {def: '0',type: 'number',name: 'Timer für Wechsel auf DefaultView'});
        
        
        
        createState(pfad0 + 'Auto_Switch_View',  {def: 'true',type: 'boolean',name: 'Alle Views durchlaufen lassen'});
        
        
        
        
        
        
        
        
        
        
        
        if(logging)log("Total "+Object.keys(VisViews).length+" entries");
        
        
        
        
        
        
        
        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        
        
        
        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        
        
        
        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        
        
        
        // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        
        
        
        
        
        
        
        // #############################################################################
        
        
        
        // #                                                                           #
        
        
        
        // #  Funktion zum automatischen Viewwechsel nach Timerablauf                  #
        
        
        
        // #                                                                           #
        
        
        
        // #############################################################################
        
        
        
        
        
        
        
        function switchToHomeView() {
        
        
        
               timerTout = setTimeout(function () {
        
        
        
                   var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
        
        
        
                   if (timer > 1) {
        
        
        
                       setState(pfad0 + 'Timer_View_Switch',timer - 1);
        
        
        
                       switchToHomeView();
        
        
        
                   }
        
        
        
                   else{
        
        
        
                       setState(pfad0 + 'Timer_View_Switch', 0);
        
        
        
                       setState('vis.0.control.instance', 'FFFFFFFF'); //getState("vis.0.control.instance").val/*Control vis*/);
        
        
        
                       setState('vis.0.control.data', project + DefaultView);
        
        
        
                       setState('vis.0.control.command', 'changeView');
        
        
        
                   }
        
        
        
               }, 1000);
        
        
        
        }
        
        
        
        
        
        
        
        // #############################################################################
        
        
        
        // #                                                                           #
        
        
        
        // #  Funktion zum automatisch umlaufenden Viewwechsel                         #
        
        
        
        // #                                                                           #
        
        
        
        // #############################################################################
        
        
        
        
        
        
        
        function autoSwitchView(dspTime,i) {
        
        
        
               if(i === '') i = 0;
        
        
        
               log(i);
        
        
        
               if(i < Object.keys(VisViews).length){
        
        
        
                   if(VisViews[i].ShowIAV == 'yes'){
        
        
        
                       timerAutoSV = setTimeout(function () {
        
        
        
                           var timer = parseInt(getState(pfad0 + 'Timer_View_Switch').val, 10);
        
        
        
                           if (timer > 1) {
        
        
        
                               setState(pfad0 + 'Timer_View_Switch', timer - 1);
        
        
        
                               autoSwitchView(dspTime, i);
        
        
        
                           }
        
        
        
                           else{
        
        
        
                                   setState(pfad0 + 'Timer_View_Switch', 0);
        
        
        
                                   if(getState(pfad0 + 'Auto_Switch_View').val === true) switchView(project+VisViews[i].view);
        
        
        
                                   startAutoSwitchView(dspTime,(i+1));
        
        
        
                           }
        
        
        
                       }, 1000);
        
        
        
                   }
        
        
        
                   else{
        
        
        
                       startAutoSwitchView(dspTime,(i+1));
        
        
        
                   }
        
        
        
               }
        
        
        
               else{
        
        
        
                  startAutoSwitchView(dspTime,startView); 
        
        
        
               }
        
        
        
        }
        
        
        
        
        
        
        
        // #############################################################################
        
        
        
        // #                                                                           #
        
        
        
        // #  Funktion zum Starten und Stoppen des automatischen Viewwechsel           #
        
        
        
        // #                                                                           #
        
        
        
        // #############################################################################
        
        
        
        function startAutoSwitchView(dspTime,i){
        
        
        
           if(getState(pfad0 + 'Auto_Switch_View').val === true){
        
        
        
               if(dspTime !== ''){
        
        
        
                   setState(pfad0 + 'Timer_View_Switch',parseInt(dspTime, 10));
        
        
        
               }
        
        
        
               else{
        
        
        
                   setState(pfad0 + 'Timer_View_Switch',15);
        
        
        
               }
        
        
        
               autoSwitchView(dspTime,i);
        
        
        
           } 
        
        
        
           else{
        
        
        
               if(timerTout) clearTimeout(timerTout);
        
        
        
               switchView(project + DefaultView);
        
        
        
               setStateDelayed(pfad0 + 'Timer_View_Switch',0,2000);
        
        
        
           }
        
        
        
        }
        
        
        
        //
        
        
        
        // Beobachten des View Datenpunktes
        
        
        
        on({id:"javascript.0.System.Iobroker.Auto_Switch_View", change: "ne"}, function (dp) {
        
        
        
           startAutoSwitchView(DisplayTime,startView);
        
        
        
        });
        
        
        
        
        
        
        
        // #############################################################################
        
        
        
        // #                                                                           #
        
        
        
        // #  Funktion zum Scriptbasierten Viewwechsel                                 #
        
        
        
        // #                                                                           #
        
        
        
        // #############################################################################
        
        
        
        
        
        
        
        function switchView(view){
        
        
        
           setState('vis.0.control.instance', 'FFFFFFFF');
        
        
        
           setState('vis.0.control.data', view);
        
        
        
           setState('vis.0.control.command', 'changeView');
        
        
        
        }
        
        
        
        
        
        
        
        // #############################################################################
        
        
        
        // #                                                                           #
        
        
        
        // #  Funktion zum Prüfen der Wunsch View und zum auslesen der Darstellzeit    #
        
        
        
        // #                                                                           #
        
        
        
        // #############################################################################
        
        
        
        
        
        
        
        function checkView(wishView){
        
        
        
           if(logging) log('View to check:'+wishView);
        
        
        
           if(getState(pfad0 + 'Auto_Switch_View').val === false ){
        
        
        
               for(var i = 0; i < Object.keys(VisViews).length; i++) {  
        
        
        
                   if(project+VisViews[i].view == wishView) {
        
        
        
                       if(logging) log('View found in:' + i);
        
        
        
                       if(timerTout) clearTimeout(timerTout);
        
        
        
                       setState(pfad0 + 'Timer_View_Switch', 0);
        
        
        
                       if(VisViews[i].SWSec !== 0){
        
        
        
                           setState(pfad0 + 'Timer_View_Switch', VisViews[i].SWSec);
        
        
        
                           switchToHomeView();
        
        
        
                       }
        
        
        
                   }
        
        
        
               }
        
        
        
           }
        
        
        
        }
        
        
        
        
        
        
        
        // Beobachten des View Datenpunktes für Auswertung
        
        
        
        on({id:"vis.0.control.data", change: "ne"}, function (dp) {
        
        
        
           checkView(dp.state.val);
        
        
        
        });
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        //Bei Bewegung auf Kamerabild umschalten
        
        
        
        on({id:"hm-rpc.0.xxxxxxxxx.1.MOTION"/*Bewegungsmelder.xxxxxxxxxx:1.MOTION*/, change: 'any'}, function (dp) {
        
        
        
            if(getState("javascript.0.Alarmanlage.Status.Status").val != 2 || getState("javascript.0.Alarmanlage.Status.Status").val != '2'){
        
        
        
               checkView('Kamera_Garage');
        
        
        
            }
        
        
        
            else{
        
        
        
               checkView('Alarmanlage_code');
        
        
        
           }
        
        
        
        });
        
        
        

        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Andre R.
          wrote on last edited by
          #53

          stürzt nicht mehr ab. komisch ist das du die NAS_Stats im Script hast er zeigt mir aber die Proxmox_Stats

          GlasfaserG 1 Reply Last reply
          0
          • A Andre R.

            stürzt nicht mehr ab. komisch ist das du die NAS_Stats im Script hast er zeigt mir aber die Proxmox_Stats

            GlasfaserG Offline
            GlasfaserG Offline
            Glasfaser
            wrote on last edited by
            #54

            @Andre-R

            Das erste war meins was auf deine Daten geändert wurde , komisch das es bei dir abschmiert.
            Ich habe nun jetzt dein Script genommen und mit den vorhandenen Views gekürzt .
            Irgendwo liegt da der Fehler bei dir, mit den Viewnamen .

            Mal was anderes, ich hoffe Du hast nur ein View als Default angegeben.

            44444444444444444444444444444.JPG

            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Andre R.
              wrote on last edited by
              #55

              ne, was passiert denn wenn man mehrere hat

              GlasfaserG 1 Reply Last reply
              0
              • A Andre R.

                ne, was passiert denn wenn man mehrere hat

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                wrote on last edited by
                #56

                @Andre-R

                Bitte nur ein Default Startseite !!!!

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Andre R.
                  wrote on last edited by
                  #57

                  ok ändere ich

                  GlasfaserG 1 Reply Last reply
                  0
                  • A Andre R.

                    ok ändere ich

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    wrote on last edited by
                    #58

                    @Andre-R

                    Nur die " Home " auf Default setzten !!!!!!!!!!!!!!

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      Andre R.
                      wrote on last edited by
                      #59

                      hab ich :+1: :+1: :+1:

                      GlasfaserG 1 Reply Last reply
                      0
                      • A Andre R.

                        hab ich :+1: :+1: :+1:

                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        wrote on last edited by
                        #60

                        @Andre-R

                        Und was heißen die Daumen ?
                        Läuft es jetzt !?

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        A 1 Reply Last reply
                        0
                        • GlasfaserG Glasfaser

                          @Andre-R

                          Und was heißen die Daumen ?
                          Läuft es jetzt !?

                          A Offline
                          A Offline
                          Andre R.
                          wrote on last edited by
                          #61

                          @Glasfaser ja läuft bis auf das Proxmox Fenster zeigt es mir die Sachen die auf "no" sind nicht mehr an. werde Die Proxmox View mal löschen und neu machen.

                          Danke nochmal für deine Geduld

                          GlasfaserG 1 Reply Last reply
                          0
                          • A Andre R.

                            @Glasfaser ja läuft bis auf das Proxmox Fenster zeigt es mir die Sachen die auf "no" sind nicht mehr an. werde Die Proxmox View mal löschen und neu machen.

                            Danke nochmal für deine Geduld

                            GlasfaserG Offline
                            GlasfaserG Offline
                            Glasfaser
                            wrote on last edited by Glasfaser
                            #62

                            @Andre-R
                            freut mich das es läuft …. war auch eine harte Nuss :anguished:

                            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                            1 Reply Last reply
                            1
                            • A Offline
                              A Offline
                              Andre R.
                              wrote on last edited by
                              #63

                              Hab leider schlechte Nachrichten, jetzt hats bei mir auch alle Views durcheinander gewürfelt. Schade

                              PeoplesP GlasfaserG 2 Replies Last reply
                              0
                              • A Andre R.

                                Hab leider schlechte Nachrichten, jetzt hats bei mir auch alle Views durcheinander gewürfelt. Schade

                                PeoplesP Offline
                                PeoplesP Offline
                                Peoples
                                wrote on last edited by Peoples
                                #64

                                @Andre-R
                                Was heißt "alle Views durcheinander gewürfelt"?
                                Die Views werden nicht in der richtigen Reihenfolge dargestellt?
                                Die Views werden übereinander gelegt?

                                Mein Script macht ja nichts anderes als die im Kopf eingetragenen "View-Namen" in den IoBroker Datenpunkt zu schreiben und dann den Befehl zum wechseln zu senden.

                                Was verwendest du denn für Hardware, Iobroker, Anzeigegerät?
                                Welche Version hat dein Vis und dein JS-Adapter.

                                Ich beantworte keine Fragen zu Themen via PN

                                1 Reply Last reply
                                0
                                • A Andre R.

                                  Hab leider schlechte Nachrichten, jetzt hats bei mir auch alle Views durcheinander gewürfelt. Schade

                                  GlasfaserG Offline
                                  GlasfaserG Offline
                                  Glasfaser
                                  wrote on last edited by
                                  #65

                                  @Andre-R sagte in [Vorlage] Automatischer View-Wechsel u. Slideshow:

                                  ....................... alle Views durcheinander gewürfelt. Schade

                                  Das heißt :question:

                                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                  1 Reply Last reply
                                  0
                                  • A Offline
                                    A Offline
                                    Andre R.
                                    wrote on last edited by
                                    #66

                                    die views werden übereinander gelegt und Widgets nicht angezeigt.

                                    Ich habe einen Nuc mit Proxmox und IOBroker VM ein Samsung Tab 10.1 von 2014 und das Fire Tab 7"

                                    IOBroker 3.6.4
                                    VIS 1.2.0
                                    JS 4.1.14

                                    PeoplesP 1 Reply Last reply
                                    0
                                    • A Andre R.

                                      die views werden übereinander gelegt und Widgets nicht angezeigt.

                                      Ich habe einen Nuc mit Proxmox und IOBroker VM ein Samsung Tab 10.1 von 2014 und das Fire Tab 7"

                                      IOBroker 3.6.4
                                      VIS 1.2.0
                                      JS 4.1.14

                                      PeoplesP Offline
                                      PeoplesP Offline
                                      Peoples
                                      wrote on last edited by
                                      #67

                                      @Andre-R sagte in [Vorlage] Automatischer View-Wechsel u. Slideshow:

                                      die views werden übereinander gelegt und Widgets nicht angezeigt.

                                      Ich habe einen Nuc mit Proxmox und IOBroker VM ein Samsung Tab 10.1 von 2014 und das Fire Tab 7"

                                      IOBroker 3.6.4
                                      VIS 1.2.0
                                      JS 4.1.14

                                      Identisch zu mir bis auf das Tablet, An der Performace der Hardware kann es somit nicht liegen. Das Phänomen dass Iobroker die Views Übereinander legt hatten wir hier schon mal, wenn ich nicht irre war damals die Problemlösung den ganzen IoB einfach neu zu starten.
                                      Das Problem war damals schon dass ich das nicht replizieren kann, ich vermute jedoch dass es wohl am IoB selber liegt.

                                      Wenn du das noch nicht getan hast starte den IoB mal neu, ist ja dank Proxmox ein Kinderspiel.

                                      Ich beantworte keine Fragen zu Themen via PN

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        Andre R.
                                        wrote on last edited by
                                        #68

                                        werde ich probieren. kann ich denn die Vis sichern das ich nachher nicht wieder alles einstellen muss

                                        crunchipC 1 Reply Last reply
                                        0
                                        • A Andre R.

                                          werde ich probieren. kann ich denn die Vis sichern das ich nachher nicht wieder alles einstellen muss

                                          crunchipC Away
                                          crunchipC Away
                                          crunchip
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #69

                                          @Andre-R mach doch einfach direkt vorher nen snapshot

                                          umgestiegen von Proxmox auf Unraid

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          546

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe