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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  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.1k

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

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

[Vorstellung] Meine dritte VIS

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
visvis projekte
640 Posts 83 Posters 184.6k Views 117 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K KHK

    @Kuddel Ich habe jetzt mal eine neues Menü-View - mit ein paar wenigen Einträgen (insgesamt 4 Views -ein Submenu) erstellt, dazu auch einem neuen DP.
    Leider ist der Effekt der gleiche. Sobald ich im VIS eine Menüseite aufrufe, wird der DP aktualisiert.
    Wenn ich von der Startseite (Element 0) auf einen anderen Eintrag gehe, dann ändert sich der DP von "false" auf "true".
    Wechsele ich dann auf einen anderen Menüpkt dann wird der Eintrag aktualisiert (sichtbar anhand des Zeitstempels), bleibt aber auf dem Wert "TRUE". Wechsele ich dann wieder auf den Ersten EIntrag (Startseite), dann wechslet der DP auf den Wert "FALSE".
    Ich habe mir noch mal die Beschreibung/Beispiel zum Menue angeschaut - leider werden keine anderen Einstellungen als die, mit denen ich bis jetzt gearbeitet habe - dort genannt.
    Gibt es noch irgendwo eine Stelle, was diese Nutzung der "View-Zahlen" veranlasst?

    Wenn ich manuell eine Ziffer in den DP eintrage, dann öffent sich auch korrekt die eingestellte View....also es scheint mir, dass die Funktionalität des DP geht - leider werden nicht die View-Zifferen dort automatisch eingetragen

    Karl

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

    @KHK der DP selber ist aber vom Typ "number" ?

    K 1 Reply Last reply
    0
    • K Kuddel

      @KHK der DP selber ist aber vom Typ "number" ?

      K Offline
      K Offline
      KHK
      wrote on last edited by
      #397

      @Kuddel D A N K E - das war der entscheidene Hinweis - es klappt jetzt! jetzt bin ich wieder einen Schritt weiter und kann zum nächsten "Problemfall" gehen.

      1 Reply Last reply
      0
      • K Kuddel

        Hallo zusammen,

        nach meiner zweiten VIS folgt jetzt meine dritte VIS.

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

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

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

        Screenshots:


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        javascript.0.VIS-Steuerung.Aktuelle_VIS_Seite
        

        benöigt.

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

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

        Anleitung zum Import der kompletten VIS inkl. meiner Icons:


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

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

        Anleitung zum Import meiner Skripte:


        Voraussetzung für den Skript Import

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

        Objekte anlegen

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

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

        Import

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

        Bei Fragen einfach im Thread stellen 😉

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

        S Offline
        S Offline
        SARCux
        wrote on last edited by
        #398

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

        Das verstehe ich leider nicht so ganz. Es ist doch nur die eine zip Datei.
        Wie importiere ich die unter Scripts?

        Ansonsten eine Super Arbeit.

        Als Newbie bin ich total geflasht was ihr hier so leistet. TOP

        K 1 Reply Last reply
        0
        • V Offline
          V Offline
          volx3eet
          wrote on last edited by
          #399

          Hallo @Kuddel,

          erstmal vielen Dank für die unfassbar geile View! Tolle Arbeit und danke, dass du diese mit uns teilst.

          Ich hab deine VIS einmal komplett nach Anleitung importiert. Ein paar DPs hab ich bereits angepasst und komme auch gut voran. Was ich allerdings nicht verstehe ist, dass wenn ich im VIS-Editor die Runtime starte beim Start die Startseitenview sehe, wenn ich aber auf eine andere View gehe und wieder zurück zur Startseite springe, das Wetter auf einmal nicht mehr angezeigt wird.

          1. Erstes mal starten der Runtime:
            1a6a09ef-2170-4f9d-9b0f-001fe572ff17-image.png

          2. Nach kurzem Gastspiel auf einer anderen View, und wieder zurück zur Startseite
            e91dae36-12b3-4234-8a13-0fda5d7d134a-image.png

          Das Wetter fehlt plötzlich und ich kann mir nicht erklären warum.
          Sollten weitere Infos notwendig sein, stelle ich diese gerne bereit,

          Danke für eure Hilfe!

          Grüße,
          Volx

          1 Reply Last reply
          0
          • S SARCux

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

            Das verstehe ich leider nicht so ganz. Es ist doch nur die eine zip Datei.
            Wie importiere ich die unter Scripts?

            Ansonsten eine Super Arbeit.

            Als Newbie bin ich total geflasht was ihr hier so leistet. TOP

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

            @volx3eet wie sieht es aus, wenn du die Anzeige aktualisierst ?

            Wo lässt du dir die VIS anzeigen ?

            Test mal auf einem PC

            1 Reply Last reply
            0
            • Holger EtzelH Offline
              Holger EtzelH Offline
              Holger Etzel
              wrote on last edited by
              #401

              Hallo,

              ich versuche immer noch an die Koordinaten 5-Stellige Zahlen zu kommen, dami ich die Räume einzel reinigen kann.
              Habe schon die APP FloleVac installiert. da soll man ja irgendwo die Koordinaten herbekommen.
              Finde aber nichts. Kann da jemand weiter helfen.
              Ich bedanke mich schon mal im vorraus.

              Gruß
              Holger

              1 Reply Last reply
              0
              • K Kuddel

                @marhal das ist meine aktuelle Version:

                // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                
                //on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                   createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                   createState('Adapter.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;
                   var counter =0;
                   var on = 0
                   var manuell=0	
                
                   var cacheSelector = $('[id=system.adapter.*.alive]');    
                   cacheSelector.each(function(id, i) {        
                       var devicename = getObject(id).common.name; 
                   	
                   	//Instanzen ausklammern
                   	instanz0 = devicename.indexOf('daswetter');
                   	instanz1 = devicename.indexOf('dwd');
                       instanz2 = devicename.indexOf('ical');
                   	instanz3 = devicename.indexOf('feiertage');
                   	instanz4 = devicename.indexOf('snmp.1');
                       instanz5 = devicename.indexOf('vis.0');
                       instanz6 = devicename.indexOf('yamaha.0');
                   	if(instanz0 !=0 && instanz1 != 0 && instanz2 !=0 && instanz3 != 0 && instanz4 != 0 && instanz5 !=0 && instanz6 !=0){
                   	
                   		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";
                   		if (isState(strStatePath, true)) {
                   			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);
                   			//var sekunden = Math.floor(uptime % 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 ";}
                   			//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                   			//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                   			//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                   			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="Adapter.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";
                   		}
                   		
                   		//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";}
                   		//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
                           ////////////////////////
                   		            
                           //DasWetter
                   		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                   		//DWD
                   		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; 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}
                   		//MiHome-Vacuum
                   		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; 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='SNMP.0'; manuell=1}
                   		//SNMP.1
                   		if (instanzname == 'snmp.1 alive') {devicenameName='SNMP.1'; manuell=1}
                           //Spotify
                           if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; 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="Adapter.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="Adapter.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="Adapter.Adapter"+counter.toString()+".Uptime";          
                   		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                   		setStateDelayed(devicename, uptime, 800);
                   		//MemUsed setzen
                   		//devicename="Adapter.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="Adapter.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="Adapter.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="Adapter.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="javascript.0.VIS-Status.alle_adapter_gestartet";
                   if(on == counter){setState(visstatus, true);}
                   if(on == counter -1){setState(visstatus, true);}
                   if(on < counter -1){setState(visstatus, false);}
                   
                   
                   setStateDelayed('Adapter.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:"javascript.0.Adapter.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);        
                   }
                });   
                

                M Offline
                M Offline
                marhal
                wrote on last edited by
                #402

                @Kuddel said in [Vorstellung] Meine dritte VIS:

                Danke für dein neues Script. jedoch bekomme ich immern och die Fehlermeldung
                08:49:50.527 error javascript.0 (1285) at Object.<anonymous> (script.js.java.abfragen.adapter_infos:27:18)
                08:50:05.551 error javascript.0 (1285) at script.js.java.abfragen.adapter_infos:29:38

                Habe ich da evtl . ein Widget vergessen ? oder ein Adapter den ich benötige ? ich komme noch nicht ganz durch mit deinem script 🙂

                gruß
                Marhal

                K 1 Reply Last reply
                0
                • M marhal

                  @Kuddel said in [Vorstellung] Meine dritte VIS:

                  Danke für dein neues Script. jedoch bekomme ich immern och die Fehlermeldung
                  08:49:50.527 error javascript.0 (1285) at Object.<anonymous> (script.js.java.abfragen.adapter_infos:27:18)
                  08:50:05.551 error javascript.0 (1285) at script.js.java.abfragen.adapter_infos:29:38

                  Habe ich da evtl . ein Widget vergessen ? oder ein Adapter den ich benötige ? ich komme noch nicht ganz durch mit deinem script 🙂

                  gruß
                  Marhal

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

                  @marhal kannst du mal kurz die beiden genannten zeilen aus dem Skript posten

                  Bitte Zeile 27 und 29.

                  Mal schauen was da drin steht bei dir

                  1 Reply Last reply
                  0
                  • K Kuddel

                    @marhal das ist meine aktuelle Version:

                    // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                    
                    //on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                    on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                       createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                       createState('Adapter.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;
                       var counter =0;
                       var on = 0
                       var manuell=0	
                    
                       var cacheSelector = $('[id=system.adapter.*.alive]');    
                       cacheSelector.each(function(id, i) {        
                           var devicename = getObject(id).common.name; 
                       	
                       	//Instanzen ausklammern
                       	instanz0 = devicename.indexOf('daswetter');
                       	instanz1 = devicename.indexOf('dwd');
                           instanz2 = devicename.indexOf('ical');
                       	instanz3 = devicename.indexOf('feiertage');
                       	instanz4 = devicename.indexOf('snmp.1');
                           instanz5 = devicename.indexOf('vis.0');
                           instanz6 = devicename.indexOf('yamaha.0');
                       	if(instanz0 !=0 && instanz1 != 0 && instanz2 !=0 && instanz3 != 0 && instanz4 != 0 && instanz5 !=0 && instanz6 !=0){
                       	
                       		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";
                       		if (isState(strStatePath, true)) {
                       			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);
                       			//var sekunden = Math.floor(uptime % 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 ";}
                       			//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                       			//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                       			//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                       			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="Adapter.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";
                       		}
                       		
                       		//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";}
                       		//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
                               ////////////////////////
                       		            
                               //DasWetter
                       		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                       		//DWD
                       		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; 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}
                       		//MiHome-Vacuum
                       		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; 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='SNMP.0'; manuell=1}
                       		//SNMP.1
                       		if (instanzname == 'snmp.1 alive') {devicenameName='SNMP.1'; manuell=1}
                               //Spotify
                               if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; 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="Adapter.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="Adapter.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="Adapter.Adapter"+counter.toString()+".Uptime";          
                       		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                       		setStateDelayed(devicename, uptime, 800);
                       		//MemUsed setzen
                       		//devicename="Adapter.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="Adapter.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="Adapter.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="Adapter.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="javascript.0.VIS-Status.alle_adapter_gestartet";
                       if(on == counter){setState(visstatus, true);}
                       if(on == counter -1){setState(visstatus, true);}
                       if(on < counter -1){setState(visstatus, false);}
                       
                       
                       setStateDelayed('Adapter.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:"javascript.0.Adapter.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);        
                       }
                    });   
                    

                    M Offline
                    M Offline
                    marhal
                    wrote on last edited by
                    #404

                    @Kuddel
                    Das ist ja mal eine schnelle Antwort 🙂 und guten Morgen dir Kuddel.
                    In den Zeilen steht folgendes

                    25 var cacheSelector = $('[id=system.adapter.*.alive]');
                    26
                    27 cacheSelector.each(function(id, i) {
                    28
                    29 var devicename = getObject(id).common.name;

                    K 1 Reply Last reply
                    0
                    • M marhal

                      @Kuddel
                      Das ist ja mal eine schnelle Antwort 🙂 und guten Morgen dir Kuddel.
                      In den Zeilen steht folgendes

                      25 var cacheSelector = $('[id=system.adapter.*.alive]');
                      26
                      27 cacheSelector.each(function(id, i) {
                      28
                      29 var devicename = getObject(id).common.name;

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

                      @marhal das ist aktuell mein Skript

                      // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                      
                      on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                         createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                         createState('Adapter.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;
                         var counter =0;
                         var on = 0
                         var manuell=0	
                      
                         var cacheSelector = $('[id=system.adapter.*.alive]');    
                         cacheSelector.each(function(id, i) {        
                             var devicename = getObject(id).common.name; 
                         	
                         	//Instanzen ausklammern
                         	instanz0 = devicename.indexOf('daswetter');
                         	instanz1 = devicename.indexOf('dwd');
                             instanz2 = devicename.indexOf('ical');
                         	instanz3 = devicename.indexOf('feiertage');
                             instanz4 = devicename.indexOf('kodi.0');
                         	instanz5 = devicename.indexOf('snmp.1');
                             instanz6 = devicename.indexOf('vis.0');
                             instanz7 = devicename.indexOf('yamaha.0');
                      
                         	if(instanz0 !=0 && instanz1 != 0 && instanz2 !=0 && instanz3 != 0 && instanz4 != 0 && instanz5 !=0 && instanz6 !=0 && instanz7 !=0){
                         	
                         		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";
                         		if (isState(strStatePath, true)) {
                         			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);
                         			//var sekunden = Math.floor(uptime % 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 ";}
                         			//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                         			//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                         			//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                         			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="Adapter.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";
                         		}
                         		
                         		//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";}
                         		//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
                                 ////////////////////////
                         		            
                                 //DasWetter
                         		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                         		//DWD
                         		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; 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}
                         		//MiHome-Vacuum
                         		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; 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='SNMP.0'; manuell=1}
                         		//SNMP.1
                         		if (instanzname == 'snmp.1 alive') {devicenameName='SNMP.1'; manuell=1}
                                 //Spotify
                                 if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; 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="Adapter.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="Adapter.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="Adapter.Adapter"+counter.toString()+".Uptime";          
                         		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                         		setStateDelayed(devicename, uptime, 800);
                         		//MemUsed setzen
                         		//devicename="Adapter.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="Adapter.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="Adapter.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="Adapter.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="javascript.0.VIS-Status.alle_adapter_gestartet";
                         if(on == counter){setState(visstatus, true);}
                         if(on == counter -1){setState(visstatus, true);}
                         if(on < counter -1){setState(visstatus, false);}
                         
                         
                         setStateDelayed('Adapter.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:"javascript.0.Adapter.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);        
                         }
                      });   
                      

                      Bevor wir jetzt groß rumprobieren, nimm einfach mal diese Version

                      S K 2 Replies Last reply
                      0
                      • K KHK

                        @Kuddel ok, dann werde ich mal den Weg gehen - danke

                        V Offline
                        V Offline
                        volx3eet
                        wrote on last edited by
                        #406

                        Hat mir auch geholfen 😊

                        1 Reply Last reply
                        0
                        • K Kuddel

                          @marhal das ist aktuell mein Skript

                          // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
                          
                          on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
                             createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                             createState('Adapter.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;
                             var counter =0;
                             var on = 0
                             var manuell=0	
                          
                             var cacheSelector = $('[id=system.adapter.*.alive]');    
                             cacheSelector.each(function(id, i) {        
                                 var devicename = getObject(id).common.name; 
                             	
                             	//Instanzen ausklammern
                             	instanz0 = devicename.indexOf('daswetter');
                             	instanz1 = devicename.indexOf('dwd');
                                 instanz2 = devicename.indexOf('ical');
                             	instanz3 = devicename.indexOf('feiertage');
                                 instanz4 = devicename.indexOf('kodi.0');
                             	instanz5 = devicename.indexOf('snmp.1');
                                 instanz6 = devicename.indexOf('vis.0');
                                 instanz7 = devicename.indexOf('yamaha.0');
                          
                             	if(instanz0 !=0 && instanz1 != 0 && instanz2 !=0 && instanz3 != 0 && instanz4 != 0 && instanz5 !=0 && instanz6 !=0 && instanz7 !=0){
                             	
                             		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";
                             		if (isState(strStatePath, true)) {
                             			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);
                             			//var sekunden = Math.floor(uptime % 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 ";}
                             			//var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                             			//var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                             			//var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                             			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="Adapter.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";
                             		}
                             		
                             		//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";}
                             		//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
                                     ////////////////////////
                             		            
                                     //DasWetter
                             		if (instanzname == 'daswetter.0 alive') {devicenameName='DasWetter'; manuell=1}
                             		//DWD
                             		if (instanzname == 'dwd.0 alive') {devicenameName='DWD'; 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}
                             		//MiHome-Vacuum
                             		if (instanzname == 'mihome-vacuum.0 alive') {devicenameName='Nono'; 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='SNMP.0'; manuell=1}
                             		//SNMP.1
                             		if (instanzname == 'snmp.1 alive') {devicenameName='SNMP.1'; manuell=1}
                                     //Spotify
                                     if (instanzname == 'spotify-premium.0 alive') {devicenameName='Spotify'; 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="Adapter.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="Adapter.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="Adapter.Adapter"+counter.toString()+".Uptime";          
                             		createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
                             		setStateDelayed(devicename, uptime, 800);
                             		//MemUsed setzen
                             		//devicename="Adapter.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="Adapter.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="Adapter.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="Adapter.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="javascript.0.VIS-Status.alle_adapter_gestartet";
                             if(on == counter){setState(visstatus, true);}
                             if(on == counter -1){setState(visstatus, true);}
                             if(on < counter -1){setState(visstatus, false);}
                             
                             
                             setStateDelayed('Adapter.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:"javascript.0.Adapter.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);        
                             }
                          });   
                          

                          Bevor wir jetzt groß rumprobieren, nimm einfach mal diese Version

                          S Offline
                          S Offline
                          Sequal
                          wrote on last edited by
                          #407

                          @Kuddel

                          Hut ab vor Deiner Arbeit! Deine Visualisierung ist echt gut gelungen!
                          Ich hab allerdings ein kleines Verständnisproblem mit den Wetter-Views. Es wird alles bestens angezeigt, Objekte sind alle da, auch die Scripte laufen....eigentlich. Es wird jedoch nichts aktualisiert außer Datum und Uhrzeit. Temperaturen, Icons etc. bleiben immer bei den eingestellten Datenpunkten zb. von Day1. Auch die 5-Tagesübersicht bleibt wie eingerichtet, aber ändert sich nicht mit dem Fortschreiten der Woche. Was für ein Script hab ich da übersehen oder hab ich den Wetter.com-Adapter nicht richtig eingerichtet? Welcher Pfad im Adapter soll benutzt werden? Ich suche gerad den Wald zwischen all den Bäumen.....

                          Gruß
                          Sequal

                          K 1 Reply Last reply
                          0
                          • S Sequal

                            @Kuddel

                            Hut ab vor Deiner Arbeit! Deine Visualisierung ist echt gut gelungen!
                            Ich hab allerdings ein kleines Verständnisproblem mit den Wetter-Views. Es wird alles bestens angezeigt, Objekte sind alle da, auch die Scripte laufen....eigentlich. Es wird jedoch nichts aktualisiert außer Datum und Uhrzeit. Temperaturen, Icons etc. bleiben immer bei den eingestellten Datenpunkten zb. von Day1. Auch die 5-Tagesübersicht bleibt wie eingerichtet, aber ändert sich nicht mit dem Fortschreiten der Woche. Was für ein Script hab ich da übersehen oder hab ich den Wetter.com-Adapter nicht richtig eingerichtet? Welcher Pfad im Adapter soll benutzt werden? Ich suche gerad den Wald zwischen all den Bäumen.....

                            Gruß
                            Sequal

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

                            @Sequal die VIS stellt ja nur die Wetterdaten vom Adapter "DasWetter" dar.

                            Ändern sich deine DPs unter "daswetter.0" denn korrekt ?

                            Wenn der Adapter die Daten nicht korrekt aktualisiert, gibt es in der VIS natürlich auch keine Veränderungen.

                            S 1 Reply Last reply
                            0
                            • K Kuddel

                              @Sequal die VIS stellt ja nur die Wetterdaten vom Adapter "DasWetter" dar.

                              Ändern sich deine DPs unter "daswetter.0" denn korrekt ?

                              Wenn der Adapter die Daten nicht korrekt aktualisiert, gibt es in der VIS natürlich auch keine Veränderungen.

                              S Offline
                              S Offline
                              Sequal
                              wrote on last edited by Sequal
                              #409

                              @Kuddel

                              Ich war eigentlich der Meinung, die Datenpunkte sind alle korrekt, bis mir auffiel, dass sich die Temperaturen nicht verändern auf der Startseite. Kann es daran liegen, dass ich den falschen API Pfad im Adapter ausgewählt habe? Welcher passt hier?
                              Gruß

                              K 1 Reply Last reply
                              0
                              • S Sequal

                                @Kuddel

                                Ich war eigentlich der Meinung, die Datenpunkte sind alle korrekt, bis mir auffiel, dass sich die Temperaturen nicht verändern auf der Startseite. Kann es daran liegen, dass ich den falschen API Pfad im Adapter ausgewählt habe? Welcher passt hier?
                                Gruß

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

                                @Sequal poste mal bitte einen Screenshot von deinen Adapter Einstellungen, dann kann ich morgen früh mal vergleichen

                                S 1 Reply Last reply
                                0
                                • K Kuddel

                                  @Sequal poste mal bitte einen Screenshot von deinen Adapter Einstellungen, dann kann ich morgen früh mal vergleichen

                                  S Offline
                                  S Offline
                                  Sequal
                                  wrote on last edited by
                                  #411

                                  @Kuddel said in [Vorstellung] Meine dritte VIS:

                                  @Sequal poste mal bitte einen Screenshot von deinen Adapter Einstellungen, dann kann ich morgen früh mal vergleichen

                                  Ich hab die Instanz vorhin testweise gelöscht, neu hinzugefügt aber noch nicht wieder konfiguriert.
                                  daswetter.png

                                  Erster Schritt wäre zu wissen, welchen Pfad Du gewählt hast, damit ich das schonmal ausschließen kann.
                                  Gruß und Danke!

                                  K V 2 Replies Last reply
                                  0
                                  • S Sequal

                                    @Kuddel said in [Vorstellung] Meine dritte VIS:

                                    @Sequal poste mal bitte einen Screenshot von deinen Adapter Einstellungen, dann kann ich morgen früh mal vergleichen

                                    Ich hab die Instanz vorhin testweise gelöscht, neu hinzugefügt aber noch nicht wieder konfiguriert.
                                    daswetter.png

                                    Erster Schritt wäre zu wissen, welchen Pfad Du gewählt hast, damit ich das schonmal ausschließen kann.
                                    Gruß und Danke!

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

                                    @Sequal 6980eaab-ce9f-45d9-87e2-b36ca91d51c5-grafik.png

                                    S 1 Reply Last reply
                                    0
                                    • S Sequal

                                      @Kuddel said in [Vorstellung] Meine dritte VIS:

                                      @Sequal poste mal bitte einen Screenshot von deinen Adapter Einstellungen, dann kann ich morgen früh mal vergleichen

                                      Ich hab die Instanz vorhin testweise gelöscht, neu hinzugefügt aber noch nicht wieder konfiguriert.
                                      daswetter.png

                                      Erster Schritt wäre zu wissen, welchen Pfad Du gewählt hast, damit ich das schonmal ausschließen kann.
                                      Gruß und Danke!

                                      V Offline
                                      V Offline
                                      volx3eet
                                      wrote on last edited by
                                      #413

                                      @Sequal Ich hab dir hier auch nochmal eine Anleitung angehängt. Ich gehe davon aus, daß du dir bereits einen Account erstellt hast bei daswetter. Wenn du dich dort einloggst findest du eigentlich alle Links die du im Adapter eintragen musst.

                                      Anleitung

                                      VG
                                      Volx

                                      S 1 Reply Last reply
                                      0
                                      • K Kuddel

                                        @Sequal 6980eaab-ce9f-45d9-87e2-b36ca91d51c5-grafik.png

                                        S Offline
                                        S Offline
                                        Sequal
                                        wrote on last edited by
                                        #414

                                        @Kuddel
                                        Ok, Du hast 3 Pfade eingetragen......ich hatte mir einen ausgesucht. Vielleicht war das der Haken 🙂 Ich beobachte.....Danke!

                                        Euch schöne Feiertage!

                                        1 Reply Last reply
                                        0
                                        • V volx3eet

                                          @Sequal Ich hab dir hier auch nochmal eine Anleitung angehängt. Ich gehe davon aus, daß du dir bereits einen Account erstellt hast bei daswetter. Wenn du dich dort einloggst findest du eigentlich alle Links die du im Adapter eintragen musst.

                                          Anleitung

                                          VG
                                          Volx

                                          S Offline
                                          S Offline
                                          Sequal
                                          wrote on last edited by
                                          #415

                                          @volx3eet

                                          Jo, danke. War bereits alles eingerichtet, aber eben nur ein Pfad. Ich hatte die Erläuterung so verstanden.....

                                          Gruß

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          695

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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