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.3k 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.
  • K Kuddel

    @chriss2007 die Abfrage ich mittlweile aus BLockly herausgelöst und verwendet dafür den Adapter Linux-Control.

    Da kann man dann eigene Befehle hinterlegen

    C Offline
    C Offline
    chriss2007
    schrieb am zuletzt editiert von
    #574

    @kuddel den Adapter habe ich mir auch schon angeschaut, aber will dort auch nicht. anscheinend hat es mit der ssh zu tun. ich finde aber nicht die ursache dafür

    K 1 Antwort Letzte Antwort
    0
    • C chriss2007

      @kuddel den Adapter habe ich mir auch schon angeschaut, aber will dort auch nicht. anscheinend hat es mit der ssh zu tun. ich finde aber nicht die ursache dafür

      K Online
      K Online
      Kuddel
      schrieb am zuletzt editiert von
      #575

      @chriss2007 was meldet der Adapter denn, wenn du was anfragen willst?

      C 1 Antwort Letzte Antwort
      1
      • K Kuddel

        @chriss2007 was meldet der Adapter denn, wenn du was anfragen willst?

        C Offline
        C Offline
        chriss2007
        schrieb am zuletzt editiert von
        #576

        @kuddel der Adapter sagt laut Protokoll das er fertig ist, aber Datenpunkt ist leer
        Protokol.jpg objekt.jpg adapter.jpg

        K 1 Antwort Letzte Antwort
        0
        • C chriss2007

          @kuddel der Adapter sagt laut Protokoll das er fertig ist, aber Datenpunkt ist leer
          Protokol.jpg objekt.jpg adapter.jpg

          K Online
          K Online
          Kuddel
          schrieb am zuletzt editiert von
          #577

          @chriss2007 so sieht es bei mir aus für z.B. meine CCU

          3f14e53c-6293-4bea-83b8-1966a18b744d-grafik.png

          CPU

          grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} {printf("%.2f\n",usage)}'
          

          RAM

          free | grep Mem | awk '{usage=($3/$2 * 100.0)} END {printf("%.2f\n",usage)}'
          

          Uptime

          awk '{printf("%u Tage, %02u Std, %02u Min\n",int($1/60/60/24),int($1%(60*60*24)/60/60),int(($1%(60*60))/60))}' /proc/uptime
          
          C 2 Antworten Letzte Antwort
          1
          • K Kuddel

            @chriss2007 so sieht es bei mir aus für z.B. meine CCU

            3f14e53c-6293-4bea-83b8-1966a18b744d-grafik.png

            CPU

            grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} {printf("%.2f\n",usage)}'
            

            RAM

            free | grep Mem | awk '{usage=($3/$2 * 100.0)} END {printf("%.2f\n",usage)}'
            

            Uptime

            awk '{printf("%u Tage, %02u Std, %02u Min\n",int($1/60/60/24),int($1%(60*60*24)/60/60),int(($1%(60*60))/60))}' /proc/uptime
            
            C Offline
            C Offline
            chriss2007
            schrieb am zuletzt editiert von
            #578

            @kuddel fehler gefunden und läuft auch jetzt.

            1 Antwort Letzte Antwort
            0
            • K Kuddel

              @chriss2007 so sieht es bei mir aus für z.B. meine CCU

              3f14e53c-6293-4bea-83b8-1966a18b744d-grafik.png

              CPU

              grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} {printf("%.2f\n",usage)}'
              

              RAM

              free | grep Mem | awk '{usage=($3/$2 * 100.0)} END {printf("%.2f\n",usage)}'
              

              Uptime

              awk '{printf("%u Tage, %02u Std, %02u Min\n",int($1/60/60/24),int($1%(60*60*24)/60/60),int(($1%(60*60))/60))}' /proc/uptime
              
              C Offline
              C Offline
              chriss2007
              schrieb am zuletzt editiert von
              #579

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

              K 1 Antwort Letzte Antwort
              0
              • 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 Online
                K Online
                Kuddel
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                1
                • C Offline
                  C Offline
                  chriss2007
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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 Online
                            K Online
                            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 Online
                                        K Online
                                        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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          702

                                          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