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

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

Community Forum

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

NEWS

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

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

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

[Vorstellung] Meine dritte VIS

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

    @Kuddel genau wie du, die Bahnverspätungen anzeigen lassen ;) Aber mit dem Adapter komme ich nicht klar, was dort eingetragen werden muss

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

    @cTech das habe ich auch noch nicht wirklich produktiv im Einsatz, da ich sei März im HomeOffice arbeite und nicht mehr Bahn fahre

    1 Reply Last reply
    0
    • T ToniMahoni

      @cTech Wo die Werte abgefragt werden, weiß ich schon. Die Frage ist, wo werden die Werte geändert/gesetzt?

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

      @ToniMahoni

      javascript.0.sonstige.weihnachtszeit ist dein DP, den ich über meine VIS setze,

      javascript.0.echo.ansage_aussentemperatur ist ein DP, den ich in einer Alexa Routine verwende

      T 1 Reply Last reply
      0
      • K Kuddel

        @ToniMahoni

        javascript.0.sonstige.weihnachtszeit ist dein DP, den ich über meine VIS setze,

        javascript.0.echo.ansage_aussentemperatur ist ein DP, den ich in einer Alexa Routine verwende

        T Offline
        T Offline
        ToniMahoni
        wrote on last edited by
        #387

        @Kuddel In dem View "1003_Home_Rollos" wird das doch geprüft, wenn true, dann wird 22:00 Uhr und Tannenbaum aktiviert. Und wo genau in deinem VIS wird das auf true oder false gesetzt?

        K 1 Reply Last reply
        0
        • T ToniMahoni

          @Kuddel In dem View "1003_Home_Rollos" wird das doch geprüft, wenn true, dann wird 22:00 Uhr und Tannenbaum aktiviert. Und wo genau in deinem VIS wird das auf true oder false gesetzt?

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

          @ToniMahoni ist gelb umrandet

          9910580c-6ed3-42d2-9826-7f66b545e831-grafik.png

          T 1 Reply Last reply
          0
          • K Kuddel

            @ToniMahoni ist gelb umrandet

            9910580c-6ed3-42d2-9826-7f66b545e831-grafik.png

            T Offline
            T Offline
            ToniMahoni
            wrote on last edited by
            #389

            @Kuddel Ah, super:+1: Vielen Dank.

            1 Reply Last reply
            0
            • K Kuddel

              @KHK es sieht für mich so aus, als wenn im Menü der DP nicht korrekt hinterlegt ist.

              Schaue mal ob du da auch "Aktuell_VIS_Seite" eingestellt hast

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

              @Kuddel
              Hallo

              ich habe deine Vermutung nochmal geprüft, aber diese "Aktuelle VIS_Seite" sind in beiden Widget der Startseite hinterlegt.

              1240bb57-4784-4c2f-a89b-753e7929166f-grafik.png
              3a238ce2-a5eb-48f7-9b17-cb5522689576-grafik.png

              Der DP wird ja auch genommen, zumindestesns wenn ich testweise über den view "Übersicht" etwas aufrufe - dann steht ja auch die Zahl in dem DP.

              Vielleicht noch eine Idee?

              K 1 Reply Last reply
              0
              • K KHK

                @Kuddel
                Hallo

                ich habe deine Vermutung nochmal geprüft, aber diese "Aktuelle VIS_Seite" sind in beiden Widget der Startseite hinterlegt.

                1240bb57-4784-4c2f-a89b-753e7929166f-grafik.png
                3a238ce2-a5eb-48f7-9b17-cb5522689576-grafik.png

                Der DP wird ja auch genommen, zumindestesns wenn ich testweise über den view "Übersicht" etwas aufrufe - dann steht ja auch die Zahl in dem DP.

                Vielleicht noch eine Idee?

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

                @KHK ich meinte den DP im Menü:

                5380fd99-eebd-4a34-a1fb-beaea1cb2f57-grafik.png

                1236cafb-f5b4-4728-b33b-026f6a6a604a-grafik.png

                K 1 Reply Last reply
                0
                • K Kuddel

                  @KHK ich meinte den DP im Menü:

                  5380fd99-eebd-4a34-a1fb-beaea1cb2f57-grafik.png

                  1236cafb-f5b4-4728-b33b-026f6a6a604a-grafik.png

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

                  @Kuddel Ok, hatte mich gerade gewundert, aber anscheind war bei mir dieses widget mit dem falschen Namen drin.

                  Habe es wieder auf "!Menü! umbenannt, aber immer noch der gleiche Effekt mit dem Eintrag "TRUE" in dem DP
                  fb983c2b-6820-4b1c-9833-eca350a23053-grafik.png

                  K 1 Reply Last reply
                  0
                  • K KHK

                    @Kuddel Ok, hatte mich gerade gewundert, aber anscheind war bei mir dieses widget mit dem falschen Namen drin.

                    Habe es wieder auf "!Menü! umbenannt, aber immer noch der gleiche Effekt mit dem Eintrag "TRUE" in dem DP
                    fb983c2b-6820-4b1c-9833-eca350a23053-grafik.png

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

                    @KHK da hilft nur testen.

                    • neue Seite erstellen
                    • Menu Widget und View in Widget einfügen
                    • den DP hinterlegen
                    • neue Seite im Brwoser augrufen
                    • prüfen ob der DP jetzt verändert wird
                    K 2 Replies Last reply
                    0
                    • K Kuddel

                      @KHK da hilft nur testen.

                      • neue Seite erstellen
                      • Menu Widget und View in Widget einfügen
                      • den DP hinterlegen
                      • neue Seite im Brwoser augrufen
                      • prüfen ob der DP jetzt verändert wird
                      K Offline
                      K Offline
                      KHK
                      wrote on last edited by
                      #394

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

                      V 1 Reply Last reply
                      1
                      • K Kuddel

                        @KHK da hilft nur testen.

                        • neue Seite erstellen
                        • Menu Widget und View in Widget einfügen
                        • den DP hinterlegen
                        • neue Seite im Brwoser augrufen
                        • prüfen ob der DP jetzt verändert wird
                        K Offline
                        K Offline
                        KHK
                        wrote on last edited by KHK
                        #395

                        @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 1 Reply Last reply
                        0
                        • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          536

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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