Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Probleme mit Script nach js-controller Update [gelöst]

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Probleme mit Script nach js-controller Update [gelöst]

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      Idefix01 last edited by Idefix01

      Hallo,

      nach dem Update von JS-Controller habe ich bei dem Script Adapter-infos folgedes Problem:

      Im Log-File kommt 4 mal folgende Zeile:

      javascript.0	2020-05-30 14:59:25.403	error	(920) script.js.Allgemein.adapter_infos: setForeignState: undefined is not a valid state value
      javascript.0	2020-05-30 14:59:25.403	error	(920) script.js.Allgemein.adapter_infos: setForeignState: undefined is not a valid state value
      javascript.0	2020-05-30 14:59:25.399	error	(920) script.js.Allgemein.adapter_infos: setForeignState: undefined is not a valid state value
      javascript.0	2020-05-30 14:59:25.398	error	(920) script.js.Allgemein.adapter_infos: setForeignState: undefined is not a valid state value
      

      Kann mir da jemand weiter helfen?

      Hier das Script

      // 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');
              instanz5 = devicename.indexOf('synology');
              instanz6 = devicename.indexOf('vis');
      		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";}
      			//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}
      			//Pushover
      			if (instanzname == 'pushover.0 alive') {devicenameName='Pushover.0'; 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}
      			//TR-064.0
      			if (instanzname == 'tr-064.0 alive') {devicenameName='TR-064.0'; 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);        
          }
      });   ```
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      871
      Online

      31.8k
      Users

      80.0k
      Topics

      1.3m
      Posts

      javascript
      1
      1
      169
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo