Ping Monitoring - Datenpunkt auslesen

Fragen zum Skripten mit ioBroker.javascript
Antworten
tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 11.10.2018, 13:03

Hallo liebe Broker,

ich verspreche euch, dass ich das Forum schon mehrfach durchsucht habe. Leider scheine ich zu doof zu sein :lol:
Kann mir von euch jemand auf die Sprünge helfen mit welchem Skriptschnipsel ich folgende einfache Anforderung umsetzen kann:

Ich überwache meine Netzwerkgeräte über den Adapter "Ping". Nun möchte ich auf die Veränderung eines Datenpunktes von true auf false reagieren.
Beispiel:

Wenn sich das Objekt "ping.0.TS.192_168_2_50" von true in false ändert, soll dies in die Variable "hm-rega.0.14476" überagen werden.
Dessen Inhalt wird mir wiederum via CCU aufs Handy gepusht.

Selbstverständlich bin ich offen für andere Vorschläge, aktuell erscheint mir dies aber am Sinnvollsten.

Freue mich über eure Anregungen und hoffe, dass das Thema nicht schon duskutiert wurde und ich es übersehen habe!

Euer Tomily

paul53
guru
Beiträge: 3723
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von paul53 » 11.10.2018, 13:15

tomily hat geschrieben:
11.10.2018, 13:03
Wenn sich das Objekt "ping.0.TS.192_168_2_50" von true in false ändert, soll dies in die Variable "hm-rega.0.14476" überagen werden.
Vorschlag:

Code: Alles auswählen

on("ping.0.TS.192_168_2_50", function(dp) { // Triggern bei Wertänderung
   setState("hm-rega.0.14476", dp.state.val); // Wert von Ping --> SV
});
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.50-v7+, hmcon 0.18, node 8.11.3, Host 1.4.2, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.7.4, Email 1.0.4, History 1.8.5, Flot 1.9.1, Vis 1.0.4, Web 2.4.0

tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 11.10.2018, 13:46

Hallo Paul53,

WOW!!! Das waren ja nicht mal 15 Minuten :)
VIELEN DANK! Du hast mir damit sehr geholfen. Hat natürlich direkt funktioniert. Meine Erstversuche waren einfach viel zu kompliziert.

Bevor ich nun beginne mir für jedes Gerät eine Zeile zu erstellen die Frage:

Wie würdest du das Scripten, wenn man ca 10-15 Datenpunkte überwachen will?

Besten Dank,

paul53
guru
Beiträge: 3723
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von paul53 » 11.10.2018, 14:10

tomily hat geschrieben:
11.10.2018, 13:46
Wie würdest du das Scripten, wenn man ca 10-15 Datenpunkte überwachen will?
In einer SV oder in 10-15 SV ?
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.50-v7+, hmcon 0.18, node 8.11.3, Host 1.4.2, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.7.4, Email 1.0.4, History 1.8.5, Flot 1.9.1, Vis 1.0.4, Web 2.4.0

tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 11.10.2018, 14:22

ups sorry, ich glaub da hören meine Skills wohhl schon auf.
Was meinst du mit SV?

Ich dachte mir es in etwa so, dass ich oben das "Gerät" bzw. den Datenpunkt definiere und nur eine Zeile schreibe, was er zu tun hat.
In etwa So:

definiere Datenpunkt1 = ping.0.TS.192_168_2_1
definiere Datenpunkt2 = ping.0.TS.192_168_2_2
....

on("Datenpunktx", function(dp) { // Triggern bei Wertänderung
setState("hm-rega.0.14476", dp.state.val); // Wert von Ping --> SV
});


-> Bei meiener Logik würde aber nicht nie definiert werden, welcher Datenpunkt gerade "bearbeitet" werden soll.

Die alternative, die jetzt schon tut ist, dass ich die 3 Zeilen Code einfach 15x Kopiere und direkt auf den Datenpunkt verweise.

War das einigermaßen verständlich? :oops:
Schäme mich für die schlechten Code-Skills...

OstfrieseUnterwegs
professional
Beiträge: 269
Registriert: 20.12.2015, 13:46

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von OstfrieseUnterwegs » 11.10.2018, 14:38

Wenn er immer an den selben DP in der CCU schrreiben soll, dann in etwa so. Man kann in den 'on' statements regex verwenden. Ich bin kein Spezialist darin, aber so könnte es gehen.

Code: Alles auswählen

on(/ping\.0\.TS\.192_168_2_*./", function(dp) { // Triggern bei Wertänderung
setState("hm-rega.0.14476", dp.state.val); // Wert von Ping --> SV
});
Pi3, Pi2: Jessie, ioBroker / HM: CCU1, 27 Geräte / Z-Wave: ZWave ZME USB Stick, Fibaro: 5 Rauchmelder, Wall-Plug, Motion-Sensor / Amazon Echo / Hue

paul53
guru
Beiträge: 3723
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von paul53 » 11.10.2018, 14:40

tomily hat geschrieben:
11.10.2018, 14:22
Was meinst du mit SV?
Systemvariable der CCU.
tomily hat geschrieben:
11.10.2018, 14:22
die 3 Zeilen Code einfach 15x Kopiere und direkt auf den Datenpunkt verweise.
Also hast Du auch 15 verschiedene SV ? Dann ist das der einfachste Weg.
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.50-v7+, hmcon 0.18, node 8.11.3, Host 1.4.2, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.7.4, Email 1.0.4, History 1.8.5, Flot 1.9.1, Vis 1.0.4, Web 2.4.0

tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 11.10.2018, 15:08

Sehr geil, vielen Dank für den Tip! Ich versuche das mit dem regx mal.
Wäre einfach schöner...

Aktuell habe ich nur eine Variable auf der CCU, welche nach einer Änderung ne Pushnachricht generiert.
Ich könnte natürlich weitere anlegen, allerdings ist es für die reine Benachrichtigung nicht notwendig.

Später, wenn ich mit dem scripten besser zurecht komme, möchte ich das ganze auf Email-Benachrichtigungen umstellen.

Das Endziel ist es, dass ich eine Benachrichtigung (Vorzugsweise Email) bekomme, sobald eines der Geräte down ist.
Also ein klassisches alive-Monitoring.

OstfrieseUnterwegs
professional
Beiträge: 269
Registriert: 20.12.2015, 13:46

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von OstfrieseUnterwegs » 11.10.2018, 15:23

Der allgemeine Trend hier bei den Benutzern ist, das Push direkt von ioBroker anzustoßen. Dazu gibt es eine Reihe von Adaptern: Telegram, Pushover etc.
Damit bist du viel flexibler

Code: Alles auswählen

on(/ping\.0\.TS\.192_168_2_*./", function(dp) { // Triggern bei Wertänderung
sendTo('telegram', dp.common.name + ' neuer Wert: ' + dp.state.val); 
});
Pi3, Pi2: Jessie, ioBroker / HM: CCU1, 27 Geräte / Z-Wave: ZWave ZME USB Stick, Fibaro: 5 Rauchmelder, Wall-Plug, Motion-Sensor / Amazon Echo / Hue

tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 11.10.2018, 15:37

noch besser! Danke! Das schaue ich mir natürlich gleich mal an.
Somit wäre ich nicht von der CCU abhängig.

Mal ganz unabhängig davon:
Gäbe es auch eine Option, den Wert an als Emailinhalt zu übergeben und eine Mail zu versenden?

OstfrieseUnterwegs
professional
Beiträge: 269
Registriert: 20.12.2015, 13:46

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von OstfrieseUnterwegs » 11.10.2018, 16:01

Ja, du musste den email Adapter installieren.
Dann kannst du Mails versenden. Siehe https://github.com/ioBroker/ioBroker.email
Pi3, Pi2: Jessie, ioBroker / HM: CCU1, 27 Geräte / Z-Wave: ZWave ZME USB Stick, Fibaro: 5 Rauchmelder, Wall-Plug, Motion-Sensor / Amazon Echo / Hue

paul53
guru
Beiträge: 3723
Registriert: 09.06.2015, 16:03
Wohnort: Berlin

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von paul53 » 11.10.2018, 16:29

Regex besser so:

Code: Alles auswählen

on(/^ping\.0\.TS\.192_168_2_\d+$/, function(dp) { // Triggern bei Wertänderung
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.50-v7+, hmcon 0.18, node 8.11.3, Host 1.4.2, Admin 2.0.9, Javascript 3.6.4, HM-RPC 1.7.4, Email 1.0.4, History 1.8.5, Flot 1.9.1, Vis 1.0.4, Web 2.4.0

tomily
Beiträge: 8
Registriert: 11.10.2018, 12:49

Re: Ping Monitoring - Datenpunkt auslesen

Beitrag von tomily » 12.10.2018, 09:25

Ihr seid echt geil!
Bin erst mal ein ganzes Stück weiter gekommen.

Über den RegX-Weg werden erfolgreich alle Objekte berücksichtigt, die im Ping-Adapter angelegt oder geändert werden.
Der Mailversand läuft noch nicht, bekomme folgenden Error:

Fehler Hostname/IP doesn't match certificate's altnames: "Host: mein-host.de is not in the cert's altnames: DNS:*.mein-host.de, DNS:mein-host.de"

Kennt das jemand?
Vermut, dass es in einen anderen Beitrag gehört...Ist ab jetzt eher ein anderes Thema...

Antworten