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

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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Vorstellung] Meine dritte VIS

NEWS

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

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

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

[Vorstellung] Meine dritte VIS

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
visvis projekte
640 Beiträge 83 Kommentatoren 185.2k Aufrufe 117 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #587

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

      A 1 Antwort Letzte Antwort
      0
      • C chriss2007

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

        A Offline
        A Offline
        Aachen1305
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #590

            @aachen1305
            Skript klappt nach Neuinstallation

            1 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #592

                @akuehnemann73

                Nono.txt

                A 1 Antwort Letzte Antwort
                0
                • K Kuddel

                  @akuehnemann73

                  Nono.txt

                  A Offline
                  A Offline
                  AKuehnemann73
                  schrieb am zuletzt editiert von
                  #593

                  @kuddel

                  Vielen Dank hat jetzt geklappt :+1:

                  1 Antwort Letzte Antwort
                  0
                  • B Offline
                    B Offline
                    Ben 1
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #596

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

                        K 1 Antwort Letzte Antwort
                        0
                        • B Ben 1

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

                          K Offline
                          K Offline
                          Kuddel
                          schrieb am zuletzt editiert von
                          #597

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

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

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            Ben 1
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #599

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

                              1 Antwort Letzte Antwort
                              0
                              • mgiesoM Offline
                                mgiesoM Offline
                                mgieso
                                schrieb am zuletzt editiert von
                                #600

                                Alexa

                                Hallo die View gefällt mir sehr …

                                Habe 3 Dots 1 Bose 900 Alexafähig

                                Wie mache ich das mit den Radiosender ?

                                A 1 Antwort Letzte Antwort
                                0
                                • mgiesoM mgieso

                                  Alexa

                                  Hallo die View gefällt mir sehr …

                                  Habe 3 Dots 1 Bose 900 Alexafähig

                                  Wie mache ich das mit den Radiosender ?

                                  A Offline
                                  A Offline
                                  Aachen1305
                                  schrieb am zuletzt editiert von
                                  #601

                                  @mgieso
                                  Schau Dir den ersten Post an, gehe danach vor und baue nach.
                                  Genau so habe ich es auch gemacht :+1:

                                  1 Antwort Letzte Antwort
                                  0
                                  • maximal1981M Offline
                                    maximal1981M Offline
                                    maximal1981
                                    schrieb am zuletzt editiert von
                                    #602

                                    @Kuddel
                                    wie änderst du die Player-Steuer Widgets der Echos?
                                    z.B. DP: ....0.echo.wohnzimmer_status
                                    Spotify, Amazon Music, Tunein, Stopped

                                    K 1 Antwort Letzte Antwort
                                    0
                                    • maximal1981M maximal1981

                                      @Kuddel
                                      wie änderst du die Player-Steuer Widgets der Echos?
                                      z.B. DP: ....0.echo.wohnzimmer_status
                                      Spotify, Amazon Music, Tunein, Stopped

                                      K Offline
                                      K Offline
                                      Kuddel
                                      schrieb am zuletzt editiert von
                                      #603

                                      @maximal1981 ich lese den aktiven Player vom Echo aus und setze dann darüber den Status

                                      307fc914-bf1e-41b1-8bae-c76223f02c86-grafik.png

                                      1 Antwort Letzte Antwort
                                      0
                                      • maximal1981M Offline
                                        maximal1981M Offline
                                        maximal1981
                                        schrieb am zuletzt editiert von maximal1981
                                        #604

                                        @kuddel

                                        ok. Aber "active provider" hab ich nicht

                                        und wie übergibst du amazon playlist, denn der Ballerman Top 100 via Tunein funktioniert ja so nicht

                                        K 1 Antwort Letzte Antwort
                                        0
                                        • maximal1981M maximal1981

                                          @kuddel

                                          ok. Aber "active provider" hab ich nicht

                                          und wie übergibst du amazon playlist, denn der Ballerman Top 100 via Tunein funktioniert ja so nicht

                                          K Offline
                                          K Offline
                                          Kuddel
                                          schrieb am zuletzt editiert von
                                          #605

                                          @maximal1981

                                          Suche mal nach alexa2.0.Echo-Devices.DEIN_DEVICE.Player.providerName

                                          Da ist der DP, den ich verwende

                                          Ballermann Top 100 ist / war ein Online Radio sender.

                                          Da übergabe ich den Wert "Ballermann Radio Top 100" an den DP alexa2.0.Echo-Devices.SEIN_DEVICE.Music-Provider.TuneIn

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          349

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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