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. Praktische Anwendungen (Showcase)
  4. [Vorstellung] Meine dritte VIS

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    347

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

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

[Vorstellung] Meine dritte VIS

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
visvis projekte
640 Posts 83 Posters 197.4k Views 117 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.
  • C chriss2007

    @kuddel Du hast die Adapter abfrage drin. kann man es ändern das unter 0_Userdata diese erstellt? aktuell sind die im javascript.

    K Offline
    K Offline
    Kuddel
    wrote on last edited by
    #580

    @chriss2007

    // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
    
    schedule('*/10 * * * * *', function (obj) {
    //on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
       createState('0_userdata.0.adapter_infos.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
       createState('0_userdata.0.adapter_infos.AdapterNummer', 0, { name: 'Adapter zum schalten', desc: 'Adapter zum schalten', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });    
       //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
       
       //Variablen zurücksetzen
       var counter =0;
       var on = 0
       var manuell=0	
    
       var cacheSelector = $('[id=system.adapter.*.alive]');    
       cacheSelector.each(function(id, i) { 
    
           //Instanzen ausklammer
           var check1 = id.indexOf('system.adapter.coronavirus-statistics.0.alive');
       	var check2 = id.indexOf('system.adapter.daswetter.0.alive');
       	var check3 = id.indexOf('system.adapter.dwd.0.alive');
       	var check4 = id.indexOf('system.adapter.ical.0.alive');
       	var check5 = id.indexOf('system.adapter.ical.1.alive');
       	var check6 = id.indexOf('system.adapter.ical.2.alive');
       	var check7 = id.indexOf('system.adapter.feiertage.0.alive');
       	var check8 = id.indexOf('system.adapter.kodi.0.alive');
       	var check9 = id.indexOf('system.adapter.snmp.1.alive');
           var check10 = id.indexOf('system.adapter.synology.1.alive');
           var check11 = id.indexOf('system.adapter.yamaha.0.alive');
       	var check12 = id.indexOf('system.adapter.vis.0.alive');
    
           var check = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 + check9 + check10 + check11 + check12;
    
           //Abfrage nur ausführen, wenn Instanz nicht ausgeklammert ist
           if(check == -12){
               var devicename = getObject(id).common.name; 
    
               //console.log(devicename);
                          
       		var devicenameName=devicename;
       		var instanzname=getObject(id).common.name;
       		var test = devicenameName;
       		var devicename_array = devicenameName.split(' ');        
       		devicenameName = devicename_array[0];
       		counter = counter+1; 
       			
       		var strStatePath = "system.adapter." + devicenameName + ".alive";
       		
       		//Uptime
       		var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
       		var tage = Math.floor(uptime / (24*3600));
       		var stunden = Math.floor((uptime % (24*3600))/3600);
       		var minuten = Math.floor((uptime % (3600))/60);
       		if (stunden < 10) {stunden = "0"+stunden};
       		if (minuten < 10) {minuten = "0"+minuten};				
       		if (tage == 1) {uptime = tage.toString()+" Tag, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";};
       		if (tage != 1) {uptime = tage.toString()+" Tage, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";}
       		
       		//Arbeitsspeicher etc.
       		//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
       		//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
       		//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
       		
       		//Connection Status
       		var connect = getState("system.adapter." + devicenameName + ".alive").val;            
       		if(connect == false){var con = 0;}
       		
       		else {                
       			var con = 1;
       			var strStatePath = devicenameName + ".info.connection";
       			if (isState(strStatePath, true)) {
       				var connectS = getState(devicenameName + ".info.connection").val;
       				if (connectS == false) {
       					con = 2;
       				}                                                                        
       			} 
       		}
       		if(con==1) {on = on + 1}
       		
       								
       		      
       		
       		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".KompletterNameAdapter";
       		createState(devicename, 'empty', { name: 'Kompletter Name des Adapters', desc: '', type: 'string', role: '',read: true, write: true }); 
       		setStateDelayed(devicename, devicenameName, 800);
       		
       		var contentstring = devicenameName;
       		var suchstring = /(ical)/g; 
       		var suchergebnis = suchstring.test( contentstring );
       		
       		if (suchergebnis != true) {
       			var devicename_array = devicenameName.split('.');        
       			devicenameName = devicename_array[0];
       		}    
    
       		if (devicenameName == "daswetter") {
       			var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
       		} else if (suchergebnis != false) {
       			var devicename_array = devicenameName.split('.');        
       			var icalName = devicename_array[0];        
       			var bild = "/" + icalName + ".admin/" + icalName + ".png";
       		} else {
       			var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
       		}
       		
       		//////////////////////////
       		// Icon-Pfad definieren //
       		//////////////////////////
    
       		//Alexa2
       		if (devicenameName == 'alexa2') {var bild = "/" + devicenameName + ".admin/" + "alexa.png";}
       		//FritzDECT
       		if (devicenameName == 'fritzdect') {var bild = "/" + devicenameName + ".admin/" + "fritzdect_logo.png";}
       		//FullyBrowser
       		if (devicenameName == 'fullybrowser') {var bild = "/" + devicenameName + ".admin/" + "fully.png";}
       		//HM-Rega
       		//if (devicenameName == 'hm-rega') {var bild = "/" + devicenameName + ".admin/" + "homematic.png";}
       		if (devicenameName == 'hm-rega') {var bild = "/vis.0/VIS/Meine_Icons/Adapter_Icons/homematic.gif";}
       		//HomeMatic
       		//if (instanzname == 'hm-rpc.0 alive') {var bild = "/" + devicenameName + ".admin/" + "homematic.png";}
       		if (instanzname == 'hm-rpc.0 alive') {var bild = "/vis.0/VIS/Meine_Icons/Adapter_Icons/homematic.gif";}
       		//HomeMatic-IP
       		//if (instanzname == 'hm-rpc.1 alive') {var bild = "/" + devicenameName + ".admin/" + "homematic.png";}
       		if (instanzname == 'hm-rpc.1 alive') {var bild = "/vis.0/VIS/Meine_Icons/Adapter_Icons/homematic_ip.jpg";}
               //Homepilot
               if (instanzname == 'homepilot20.0 alive') {var bild = "/vis.0/VIS/Meine_Icons/Adapter_Icons/homepilot.png";}
       		//UPNP
       		if (devicenameName == 'upnp') {var bild = "/" + devicenameName + ".admin/" + "upnp-discovery.png";}
       		//Pushover.1
       		if (instanzname == 'pushover.1 alive') {var bild = "/mihome-vacuum.admin/mihome-vacuum.png";}
       		//Pushover.2
       		if (instanzname == 'pushover.2 alive') {var bild = "/daswetter.admin/daswettercom.png";}
       		
    
       		///////////////////////
       		//AdapterName anpassen
       		////////////////////////
    
       		//Corona-Statistics
       		if (instanzname == 'coronavirus-statistics.0 alive') {devicenameName='Corona'; manuell=1}
       		//DasWetter
       		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
       		//DWD
       		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; manuell=1}
       		//Fullybrowser
       		if (instanzname == 'fullybrowser.0 alive') {devicenameName='FullyKiosk'; manuell=1}			
       		//HM-REGA
       		if (instanzname == 'hm-rega.0 alive') {devicenameName='HM-Rega'; manuell=1}			
       		//HM-RPC.0
       		if (instanzname == 'hm-rpc.0 alive') {devicenameName='HomeMatic'; manuell=1}
       		//HM-RPC.1
       		if (instanzname == 'hm-rpc.1 alive') {devicenameName='HM-IP'; manuell=1}
               //Homepilot
               if (instanzname == 'homepilot20.0 alive') {devicenameName='Homepilot'; manuell=1}
       		//Linux-Control
       		if (instanzname == 'linux-control.0 alive') {devicenameName='Linux-Ctr.'; manuell=1}
       		//MiHome-Vacuum -> NoNo
       		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; manuell=1}
               //MiHome-Vacuum -> Dusty
       		if (instanzname == 'mihome-vacuum.1 alive') {devicenameName='Dusty'; manuell=1}
       		//Pushover
       		if (instanzname == 'pushover.0 alive') {devicenameName='Pushover.0'; manuell=1}
       		if (instanzname == 'pushover.1 alive') {devicenameName='Pushover.1'; manuell=1}
       		if (instanzname == 'pushover.2 alive') {devicenameName='Pushover.2'; manuell=1}
       		//Simple-API
       		if (instanzname == 'simple-api.0 alive') {devicenameName='Simple-API'; manuell=1}
       		//SNMP.0
       		if (instanzname == 'snmp.0 alive') {devicenameName='QNAP-B'; manuell=1}
       		//SNMP.1
       		if (instanzname == 'snmp.1 alive') {devicenameName='QNAP-Archiv'; manuell=1}
               //SNMP.2
       		if (instanzname == 'snmp.2 alive') {devicenameName='Brother'; manuell=1}
       		//Spotify
       		if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; manuell=1}
               // Synology
               if (instanzname == 'synology.0 alive') {devicenameName='XPEnology'; manuell=1}
       		//Tankerkoenig
       		if (instanzname == 'tankerkoenig.0 alive') {devicenameName='Tankerk.'; manuell=1}
       		//Tashscheduler
       		if (instanzname == 'trashschedule.0 alive') {devicenameName='Trashsched.'; manuell=1}
       		//TR-064.0
       		if (instanzname == 'tr-064.0 alive') {devicenameName='TR-064.0'; manuell=1}
       		//TR-064.1
       		if (instanzname == 'tr-064.1 alive') {devicenameName='TR-064.1'; manuell=1}
       		//XPEnology
       		if (instanzname == 'synology.1 alive') {devicenameName='XPEnology'; manuell=1}
       		
       		
       		
       		//Instanz-Namen setzen
       		if(manuell!=1) {devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();}	
       		//devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();
       		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".NameInstanz";
       		createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
       		setStateDelayed(devicename, devicenameName, 800);
       		//Bild Pfad setzen
       		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Bild";
       		createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
       		setStateDelayed(devicename, bild, 800);
       		//Uptime setzen
       		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Uptime";          
       		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
       		setStateDelayed(devicename, uptime, 800);
       		//MemUsed setzen
       		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemUsed";          
       		//createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
       		//setStateDelayed(devicename, used, 800);
       		//MemToal setzen
       		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemTotal";          
       		//createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
       		//setStateDelayed(devicename, total, 800);
       		//MemRSS setzen
       		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemRSS";          
       		//createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
       		//setStateDelayed(devicename, rss, 800);
       		//Connected setzen
       		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Connected";          
       		createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
       		setStateDelayed(devicename, con, 800);
       		
       		//Wert zurücksetzen
       		var manuell=0
    
           };
       });
       
       //Adaptet Icon Übersicht
       visstatus="0_userdata.0.vis-status.alle_adapter_gestartet";
       if(on == counter){setState(visstatus, true);}
       //if(on == counter -1){setState(visstatus, true);}
       else{setState(visstatus, false);}
       
       
       setStateDelayed('0_userdata.0.adapter_infos.Anzahl', counter, 800);
    
       function isState(strStatePath, strict) {
           let mSelector;
           if (strict) {
               mSelector = $('state[id=' + strStatePath + '$]');
           } else {
               mSelector = $('state[id=' + strStatePath + ']');
           }
           if (mSelector.length > 0) {
               return true;
           } else {
               return false;
           }
       }  
    }); 
    
    on({id:"0_userdata.0.adapter_infos.AdapterNummer", change: 'any'}, function (dpobj) {
       if (getState("javascript.0.Adapter.AdapterNummer").val != 0) {        
           const instanz = "javascript." + instance;
           var adapterNummer = getState(instanz + ".Adapter.AdapterNummer").val;
           var adapter = getState(instanz + ".Adapter.Adapter" + adapterNummer + ".KompletterNameAdapter").val; // Name und Instanz des Adapters 
           var idAdapter = "system.adapter." + adapter;
           
           var obj = getObject(idAdapter);
           if (dpobj.state.val == false) {
               obj.common.enabled = true;  // Adapter einschalten
           } else if (dpobj.state.val == true) {
               obj.common.enabled = false;  // Adapter ausschalten
           }
           setObject(idAdapter, obj);
           setStateDelayed('javascript.0.Adapter.AdapterNummer', 0, 800);        
       }
    });   
    

    1 Reply Last reply
    1
    • C Offline
      C Offline
      chriss2007
      wrote on last edited by chriss2007
      #581

      Habe die Ursache gefunden, ein Adapter hat es nicht richtig Runtergeschmiesen.

      Kann mir wer helfen von euch? Ich habe das Problem seit dem ich denn IOT Adapter installiert habe. Wenn dieser Installiert ist erstellt er bei der Adapter Abfrage nur bis "Adapter4". Habe Ihne Test halber deinstalliert. Da erstellt er alle bis ca 32....cloud.jpg

      K 1 Reply Last reply
      0
      • D djsirius

        @kuddel ich traue es mich gar nicht zur schreiben, aber die Rolladen fahren runter aber nicht hoch! :thinking_face:

        A Offline
        A Offline
        Aachen1305
        wrote on last edited by Aachen1305
        #582

        @djsirius ich habe genau das selbe Problem, wie Du. Die Rollos fahren runter, aber nicht hoch. Hast Du Du da schon ne Lösung gefunden?

        C 2 Replies Last reply
        0
        • A Aachen1305

          @djsirius ich habe genau das selbe Problem, wie Du. Die Rollos fahren runter, aber nicht hoch. Hast Du Du da schon ne Lösung gefunden?

          C Offline
          C Offline
          chriss2007
          wrote on last edited by
          #583

          @aachen1305 mit denn Rollos hat das bei mir nix zu tun! ich kann dir auch leider nicht helfen da ich bei mir direkt über die HM-IP Aktoren dort Arbeite.

          1 Reply Last reply
          0
          • A Aachen1305

            @djsirius ich habe genau das selbe Problem, wie Du. Die Rollos fahren runter, aber nicht hoch. Hast Du Du da schon ne Lösung gefunden?

            C Offline
            C Offline
            chriss2007
            wrote on last edited by
            #584

            @aachen1305 Kannst ja aber mal erzählen was genau das Problem ist und welche Geräte du nutzt? und was du an Fehler bekommst.

            A 1 Reply Last reply
            0
            • C chriss2007

              @aachen1305 Kannst ja aber mal erzählen was genau das Problem ist und welche Geräte du nutzt? und was du an Fehler bekommst.

              A Offline
              A Offline
              Aachen1305
              wrote on last edited by
              #585

              @chriss2007
              ich arbeite mit den Xiaomi Fenstersensoren sowie Shelly 2.5 für die Rollos. Das Lustige ist ja dass ich keine Fehler angezeigt bekomme. Die Rollos fahren abends runter wie es sein soll, aber am nächsten Morgen nicht mehr hoch.
              Ich werde heute abend das Skript einfach mal neu installieren und schauen ob es dann klappt.

              C 1 Reply Last reply
              0
              • C chriss2007

                Habe die Ursache gefunden, ein Adapter hat es nicht richtig Runtergeschmiesen.

                Kann mir wer helfen von euch? Ich habe das Problem seit dem ich denn IOT Adapter installiert habe. Wenn dieser Installiert ist erstellt er bei der Adapter Abfrage nur bis "Adapter4". Habe Ihne Test halber deinstalliert. Da erstellt er alle bis ca 32....cloud.jpg

                K Offline
                K Offline
                Kuddel
                wrote on last edited by Kuddel
                #586

                @chriss2007 anbei einmal meine aktuell verwendete Version zur Abfrage der Adapter

                // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                
                schedule('*/10 * * * * *', function (obj) {
                //on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                   createState('0_userdata.0.adapter_infos.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                   createState('0_userdata.0.adapter_infos.AdapterNummer', 0, { name: 'Adapter zum schalten', desc: 'Adapter zum schalten', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });    
                   //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
                   
                   //Variablen zurücksetzen
                   var counter =0;
                   var on = 0
                   var manuell=0	
                
                   var cacheSelector = $('[id=system.adapter.*.alive]');    
                   cacheSelector.each(function(id, i) { 
                
                       //Instanzen ausklammer
                       var check1 = id.indexOf('system.adapter.coronavirus-statistics.0.alive');
                   	var check2 = id.indexOf('system.adapter.daswetter.0.alive');
                   	var check3 = id.indexOf('system.adapter.dwd.0.alive');
                   	var check4 = id.indexOf('system.adapter.ical.0.alive');
                   	var check5 = id.indexOf('system.adapter.ical.1.alive');
                   	var check6 = id.indexOf('system.adapter.ical.2.alive');
                   	var check7 = id.indexOf('system.adapter.feiertage.0.alive');
                   	var check8 = id.indexOf('system.adapter.kodi.0.alive');
                   	var check9 = id.indexOf('system.adapter.snmp.1.alive');
                       var check10 = id.indexOf('system.adapter.synology.1.alive');
                       var check11 = id.indexOf('system.adapter.yamaha.0.alive');
                   	var check12 = id.indexOf('system.adapter.vis.0.alive');
                
                       var check = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 + check9 + check10 + check11 + check12;
                
                       //Abfrage nur ausführen, wenn Instanz nicht ausgeklammert ist
                       if(check == -12){
                           var devicename = getObject(id).common.name; 
                
                           //console.log(devicename);
                                      
                   		var devicenameName=devicename;
                   		var instanzname=getObject(id).common.name;
                   		var test = devicenameName;
                   		var devicename_array = devicenameName.split(' ');        
                   		devicenameName = devicename_array[0];
                   		counter = counter+1; 
                   			
                   		var strStatePath = "system.adapter." + devicenameName + ".alive";
                   		
                   		//Uptime
                   		var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                   		var tage = Math.floor(uptime / (24*3600));
                   		var stunden = Math.floor((uptime % (24*3600))/3600);
                   		var minuten = Math.floor((uptime % (3600))/60);
                   		if (stunden < 10) {stunden = "0"+stunden};
                   		if (minuten < 10) {minuten = "0"+minuten};				
                   		if (tage == 1) {uptime = tage.toString()+" Tag, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";};
                   		if (tage != 1) {uptime = tage.toString()+" Tage, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";}
                   		
                   		//Arbeitsspeicher etc.
                   		//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                   		//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                   		//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                   		
                   		//Connection Status
                   		var connect = getState("system.adapter." + devicenameName + ".alive").val;            
                   		if(connect == false){var con = 0;}
                   		
                   		else {                
                   			var con = 1;
                   			var strStatePath = devicenameName + ".info.connection";
                   			if (isState(strStatePath, true)) {
                   				var connectS = getState(devicenameName + ".info.connection").val;
                   				if (connectS == false) {
                   					con = 2;
                   				}                                                                        
                   			} 
                   		}
                   		if(con==1) {on = on + 1}
                   		
                   								
                   		      
                   		
                   		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".KompletterNameAdapter";
                   		createState(devicename, 'empty', { name: 'Kompletter Name des Adapters', desc: '', type: 'string', role: '',read: true, write: true }); 
                   		setStateDelayed(devicename, devicenameName, 800);
                   		
                   		var contentstring = devicenameName;
                   		var suchstring = /(ical)/g; 
                   		var suchergebnis = suchstring.test( contentstring );
                   		
                   		if (suchergebnis != true) {
                   			var devicename_array = devicenameName.split('.');        
                   			devicenameName = devicename_array[0];
                   		}    
                
                   		if (devicenameName == "daswetter") {
                   			var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
                   		} else if (suchergebnis != false) {
                   			var devicename_array = devicenameName.split('.');        
                   			var icalName = devicename_array[0];        
                   			var bild = "/" + icalName + ".admin/" + icalName + ".png";
                   		} else {
                   			var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
                   		}
                   		
                   		//////////////////////////
                   		// Icon-Pfad definieren //
                   		//////////////////////////
                
                   		//Alexa2
                   		if (devicenameName == 'alexa2') {var bild = "/" + devicenameName + ".admin/" + "alexa.png";}
                   		//FritzDECT
                   		if (devicenameName == 'fritzdect') {var bild = "/" + devicenameName + ".admin/" + "fritzdect_logo.png";}
                   		//FullyBrowser
                   		if (devicenameName == 'fullybrowser') {var bild = "/" + devicenameName + ".admin/" + "fully.png";}
                   		//HM-Rega
                   		if (devicenameName == 'hm-rega') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic.png";}
                   		//HomeMatic
                   		if (instanzname == 'hm-rpc.0 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic.png";}
                   		//HomeMatic-IP
                   		if (instanzname == 'hm-rpc.1 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic_ip.jpg";}
                           //Homepilot
                           if (instanzname == 'homepilot20.0 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homepilot.png";}
                   		//UPNP
                   		if (devicenameName == 'upnp') {var bild = "/" + devicenameName + ".admin/" + "upnp-discovery.png";}
                   		//Pushover.1
                   		if (instanzname == 'pushover.1 alive') {var bild = "/mihome-vacuum.admin/mihome-vacuum.png";}
                   		//Pushover.2
                   		if (instanzname == 'pushover.2 alive') {var bild = "/daswetter.admin/daswettercom.png";}
                   		
                
                   		///////////////////////
                   		//AdapterName anpassen
                   		////////////////////////
                
                   		//Corona-Statistics
                   		if (instanzname == 'coronavirus-statistics.0 alive') {devicenameName='Corona'; manuell=1}
                   		//DasWetter
                   		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                   		//DWD
                   		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; manuell=1}
                   		//Fullybrowser
                   		if (instanzname == 'fullybrowser.0 alive') {devicenameName='FullyKiosk'; manuell=1}			
                   		//HM-REGA
                   		if (instanzname == 'hm-rega.0 alive') {devicenameName='HM-Rega'; manuell=1}			
                   		//HM-RPC.0
                   		if (instanzname == 'hm-rpc.0 alive') {devicenameName='HomeMatic'; manuell=1}
                   		//HM-RPC.1
                   		if (instanzname == 'hm-rpc.1 alive') {devicenameName='HM-IP'; manuell=1}
                           //Homepilot
                           if (instanzname == 'homepilot20.0 alive') {devicenameName='Homepilot'; manuell=1}
                   		//Linux-Control
                   		if (instanzname == 'linux-control.0 alive') {devicenameName='Linux-Ctr.'; manuell=1}
                   		//MiHome-Vacuum -> NoNo
                   		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; manuell=1}
                           //MiHome-Vacuum -> Dusty
                   		if (instanzname == 'mihome-vacuum.1 alive') {devicenameName='Dusty'; manuell=1}
                   		//Pushover
                   		if (instanzname == 'pushover.0 alive') {devicenameName='Pushover.0'; manuell=1}
                   		if (instanzname == 'pushover.1 alive') {devicenameName='Pushover.1'; manuell=1}
                   		if (instanzname == 'pushover.2 alive') {devicenameName='Pushover.2'; manuell=1}
                   		//Simple-API
                   		if (instanzname == 'simple-api.0 alive') {devicenameName='Simple-API'; manuell=1}
                   		//SNMP.0
                   		if (instanzname == 'snmp.0 alive') {devicenameName='QNAP-B'; manuell=1}
                   		//SNMP.1
                   		if (instanzname == 'snmp.1 alive') {devicenameName='QNAP-Archiv'; manuell=1}
                           //SNMP.2
                   		if (instanzname == 'snmp.2 alive') {devicenameName='Brother'; manuell=1}
                   		//Spotify
                   		if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; manuell=1}
                           // Synology
                           if (instanzname == 'synology.0 alive') {devicenameName='XPEnology'; manuell=1}
                   		//Tankerkoenig
                   		if (instanzname == 'tankerkoenig.0 alive') {devicenameName='Tankerk.'; manuell=1}
                   		//Tashscheduler
                   		if (instanzname == 'trashschedule.0 alive') {devicenameName='Trashsched.'; manuell=1}
                   		//TR-064.0
                   		if (instanzname == 'tr-064.0 alive') {devicenameName='TR-064.0'; manuell=1}
                   		//TR-064.1
                   		if (instanzname == 'tr-064.1 alive') {devicenameName='TR-064.1'; manuell=1}
                   		//XPEnology
                   		if (instanzname == 'synology.1 alive') {devicenameName='XPEnology'; manuell=1}
                   		
                   		
                   		
                   		//Instanz-Namen setzen
                   		if(manuell!=1) {devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();}	
                   		//devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();
                   		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".NameInstanz";
                   		createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                   		setStateDelayed(devicename, devicenameName, 800);
                   		//Bild Pfad setzen
                   		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Bild";
                   		createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
                   		setStateDelayed(devicename, bild, 800);
                   		//Uptime setzen
                   		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Uptime";          
                   		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                   		setStateDelayed(devicename, uptime, 800);
                   		//MemUsed setzen
                   		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemUsed";          
                   		//createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
                   		//setStateDelayed(devicename, used, 800);
                   		//MemToal setzen
                   		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemTotal";          
                   		//createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
                   		//setStateDelayed(devicename, total, 800);
                   		//MemRSS setzen
                   		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemRSS";          
                   		//createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
                   		//setStateDelayed(devicename, rss, 800);
                   		//Connected setzen
                   		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Connected";          
                   		createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
                   		setStateDelayed(devicename, con, 800);
                   		
                   		//Wert zurücksetzen
                   		var manuell=0
                
                       };
                   });
                   
                   //Adaptet Icon Übersicht
                   visstatus="0_userdata.0.vis-status.alle_adapter_gestartet";
                   if(on == counter){setState(visstatus, true);}
                   //if(on == counter -1){setState(visstatus, true);}
                   else{setState(visstatus, false);}
                   
                   
                   setStateDelayed('0_userdata.0.adapter_infos.Anzahl', counter, 800);
                
                   function isState(strStatePath, strict) {
                       let mSelector;
                       if (strict) {
                           mSelector = $('state[id=' + strStatePath + '$]');
                       } else {
                           mSelector = $('state[id=' + strStatePath + ']');
                       }
                       if (mSelector.length > 0) {
                           return true;
                       } else {
                           return false;
                       }
                   }  
                }); 
                
                on({id:"0_userdata.0.adapter_infos.AdapterNummer", change: 'any'}, function (dpobj) {
                   if (getState("javascript.0.Adapter.AdapterNummer").val != 0) {        
                       const instanz = "javascript." + instance;
                       var adapterNummer = getState(instanz + ".Adapter.AdapterNummer").val;
                       var adapter = getState(instanz + ".Adapter.Adapter" + adapterNummer + ".KompletterNameAdapter").val; // Name und Instanz des Adapters 
                       var idAdapter = "system.adapter." + adapter;
                       
                       var obj = getObject(idAdapter);
                       if (dpobj.state.val == false) {
                           obj.common.enabled = true;  // Adapter einschalten
                       } else if (dpobj.state.val == true) {
                           obj.common.enabled = false;  // Adapter ausschalten
                       }
                       setObject(idAdapter, obj);
                       setStateDelayed('javascript.0.Adapter.AdapterNummer', 0, 800);        
                   }
                });   
                

                Du müsstest den Adapter wohl von der Abfrage ausklammer, da er keinen Alive Objekt hat.

                Bitte unter Zeile 29 ergänzen:

                var check13 = id.indexOf('system.adapter.cloud.0.alive');
                

                und in Zeile 30

                var check = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 + check9 + check10 + check11 + check12 + check13;
                

                Dann wird der Adapter nicht mehr abgefragt

                A 1 Reply Last reply
                1
                • A Aachen1305

                  @chriss2007
                  ich arbeite mit den Xiaomi Fenstersensoren sowie Shelly 2.5 für die Rollos. Das Lustige ist ja dass ich keine Fehler angezeigt bekomme. Die Rollos fahren abends runter wie es sein soll, aber am nächsten Morgen nicht mehr hoch.
                  Ich werde heute abend das Skript einfach mal neu installieren und schauen ob es dann klappt.

                  C Offline
                  C Offline
                  chriss2007
                  wrote on last edited by
                  #587

                  @aachen1305 Und wenn du diese manuel Ansteuerst fahren diese Ordentlich?

                  A 1 Reply Last reply
                  0
                  • C chriss2007

                    @aachen1305 Und wenn du diese manuel Ansteuerst fahren diese Ordentlich?

                    A Offline
                    A Offline
                    Aachen1305
                    wrote on last edited by
                    #588

                    @chriss2007
                    Ja das klaapt einwandfrei.

                    Habe das Skript mal neu installiert, Rollos sind runtergefahren. Warten wir mal ab, wie es morgen früh aus sieht :-)

                    A 1 Reply Last reply
                    0
                    • K Kuddel

                      Hallo zusammen,

                      nach meiner zweiten VIS folgt jetzt meine dritte VIS.

                      Die größte Neuerung ist ein komplett neues Menü mit Hilfe des Top App Bar Widget. Vielen Dank an dieser Stelle an @Scrounger.

                      Bestimmt sind immer noch ein paar Fehler drin, aber fertig wird man ja eh nie.

                      Vieles habe ich aus meiner zweiten VIS übernommen, so dass die Screenshots aus dem Thread oben auch fast noch alle aktuell sind.

                      Screenshots:


                      Startseite
                      90372124-cd0b-40d0-ae6e-b8286ee25672-grafik.png

                      Menü
                      52f11cf6-b7f3-49c8-9344-b1a0f89d0eaa-grafik.png
                      e766325b-8727-48c0-b6e7-9f773f4f246b-grafik.png

                      BVB Details
                      423488b3-1367-4ebf-b28e-8b730970dfae-grafik.png

                      Tablet Details
                      ac924af2-ac1c-4069-a59e-6a68c8775a3f-grafik.png

                      System -> ioBroker
                      eb9f518b-c318-4a00-a66e-6879959792a4-grafik.png

                      System -> Homematic
                      1aaaed6f-8e59-4cdc-8bfd-c26185f1c28b-grafik.png

                      System -> Netzwerk
                      622fd166-ec5b-4ff3-9cbe-d5a81fd5332b-grafik.png

                      System -> Geräte
                      f20ab8dd-18f2-446e-94ac-55a74765e1ca-grafik.png

                      Details VU
                      9cdd9c50-f62a-4e3c-b01a-f911d2e8388d-grafik.png

                      System -> Logs
                      e190e53e-2a68-4e6d-ae7e-a48d069f809f-grafik.png

                      System -> VMware
                      34ffe501-5b74-4b2c-9092-2e1a8ed9f99e-grafik.png

                      Erdgeschoss -> Wohnzimmer
                      18c3b9dc-75e4-41c9-9338-ef3c827f4c86-grafik.png

                      Garten -> Bewässerung
                      160a9338-d885-42be-8ae8-2d0daa67a8f1-grafik.png

                      Wetter
                      840f00c2-b9bb-4f94-be9d-9bb5b0330947-grafik.png

                      Staubsauger
                      1343f5bc-1514-44d2-8754-9a6eff483708-grafik.png

                      Echo Geräte
                      aebe9414-69fe-46ef-86b9-9125b66e2f1d-grafik.png

                      Mutlimedia -> TV
                      d3549b5b-2178-48de-aa40-86c03343a04d-grafik.png

                      Damit die Navigation und alle Widgets funktionieren, wird vor dem Import der DP

                      javascript.0.VIS-Steuerung.Aktuelle_VIS_Seite
                      

                      benöigt.

                      Ebenso sind natürlich alle von mir verwendeten Widgets wichitg:

                      ad5673c8-1694-4fe5-9839-ca55c4dd920d-grafik.png
                      aba96ff9-f4c4-4291-a479-95ce40906c5b-grafik.png

                      Anleitung zum Import der kompletten VIS inkl. meiner Icons:


                      2020-08-17-VIS_v3.zip
                      Meine_Icons.zip

                      1. meine_icons.zip entpacken
                      2. 2020-08-17-vis_v3.zip entpacken
                      3. Die beiden VIS-Datein und die den Icons Ordner zu einem neuen Zip Archiv zusammefügen
                      4. Wie gewohnt das neue Archiv im VIS Editor importieren

                      Anleitung zum Import meiner Skripte:


                      Voraussetzung für den Skript Import

                      • Adapter: Mail, Pushover
                      • Objekte für meine Skripts

                      Objekte anlegen

                      Alle Objekte, mit denen ich in meinen Skripten arbeite, können mit einem Javascript erstellt werden:
                      objekte.txt

                      • Den Inhalt der TXT-Datei in ein neues Javascript kopieren
                      • Das Skript starten
                      • Alle Objekte werden angelegt
                      • Das Skript wieder stoppen

                      Import

                      1. Download der Datei 2020-03-17-scripts.zip
                      2. Eigene Skripte in Zip Datei exportieren
                      3. Beide Archive entpacken und dann die Skripte / Gruppen in einem gemeinsamen Archiv zusammenführen
                      4. Import des neu erstellten Archivs

                      Bei Fragen einfach im Thread stellen ;-)

                      Das nächste Projekt wird dann eine VIS fürs Smartphone

                      machs-smart.deM Offline
                      machs-smart.deM Offline
                      machs-smart.de
                      wrote on last edited by
                      #589

                      @kuddel sehr schön! Gerne auch mal meine anschauen: https://www.machs-smart.de/smart-home-dashboard-mit-der-machs-smart-de-firehd-visualisierung/

                      DD49DB88-909D-4AD6-9AA7-A15E012F4CFD.jpeg

                      www.machs-smart.de
                      Anleitungen und Tutorials rund um ioBroker

                      1 Reply Last reply
                      0
                      • A Aachen1305

                        @chriss2007
                        Ja das klaapt einwandfrei.

                        Habe das Skript mal neu installiert, Rollos sind runtergefahren. Warten wir mal ab, wie es morgen früh aus sieht :-)

                        A Offline
                        A Offline
                        Aachen1305
                        wrote on last edited by
                        #590

                        @aachen1305
                        Skript klappt nach Neuinstallation

                        1 Reply Last reply
                        1
                        • K Kuddel

                          @chriss2007 anbei einmal meine aktuell verwendete Version zur Abfrage der Adapter

                          // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                          
                          schedule('*/10 * * * * *', function (obj) {
                          //on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                             createState('0_userdata.0.adapter_infos.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                             createState('0_userdata.0.adapter_infos.AdapterNummer', 0, { name: 'Adapter zum schalten', desc: 'Adapter zum schalten', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });    
                             //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
                             
                             //Variablen zurücksetzen
                             var counter =0;
                             var on = 0
                             var manuell=0	
                          
                             var cacheSelector = $('[id=system.adapter.*.alive]');    
                             cacheSelector.each(function(id, i) { 
                          
                                 //Instanzen ausklammer
                                 var check1 = id.indexOf('system.adapter.coronavirus-statistics.0.alive');
                             	var check2 = id.indexOf('system.adapter.daswetter.0.alive');
                             	var check3 = id.indexOf('system.adapter.dwd.0.alive');
                             	var check4 = id.indexOf('system.adapter.ical.0.alive');
                             	var check5 = id.indexOf('system.adapter.ical.1.alive');
                             	var check6 = id.indexOf('system.adapter.ical.2.alive');
                             	var check7 = id.indexOf('system.adapter.feiertage.0.alive');
                             	var check8 = id.indexOf('system.adapter.kodi.0.alive');
                             	var check9 = id.indexOf('system.adapter.snmp.1.alive');
                                 var check10 = id.indexOf('system.adapter.synology.1.alive');
                                 var check11 = id.indexOf('system.adapter.yamaha.0.alive');
                             	var check12 = id.indexOf('system.adapter.vis.0.alive');
                          
                                 var check = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 + check9 + check10 + check11 + check12;
                          
                                 //Abfrage nur ausführen, wenn Instanz nicht ausgeklammert ist
                                 if(check == -12){
                                     var devicename = getObject(id).common.name; 
                          
                                     //console.log(devicename);
                                                
                             		var devicenameName=devicename;
                             		var instanzname=getObject(id).common.name;
                             		var test = devicenameName;
                             		var devicename_array = devicenameName.split(' ');        
                             		devicenameName = devicename_array[0];
                             		counter = counter+1; 
                             			
                             		var strStatePath = "system.adapter." + devicenameName + ".alive";
                             		
                             		//Uptime
                             		var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                             		var tage = Math.floor(uptime / (24*3600));
                             		var stunden = Math.floor((uptime % (24*3600))/3600);
                             		var minuten = Math.floor((uptime % (3600))/60);
                             		if (stunden < 10) {stunden = "0"+stunden};
                             		if (minuten < 10) {minuten = "0"+minuten};				
                             		if (tage == 1) {uptime = tage.toString()+" Tag, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";};
                             		if (tage != 1) {uptime = tage.toString()+" Tage, "+stunden.toString()+" Std, "+minuten.toString()+" Min ";}
                             		
                             		//Arbeitsspeicher etc.
                             		//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                             		//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                             		//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                             		
                             		//Connection Status
                             		var connect = getState("system.adapter." + devicenameName + ".alive").val;            
                             		if(connect == false){var con = 0;}
                             		
                             		else {                
                             			var con = 1;
                             			var strStatePath = devicenameName + ".info.connection";
                             			if (isState(strStatePath, true)) {
                             				var connectS = getState(devicenameName + ".info.connection").val;
                             				if (connectS == false) {
                             					con = 2;
                             				}                                                                        
                             			} 
                             		}
                             		if(con==1) {on = on + 1}
                             		
                             								
                             		      
                             		
                             		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".KompletterNameAdapter";
                             		createState(devicename, 'empty', { name: 'Kompletter Name des Adapters', desc: '', type: 'string', role: '',read: true, write: true }); 
                             		setStateDelayed(devicename, devicenameName, 800);
                             		
                             		var contentstring = devicenameName;
                             		var suchstring = /(ical)/g; 
                             		var suchergebnis = suchstring.test( contentstring );
                             		
                             		if (suchergebnis != true) {
                             			var devicename_array = devicenameName.split('.');        
                             			devicenameName = devicename_array[0];
                             		}    
                          
                             		if (devicenameName == "daswetter") {
                             			var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
                             		} else if (suchergebnis != false) {
                             			var devicename_array = devicenameName.split('.');        
                             			var icalName = devicename_array[0];        
                             			var bild = "/" + icalName + ".admin/" + icalName + ".png";
                             		} else {
                             			var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
                             		}
                             		
                             		//////////////////////////
                             		// Icon-Pfad definieren //
                             		//////////////////////////
                          
                             		//Alexa2
                             		if (devicenameName == 'alexa2') {var bild = "/" + devicenameName + ".admin/" + "alexa.png";}
                             		//FritzDECT
                             		if (devicenameName == 'fritzdect') {var bild = "/" + devicenameName + ".admin/" + "fritzdect_logo.png";}
                             		//FullyBrowser
                             		if (devicenameName == 'fullybrowser') {var bild = "/" + devicenameName + ".admin/" + "fully.png";}
                             		//HM-Rega
                             		if (devicenameName == 'hm-rega') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic.png";}
                             		//HomeMatic
                             		if (instanzname == 'hm-rpc.0 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic.png";}
                             		//HomeMatic-IP
                             		if (instanzname == 'hm-rpc.1 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homematic_ip.jpg";}
                                     //Homepilot
                                     if (instanzname == 'homepilot20.0 alive') {var bild = "/vis.0/VIS_v3/Meine_Icons/Adapter_Icons/homepilot.png";}
                             		//UPNP
                             		if (devicenameName == 'upnp') {var bild = "/" + devicenameName + ".admin/" + "upnp-discovery.png";}
                             		//Pushover.1
                             		if (instanzname == 'pushover.1 alive') {var bild = "/mihome-vacuum.admin/mihome-vacuum.png";}
                             		//Pushover.2
                             		if (instanzname == 'pushover.2 alive') {var bild = "/daswetter.admin/daswettercom.png";}
                             		
                          
                             		///////////////////////
                             		//AdapterName anpassen
                             		////////////////////////
                          
                             		//Corona-Statistics
                             		if (instanzname == 'coronavirus-statistics.0 alive') {devicenameName='Corona'; manuell=1}
                             		//DasWetter
                             		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                             		//DWD
                             		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; manuell=1}
                             		//Fullybrowser
                             		if (instanzname == 'fullybrowser.0 alive') {devicenameName='FullyKiosk'; manuell=1}			
                             		//HM-REGA
                             		if (instanzname == 'hm-rega.0 alive') {devicenameName='HM-Rega'; manuell=1}			
                             		//HM-RPC.0
                             		if (instanzname == 'hm-rpc.0 alive') {devicenameName='HomeMatic'; manuell=1}
                             		//HM-RPC.1
                             		if (instanzname == 'hm-rpc.1 alive') {devicenameName='HM-IP'; manuell=1}
                                     //Homepilot
                                     if (instanzname == 'homepilot20.0 alive') {devicenameName='Homepilot'; manuell=1}
                             		//Linux-Control
                             		if (instanzname == 'linux-control.0 alive') {devicenameName='Linux-Ctr.'; manuell=1}
                             		//MiHome-Vacuum -> NoNo
                             		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; manuell=1}
                                     //MiHome-Vacuum -> Dusty
                             		if (instanzname == 'mihome-vacuum.1 alive') {devicenameName='Dusty'; manuell=1}
                             		//Pushover
                             		if (instanzname == 'pushover.0 alive') {devicenameName='Pushover.0'; manuell=1}
                             		if (instanzname == 'pushover.1 alive') {devicenameName='Pushover.1'; manuell=1}
                             		if (instanzname == 'pushover.2 alive') {devicenameName='Pushover.2'; manuell=1}
                             		//Simple-API
                             		if (instanzname == 'simple-api.0 alive') {devicenameName='Simple-API'; manuell=1}
                             		//SNMP.0
                             		if (instanzname == 'snmp.0 alive') {devicenameName='QNAP-B'; manuell=1}
                             		//SNMP.1
                             		if (instanzname == 'snmp.1 alive') {devicenameName='QNAP-Archiv'; manuell=1}
                                     //SNMP.2
                             		if (instanzname == 'snmp.2 alive') {devicenameName='Brother'; manuell=1}
                             		//Spotify
                             		if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; manuell=1}
                                     // Synology
                                     if (instanzname == 'synology.0 alive') {devicenameName='XPEnology'; manuell=1}
                             		//Tankerkoenig
                             		if (instanzname == 'tankerkoenig.0 alive') {devicenameName='Tankerk.'; manuell=1}
                             		//Tashscheduler
                             		if (instanzname == 'trashschedule.0 alive') {devicenameName='Trashsched.'; manuell=1}
                             		//TR-064.0
                             		if (instanzname == 'tr-064.0 alive') {devicenameName='TR-064.0'; manuell=1}
                             		//TR-064.1
                             		if (instanzname == 'tr-064.1 alive') {devicenameName='TR-064.1'; manuell=1}
                             		//XPEnology
                             		if (instanzname == 'synology.1 alive') {devicenameName='XPEnology'; manuell=1}
                             		
                             		
                             		
                             		//Instanz-Namen setzen
                             		if(manuell!=1) {devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();}	
                             		//devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase();
                             		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".NameInstanz";
                             		createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
                             		setStateDelayed(devicename, devicenameName, 800);
                             		//Bild Pfad setzen
                             		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Bild";
                             		createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
                             		setStateDelayed(devicename, bild, 800);
                             		//Uptime setzen
                             		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Uptime";          
                             		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                             		setStateDelayed(devicename, uptime, 800);
                             		//MemUsed setzen
                             		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemUsed";          
                             		//createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
                             		//setStateDelayed(devicename, used, 800);
                             		//MemToal setzen
                             		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemTotal";          
                             		//createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
                             		//setStateDelayed(devicename, total, 800);
                             		//MemRSS setzen
                             		//devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".MemRSS";          
                             		//createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
                             		//setStateDelayed(devicename, rss, 800);
                             		//Connected setzen
                             		devicename="0_userdata.0.adapter_infos.Adapter"+counter.toString()+".Connected";          
                             		createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
                             		setStateDelayed(devicename, con, 800);
                             		
                             		//Wert zurücksetzen
                             		var manuell=0
                          
                                 };
                             });
                             
                             //Adaptet Icon Übersicht
                             visstatus="0_userdata.0.vis-status.alle_adapter_gestartet";
                             if(on == counter){setState(visstatus, true);}
                             //if(on == counter -1){setState(visstatus, true);}
                             else{setState(visstatus, false);}
                             
                             
                             setStateDelayed('0_userdata.0.adapter_infos.Anzahl', counter, 800);
                          
                             function isState(strStatePath, strict) {
                                 let mSelector;
                                 if (strict) {
                                     mSelector = $('state[id=' + strStatePath + '$]');
                                 } else {
                                     mSelector = $('state[id=' + strStatePath + ']');
                                 }
                                 if (mSelector.length > 0) {
                                     return true;
                                 } else {
                                     return false;
                                 }
                             }  
                          }); 
                          
                          on({id:"0_userdata.0.adapter_infos.AdapterNummer", change: 'any'}, function (dpobj) {
                             if (getState("javascript.0.Adapter.AdapterNummer").val != 0) {        
                                 const instanz = "javascript." + instance;
                                 var adapterNummer = getState(instanz + ".Adapter.AdapterNummer").val;
                                 var adapter = getState(instanz + ".Adapter.Adapter" + adapterNummer + ".KompletterNameAdapter").val; // Name und Instanz des Adapters 
                                 var idAdapter = "system.adapter." + adapter;
                                 
                                 var obj = getObject(idAdapter);
                                 if (dpobj.state.val == false) {
                                     obj.common.enabled = true;  // Adapter einschalten
                                 } else if (dpobj.state.val == true) {
                                     obj.common.enabled = false;  // Adapter ausschalten
                                 }
                                 setObject(idAdapter, obj);
                                 setStateDelayed('javascript.0.Adapter.AdapterNummer', 0, 800);        
                             }
                          });   
                          

                          Du müsstest den Adapter wohl von der Abfrage ausklammer, da er keinen Alive Objekt hat.

                          Bitte unter Zeile 29 ergänzen:

                          var check13 = id.indexOf('system.adapter.cloud.0.alive');
                          

                          und in Zeile 30

                          var check = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 + check9 + check10 + check11 + check12 + check13;
                          

                          Dann wird der Adapter nicht mehr abgefragt

                          A Offline
                          A Offline
                          AKuehnemann73
                          wrote on last edited by
                          #591

                          @kuddel

                          könntest du mir mal bitte das skript für den Saugroboter bereitstellen?
                          Beim importieren aus der Sammlung kommt immer nur
                          Can't extract blockly code

                          K 1 Reply Last reply
                          0
                          • A AKuehnemann73

                            @kuddel

                            könntest du mir mal bitte das skript für den Saugroboter bereitstellen?
                            Beim importieren aus der Sammlung kommt immer nur
                            Can't extract blockly code

                            K Offline
                            K Offline
                            Kuddel
                            wrote on last edited by
                            #592

                            @akuehnemann73

                            Nono.txt

                            A 1 Reply Last reply
                            0
                            • K Kuddel

                              @akuehnemann73

                              Nono.txt

                              A Offline
                              A Offline
                              AKuehnemann73
                              wrote on last edited by
                              #593

                              @kuddel

                              Vielen Dank hat jetzt geklappt :+1:

                              1 Reply Last reply
                              0
                              • B Offline
                                B Offline
                                Ben 1
                                wrote on last edited by
                                #594

                                Hallo,
                                klasse Vis :+1:

                                Ich brauche bitte mal Hilfe zur Anleitung, ich habe den Meine_Icons.zip entpackt dadrin ist der Ordner Meine_Icons:
                                1597641339374-meine_icons->Meine_Icons

                                Jetzt entpacke und kopiere ich die 2 files von 2020-08-17-VIS_v3.zip in den Ordner 1597641339374-meine_icons wodrin sich der unterordner Meine_Icons befindet und zippe das ganze und Importieren das im Vis Editor unter Projekte->Import.

                                Bei dem Import muss ich einen Namen eingeben ist dieser entscheidend bzw. vorgegeben ?
                                Leider kommen nachdem import fehler und mir wird die default Ansicht angezeigt.

                                error2.jpg

                                error.jpg

                                K 1 Reply Last reply
                                0
                                • B Ben 1

                                  Hallo,
                                  klasse Vis :+1:

                                  Ich brauche bitte mal Hilfe zur Anleitung, ich habe den Meine_Icons.zip entpackt dadrin ist der Ordner Meine_Icons:
                                  1597641339374-meine_icons->Meine_Icons

                                  Jetzt entpacke und kopiere ich die 2 files von 2020-08-17-VIS_v3.zip in den Ordner 1597641339374-meine_icons wodrin sich der unterordner Meine_Icons befindet und zippe das ganze und Importieren das im Vis Editor unter Projekte->Import.

                                  Bei dem Import muss ich einen Namen eingeben ist dieser entscheidend bzw. vorgegeben ?
                                  Leider kommen nachdem import fehler und mir wird die default Ansicht angezeigt.

                                  error2.jpg

                                  error.jpg

                                  K Offline
                                  K Offline
                                  Kuddel
                                  wrote on last edited by
                                  #595

                                  @ben-1 ich würde vorschlagen den Import ohne Icons zu machen.

                                  Erstmal meine VIS importieren.

                                  Wenn das funktioniert, die Icons hochladen

                                  B 1 Reply Last reply
                                  0
                                  • K Kuddel

                                    @ben-1 ich würde vorschlagen den Import ohne Icons zu machen.

                                    Erstmal meine VIS importieren.

                                    Wenn das funktioniert, die Icons hochladen

                                    B Offline
                                    B Offline
                                    Ben 1
                                    wrote on last edited by
                                    #596

                                    @kuddel
                                    Danke für deine Hilfe, welchen importnamen muss ich angeben ?

                                    K 1 Reply Last reply
                                    0
                                    • B Ben 1

                                      @kuddel
                                      Danke für deine Hilfe, welchen importnamen muss ich angeben ?

                                      K Offline
                                      K Offline
                                      Kuddel
                                      wrote on last edited by
                                      #597

                                      @ben-1 bei mir heißt die VIS: VIS_v3

                                      Könnte später entscheidend für die Icons sein.

                                      1 Reply Last reply
                                      0
                                      • B Offline
                                        B Offline
                                        Ben 1
                                        wrote on last edited by
                                        #598

                                        @knuddel
                                        wie erstellst du den den Rahmen bzw. wie heißt das Widget ?
                                        ich habe versucht die Größe zu verändern, finde aber nirgends den Wert.

                                        Kannst du mir evtl. ein Beispiel geben wo ich das sauber für mich erstelle.

                                        view.jpg

                                        B 1 Reply Last reply
                                        0
                                        • B Ben 1

                                          @knuddel
                                          wie erstellst du den den Rahmen bzw. wie heißt das Widget ?
                                          ich habe versucht die Größe zu verändern, finde aber nirgends den Wert.

                                          Kannst du mir evtl. ein Beispiel geben wo ich das sauber für mich erstelle.

                                          view.jpg

                                          B Offline
                                          B Offline
                                          Ben 1
                                          wrote on last edited by
                                          #599

                                          Habs gesehen das ist das Widget Shape und dann darauf einen Text

                                          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

                                          554

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          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