NEWS
Ping innerhalb eines js absetzen
-
Hallo,
ich würde gerne über einen Ping abfragen, ob ein Gerät in einem bestimmten WLAN ist.
(Habe mehrere WLAN Access Points und diese haben bspw. meinem Handy eine feste IP zugewiesen).
Somit kann man erkennen, dass sich das Handy Bspw. in der Garage (WLAN Garage) befindet.Nun zu meiner Frage: Die verfügbaren Ping-Adapter funktionieren irgendwie nicht sehr gut.
Hier bekomme ich des öfteren mal ein false zurück, auch wenn das Gerät erreichbar ist.Idee: Ping selbst aus eine Skript heraus auslösen.
Wie geht das?
Ich habe schon einen request zu einer URL gelöst, aber wie genau pinge ich ein Gerät an? -
@ben1983
Hi,
"ping" sollte standardmäßig installiert sein:const ping = require('ping'); const host = ['192.168.1.1', '192.168.1.2', '192.168.1.3']; const frequenz = 1000; // Millisekunden host.forEach(function(hosts){ setInterval(function() { ping.sys.probe(hosts, function(active){ var info = active ? 'IP ' + hosts + ' = Active' : 'IP ' + hosts + ' = Non-Active'; console.log(info); }); }, frequenz); });
-
@sborg Funktioniert.
DankeAber warum zeigt er das an?
-
@ben1983 Tut es wenn du es ausführst? Dann fehlt
ping
in der Adapterkonfiguration unter activate syntax help for .... Kannst du ignorieren, wenn es dich nicht stört, oder es dort nachtragen, damit der Editor dir beim Bearbeiten hilft. -
@alcalzone ja es funktioniert ja.
-
@alcalzone So richtg durchgängig ist es aber nicht.
Mein Handy liegt bspw. direkt neben dem Router und ist dauerhaft online.
mal kommt true, mal false zurück.Was mir auf jeden Fall auffällt:
Wenn das iphone den bildschirm ab schaltet, kommt ein false -
@ben1983 Das liegt dann wohl daran, dass das iPhone nicht immer auf Pings antwortet. Das Skript läuft jedenfalls, worauf sich meine Frage bezogen hat
-
@alcalzone kann man die active syntax help for… selber editieren? Wo? Nutze in einigen Scripten axios und der Fehler im Script Editor stört mich
-
@alcalzone sagte in Ping innerhalb eines js absetzen:
in der Adapterkonfiguration
Das war mal automatisch, aber dann hatten manche enorme Probleme mit den googleapi-Definitionen, die alleine dafür gesorgt haben, dass der JS-Adapter und Editor mehrere 100 MB RAM extra benötigt haben.
-
@alcalzone ok. Blind! Hatte dort vor meiuner Frage geguckt und nicht gefunden. Ich habe dort jetzt mal bei der ersten Instanz in das Feld axios eingetragen. Gilt das dann für Scripte die auch unter der Instanz laufen oder für alle? Ich habe 3 Instanzen und die Scripte auf diese etwas verteilt.
Anders gefragt: Muss ich das bei allen 3 eintragen und nur Axios reicht?
-
@ben1983 sagte in Ping innerhalb eines js absetzen:
@alcalzone So richtg durchgängig ist es aber nicht.
Mein Handy liegt bspw. direkt neben dem Router und ist dauerhaft online.
mal kommt true, mal false zurück.Was mir auf jeden Fall auffällt:
Wenn das iphone den bildschirm ab schaltet, kommt ein falsemanche handys sind wohl etwas speziell. eine regel lässt sich bisher nicht ableiten.
das hier funktioniert für iphone
grundsätzlich hat das was mit stromsparen des betriebssystem zu tun. dadurch schaltet das handy intern einzelne komponenten dynamisch ein und wieder aus.
das folgende sorgt dafür, das das wlan modul intern wieder aktiviert wird und dann wieder sichtbar wird.
https://forum.iobroker.net/topic/46360/anwesenheitserkennung-mit-hping3 -
Muss ich das bei allen 3 eintragen
Ich glaube ja.
nur Axios reicht?
Ja, bzw.
axios
(genau wie das Modul heißt).