NEWS
IP Devices im Netzwerk - HTML Tabelle vis, Iqontrol
-
@liv-in-sky
danke, Läuft soweit. -
Moin,
einmal kurz nachgefragt: Kann es sein das gerade sortieren nach IP Adressen (sortiereClient=false) nicht funktioniert?Gruß
Matthias -
-
@liv-in-sky Ach Mist, habe ich nicht gesehen, dass direkt vor mir die selbe frage gestellt wurde. Vielen Dank für den Hinweis.
Gruß
Matthias -
Gelöst : s.u
Super script , Danke dafür , eine Frage / Problem habe ich aber ( Inhalt des Datenpunkte habe ich schon einige Male gelöscht , script neu gestartet , JS neu gestartet .. ) . Trotzdem werden einige Host mehrfach , zusätzlich mit falscher IP angezeigt. Diese sind nicht in der FRITZBox bekannt, werden über die Kommandozeile auch vom nmap nicht gefunden, d.h
nmap -sPR --dns-servers 192.168.178.1 192.168.178.0/24 |grep piminiNmap scan report for pimini.fritz.box (192.168.178.84) = die IP ist richtig,
aber , es wird ein zweite (.220) angezeigt
iob@IOB:~$ nslookup pimini Server: 192.168.178.1 Address: 192.168.178.1#53 Name: pimini.fritz.box Address: 192.168.178.84
auf der anderen IP ist Nichts
iob@IOB:~$ ping 192.168.178.220 PING 192.168.178.220 (192.168.178.220) 56(84) bytes of data. From 192.168.178.21 icmp_seq=1 Destination Host Unreachable iob@IOB:~$ nslookup 192.168.178.220 ** server can't find 220.178.168.192.in-addr.arpa: NXDOMAIN
Vielleicht kennt ja jemand eine Lösung dafür
Danke & Gruß -
@andi-luma was ist das für ein gerät ?
-
@liv-in-sky
Hi , das ist ein Raspberry Pi Zero W , mein abgesetzter BTLE detector , auch als IOB Multihost angebunden, nicht schnell aber für den Zweck reichts -
@andi-luma der hat nur wlan - oder ?
die nmap anfrage kann eigentlich nichts am pi aktivieren, daher gehe ich davon aus, dass der pi auf die adresse (220, manchmal) antwortet
-
@liv-in-sky
Hallo , der pimini macht DHCP - immer gleiche Adresse zuteilen in der FritzBox eingestellt ( die IP .220 ist auch ausserhalb meines DHCP Ranges)
auf dem pimini sieht es so aus
pi@pimini:/var/log $ sudo service dhcpcd status
● dhcpcd.service - dhcpcd on all interfaces
Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/dhcpcd.service.d
└─wait.conf
Active: active (running) since Thu 2021-01-28 21:40:05 CET; 1 weeks 3 days ago
Process: 254 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w (code=exited, status=0/SUCCESS)
Main PID: 434 (dhcpcd)
Tasks: 2 (limit: 881)
CGroup: /system.slice/dhcpcd.service
├─338 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
└─434 /sbin/dhcpcd -q -wFeb 04 08:50:12 pimini dhcpcd[434]: wlan0: IAID eb:d0:33:24
Feb 04 08:50:13 pimini dhcpcd[434]: wlan0: rebinding lease of 192.168.178.84
Feb 04 08:50:17 pimini dhcpcd[434]: wlan0: probing address 192.168.178.84/24
Feb 04 08:50:23 pimini dhcpcd[434]: wlan0: leased 192.168.178.84 for 864000 seconds
Feb 04 08:50:23 pimini dhcpcd[434]: wlan0: adding route to 192.168.178.0/24
Feb 04 08:50:23 pimini dhcpcd[434]: wlan0: adding default route via 192.168.178.1tritt auch mit Windows Clients auf
-
evtl liefern die devices mit den ip adressen einen namen zurück, der dann im script etwas fehlleitet
kannst du den befehl aus dem script mal direkt in de rkonsole ausführen und dir anschauen, was da für werte kommen
oder du enabled in dem exec mal das log ( console.log(result); einfach die beiden schrägstriche entfernen
postest du mal bitte deine settings bzw. setze mal für die adresse...220 einen dummy namen im setting
-
@liv-in-sky Es bleibt seltsam , direkt nach dem Script start gibt es nur Geräte die online sind in der Liste ,
Nmap done: 256 IP addresses (68 hosts up)
später tauchen auch Geräte auf die definitiv NICHT an sind, (die liegen hier im Regal .. C0577, X230 ) Der pimini taucht nur einmal mit der richtigen IP auf , für die 220 habe ich einen Test Eintrag im script gemacht . Die FBox kennt die nicht aktiven Geräte noch , aber das sollte das nmap ja nicht herausbekommen.
Teilweise sind die IP noch in ARP cache , aber auch nicht alle ..
iob@IOB:~$ cat /proc/net/arp |grep 178.55 :: nicht in cacheder schon
iob@IOB:~$ cat /proc/net/arp |grep 178.43
192.168.178.43 0x1 0x0 a4:4e:31:XX:XX:XX
hierfür funktioniert dann auch die Namensauflösung
iob@IOB:~$ nslookup 192.168.178.43
43.178.168.192.in-addr.arpa name = D-X230.fritz.box.kurz später , der scan zeigt immer noch
Nmap done: 256 IP addresses (70 hosts up) aber in der VISU /dem Datenpunkt IPDevices _HostDaten stehen auch
192.168.178.43 D-X230
192.168.178.223 D-X230
192.168.178.55 DE-C0577
In der Visu , da steht dann der falsche Wert : Anzahl 93
-
@andi-luma hast du diesen datenpunkt geleert ? das x ist deine instanz, unter der das script läuft
javascript.x.Tabellen.IPDevices.Device_Collection
-
@liv-in-sky Danke für den Tip und deine Geduld . Den Inhalt habe ich jetzt auch mal geleert - ich hatte angenommen das die oben im script definierte Punkte genutzt werden
let dpHost="0_userdata.0.Tabellen.IPDevices_HostDaten" //WICHTIG wenn brauche HostDaten auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget // string
let dpVIS="0_userdata.0.Tabellen.IPDevices" > da wird auch was reingeschrieben - aber wohl nur einmaligDamit läuft das script jetzt nach Neustart genau einmal durch , hat kein " fehlerhaften" Einträge mehr . schreibt aber auch nicht in den von dir genannten DP , d.h. jeder weitere Lauf endet mit einem Fehler
für meine Vis nehme ich dann den Datenpunkt (0_userdata.0.Tabellen.IPDevices) , der aber jetzt nur noch beim ersten script Aufruf aktualisiert wird
-
@andi-luma lösch mal den datenpunkt unter javascript und starte das script neu
-
auf wieviel ist dein schedule eingestellt ? solange dauert es, bis es das erste mal schreibt
die fehlermeldung hilft mir leider nicht weiter, denn die zeilennummer 289 wir dbei dir ganz anders sein, wie bei mir - liegt an den unterschiedlichen settings - was steht bei dir im sscript in zeile 285-290 ?
-
@liv-in-sky DAS war dann wohl die Lösung , d.h. Script gestoppt | Datenpunkt komplett gelöscht | script neu gestartet | abwarten .. der DP wird wieder beschrieben, es kommen wieder Daten für die VIS rein , die dann auch immer wieder aktualisiert werden. Danke nochmal für die Ünterstützung
-
ich habe ein kleines update für dieses script gemacht (erster post) - ich nutze diese ansicht rel. häufig und die sortierung nach ip oder namen ist jetzt direkt in die tabelle integriert
- das script hat viele einstellungen und es ist nur eine neue dazugekommen. nachdem ihr das script importiert habt, könnt ihr das ganze setting vom alten script nutzen. ihr müßt dazu aber zeile 13 beachten, denn dort ist ein neuer datenpunkt dazugefügt worden. diesen datenpunkt müßt ihr natürlich zuerst bei euch angelegt haben und dann im script anpassen, an euren verzeichnisbaum.
überprüft einfach, ob ihr alle datenpunkte habt, die im script definiert sind. - die variable bzw const waitTime muss auch auf 500 gestellt werden!
- schedule ist auf alle 15 minuten eingestellt - das könnte man auch höher einstenne (rechenzeit sparen) - durch einen klick auf die sortierung, wird das script refreshed und man sieht den aktuellen status
- falls ihr die material design widgets nutzt, macht ein update des scriptes eigentlich keinen sinn!
hier der neue datenpunkt:
die neue funktion - das sortieren:
da das script bis zu 20 sek brauchen kann, bis das netzwerk gescannt ist, dauert es auch solange, bis die ansicht neu dargestellt wird - im bild habe ich die wartezeit "rausgeschnitten" - das script hat viele einstellungen und es ist nur eine neue dazugekommen. nachdem ihr das script importiert habt, könnt ihr das ganze setting vom alten script nutzen. ihr müßt dazu aber zeile 13 beachten, denn dort ist ein neuer datenpunkt dazugefügt worden. diesen datenpunkt müßt ihr natürlich zuerst bei euch angelegt haben und dann im script anpassen, an euren verzeichnisbaum.
-
@liv-in-sky
Ich habe mich eigentlich strikt an die Anweisungen im ersten Post gehalten, immer bekomme ich "no Array"6.3.2021, 19:59:20.419 [info ]: javascript.0 (27530) Start javascript script.js.common.IP-Liste 6.3.2021, 19:59:20.439 [warn ]: javascript.0 (27530) at writeHTML (script.js.common.IP-Liste:231:21) 6.3.2021, 19:59:20.439 [warn ]: javascript.0 (27530) at script.js.common.IP-Liste:501:20 6.3.2021, 19:59:20.464 [info ]: javascript.0 (27530) script.js.common.IP-Liste: registered 1 subscription and 1 schedule 6.3.2021, 19:59:20.992 [warn ]: javascript.0 (27530) script.js.common.IP-Liste: no Array 6.3.2021, 20:00:00.227 [warn ]: javascript.0 (27530) at writeHTML (script.js.common.IP-Liste:231:21) 6.3.2021, 20:00:00.227 [warn ]: javascript.0 (27530) at Object.<anonymous> (script.js.common.IP-Liste:498:34) 6.3.2021, 20:00:00.794 [warn ]: javascript.0 (27530) script.js.common.IP-Liste: no Array
Ich lasse die Datenpunkte inzwischen vom Script anlegen, damit ich bei der manuellen Anlage nicht die falsche Art nehme.
nmap grundsätzlich auf der Konsole funktioniert mit dem Aufruf aus dem Script, auch das in einem Forenbeitrag zur Fehlersuche angegebene Blockly-Script hat keine Fehler gemeldet. Allerdings kam da auch sonst keine Ausgabe.
Nachfolgend ein Auszug vom Anfang des Scriptes, so wie ich es dort angepasst habe. Der Rest entspricht dem aus dem ersten Posting ganz oben.//@liv-in-sky Januar 2021 1.3-8:15 createState('Tabellen.IPDevices', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); createState('Tabellen.IPDevices_HostDaten', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); createState('Tabellen.IPDevicesSort', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); createState('Tabellen.IPDevices_MD_Table', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); createState('Tabellen.IPDevices_MD_List', { // Anzahl der offenen Fenster und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); //HIER WIRD PFAD UND FILENAME DEFINIERT 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="Tabellen.IPDevices_HostDaten" //WICHTIG wenn braucheHostDaten auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget // string let dpSort="Tabellen.IPDevicesSort"; //WICHTIG - Sortierung let dpVIS="Tabellen.IPDevices" //WICHTIG wenn braucheMaterialDesignWidgetList auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget // string let dpMaterialTabelWidget="Tabellen.IPDevices_MD_Table" //WICHTIG wenn braucheMaterialDesignWidget auf true gesetzt !! dp zusätzlich für VIS-HTML-Basic-Widget // string let dpMaterialListWidget="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.0.0/24"; // gilt nicht für windows const dnsServer="192.168.0.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
exec ist im javascript-Adapter erlaubt.
Das Script läuft theoretisch schon seit mindestens Donnerstag Abend. Die Datenpunkte bleiben leer.
So langsam bin echt ratlos.
-
@björn-günther hast du den 3ten punkt im ersten post gemacht ?
hast du den link zum test-blocky noch ?
ich bin etwas über die warnungs-ausgabe verwundert - bei mir kommt ab und zu auch no-array - das ist normal- aber das ist eine zeile - bei dir
6.3.2021, 20:00:00.227 [warn ]: javascript.0 (27530) at writeHTML (script.js.common.IP-Liste:231:21) 6.3.2021, 20:00:00.227 [warn ]: javascript.0 (27530) at Object.<anonymous> (script.js.common.IP-Liste:498:34)
bitte mach mal ein bild oder text-kopie von deiner zeile 498 - plus/minus ein paar zeilen
-
Die Ausgabe ist von direkt unter dem Script, hier der Auszug
Das Blockly aus https://forum.iobroker.net/post/409283 meinte ich.
Vielen Dank für Deine Mühe