NEWS
Problem mit Adapter_Infos
-
Hallo alle Zusammen
ich habe Probleme mit dem Adapter_Info Skript
15:29:45.863 warn javascript.0 (834) script.js.java.abfragen.adapter_infos: Object "system.adapter.vis.0.alive" does not exist 15:29:45.866 error javascript.0 (834) at script.js.java.abfragen.adapter_infos:14:39 15:29:45.866 error javascript.0 (834) at Object.<anonymous> (script.js.java.abfragen.adapter_infos:13:19)
// 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('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";} //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} //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} //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); } });
Kann mir hier jemand sagen was ich falsch mache ??
LG Daniel
-
@dg19222 sagte in Problem mit Adapter_Infos:
if(instanz0 !=0 && instanz1 != 0 && instanz2 !=0 && instanz3 != 0 && instanz4 != 0 && instanz5 !=0 && instanz6 != 0){
Du willst sie ausklammern
instanz0 <0 && instanz1 <0....
-
@mcu
Stehe grad auf em Schlauch -
@dg19222 Wo und wie?
-
ich habe das skript übernommen ich kenne mich mit Java Skripten nur sehr wenig aus
-
@dg19222 sagte: Object "system.adapter.vis.0.alive" does not exist
Starte mal die Javascript-Instanz neu. Offenbar hat sie noch ungültige Zustände im Puffer.
-
@paul53
Danke für den tip Jetzt ist der fehler weg
Die ordner werden Erstellt allerdings liefert das Skript nur den Namen der Adapter aber leider keine zahlenwerte hier giebt er nur {"ack":false} ausHast du da noch ne idee?