Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ping per Javascript ausführen #93

Open
Baenker opened this issue Dec 12, 2022 · 7 comments
Open

ping per Javascript ausführen #93

Baenker opened this issue Dec 12, 2022 · 7 comments

Comments

@Baenker
Copy link

Baenker commented Dec 12, 2022

Ich fände es schön wenn es möglich wäre bestimmte IP,´s aus einen Javascript direkt anzupingen. Ich überwäche mit dem Adapter ein paar IP´s. I. d. R. laufen die immer alle. Um nicht unnötig oft zu pingen habe ich einen relativ langen Intervall von 10 Minuten eingestellt.

Jetzt habe ich aber den Anwendungsfall, dass wenn ein Datenpunkt von einen anderen Adapter auf false geht würde ich gerne direkt zwei Datenpunke aus dem Ping Adapter aktualisieren ohne erst den nächsten Intervall abzuwarten.

@GermanBluefox
Copy link
Contributor

It is possible with:

sendTo('ping.0', 'ping', '192.168.1.1', (res) => {
    console.log('Result: ' + JSON.stringify(res)); // Result: {"result": {"host": "192.168.1.1", "alive": true, "ms": 250}} 
});

GermanBluefox added a commit that referenced this issue Jul 19, 2023
@Baenker
Copy link
Author

Baenker commented Jul 19, 2023

Super das es umgesetzt werden soll! Vielen Dank. Habe es gerade getestet aber es passiert nichts. Im Log kommt gar nichts. Kein Fehler kein nix.

`function func_test(){

log('Starte Test');

sendTo('ping.0', 'ping', '192.168.178.1', (res) => {
log('Result: ' + JSON.stringify(res)); // Result: {"result": {"host": "192.168.1.1", "alive": true, "ms": 250}}
});

}

func_test(); `

die IP ist die Adresse von der Fritzbox diese wird auch von ping.0 überwacht.

Bei dem Script oben kommt nur der Log von oben drüber „Starte Test“.

@Apollon77
Copy link
Contributor

Welche version hast du denn versucht? Muss mindestens 1.6.1 sein, besser 1.6,2

@Baenker
Copy link
Author

Baenker commented Jul 23, 2023

getestet mit der 1.62. Sind noch andere Adapter relevant? z.B. Web oder js-controller? Dort habe ich noch die Stable Version und würde dort aber auch nicht auf dem Beta-Zweig wechseln. Und wenn es bei Dir läuft ist es wohl ein Einzelschicksal bei mir.

@Sascha8
Copy link

Sascha8 commented Nov 1, 2023

geht hier auch nicht mit frisch aufgesetztem System. Bitte mal fixen oder den Hinweis auf sendTo rausnehmen.

@mcm1957
Copy link
Collaborator

mcm1957 commented Jan 20, 2024

@Apollon77
fixed sollte weg und bug dazu

@klein0r
Copy link

klein0r commented Apr 23, 2024

Im Log kommt gar nichts. Kein Fehler kein nix.

Wenn ich mir den Code anschaue, ist das wohl aktuell "richtig" bzw. so implementiert.

Der Callback wird nur im Fehlerfall aufgerufen und man bekommt auf diesem Weg nie ein Ergebnis geliefert. Das führt im aktuellen JavaScript-Adapter auch zu Timeouts (weil nie geantwortet wird). Damit ist das Code-Snippet auch falsch / kann gar nicht funktionieren:

ioBroker.ping/README.md

Lines 20 to 22 in 9468dbb

sendTo('ping.0', 'ping', '192.168.1.1', (res) => {
console.log('Result: ' + JSON.stringify(res)); // Result: {"result": {"host": "192.168.1.1", "alive": true, "ms": 250}}
});

EDIT: Wobei das hier doch eigentlich klappen müsste wenn der Prozess beendet wird?! Muss ich in Ruhe mal testen.

ioBroker.ping/lib/ping.js

Lines 144 to 149 in 9468dbb

callback && callback(null, {
host: addr,
alive: result,
ms
});
callback = null;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants