<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol]]></title><description><![CDATA[<p dir="auto">und noch eine tabelle - es werden alle geräte des netzwerkes  gesucht und angezeigt - script wurde zusammen mit <a class="plugin-mentions-user plugin-mentions-a" href="/user/homoran" aria-label="Profile: homoran">@<bdi>homoran</bdi></a> entwickelt - nur für einen netzwerkbereich nutzbar</p>
<p dir="auto"><span style="color:#ff0000"><strong>NEUE VERSION auf GITHUB:</strong></span> <a href="https://github.com/liv-in-sky/nmap-ip-iobroker-script" rel="nofollow ugc">https://github.com/liv-in-sky/nmap-ip-iobroker-script</a></p>
<ul>
<li>
<p dir="auto">netzwerk wird mit externen befehl gescannt - dazu muss das tool nmap installiert werden - in linux,windows</p>
</li>
<li>
<p dir="auto">das tool nmap wird unter linux auf der console mit "apt-get install nmap" installiert - für windows das tool downloaden und im standardverzeichnis installieren <a href="https://nmap.org/download.html" rel="nofollow ugc">https://nmap.org/download.html</a></p>
</li>
<li>
<p dir="auto">in linux muss in der iobroker datei /etc/sudoers.d/iobroker ein eintrag geschrieben werden <a href="https://forum.iobroker.net/post/375519">https://forum.iobroker.net/post/375519</a> - der befhel nmap muss mit root ausgeführt werden !!!</p>
</li>
<li>
<p dir="auto">im setting der javascript instanz das exec. anklicken <a href="https://forum.iobroker.net/post/409294">https://forum.iobroker.net/post/409294</a></p>
</li>
<li>
<p dir="auto">in windows habe ich dem user, der iobroker installiert hat, volle rechte auf das standardverzeichnis der nmap installation gegeben <strong>wichtig</strong>: es muss der befehl "<span style="color:#ff0000">nmap --iflist</span>" ausgeführt werden - dmit bekommt man die aktuelle ethernetschnittstelle heraus ( "up") - diese wird unter const onlyWinEthernetIF eingetragen</p>
</li>
<li>
<p dir="auto">damit man eine anzeige bekommt, muss ein datenpunkt (zeichenkette, string)  angelgt werden, der anschliessend auch im script eingetragen werden muss (dpVis) - im settingbereich des scriptes<br />
die anderen settings müssen im script auch angeglichen werden z.b. dns server, domainname und der ipbereich</p>
</li>
<li>
<p dir="auto">die aliasnamen in  myDeviceNames: android, amazon-geräte werden bei fritzbox-dnsserver-nutzung mit dem eigennamen des gerätes angezeigt - ist ein fritzbox problem seit fritzos 7</p>
</li>
<li>
<p dir="auto">es ist möglich eine datei zu erzeugen um die tabelle in iqontrol zu nutzen oder in der vis mit einem iframe einzubinden - standardmäßig nutzt man das standard-html-widget in der vis mit einem binding auf dpVis <a href="https://forum.iobroker.net/post/375754">https://forum.iobroker.net/post/375754</a></p>
</li>
<li>
<p dir="auto">symbole, farben tabellensettings sind alle individuell einstellbar!</p>
</li>
<li>
<p dir="auto"><span style="color:#ff0000">docker bzw. synology-user:</span> <a href="https://forum.iobroker.net/post/376631">https://forum.iobroker.net/post/376631</a> ihr müßt im ersten exec befehl das "sudo -u root nmap " mit nur "nmap" ersetzen - siehe auch <a href="https://forum.iobroker.net/post/376920">https://forum.iobroker.net/post/376920</a></p>
</li>
<li>
<p dir="auto">die javascript adapter version sollte 4.3.x sein oder höher !!!</p>
</li>
</ul>
<p dir="auto"><img src="/assets/uploads/files/1615383533163-aapossis-18.gif" alt="AApossis (18).gif" class=" img-fluid img-markdown" /></p>
<p dir="auto"></p><section class="spoiler-wrapper"><button class="spoiler-control btn btn-default">andere darstellung der tabelle</button><section style="display:none" class="spoiler-content"><br />
<img src="/assets/uploads/files/1581428428930-1581282746893-nmap_finetuning.png" alt="1581282746893-nmap_finetuning.png" class=" img-fluid img-markdown" /><br />
</section></section><p></p>
<p dir="auto">Anleitung für mehrere links pro server ist hier: <a href="https://forum.iobroker.net/post/597255">https://forum.iobroker.net/post/597255</a></p>
<p dir="auto">in den ersten 20 zeilen sind die wichtigen settings - bitte alle durchgehen !!!</p>
<p dir="auto"></p><section class="spoiler-wrapper"><button class="spoiler-control btn btn-default">script nicht nutzen siehe oben im post - neue version nutzen !!! </button><section style="display:none" class="spoiler-content"><p></p>
<pre><code>//@liv-in-sky Januar 2021 13.3-19:00


//HIER WIRD PFAD UND FILENAME DEFINIERT
// @ts-ignore
const path = "/htmlip.html";                   //FIlenamen definieren
const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
let   braucheHostDaten=false;
let   braucheEinFile=false;                          // bei true wird ein file geschrieben
let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
let   braucheMaterialDesignWidget=false;             // bei true wird ein html-tabelle in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
let   braucheMaterialDesignWidgetList=false;        // bei true wird ein html-tabelle in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
let dpHost="0_userdata.0.Tabellen.IPDevices_HostDaten"         //WICHTIG wenn braucheHostDaten auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget // string
let dpSort="0_userdata.0.Tabellen.IPDevicesSort";           //WICHTIG - Sortierung
let dpVIS="0_userdata.0.Tabellen.IPDevices"         //WICHTIG wenn braucheMaterialDesignWidgetList auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget // string
let dpMaterialTabelWidget="0_userdata.0.Tabellen.IPDevices_MD_Table"         //WICHTIG wenn braucheMaterialDesignWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget // string
let dpMaterialListWidget="0_userdata.0.Tabellen.IPDevices_MD_List"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget // string
let pfadBilderMaterialWidget="/vis.0/armin/img/"                       // PFAD zu den bildern, die in die vis geladen wurden/
let mySchedule=" */15 * * * * ";                       //jede minute  -  nicht unter eine minute gehen -besser 3 oder 5 minuten nutzen !!!
const domainName="fritz.box";                  // domainname in der fritzbox definiert
const ipbereich="192.168.178.0/24";           //  gilt nicht für windows
const dnsServer="192.168.178.1"               // gilt nicht für windows
let mysortiereClient=1;                     //1 nach client 2 nach ip 
const waitTime=500;                        // falls längere zeit keine daten kommen - diesen wert erhöhn um 5000 (ms)
const lastZellColorSetting="lightgreen"      // farbe der zusammenfassung in der letzten zelle der tabelle 
const oerationSystemchange=false;              // false ist linux, true ist windows
const onlyWinEthernetIF="eth0"                // nur windows über befehl "nmap --iflist" herausfinden
const farbeNichtErreichbar="#819FF7" //"#FFBF00";         // farbe für devices, die gerade nicht online sind
const styleNichtErreichbar="i";             // möglich i=schräg, b ist fett und span ist normal - nur eines  davon !!!
const kuerzungNamen=23;                      // länge der namen kürzen
const materialD_IP_erreichbar="#D8D8D8";        // material design farbe der ip adresse bei erreichbaren klient
const materialD_IP_nichtErreichbar="#F7819F";    // material design farbe der ip adresse bei nicht erreichbaren klient
const htmlGragient=[150,30,70];                          // einstellung des gradienten

//hier eintragen für die übersetzung der standardnamen - aliase - rechte seite wird statt linker  angezeigt - die beispiele kann man raus löschen
// BITTE AUF DIE KOMMAs ACHTEN
const myDeviceNames={ "192.168.178.24"  :"HF Küche Licht",     // ein leeres array wird so erzeugt: const myDeviceNames=[];
                     "192.168.178.118" :"Echo Beige",
                     "192.168.178.100" :"Echo Plus",
                     "192.168.178.50"  :"Echo Dot Zimmer",
                     "192.168.178.68"  :"HF Desk Haupt"

}

const myDeviceNamesNew= [{"ip" : "192.168.178.10", "name" : "Proxmox", "link" : "https://192.168.178.10:8006/", "kat":"server", "linkFirstName":"WEB"},
                        {"ip" : "192.168.178.157", "name" : "sqltulla", "link" : "http://192.168.178.157:8181/settings", "kat":"server", "linkFirstName":"TAUTULLA" },
                        {"ip" : "192.168.178.145", "name" : "pi-hole", "link" : "http://192.168.178.145/admin", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.59", "name" : "iobroker", "link" : "http://192.168.178.59:8081/#tab-objects", "kat":"server","linkFirstName":"OBJ", "morelinks":[{"TAB":"http://192.168.178.59:8081/#tab-logs"},{"INS":"http://192.168.178.59:8081/#tab-instances"}] },
                        {"ip" : "192.168.178.199", "name" : "NAS-FILE-Server", "link" : "", "kat":"server" },
                        {"ip" : "192.168.178.72", "name" : "AXHD60", "link" : "http://192.168.178.72", "kat":"server" },
                        {"ip" : "192.168.178.173", "name" : "ESP-KAMERA1", "link" : "http://192.168.178.173", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.117", "name" : "ESP-SWITCH-CAM1", "link" : "http://192.168.178.117", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.174", "name" : "ESP-KAMERA2", "link" : "http://192.168.178.174", "kat":"server", "linkFirstName":"WEB" },
                         {"ip" : "192.168.178.172", "name" : "ESP-SWITCH-CAM2", "link" : "http://192.168.178.172", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.175", "name" : "ESP-KAMERA3", "link" : "http://192.168.178.175", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.171", "name" : "ESP-SWITCH-CAM3", "link" : "http://192.168.178.171", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.191", "name" : "ESP-KAMERA4", "link" : "http://192.168.178.191", "kat":"server", "linkFirstName":"WEB" },
                         {"ip" : "192.168.178.135", "name" : "ESP-SWITCH-CAM4", "link" : "http://192.168.178.135", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.192", "name" : "ESP-KAMERA5", "link" : "http://192.168.178.192", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.83", "name" : "ESP-SWITCH-CAM5", "link" : "http://192.168.178.83", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.73", "name" : "MediaPadT5", "link" : "", "kat":"tablet" },
                        {"ip" : "192.168.178.148", "name" : "Echo Dot 3", "link" : "", "kat":"echo_dot3" },
                        {"ip" : "192.168.178.29", "name" : "TrekStor13", "link" : "", "kat":"tablet" },
                        {"ip" : "192.168.178.151", "name" : "FireTab7", "link" : "", "kat":"tablet" },
                        {"ip" : "192.168.178.201", "name" : "VPN Netzwerk", "link" : "", "kat":"vpn" },
                        {"ip" : "192.168.178.56", "name" : "FireHDStick", "link" : "", "kat":"firetvstick" },
                        {"ip" : "192.168.178.41", "name" : "FireTVStick", "link" : "", "kat":"firetvstick" },
                        {"ip" : "192.168.178.37", "name" : "FireTVStick1", "link" : "", "kat":"firetvstick" },
                        {"ip" : "192.168.178.33", "name" : "SonoffS26Alexa", "link" : "", "kat":"sonoff26" },
                        {"ip" : "192.168.178.124", "name" : "Galaxy-S9", "link" : "", "kat":"handygal" },
                        {"ip" : "192.168.178.28", "name" : "Google-Home-Mini", "link" : "", "kat":"googlemini" },
                        {"ip" : "192.168.178.81", "name" : "GalaxyTabA16", "link" : "", "kat":"tablet" },
                        {"ip" : "192.168.178.21", "name" : "GoSund 2 Matrix", "link" : "", "kat":"gosund111" },
                        {"ip" : "192.168.178.155", "name" : "GoSund 3 Freezer", "link" : "", "kat":"gosund111" },
                        {"ip" : "192.168.178.126", "name" : "Matrix Büro", "link" : "", "kat":"matrix" },
                        {"ip" : "192.168.178.168", "name" : "Matrix Küche", "link" : "", "kat":"matrix" },
                        {"ip" : "192.168.178.147", "name" : "MatrixTV", "link" : "", "kat":"matrix" },
                        {"ip" : "192.168.178.80", "name" : "MatrixCPU", "link" : "", "kat":"matrix" },
                        {"ip" : "192.168.178.150", "name" : "Gosund 1", "link" : "", "kat":"gosund111" },
                        {"ip" : "192.168.178.77", "name" : "SteckdoseAlexa", "link" : "", "kat":"fragezeichen" },
                        {"ip" : "192.168.178.235", "name" : "MotionEye", "link" : "http://192.168.178.235:8765/", "kat":"server", "linkFirstName":"EYE"  },
                        {"ip" : "192.168.178.142", "name" : "AdGuard", "link" : "http://192.168.178.142/", "kat":"server" },
                        {"ip" : "192.168.178.1", "name" : "DragonRoot", "link" : "http://192.168.178.1", "kat":"fritzbox", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.129", "name" : "WLEDRund", "link" : "http://192.168.178.129/", "kat":"server", "linkFirstName":"WEB"},
                        {"ip" : "192.168.178.132", "name" : "WLEDLang", "link" : "http://192.168.178.132/", "kat":"server", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.88", "name" : "DragonRoot-Dect", "link" : "http://192.168.178.88", "kat":"fritzbox" },
                        {"ip" : "192.168.178.74", "name" : "LGwebOSTV", "link" : "", "kat":"LG_TV_2" },
                        {"ip" : "192.168.178.139", "name" : "MCU Thermometer", "link" : "http://192.168.178.139", "kat":"sonoff" },
                         {"ip" : "192.168.178.140", "name" : "EASY1", "link" : "http://192.168.178.140", "kat":"sonoff", "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.163", "name" : "EASY2", "link" : "http://192.168.178.163", "kat":"sonoff" , "linkFirstName":"WEB"},
                        {"ip" : "192.168.178.141", "name" : "BridgeSensateTemp", "link" : "", "kat":"" },
                        {"ip" : "192.168.178.101", "name" : "DashPlayboy", "link" : "", "kat":"" },
                        {"ip" : "192.168.178.86", "name" : "DashSakrotan", "link" : "", "kat":"" },
                        {"ip" : "192.168.178.95", "name" : "Sonoff2-Distance", "link" : "http://192.168.178.95", "kat":"sonoff" }, 
                        {"ip" : "192.168.178.14", "name" : "Plex", "link" : "http://192.168.178.14:32400/web/index.html", "kat":"server" , "linkFirstName":"WEB" },
                        {"ip" : "192.168.178.156", "name" : "EchoShow5", "link" : "", "kat":"Echo-Show-5" }
                        ]

var symbolOK="✔️";     // auch möglich: ="✅"   🟩   ✔️  🌎
var symbolKO="🔵" //"🔔";     //z.b. auch "&lt;font color=\"red\"&gt;&lt;b&gt;X&lt;/b&gt;" für ein rotes kreuz  oder : ="❌"  ⚪   🟢 ⚫ ⭕  🔴 🔵  🚫 ⏱ 💀 👍 👎 📑 💲 👀 😡 🟥 ⬜ 🧊 💬 🗑️ 🔔
var symbolWARN="ℹ️";    // ="⚠️" oder info: "ℹ️"
var symbolKO_MD="🟥"    //symbol für "nicht erreichbar" im MaterialDesign Widget
var symbolLink="🌎";
var externalOhneInfo=false;  //noch nicht integriert
//---------------------------------------

//HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 3
var htmlFeld1='Name';      var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
var htmlFeld2='IP';        var Feld2lAlign="left";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
var htmlFeld3='Status';         var Feld3lAlign="center";                    // überschrift Tabellen Spalte3 und  Ausrichtung left,right or center
//-----------------------------------


//ÜBERSCHRIFT ÜBER TABELLE
let   htmlUberschrift=true;                           // mit Überschrift über der tabelle
let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
const htmlFeldUeber='IP Devices List';              // Überschrift und Signature
const htmlFarbUber="white";                         // Farbe der Überschrift
const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
//MEHRERE TABELLEN NEBENEINANDER
let   mehrfachTabelle=3;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
const farbetrennungsLinie="white";
const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
const htmlFarbTableColorUber="#BDBDBD";               // Überschrift in der tabelle - der einzelnen Spalten
//ÜBERSCHRIFT SPALTEN
const UeberSchriftHoehe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
const LinieUnterUeberschrift="2";                   // Linie nur unter Spaltenüberschrift - 
const farbeLinieUnterUeberschrift="lightblue";
const groesseUeberschrift=16;
const UeberschriftStyle="normal"                     // möglich "bold"
//GANZE TABELLE
let abstandZelle="2";
let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
let weite="1200";                                     //Weite der Tabelle
let zentriert=true;                                   //ganze tabelle zentriert
const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
const htmlSchriftart="Ubuntu-Regular"   ///"Helvetica";
const htmlSchriftgroesse="14px";
//FELDER UND RAHMEN
let   UeberschriftSpalten=true;                // ein- oder ausblenden der spatlen-überschriften
const htmlFarbFelderschrift="#D8D8D8";                  // SchriftFarbe der Felder  #D8D8D8
const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
const htmlFarbTableColorGradient1="#424242";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
const htmlFarbTableColorGradient2="#424242";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
const htmlFarbTableBorderColor="grey";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
let htmlRahmenLinien="none";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
const htmlSpalte1Weite="cols";                   //  Weite der ersten beiden  Spalten oder z.b. 115px

// HIER NICHTS  ÄNDERN ---------------------SETTING ENDE ----------------------------------------
// HIER NICHTS  ÄNDERN ---------------------SETTING ENDE ----------------------------------------
// HIER NICHTS  ÄNDERN ---------------------SETTING ENDE ----------------------------------------



const dpPrefix = "javascript."+ instance +".";
let borderHelpBottum;
let borderHelpRight;
let htmlcenterHelp;
let htmlcenterHelp2;

if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";

let searchMe="&lt;div&gt;&lt;input class=\"myinputclassnmap\" type=\"search\" id=\"searchnmap\" placeholder=\"Filter by Item\"&gt;&lt;/div&gt;";
const htmlZentriert="&lt;style&gt;  .myinputclassnmap {border: 1px solid; border-color: "+htmlFarbTableColorGradient2+"; margin-bottom: 20px; color: "+htmlFarbTableColorUber+"; height: 30px;background-image: linear-gradient("+htmlGragient[0]+"deg,"+htmlFarbTableColorGradient2+" "+htmlGragient[1]+"%,"+htmlFarbTableColorGradient1+" "+htmlGragient[2]+"%); font-family:"+htmlSchriftart+"\ }"+
                    "&lt;/style&gt;&lt;center&gt;"
const htmlStart=    "&lt;!DOCTYPE html&gt;&lt;html lang=\"de\"&gt;&lt;head&gt;&lt;title&gt;Vorlage&lt;/title&gt;&lt;meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"&gt;"+
                   "&lt;style&gt; * {  margin: 0;} body {background-color: "+backgroundAll+"; margin: 0 auto;  }"+
                   " p {padding-top: 10px; padding-bottom: 10px; text-align: "+htmlcenterHelp2+"}"+
                  // " div { margin: 0 auto;  margin-left: auto; margin-right: auto;}"+
                   " td { padding:"+abstandZelle+"px; border:0px solid "+htmlFarbTableBorderColor+";  border-right:"+borderHelpRight+"px solid "+htmlFarbTableBorderColor+";border-bottom:"+borderHelpBottum+"px solid "+htmlFarbTableBorderColor+";}"+ 
                   " table { width: "+weite+";  margin: 0 "+htmlcenterHelp+"; border:0px solid "+htmlFarbTableBorderColor+"; border-spacing=\""+abstandZelle+"0px\" ; }"+   // margin macht center
                   "td:nth-child(1) {width: "+htmlSpalte1Weite+"}"+"td:nth-child(2) {width:"+htmlSpalte1Weite+"}"+
                   " &lt;/style&gt;&lt;/head&gt;&lt;body&gt;"; // &lt;div&gt;";
//const htmlUeber=    "&lt;p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\"&gt;"+htmlFeldUeber+"&lt;/p&gt;";                    
const htmlTabStyle= "&lt;table bordercolor=\""+htmlFarbTableBorderColor+"\" border=\"1px\" cellspacing=\""+abstandZelle+"\" cellpadding=\""+abstandZelle+"\" width=\""+weite+"\" rules=\""+htmlRahmenLinien+"\" style=\"color:"+htmlFarbFelderschrift+";  font-size:"+htmlSchriftgroesse+
                      "; font-family:"+htmlSchriftart+";background-image: linear-gradient(42deg,"+htmlFarbTableColorGradient2+","+htmlFarbTableColorGradient1+")\"&gt;";
const htmlTabUeber1="&lt;tr height=\""+UeberSchriftHoehe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \"&gt;";
const htmlTabUeber3="&lt;/tr&gt;";

//NICHTS ÄNDERN - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 3

var htmlTabUeber2=  "&lt;td width="+htmlSpalte1Weite+" align="+Feld1lAlign+"&gt;&amp;ensp;"+htmlFeld1+"&amp;ensp;&lt;/td&gt;&lt;td width="+htmlSpalte1Weite+" align="+Feld2lAlign+"&gt;&amp;ensp;"+htmlFeld2+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+"&gt;&amp;ensp;"+htmlFeld3+"&amp;ensp;&lt;/td&gt;";
var htmlTabUeber2_1="&lt;td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld1+"&amp;ensp;&lt;/td&gt;&lt;td width="+htmlSpalte1Weite+"  align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld2+
                   "&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\"&gt;&amp;ensp;"+htmlFeld3+"&amp;ensp;&lt;/td&gt;";

const buttonScript =  '&lt;script&gt; function setOnOtherValue22(myval) {	var Self = this;	vis.setValue(\"0_userdata.0.Tabellen.IPDevicesSort\",myval); console.log("nmap: "+myval) }'
                     +'$( "button.myButt" ).click(function() {  $(".myButt" ).slideUp(); setTimeout(function() { $( ".mySpan" ).text(\"wait ...\")}, 1000);  });'    //$this.prop("border", "10px");
                     + `var allRows = $("[class*='nmapspecial']");  $("input#searchnmap").on("keydown keyup", function() {  allRows.hide();  $("tr:contains('" + $(this).val() + "')").show();});`
                     +'&lt;/script&gt;' 
//------------------------------------------------------
var rootcount=true;
var myObjOld=[];
var myJsonWidget=[]; 
var myJsonWidget2=[];
var htmlTabUeber="";
var htmlOut="";
var mix;
var valButton=1;
var myObj;
var counter;
//HIER SIND DIE  WERTE, DIE IN DER SCHLEIFE GEFILTERET WER%DEN - Jede spalte einen wert - jeder valx muss in dieser schleife gesetzt werden !!
var val1; var val0; var val2;
var json1; var json2; var json3; var json4; var json5; var json6;
let myObjExtra=[];
let laeuftSchon=false;
var hostDaten="";

async function  writeHTML(){
   laeuftSchon=true;
   mysortiereClient=getState(dpSort).val;
let htmlTabUeber2_2= "&lt;td width="+htmlSpalte1Weite+" align="+Feld1lAlign+"&gt;&amp;ensp;"+"&lt;span class=\"mySpan\"&gt;&lt;/span&gt;"+"&lt;button class=\"myButt\" style\=\" border-radius: 4px; border:1px solid; background-color\: "+"transparent"+"\; color: "+htmlFarbTableColorUber+"; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnOtherValue22\(\'"+"1"+"\')\"&gt;"+htmlFeld1+"&lt;/button&gt;"+"&amp;ensp;&lt;/td&gt;"+
                    "&lt;td width="+htmlSpalte1Weite+" align="+Feld2lAlign+"&gt;&amp;ensp;"+"&lt;span class=\"mySpan\"&gt;&lt;/span&gt;"+"&lt;button class=\"myButt\" style\=\" border-radius: 4px; border:1px solid; background-color\: "+"transparent"+"\; color: "+htmlFarbTableColorUber+"; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnOtherValue22\(\'"+"2"+"\')\"&gt;"+htmlFeld2+"&lt;/button&gt;"+"&amp;ensp;&lt;/td&gt;"+
                    "&lt;td  align="+Feld3lAlign+"&gt;&amp;ensp;"+"&lt;span class=\"mySpan\"&gt;&lt;/span&gt;"+"&lt;button class=\"myButt\" style\=\" border-radius: 4px; border:1px solid; background-color\: "+"transparent"+"\; color: "+htmlFarbTableColorUber+"; font\-size\:1em\; text\-align:left\" value=\"toggle\" onclick=\"setOnOtherValue22\(\'"+"1"+"\')\"&gt;"+htmlFeld3+"&lt;/button&gt;"+"&amp;ensp;&lt;/td&gt;";

htmlOut="";

counter=-1;
htmlTabUeber="";
switch (mehrfachTabelle) { 
   case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2_2+htmlTabUeber3;  break;
   case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2_2+htmlTabUeber2_1+htmlTabUeber3; break;
   case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2_2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber3; break;
   case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2_2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
};   
if (!UeberschriftSpalten) {htmlTabUeber=""}


//--------------------------------------------------------------------------------------------------------------------------------------------------
//---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
//---------alle valx werte müssen von euch bestimmt werden - val0,val1,val2 !!!---------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------
hostDaten="";
var myData="xxxxx"; 
let myArr=[];
myObjExtra=[];

async function holeData() {
     return new Promise((resolve) =&gt; {
if(oerationSystemchange == false){
exec("sudo -u root nmap -sPR --dns-servers "+dnsServer+" "+ipbereich  , async function (error, result, stderr) {
   myData=result
 //  setState("0_userdata.0.Tabellen.IPDeviceERROR", result)
   // console.log(result);
    resolve()
});} else {

exec((['"C:\\\\Program Files (x86)\\\\Nmap\\\\nmap" ','-sPR  -e ',onlyWinEthernetIF,' --dns-servers ',dnsServer,' ',ipbereich].join('')), function (error, result, stderr) {
   myData=result
    resolve()
});}
});
}

await holeData().then( async function () {  //})
//let timeout = setTimeout(function () {
// myData=getState("0_userdata.0.Tabellen.DeviceIPFake").val       //   FÜR TEST
////////////////////////////////log(myData)

 if (!myData.includes("xxxx")) {



var myTimeScanArr=myData.match(/(scanned in) (\d+\.\d+ seconds)/g); //log(myTimeScan)

// myArr=myData.match(/for\s+([A-Za-z0-9-_]+).f[^(]+\((\d+.\d+.\d+.\d+)\)|(fritz.\w+)\s+\((\d+.\d+.\d+.\d+)\)|(\d+.\d+.\d+.\d+)$/g)

myArr=myData.match(/for\s+([A-Za-z0-9-_]+).f[^(]+\((\d+\.\d+\.\d+\.\d+)\)|(fritz\.\w+)\s+\((\d+\.\d+\.\d+\.\d+)\)|(\d+\.\d+\.\d+\.\d+)$/gm)
 //log(myArr.toString())
//myArr.push("10.0.1.200")
//myArr.push("for iobroker (10.0.1.200)")
//myArr.push("10.0.1.201")
//myArr.push("fritz.repeater (10.0.1.200)")
/////////////////////////////////////log(myArr.toString())
if(myArr!=null) {
let var1; let var2; let var3; let varOhneName=[];
 myObj=[]
for(var i=0;i&lt;myArr.length;i++) {
    var1="na"; var2="na";
    var1=myArr[i].replace(/(for .+) \(\d+\.\d+\.\d+\.\d+\)/,"$1") 
    var1=var1.replace(/(.+)\(.+\)/," $1")
    var2=myArr[i].replace(/for .+ \((\d+\.\d+\.\d+\.\d+)\)/,"$1");//log(var2)
    var2=var2.replace(/.+\((.+)\)/,"$1")
    
    varOhneName=myArr[i].match(/^(\d+\.\d+\.\d+\.\d+)$/) 
    if (varOhneName!=null) {var1=varOhneName[0];var2=varOhneName[0]}
    var3="true";
   /* var2=var2.replace(/[(,)]/g,"")
    for (var index in myDeviceNames) {                   //ersetze mit aliasnamen
                              //log(index)
                               if ((var2.trim()).match(index)) {var1="for "+myDeviceNames[index];
                              // log(val0+" - "+index)
                                 }

    }  */


  let help=[var1.trim(),var2.trim(),var3]
  if (!(var1=="na" || var2=="na")) myObj.push(help)
  if (true) {/* myObjOld= getState("0_userdata.0.Tabellen.IPDeviceERROR").val */ 
                  myObjOld.push(help);    
                  }
}
//log("vor await")
await needDP(myObjOld)

                 await Sleep(1500); 
                 myObjOld=await getData(dpPrefix+"Tabellen.IPDevices.Device_Collection")
                // log("nach await")
  if (false) {/* myObjOld= getState("0_userdata.0.Tabellen.IPDeviceERROR").val */ 
                 // myObjOld.push(help);
                //  createState(dpPrefix+"Tabellen.IPDevices.Device_Collection", myObjOld,  { name: 'Device_Collection', desc: 'Device_Collection', type: 'array',read: true, write: true });
                 await needDP(myObjOld).then(myObjOld=await getData(dpPrefix+"Tabellen.IPDevices.Device_Collection"))
                 await Sleep(3000); log("")
                //  myObjOld=await getData(dpPrefix+"Tabellen.IPDevices.Device_Collection") //getState(dpPrefix+"Tabellen.IPDevices.Device_Collection").val; 
                 // log(myObjOld.toString())
                  }
                  else{
                  myObjOld=getState(dpPrefix+"Tabellen.IPDevices.Device_Collection").val;    
                  // log("-----"+myObjOld.toString()) ; 
                  }

//log("++++++++++++++++++ "+myObj.toString())

//setState("0_userdata.0.Tabellen.IPDeviceERROR", myObj.toString())
   
   let varhelp1; let varhelp2; let varhelp3="true";    //neue erkannt geräte zu datenbank hinzufügen
  for (var i=0;i&lt;myObj.length;i++){ 
       //  log("kommen vom myObject: "+myObjOld[i][1]+" mit: "+myObjOld[i][0])
           if (!myObjOld.toString().includes(myObj[i][1]))  {  varhelp1=myObj[i][0].trim() ; varhelp2=myObj[i][1]; varhelp3="true"; 
                                                    let help=[varhelp1,varhelp2,varhelp3]; /*log("+++++++!!!+++++++++help "+help.toString())*/
                                                   if (!(varhelp1.indexOf("scanned")&gt;-1)) myObjOld.push(help)               
                                     }                       }

  for (var i=0;i&lt;myObjOld.length;i++){                // ist gerät noch da ???
     //  if (i&gt;0 &amp;&amp; i&lt;10)  log("-----"+myObjOld[i][0]+" alles: ") ;     if (i&gt;0 &amp;&amp; i&lt;2) log(myObj.toString())
           if (!myObj.toString().includes(myObjOld[i][1]))  {  varhelp1=myObjOld[i][0].trim() ; varhelp2=myObjOld[i][1]; varhelp3="false"; 
                                                    let help=[varhelp1,varhelp2,varhelp3]; /*if (i&gt;=0 &amp;&amp; i&lt;80)  log("+++++++???+++++++++help "+help.toString())*/
                                                    myObj.push(help)               
                                     }                      }
 
   // log("------------------------------------------------"+myObjOld[1].toString())
//log(mysortiereClient.toString())
    if (braucheMaterialDesignWidget || braucheMaterialDesignWidgetList) mysortiereClient=1

 /*    if (mysortiereClient==1){ 

        myObj.sort(function (alpha, beta) {
            if (alpha[0].toUpperCase().trim() &gt; beta[0].toUpperCase().trim())
               return 1;
            if (beta[0].toUpperCase().trim() &gt; alpha[0].toUpperCase().trim())
               return -1;
            return 0;
           });} else {  */
if (mysortiereClient==2){ 
           myObj.sort(function (alpha, beta) {
            //   if (parseFloat(beta[1].replace(/.+\.(.+)$/,"$1")) &gt; parseFloat(alpha[1].replace(/.+\.(.+)$/,"$1")))
             if ((parseFloat(beta[1].replace(/.+\.(.+)$/,"$1")))+(parseFloat(beta[1].replace(/.+\.(.+)\..+$/,"$1"))*1000) &gt; (parseFloat(alpha[1].replace(/.+\.(.+)$/,"$1")))+(parseFloat(alpha[1].replace(/.+\.(.+)\..+$/,"$1"))*1000))
                   return -1;
               if ((parseFloat(alpha[1].replace(/.+\.(.+)$/,"$1")))+(parseFloat(alpha[1].replace(/.+\.(.+)\..+$/,"$1"))*1000) &gt; (parseFloat(beta[1].replace(/.+\.(.+)$/,"$1")))+(parseFloat(beta[1].replace(/.+\.(.+)\..+$/,"$1"))*1000))
                   return 1;
            return 0;
           });  
           }
    var1="scanned in" //nur scanned seconds
   var3="true"
   var2=myTimeScanArr[0].replace(/.+ (\d+\.\d+.+$)/,"$1");//log(var2)
   let help=[var1,var2,var3]

  if (mysortiereClient==1) help=["xxxx"+var1,var2,var3]
  myObj.push(help)
/*if (!rootcount)*/  setState(dpPrefix+"Tabellen.IPDevices.Device_Collection", myObjOld)
///////////////////////////log("myObject ------- "+myObj.length.toString()+"---- ")
 // setState("0_userdata.0.Tabellen.IPDeviceERROR", myObj.toString())   // zur fehlersuche
        for(var i=0;i&lt;myObj.length;i++) {            // hier eigene schleife definieren und den wert counter++ nicht vergessen  !!!

          counter++;                                       // SEHR WICHTIG - MUSS IN JEDER SCHLEIFE INTEGRIERT SEIN
        //  log(myObj[i][0].toString())
          val0=myObj[i][0].replace("for","").trim()
          val0=val0.replace("."+domainName,"")
          val0=val0.replace(/[(,)]/g,"")
          val1=myObj[i][1]
          val1=val1.replace(/[(,)]/g,"")

      //  log(val0+" --- "myDeviceNamesNew[].ip)

for (var index in myDeviceNames) {                   //ersetze mit aliasnamen
                              //log(index)
                               if ((val1.trim()).match(index.trim()) &amp;&amp; val1.trim().length == index.trim().length) {val0=myDeviceNames[index];
                                                                                                                    
                               //log(val0+" - "+index)
                                 } } 
let helperIP=""
let helperlink=""
for (var index in myDeviceNamesNew) {                   //ersetze mit aliasnamen
                              //log(index)
                               if ((val1.trim()).match(myDeviceNamesNew[index].ip) &amp;&amp; val1.trim().length == (myDeviceNamesNew[index].ip).length) {
                                   
                                                                                                                 val0=myDeviceNamesNew[index].name; 

                                                                                                               //   if (val0.length&gt;=(kuerzungNamen)+2)  val0=val0.substring(0,kuerzungNamen)+" ...";
                                                                                                                 // helperIP=val0 ;  //log(val0)
                                                                                                                  if (myDeviceNamesNew[index].link!="") {helperlink=myDeviceNamesNew[index].link; 
                                                                      myDeviceNamesNew[index].hasOwnProperty("linkFirstName") ? helperIP=helperIP+` &lt;a href="${helperlink}" target="_blank"&gt;&lt;button style="font-size: 75%; background: ${farbeNichtErreichbar}; color:${htmlFarbFelderschrift}"&gt;${myDeviceNamesNew[index].linkFirstName}&lt;/button&gt;&lt;/a&gt;` 
                                                                                                                              : helperIP =helperIP+` &lt;a style="text-decoration:none;" href="${helperlink}" target="_blank"&gt; ${symbolLink}&lt;/a&gt;` 
                                                                        
                                                                      if(myDeviceNamesNew[index].hasOwnProperty("morelinks")) {//log(JSON.stringify(myDeviceNamesNew[index].morelinks))
                                                                    
                                                                      for(let o=0;o&lt;myDeviceNamesNew[index].morelinks.length;o++) {
                                                                                                                                   let test=JSON.parse(JSON.stringify(myDeviceNamesNew[index].morelinks))
                                                                                                                                   let key1=Object.keys(test[o])[0]
                                                                                                                                   //log(    Object.keys(test[o])[0]    );
                                                                                                                                 //  log(   test[o][key1]  );
                                                                                                                                   helperIP=helperIP+ ` &lt;a href="${test[o][key1]}" target="_blank"&gt;&lt;button style="font-size: 75%; background: ${farbeNichtErreichbar}; color:${htmlFarbFelderschrift}"&gt;${Object.keys(test[o])[0]}&lt;/button&gt; &lt;/a&gt;`         //`&lt;button onclick="window.location.href =${test[o][key1]};"&gt;${Object.keys(test[o])[0]}&lt;/button&gt;`                        //` ${Object.keys(test[o])[0]}&lt;a style="text-decoration:none;" href="${test[o][key1]}" target="_blank"&gt; ${symbolLink}&lt;/a&gt;`
                                                                                                                                      }  
                                                                      }
                                                                    //  val0=helperIP;    
                                                                     }
                                                                
                               //log(val0+" - "+index)
                                 } }                                   

            if (val0.length&gt;=(kuerzungNamen)+2)  val0=val0.substring(0,kuerzungNamen)+" ..." 
                 val0=val0+helperIP;          

            
          
          var val2help=myObj[i][2]
      if (mysortiereClient==2){ 

       if(val0=="scanned in") {val2=symbolWARN;val0="&lt;font color=\""+lastZellColorSetting+"\"&gt;&lt;i&gt;"+" Anzahl "+counter+"&lt;/i&gt;"; 
       let valer=val1.replace(/.* (um.*)/,"$1");
                              val1=val1.replace(/(.*) um.*/,"$1");
                              
                              val1="&lt;font color=\""+lastZellColorSetting+"\"&gt;&lt;i&gt;"+val1+"&lt;/i&gt;"}
      

          if (val2help=="false") {val2=symbolKO;

                                  val0=("&lt;font color=\""+farbeNichtErreichbar+"\"&gt;&lt;"+styleNichtErreichbar+"&gt;")+val0+ "&lt;\/"+styleNichtErreichbar+"&gt;";
                                  val1=("&lt;font color=\""+farbeNichtErreichbar+"\"&gt;&lt;"+styleNichtErreichbar+"&gt;")+val1+ "&lt;\/"+styleNichtErreichbar+"&gt;";}  else{val2=symbolOK}        

          

     
 


     tabelleBind(); }//HIER NICHTS ÄNDERN : HIER WERDEN DIE DATEN DER SCHLEIFE ZUSAMMENGESETZT  - diese function muss als letztes in der eigenen schleife aufgerufen werden
     else {let help=[val0.trim(),val1,val2help];myObjExtra.push(help);}
   //}
}; //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
    var valLink=""; var valKat="";  
    if (mysortiereClient==1){ 
       counter=-1;
        myObjExtra.sort(function (alpha, beta) {
            if ((alpha[0].toUpperCase()).trim() &gt; (beta[0].toUpperCase()).trim())
               return 1;
            if ((beta[0].toUpperCase()).trim() &gt; (alpha[0].toUpperCase()).trim())
               return -1;
            return 0;
           });} 
           var valLink=""; var valKat="";     
        
         for(var i=0;i&lt;myObjExtra.length;i++) {

               json4="standard"
               json6="";
                let val0helping="";
               counter++
               val0=myObjExtra[i][0]//.replace(/(^.*?) &lt;a.*/,"$1")
               json1=myObjExtra[i][0] ;// if(i&gt;20 &amp;&amp; i&lt;30) log(val0)
               json2=val1=myObjExtra[i][1] ;
                val2help=myObjExtra[i][2] ;
                    for (var index in myDeviceNamesNew) { 
                        //   log("bin hier bei "+myDeviceNamesNew[index].ip+" mit ...")
                          if ((myObjExtra[i][1].match(myDeviceNamesNew[index].ip)) &amp;&amp; myObjExtra[i][1].length == myDeviceNamesNew[index].ip.length) {
                             //  log("bin hier bei "+myDeviceNamesNew[index].name+" mit "+  myObjExtra[i][0]+" und kat: " + myDeviceNamesNew[index].kat)
                         
                             /*  if (myDeviceNamesNew[index].link!="") {json6=myDeviceNamesNew[index].link; 
                                                                      myDeviceNamesNew[index].hasOwnProperty("linkFirstName") ? json6=` &lt;a href="${json6}" target="_blank"&gt;&lt;button style="font-size: 75%; background: ${farbeNichtErreichbar}; color:${htmlFarbFelderschrift}"&gt;${myDeviceNamesNew[index].linkFirstName}&lt;/button&gt;&lt;/a&gt;` 
                                                                                                                              : json6 =` &lt;a style="text-decoration:none;" href="${json6}" target="_blank"&gt; ${symbolLink}&lt;/a&gt;` 
                                                                        
                                                                      if(myDeviceNamesNew[index].hasOwnProperty("morelinks")) {//log(JSON.stringify(myDeviceNamesNew[index].morelinks))
                                                                    
                                                                      for(let o=0;o&lt;myDeviceNamesNew[index].morelinks.length;o++) {
                                                                                                                                   let test=JSON.parse(JSON.stringify(myDeviceNamesNew[index].morelinks))
                                                                                                                                   let key1=Object.keys(test[o])[0]
                                                                                                                                   //log(    Object.keys(test[o])[0]    );
                                                                                                                                 //  log(   test[o][key1]  );
                                                                                                                                   json6=json6+ ` &lt;a href="${test[o][key1]}" target="_blank"&gt;&lt;button style="font-size: 75%; background: ${farbeNichtErreichbar}; color:${htmlFarbFelderschrift}"&gt;${Object.keys(test[o])[0]}&lt;/button&gt; &lt;/a&gt;`         //`&lt;button onclick="window.location.href =${test[o][key1]};"&gt;${Object.keys(test[o])[0]}&lt;/button&gt;`                        //` ${Object.keys(test[o])[0]}&lt;a style="text-decoration:none;" href="${test[o][key1]}" target="_blank"&gt; ${symbolLink}&lt;/a&gt;`
                                                                                                                                      }  
                                                                      }
                                                                      val0helping=json6;    
                                                                     }*/
                               if (myDeviceNamesNew[index].kat!="")  json4=myDeviceNamesNew[index].kat;}  }
                           if (val2help=="false") {json3=val2=symbolKO; json5="red";
                                  val0=("&lt;font color=\""+farbeNichtErreichbar+"\"&gt;&lt;"+styleNichtErreichbar+"&gt;")+val0+ "&lt;\/"+styleNichtErreichbar+"&gt;";
                                  val1=("&lt;font color=\""+farbeNichtErreichbar+"\"&gt;&lt;"+styleNichtErreichbar+"&gt;")+val1+ "&lt;\/"+styleNichtErreichbar+"&gt;";}  else{json3=val2=symbolOK;   json5="green";} 
               if(val0=="xxxxscanned in") {json3=val2=symbolWARN;   json5="blue"; json1="Anzahl: "+counter; json4="info";
                                            val0="&lt;font color=\""+lastZellColorSetting+"\"&gt;&lt;i&gt;"+" Anzahl "+counter; 
                                            val1="&lt;font color=\""+lastZellColorSetting+"\"&gt;&lt;i&gt;"+val1+"&lt;/i&gt;" //" um "+formatDate(getDateObject((new Date().getTime())), "SS:mm:ss")+
                                            json2=myObjExtra[i][1]+", "+formatDate(getDateObject(((new Date().getTime()))), "SS:mm:ss")}

                                           if (val2help) val0=val0+val0helping ; // link
                 tabelleBind();
              
               if (braucheMaterialDesignWidget || braucheMaterialDesignWidgetList) {
                  if (val2help=="false") {json3=val2=symbolKO_MD; }
                 makeJsonWidget(json1,json2,json3,json4,json5,json6);}
           }
          
//-------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------Ende der schleife------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------------------

      // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
      let timeout = setTimeout(function () {
                                             tabelleFinish();
                                             if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
                                             if (braucheHostDaten) {for(var i=0;i&lt;myObjExtra.length;i++) {  if (myObjExtra[i][0]!="xxxxscanned"){
                                                                                                            hostDaten=hostDaten+myObjExtra[i][1]+"\t"+myObjExtra[i][0]+"\n" }}}
                                              setState(dpHost,hostDaten); //log(hostDaten)
                                           }, 2000); 
   
       }  else {log("no Array","warn")} //Ende Array falsch
       } else {log("no Data","warn")} // ende daten falsch
     //  rootcount=false;
//}, waitTime);
 laeuftSchon=false;
 })
//laeuftSchon=false;
} // function ende

//MAIN:
 
schedule(mySchedule,  function () { 
 if ( !laeuftSchon) writeHTML();
// if (braucheEinFile) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
}); 
if ( !laeuftSchon) writeHTML();                                   

 function tabelleBind(){
   //  counter=counter+mehrfachTabelle;
       switch (mehrfachTabelle) { 

         case 1: if(counter%2==0)         {  htmlOut=htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;"; break;}else    
                                          {  htmlOut=htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;"; break;}
         case 2: if(counter%4==0){
                    if(counter%2==0)  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                        ";\" align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;"; } 
                               else {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;";} break;
                      }else{
                                if(counter%2==0)  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;"+val0+"&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;"+val1+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                        ";\" align="+Feld3lAlign+"&gt;"+val2+"&lt;/td&gt;"; } 
                               else {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;";} break;}
                                    
         case 3:if(counter%2==0)   {
                    if(counter%3==0 )  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align=\""+Feld1lAlign+"\"&gt;"+val0+"&lt;/td&gt;&lt;td align=\""+Feld2lAlign+"\"&gt;"+val1+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                        ";\" align=\""+Feld3lAlign+"\"&gt;"+val2+"&lt;/td&gt;"; } 
                               else { if(counter%3==1 )  { htmlOut = htmlOut+"&lt;td align=\""+Feld1lAlign+"\" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align=\""+Feld2lAlign+"\" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align=\""+Feld3lAlign+"\" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;";} 
                                                else    {htmlOut = htmlOut+"&lt;td align=\""+Feld1lAlign+"\"&gt;"+val0+"&lt;/td&gt;&lt;td align=\""+Feld2lAlign+"\"&gt;"+val1+"&lt;/td&gt;&lt;td align=\""+Feld3lAlign+"\"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;";}
                                          } break;}else{
                    if(counter%3==0 )  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align=\""+Feld1lAlign+"\"&gt;"+val0+"&lt;/td&gt;&lt;td align=\""+Feld2lAlign+"\"&gt;"+val1+"&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                        ";\" align=\""+Feld3lAlign+"\"&gt;"+val2+"&lt;/td&gt;"; } 
                               else { if(counter%3==1 )  { htmlOut = htmlOut+"&lt;td align=\""+Feld1lAlign+"\" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val0+"&lt;/td&gt;&lt;td  align=\""+Feld2lAlign+"\" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;"+val1+"&lt;/td&gt;&lt;td  align=\""+Feld3lAlign+"\" style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+"\"&gt;"+val2+"&lt;/td&gt;";} 
                                                else     {htmlOut = htmlOut+"&lt;td align=\""+Feld1lAlign+"\"&gt;"+val0+"&lt;/td&gt;&lt;td align=\""+Feld2lAlign+"\"&gt;"+val1+"&lt;/td&gt;&lt;td align=\""+Feld3lAlign+"\"&gt;"+val2+"&lt;/td&gt;&lt;/tr&gt;";}
                                          } break;}                                


         case 4:  // counter=counter+8;
                   if(counter%8==0)   {
                   if(counter%4==0)  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeGeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td  style=\" border-right: "+trennungsLinie+"px solid "+ farbetrennungsLinie+";\" align="+Feld3lAlign+"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;"; } // teil1
                                   else {if(counter%4==1 )  { htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;";} //teil 2
                                                else    {if(counter%4==3)  { htmlOut= htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;&lt;/tr&gt;";} //teil 4
                                                                  else    {htmlOut =htmlOut+"&lt;td align="+Feld1lAlign+"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"  align="+Feld3lAlign+"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;";}} //teil 3
                                          } break;}else{
                   if(counter%4==0)  {htmlOut = htmlOut+"&lt;tr class=\"nmapspecial\" bgcolor=\""+farbeUngeradeZeilen+"\"&gt;&lt;td align="+Feld1lAlign+"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td  style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\" align="+Feld3lAlign+"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;"; } //teil 1
                                   else {if(counter%4==1 )  { htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld3lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;";} // teil 2
                                                else    {if(counter%4==3)  { htmlOut= htmlOut+"&lt;td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td  align="+Feld2lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld3lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;&lt;/tr&gt;";} // teil 4
                                                                  else    {htmlOut = htmlOut+"&lt;td align="+Feld1lAlign+"&gt;&amp;ensp;"+val0+"&amp;ensp;&lt;/td&gt;&lt;td align="+Feld2lAlign+"&gt;&amp;ensp;"+val1+"&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";\"align="+Feld3lAlign+"&gt;&amp;ensp;"+val2+"&amp;ensp;&lt;/td&gt;";}} //teil 3
                                          } break;}                                    
        } //switch ende

}

function tabelleFinish() {

switch (mehrfachTabelle) {  
       case 1:    break;

       case 2:    
                  if(counter%2==0)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, '&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;');
                
                  break;

       case 3:   if(counter%3==2)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%3==1)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");        
                 if(counter%3==0)      htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td  style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");
               
                  break;
       case 4:   if(counter%4==3)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%4==2)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");
                 if(counter%4==1)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");    
                 if(counter%4==0)  htmlOut = htmlOut.replace(/&lt;\/td&gt;$/, "&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\"&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;td&gt;&amp;ensp;&lt;/td&gt;&lt;/tr&gt;");      
                 break; }
     
         var htmlUeber=    "&lt;p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\"&gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject((new Date().getTime())), "SS:mm:ss")+"&lt;/p&gt;"; 
       var htmlUnter= "&lt;div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" &gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject((new Date().getTime())), "SS:mm:ss")+"&lt;/div&gt;";
        htmlUeber=htmlUeber+searchMe
        if (!htmlSignature) htmlUnter="";

      //  log(" ist htmlUnter - signature "+htmlUnter)
          //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
           var htmlOutVIS="";
         //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;";
            if (htmlUberschrift) 
                { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter+"&lt;/center&gt;"+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter+"&lt;/center&gt;"+ buttonScript ;

              } else {
               zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter+"&lt;/center&gt;"+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"&lt;/table&gt;"+htmlUnter+"&lt;/center&gt;"+ buttonScript;

                 }
                 

  // log("bin raus aus tabelleBind");
           if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
           

 var htmlUnter= "&lt;div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" &gt;"+htmlFeldUeber+"&amp;ensp;&amp;ensp;Last Update: "+formatDate(getDateObject(((new Date().getTime()))), "SS:mm:ss");+"&lt;/div&gt;"
 if (!htmlSignature) htmlUnter="";
 var htmlEnd="&lt;/table&gt;"+htmlUnter+"&lt;/div&gt;&lt;/body&gt;";


 //mit oder ohne überschrift - zentriert oder links
htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd : htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd;
 //log(htmlOut);
if (braucheMaterialDesignWidgetList) {
     
       setState(dpMaterialListWidget,JSON.stringify(myJsonWidget2)); 
       myJsonWidget2=[];
}
if (braucheMaterialDesignWidget) {
  
  setState(dpMaterialTabelWidget,JSON.stringify(myJsonWidget)); 
     myJsonWidget=[];
}

}

 function makeJsonWidget(vax1,vax2,vax3,vax4,vax5,vax6) {
//log(vax3+vax6+htmlFeld1)
vax4=pfadBilderMaterialWidget+vax4+".png" ;
   if ( braucheMaterialDesignWidgetList) {
   myJsonWidget.push({
       Device : vax4,
       IP : vax1,
       Status : vax2,
       Kategorie : vax3+" "+vax6
   }

   );}

//	log(myJsonWidget)
if (braucheMaterialDesignWidget) {
    let colorIP= materialD_IP_erreichbar   //"lightgreen";
  //  log(vax3)
    if (vax3==symbolKO_MD) colorIP=materialD_IP_nichtErreichbar     //"lightcoral";
  //  vax4=pfadBilderMaterialWidget+vax4+".png" ; 
let mysubText = `&lt;div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;"&gt;
                              &lt;div style="flex: 1;font-size: 16px; color: ${colorIP};"&gt;${vax2}&lt;/div&gt;
                              &lt;div style="color: grey; font-size: 12px; font-family: RobotoCondensed-LightItalic; text-align: right;"&gt;${vax3}${vax6}&lt;/div&gt;
                          &lt;/div&gt;`
     let ip=vax2                     
  
     myJsonWidget2.push({
               text: vax1,
               subText: mysubText,
               statusBarColor: vax5,
               image: vax4,
               imageColor: "",
               listType: "text",
               showValueLabel: true,
               ip: ip, //vax2,
               status: vax3,
               link:vax6
               
           });
}
 }

 

   on({id: "0_userdata.0.Tabellen.IPDevicesSort", ack: false, change: "any"}, function (obj) { 
     //  log(obj.id);log(String(mehrfachTabelle))
     mysortiereClient=obj.state.val
   log(mysortiereClient.toString())
   
   //  log(String(mehrfachTabelle))
  setTimeout(function () { // log('file written')
     if ( !laeuftSchon)  writeHTML();
       if (braucheEinFile &amp;&amp; !laeuftSchon) {writeFile(home, path ,htmlOut, function (error) { /* log('file written');*/  });}
}, 350);
    

     
   })


    function extraTablefinish() {   
} //extraTablefinish

async function needDP(myData){
    if (!(await existsStateAsync("Tabellen.IPDevices.Device_Collection"))) {
       await createStateAsync("Tabellen.IPDevices.Device_Collection", myData,{type: "array", name: "Device_Collection", desc: 'Device_Collection', role: "value", read: true, write: true, } ); }
   //await Sleep(3000); 
}

async function getData(myData){
    
   return getState(myData).val; 
}
//createState(dpPrefix+"Tabellen.IPDevices.Device_Collection", myObjOld,  { name: 'Device_Collection', desc: 'Device_Collection', type: 'array',read: true, write: true });

function Sleep(milliseconds) {
return new Promise(resolve =&gt; setTimeout(resolve, milliseconds));
}






</code></pre>
<p dir="auto"></p></section></section><p></p>
]]></description><link>https://forum.iobroker.net/topic/30057/ip-devices-im-netzwerk-html-tabelle-vis-iqontrol</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 08:50:38 GMT</lastBuildDate><atom:link href="https://forum.iobroker.net/topic/30057.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Feb 2020 14:23:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 11 Mar 2024 17:53:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
Super, danke dir</p>
]]></description><link>https://forum.iobroker.net/post/1139098</link><guid isPermaLink="true">https://forum.iobroker.net/post/1139098</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 11 Mar 2024 17:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 11 Mar 2024 17:42:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">sudo apt purge nmap</p>
<p dir="auto"><a href="https://www.howtogeek.com/229699/how-to-uninstall-software-using-the-command-line-in-linux/" rel="nofollow ugc">https://www.howtogeek.com/229699/how-to-uninstall-software-using-the-command-line-in-linux/</a></p>
]]></description><link>https://forum.iobroker.net/post/1139090</link><guid isPermaLink="true">https://forum.iobroker.net/post/1139090</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 11 Mar 2024 17:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 11 Mar 2024 17:02:35 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
Wie ist den der Befehl unter Linux zum deinstallieren?</p>
]]></description><link>https://forum.iobroker.net/post/1139077</link><guid isPermaLink="true">https://forum.iobroker.net/post/1139077</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 11 Mar 2024 17:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 11 Mar 2024 16:29:49 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a> leider nein - ich nutze kein docker und habe daher keine ahnung davon :-(</p>
]]></description><link>https://forum.iobroker.net/post/1139068</link><guid isPermaLink="true">https://forum.iobroker.net/post/1139068</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 11 Mar 2024 16:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 11 Mar 2024 16:28:14 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
leider finde ich keine Lösung, dass es im Docker richtig läuft und gebe jetzt auf.</p>
<p dir="auto">Kannst du mir sagen, wie ich NMAP wieder deinstallieren kann?</p>
]]></description><link>https://forum.iobroker.net/post/1139066</link><guid isPermaLink="true">https://forum.iobroker.net/post/1139066</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 11 Mar 2024 16:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 17:41:13 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
Ja, aber leider ohne Lösung</p>
]]></description><link>https://forum.iobroker.net/post/1058000</link><guid isPermaLink="true">https://forum.iobroker.net/post/1058000</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 09 Oct 2023 17:41:13 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 17:31:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">das problem findest du auch des öfteren bei einer google suche - ohne iobroker</p>
<p dir="auto">"nmap root docker" suche</p>
]]></description><link>https://forum.iobroker.net/post/1057998</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057998</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 17:31:23 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 17:29:26 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
Erstmal danke für deine Mühe, werde es mal testen</p>
]]></description><link>https://forum.iobroker.net/post/1057994</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057994</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 09 Oct 2023 17:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 16:11:55 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">hier kam mal eine lösung <a href="https://forum.iobroker.net/post/600999">https://forum.iobroker.net/post/600999</a> - fang ein wenig weiter oben an zu lesen - viel glück</p>
]]></description><link>https://forum.iobroker.net/post/1057944</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057944</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 16:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 16:01:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">wenn ich das lese, sieht es noicht so toll aus:</p>
<p dir="auto"><a href="https://stackoverflow.com/questions/71997736/docker-why-sudo-doesnt-work-as-expected" rel="nofollow ugc">https://stackoverflow.com/questions/71997736/docker-why-sudo-doesnt-work-as-expected</a></p>
]]></description><link>https://forum.iobroker.net/post/1057936</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057936</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 16:01:50 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 15:53:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">hat docker einen root oder evtl einen admin user ?</p>
<p dir="auto">hast du die sueders datei im server angeglichen ?</p>
<p dir="auto">beispiel von mir:</p>
<p dir="auto"><img src="/assets/uploads/files/1696866812722-image-136.png" alt="Image 136.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.iobroker.net/post/1057931</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057931</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 15:53:41 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 13:21:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
Also mit folgendem Befehl bekomme ich die reduzierten Geräte ohne MAC</p>
<pre><code>nmap -sPR --dns-servers 192.168.2.1 192.168.2.0/24
</code></pre>
<p dir="auto">Bei folgenden Befehl kommt gar nichts zurück</p>
<pre><code>sudo -u root /usr/bin/nmap -sPR --dns-servers 192.168.2.1 192.168.2.0/24
</code></pre>
<p dir="auto">Ich dachte eigentlich, dass man bei Docker immer mit 'root' unterwegs ist</p>
]]></description><link>https://forum.iobroker.net/post/1057834</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057834</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 09 Oct 2023 13:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 13:08:22 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a><br />
nebenbei<br />
bei mir war es wichtig, dass der root user die abfrage macht - sonst macht das linux netwerk device probleme</p>
]]></description><link>https://forum.iobroker.net/post/1057829</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057829</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 13:08:22 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 13:05:51 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/oli" aria-label="Profile: oli">@<bdi>oli</bdi></a></p>
<p dir="auto">probiere mal ein blockly mit exec block - kopiere dort denn befehl und aktiviere das log bzw. den return wert z.b. <a href="https://forum.iobroker.net/post/761180">https://forum.iobroker.net/post/761180</a> nutzt anderen befehl</p>
<p dir="auto">evtl kannst du einen syntax für den befehl finden, indem der befehl mit mac angezeigt wird - habe leider keine docker erfahrung</p>
]]></description><link>https://forum.iobroker.net/post/1057827</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057827</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Mon, 09 Oct 2023 13:05:51 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Oct 2023 12:45:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a><br />
danke für das geniale Script, bin gerade erst darauf gestoßen und es funktioniert wie es soll.</p>
<p dir="auto">Allerdings habe ich meinen ioBroker über Docker installiert und habe das Problem, dass nicht alle Geräte über das Skript angezeigt werden und die MAC Adressen fehlen.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/glasfaser" aria-label="Profile: Glasfaser">@<bdi>Glasfaser</bdi></a> werden bei dir mittlerweile alle Geräte angezeigt und wenn ja, wie hast du das hinbekommen?</p>
<p dir="auto">Ausgabe aus dem Skript:</p>
<pre><code>javascript.0 (235) script.js.common.System.Skript_1: Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-09 13:57 CEST Nmap scan report for speedport.ip (192.168.2.1) Host is up (0.0042s latency). Nmap scan report for 192.168.2.101 Host is up (0.00064s latency). Nmap scan report for 192.168.2.103 Host is up (0.00054s latency). Nmap scan report for 192.168.2.106 Host is up (0.0024s latency). Nmap scan report for 192.168.2.107 Host is up (0.025s latency). Nmap scan report for 192.168.2.108 Host is up (0.0031s latency). Nmap scan report for 192.168.2.112 Host is up (0.0029s latency). Nmap scan report for 192.168.2.115 Host is up (0.0026s latency). Nmap scan report for ioBroker (192.168.2.120) Host is up (0.00019s latency). Nmap scan report for 192.168.2.126 Host is up (0.033s latency). Nmap scan report for 192.168.2.140 Host is up (0.0044s latency). Nmap scan report for 192.168.2.150 Host is up (0.085s latency). Nmap scan report for 192.168.2.155 Host is up (0.0057s latency). Nmap scan report for 192.168.2.176 Host is up (0.070s latency). Nmap done: 256 IP addresses (14 hosts up) scanned in 16.03 seconds
</code></pre>
<p dir="auto">Ausgabe über die Konsole im Docker:</p>
<pre><code>root@ioBroker:/opt/iobroker# nmap -sPR --dns-servers 192.168.2.1 192.168.2.0/24
WARNING: -sR is now an alias for -sV and activates version detection as well as RPC scan.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-09 13:25 CEST
Nmap scan report for speedport.ip (192.168.2.1)
Host is up (0.0040s latency).
MAC Address: 64:CC:22:39:A1:98 (Arcadyan)
Nmap scan report for 192.168.2.101
Host is up (0.00032s latency).
MAC Address: 00:08:9B:EA:9B:3A (ICP Electronics)
Nmap scan report for 192.168.2.103
Host is up (0.00019s latency).
MAC Address: F4:06:8D:38:61:92 (devolo AG)
Nmap scan report for 192.168.2.106
Host is up (0.0011s latency).
MAC Address: 60:6D:3C:10:49:B1 (Luxshare Precision Industry Company Limited)
Nmap scan report for 192.168.2.107
Host is up (0.015s latency).
MAC Address: 88:87:17:96:28:12 (Canon)
Nmap scan report for 192.168.2.110
Host is up (0.0025s latency).
MAC Address: 94:C6:91:59:C1:3C (EliteGroup Computer Systems)
Nmap scan report for 192.168.2.112
Host is up (0.0023s latency).
MAC Address: 00:05:CD:94:48:C9 (D&amp;M Holdings)
Nmap scan report for 192.168.2.115
Host is up (0.000035s latency).
MAC Address: 00:08:9B:EA:9B:39 (ICP Electronics)
Nmap scan report for 192.168.2.126
Host is up (0.094s latency).
MAC Address: 00:05:51:10:A3:06 (F &amp; S Elektronik Systeme GmbH)
Nmap scan report for 192.168.2.139
Host is up (0.11s latency).
MAC Address: 70:EE:50:6B:5F:4E (Netatmo)
Nmap scan report for 192.168.2.140
Host is up (0.11s latency).
MAC Address: C8:DB:26:0A:8D:15 (Logitech)
Nmap scan report for 192.168.2.145
Host is up (0.023s latency).
MAC Address: 94:3A:91:81:88:66 (Unknown)
Nmap scan report for 192.168.2.150
Host is up (1.4s latency).
MAC Address: A6:BF:DC:19:1C:41 (Unknown)
Nmap scan report for 192.168.2.155
Host is up (0.010s latency).
MAC Address: 00:0B:3B:9C:96:CD (devolo AG)
Nmap scan report for 192.168.2.176
Host is up (0.13s latency).
MAC Address: EC:2B:EB:23:7E:22 (Unknown)
Nmap scan report for 192.168.2.186
Host is up (0.0045s latency).
MAC Address: 6C:A9:36:FD:1B:7F (DisplayLink (UK))
Nmap scan report for 192.168.2.211
Host is up (0.014s latency).
MAC Address: 50:D4:5C:9B:AA:1E (Unknown)
Nmap scan report for ioBroker (192.168.2.120)
Host is up.
Nmap done: 256 IP addresses (18 hosts up) scanned in 7.34 seconds
</code></pre>
]]></description><link>https://forum.iobroker.net/post/1057810</link><guid isPermaLink="true">https://forum.iobroker.net/post/1057810</guid><dc:creator><![CDATA[Oli]]></dc:creator><pubDate>Mon, 09 Oct 2023 12:45:23 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sat, 29 Apr 2023 04:30:54 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/marsm%C3%A4nnchen" aria-label="Profile: marsmännchen">@<bdi>marsmännchen</bdi></a> sagte in <a href="/post/985208">IP Devices im Netzwerk - HTML Tabelle vis, Iqontrol</a>:</p>
<blockquote>
<p dir="auto">const domainName="192.168.1.1";</p>
</blockquote>
<p dir="auto">liegt evtl daran (bin mir aber nichtt sicher):</p>
<pre><code>const domainName="192.168.1.1"; 
</code></pre>
<p dir="auto">das ist kein domain name: z.b fritz.box wäre so ein d-name</p>
<p dir="auto">hast du da was im router definiert ?</p>
<p dir="auto">ansonsten müßtest du mal den output aus der console posten und auch den output des logs vom script (in deinem post . im letzten code siehst du in zeile 6 : console.log(result); - du mußt die beiden schrägstriche entfernen</p>
]]></description><link>https://forum.iobroker.net/post/985210</link><guid isPermaLink="true">https://forum.iobroker.net/post/985210</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Sat, 29 Apr 2023 04:30:54 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sat, 29 Apr 2023 02:31:05 GMT]]></title><description><![CDATA[<p dir="auto">Hallo zusammen,<br />
Ich versuche mir etwas zu basteln um in Jarvis zu Visualisieren welche Netzwerkteilnehmer online/offline sind.<br />
Ich habe im Forum diverse Beispiele gefunden.<br />
Da ich einen Asus Router und keine FritzBox habe schränkt das die Auswahl aber ein.<br />
Jetzt bin ich hier gelandet.<br />
Der Befehl Nmap in der Konsole gibt mir 20 Teilnehmer aus.<br />
Das mit meinen IP's geänderte Skript aber nur 7.<br />
Kann mir vielleicht helfen woran das liegt?<br />
Über Putty:</p>
<pre><code>nmap -sP --dns-servers 192.168.1.1 192.168.1.0/24
</code></pre>
<p dir="auto">über das Skript:</p>
<pre><code>const domainName="192.168.1.1";                  // domainname in der fritzbox definiert
 const ipbereich="192.168.1.1/24";           //  gilt nicht für windows
 const dnsServer="192.168.1.1"               // gilt nicht für windows
 let mysortiereClient=2;                     //1 nach client 2 nach ip 
 const waitTime=5000;                        // falls längere zeit keine daten kommen - diesen wert erhöhn um 5000 (ms)
</code></pre>
<pre><code>          if(mitDatenGet) {
if(oerationSystemchange == false){
 exec("nmap -sP --dns-servers "+dnsServer+" "+ipbereich  , async function (error, result, stderr) {
    myData=result
  //  setState("0_userdata.0.Tabellen.IPDeviceERROR", result)
   //  console.log(result);
     resolve()
});} else {
</code></pre>
<p dir="auto">MfG<br />
Patrick</p>
]]></description><link>https://forum.iobroker.net/post/985208</link><guid isPermaLink="true">https://forum.iobroker.net/post/985208</guid><dc:creator><![CDATA[marsmännchen]]></dc:creator><pubDate>Sat, 29 Apr 2023 02:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Tue, 10 Jan 2023 17:20:53 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hausbaer" aria-label="Profile: hausbaer">@<bdi>hausbaer</bdi></a> ist so nicht gedacht</p>
<p dir="auto">wenn du die farben im setting über datenpunkte haben willst, musst du das script ändern - dh. du musst den datenpunkt lesen und ihn in die variable schreiben, die dafür zuständig ist - alle farben und eistellungen werden im script gemacht - also musst du das script ändern</p>
]]></description><link>https://forum.iobroker.net/post/925953</link><guid isPermaLink="true">https://forum.iobroker.net/post/925953</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Tue, 10 Jan 2023 17:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Tue, 10 Jan 2023 14:31:40 GMT]]></title><description><![CDATA[<p dir="auto">Ich nochmal <img src="https://forum.iobroker.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f632.png?v=ba16ebd4856" class="not-responsive emoji emoji-android emoji--astonished" style="height:23px;width:auto;vertical-align:middle" title=":astonished:" alt="😲" /></p>
<p dir="auto">Ich kämpfe noch mit den Farben.<br />
Ich habe mir über DP "meine" Farben angelegt und beziehe mich bei den Farbeinstellungen in Widgets z.B.per {0_userdata.0.einstellung_farben_schriftarten.farbe-1} auf die jeweilige Farbe.</p>
<p dir="auto">Leider bekomm ich das im Script nicht hin. Egal ob ich das wie oben angebe, oder in " " setze, oder ' ' verwende - das Ergebnis ist eher bescheiden.</p>
<p dir="auto"><img src="/assets/uploads/files/1673361007803-image_2023-01-10_153006838.png" alt="image_2023-01-10_153006838.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Wie bekomme ich "meine" Farben / Schriftarten / Schriftgrößen in solche Skripte?</p>
]]></description><link>https://forum.iobroker.net/post/925821</link><guid isPermaLink="true">https://forum.iobroker.net/post/925821</guid><dc:creator><![CDATA[Hausbaer]]></dc:creator><pubDate>Tue, 10 Jan 2023 14:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Mon, 09 Jan 2023 18:17:43 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a> Doch, jetzt steht da was drin.<br />
Danke für die Hilfe</p>
]]></description><link>https://forum.iobroker.net/post/925434</link><guid isPermaLink="true">https://forum.iobroker.net/post/925434</guid><dc:creator><![CDATA[Hausbaer]]></dc:creator><pubDate>Mon, 09 Jan 2023 18:17:43 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sun, 08 Jan 2023 17:01:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hausbaer" aria-label="Profile: hausbaer">@<bdi>hausbaer</bdi></a></p>
<p dir="auto">es gibt einen dp, indem die ganze html tabelle steht und die dann über ein binding im html widget angezeigt wird - steht da nichts drin ?</p>
]]></description><link>https://forum.iobroker.net/post/924803</link><guid isPermaLink="true">https://forum.iobroker.net/post/924803</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Sun, 08 Jan 2023 17:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sun, 08 Jan 2023 16:59:34 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hausbaer" aria-label="Profile: hausbaer">@<bdi>hausbaer</bdi></a></p>
<p dir="auto">diese datenpunkte braucht das script - damit solltest du nix machen - sonst großer wums :-)</p>
<p dir="auto">diese kommentare sind überbleibsel - ich hatte mal ein template erstellt, um solche scripte zu erzeugen - bitte nur oben im settingbereich etwas ändern</p>
]]></description><link>https://forum.iobroker.net/post/924801</link><guid isPermaLink="true">https://forum.iobroker.net/post/924801</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Sun, 08 Jan 2023 16:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sun, 08 Jan 2023 16:56:52 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/liv-in-sky" aria-label="Profile: liv-in-sky">@<bdi>liv-in-sky</bdi></a> Schon mal vielen Dank.</p>
<p dir="auto">Material Design Icon-List funktioniert. Zwar noch ohne Bilder (vermutlich eine Einstellungssache) und noch nicht mit "meinen" Farben, aber das ist momentan mal Zweitrangig.</p>
<p dir="auto">Basic-HTML liefert komischerweise kein Ergebnis...</p>
<p dir="auto">Noch ne (blöde) Frage. Diese DP hier:</p>
<p dir="auto"><img src="/assets/uploads/files/1673196863199-image_2023-01-08_175422938.png" alt="image_2023-01-08_175422938.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">liefern mir per true / false mehr bzw. andere Spalten, richtig?</p>
<p dir="auto">Muss ich das im Script unterhalb hier</p>
<p dir="auto"><img src="/assets/uploads/files/1673196970804-image_2023-01-08_175610566.png" alt="image_2023-01-08_175610566.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">noch definieren? Oder sind diese 7 DP standardmäßig definiert?</p>
]]></description><link>https://forum.iobroker.net/post/924794</link><guid isPermaLink="true">https://forum.iobroker.net/post/924794</guid><dc:creator><![CDATA[Hausbaer]]></dc:creator><pubDate>Sun, 08 Jan 2023 16:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to IP Devices im Netzwerk  - HTML Tabelle vis, Iqontrol on Sun, 08 Jan 2023 15:59:19 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hausbaer" aria-label="Profile: hausbaer">@<bdi>hausbaer</bdi></a> sagte in <a href="/post/924729">IP Devices im Netzwerk - HTML Tabelle vis, Iqontrol</a>:</p>
<blockquote>
<pre><code>                                                                                                                            pi@iob:/etc/sudoers.d $ ls                                                                                                                                                                            010_at-export  010_pi-nopasswd  010_proxy  iobroker  README          
</code></pre>
</blockquote>
<p dir="auto">das kontrollieren wir , falls was nicht geht</p>
<p dir="auto">ok - dann gleiche den pfad im script an und teste mal, ob es schon funktioniert</p>
]]></description><link>https://forum.iobroker.net/post/924732</link><guid isPermaLink="true">https://forum.iobroker.net/post/924732</guid><dc:creator><![CDATA[liv-in-sky]]></dc:creator><pubDate>Sun, 08 Jan 2023 15:59:19 GMT</pubDate></item></channel></rss>