NEWS
Verfügbarkeit Alexa im Netzwerk prüfen.
-
Na prima…
Ein Skript geschrieben, was die Verfügbarkeit eines Alexa Echo im Netzwerk mit nmap prüft, da ein Ping bei den Amazon Echos nicht funktioniert…
Skript (benötigt nmap):
// Prüft die Verfügbarkeit eines Amazon Echos im Netz bei bekannter IP-Adresse // Rückmeldung der Prüfung etwas > 10 Sekunden // Voraussetzungen: // -------------------------- // nmap muss installiert sein // IP-Adresse in der "abfrage" anpassen var alexaName = "81 Wohnzimmer"; var alexaIP = "172.16.130.81"; var logOn = false; // Logausgabe im Skript var forecreation = false; // true: Datenpunkte werden überschrieben (ween z.B. Bezeichnungen geändert wurden) var pfad = "Systeminfos.Alexa.Echo_81" + "."; // Pfad in dem die Datenpunkte angelegt werden // Datenpunktnamen: var idEchoUp = pfad + 'up'; var idEchoLatency = pfad + "latency"; var idEchoStatustime = pfad + "timestamp"; var idMacAddress = pfad + "mac address"; // regelmässige Wiederholungen der Abfrage var cronStr = "*/5 * * * *"; var abfrage = 'nmap '+alexaIP+' -sT -A --top-ports=20'; //var abfrage = 'nmap '+alexaIP+' -sT -A -n -T4 --top-ports=20'; // ----------------------------------------------------------------------------- createState(idEchoUp, false, forecreation, { name: 'Alexa Echo '+alexaName+'up', desc: 'Alexa Echo '+alexaName+' up', type: 'boolean', unit: '', role: 'value' }); createState(idEchoLatency, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Latency', desc: 'Alexa Echo '+alexaName+' Latency', type: 'string', unit: '', role: 'value' }); createState(idEchoStatustime, now(), forecreation, { name: 'Alexa Echo '+alexaName+' letzter Status', desc: 'Alexa Echo '+alexaName+' letzter Status', type: 'string', unit: '', role: 'value' }); createState(idMacAddress, "initalisiert", forecreation, { name: 'Alexa Echo '+alexaName+' Mac Adresse', desc: 'Alexa Echo '+alexaName+' Mac Adresse', type: 'string', unit: '', role: 'value' }); // ----------------------------------------------------------------------------- function now() { return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD"); } function abfrageConsole() { exec(abfrage, function(err, stdout, stderr) { if(logOn) log("Abfrage: "+abfrage); if (err) { log("Fehler Amazon Echo Scan: " + err,"error"); return; } var out = stdout.toString(); if(logOn) log(out); if(!out || (!out.match("Host is up") && !out.match("Host seems down"))) log("Amazon Echo Scan unklares Ergebnis","warn"); var up = false; var latency = "n.e."; var mac = "n.e."; if (out.match("Host is up")) { up = true; latency = out.match(/\(.+latency/g); latency = latency.toString().replace(/ latency/,""); latency = latency.toString().replace("(",""); mac = out.match(/..:..:..:..:..:../g).toString(); // ..:..:..:..:..:.. } setState(idEchoUp ,up); setState(idEchoLatency ,latency); setState(idEchoStatustime ,now()); setState(idMacAddress ,mac); if(logOn) log("Scan Amazon Echo :"+alexaName+": "); if(logOn) log("Alexa Echo Mac-Adresse: " + mac); if(logOn) log("up: " + up); if(logOn) log("Latency: " + latency); }); } function abfragen() { abfrageConsole(); } // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, abfragen); // main // ----------------------------------------------------------------------------- function main() { abfragen(); } // Start Skript: // ----------------------------------------------------------------------------- setTimeout(main, 500);
Und da muss ich danach feststellen, dass man mit dem radar-Adapter die Echos auch überwachen kann :roll: :mrgreen: :mrgreen: :oops:
-
Und da muss ich danach feststellen, dass man mit dem radar-Adapter die Echos auch überwachen kann :roll: :mrgreen: :mrgreen: :oops: `
Per MAC, Bluetooth oder fping?
-
Und da muss ich danach feststellen, dass man mit dem radar-Adapter die Echos auch überwachen kann :roll: :mrgreen: :mrgreen: :oops: `
Per MAC, Bluetooth oder fping? `
Bluetooth: nein
(habe die Radar-Instanz beim Master unter ESXi genommen, die hat kein Bluetooth)
MAC: nein
(ich hatte probiert, ob die MAC alleine ausreicht)
fping: keine Ahnung
Ohne Parameter bringt mir ein fping:
michael@ubuntu1604server:~$ fping 172.16.130.81 172.16.130.81 is unreachable
-
Wie macht es der radar Adapter dann?
-
Keine Ahnung, ist nicht von mir
fping mit Parametern?
-
Die Frage muss wohl eher lauten, was Du im Radar-Adapter eingetragen hast.
IP?
MAC (LAN oder BT)?
usw.
Gruß,
Eric
-
Die Frage muss wohl eher lauten, was Du im Radar-Adapter eingetragen hast.
IP?
MAC (LAN oder BT)?
usw. `
Ich glaube die Frage war zu 90% beantwortet.
BT: hatte ich geschrieben, dass der ESXi kein Bluetooth hat.
MAC: steht oben, dass ich die MAC alleine eingetragen hatte, ohne Ergebnis.
bleibt nur die IP (oder https://…)
Aber um das klar zu beantworten: es funktioniert wenn nur die IP eingetragen ist.
Ich habe die IP und die MAC gepflegt, wobei die MAC nichts bringen dürfte.
Bluetooth habe ich über die andere radar-Instanz nicht getestet.
-
Ah, ok. Ich hatte es so verstanden, das Du die einzelnen Varianten er manuell ausprobiert hast um dann festzustellen, das der Radar-Adapter es auch kann…
Missverständnis.
Gruß,
Eric
-
Habe ich aber vorhin drüber geärgert, dass ich es nicht eindeutig beschrieben habe, was ich beim Radar gemacht hatte
Wollte erst großspurig 100% schreiben, habe dann aber festgestellt, dass es nicht präzise war
:mrgreen:
Aber unabhängig davon wüsste ich gerne bei beiden Varianten (nmap und radar-Adapter), was da genau geschieht.
Bei nmap kann ich mir die Parameter ansehen, die im Skript drin sind. Der Ist-Stand ist mit einem einfachen Versuch per google entstanden. Beim radar-Adapter müsste man Wireshark anschmeissen.
Falls ein Netzwerkprofi anwesend ist…
-
Kleiner Nachtrag…
Der Radar Adapter zeigt mir bei einen Echo tlw. nicht erreichbar an (82).
Die Logik, warum das so sein sollte, erschliesst sich mir nicht.
Aus den ganzen Adaptern gibt es bei der Fritzbox noch eine weitere Alternative.
Der tr-64 Adapter. Der hat allerdings das Problem, dass die Gerätenamen in den Einstellungen des Adapters nicht mit in den Datenpunktnamen Übernomen werden. Zwei der Echos heissen in der Fritzbox "Linux". Damit habe ich dann für beide Geräte nur noch einen Datenpunkt. Wahrscheinlich werde ich es aber über die Fritzbox ändern können.
[EDIT]
tr-64 Adapter:
Wie vermutet. Man kann die Namen der Geräte in der Fritzbox ändern. Die Datenpunkte werden dann automatisch neu erstellt. Die alten Datenpunkte muss man händisch löschen. Da bei den Einstellungen das Feld "Gerätenamen" editierter ist, sollte das wahrscheinlich auch anders funktionieren.
P.S.: der tr-64 ist übrigens ein sehr sehr cooler Adapter geworden. Respekt!
-
@ruhr70
Servus
Ich habe Dein Script vewendet - funktioniert soweit auch; nur........Ich habe einige wenige Echo's im Haus in Verwendung.
Bei einem funktioniert Dein Script problemlos.
Bei einem anderen mit angepaßter IP-Adresse jedoch liefert das Script im ioBroker nicht und liefert immer das Ergebnis zurück, daß das Gerät nicht verfügbar wäre. Wenn ich im Terminal vom ioBroker-Docker jedoch genau die gleiche die Befehlszeile von nmap so wie Du es im Script generierts eingebe, wird ein Online-Ergebnis ausgegeben.Hast Du eine Idee, warum nmap im ioBroker ein falsches Ergebnis liefert?