Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript PING

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript PING

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ro75
      Ro75 @MyzerAT last edited by

      @myzerat was möchtest du denn genau wissen? Wie im Bild im ersten Post zu sehen. JS-Adapter >> Allgemeine Einstellungen und dort jeweils das Wort ping eintragen und mit Enter bestätigen.

      Ro75.

      MyzerAT 1 Reply Last reply Reply Quote 0
      • MyzerAT
        MyzerAT @Ro75 last edited by

        @ro75

        hab ich gemacht, wenn ich enter drücke tut sich nichts

        Screenshot_20241020_131040_Samsung Internet.jpg

        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @MyzerAT last edited by

          @myzerat

          Kleinbuchstaben...
          ping also

          MyzerAT 1 Reply Last reply Reply Quote 1
          • MyzerAT
            MyzerAT @Thomas Braun last edited by

            @thomas-braun

            ja hab ich auch probiert

            Thomas Braun 1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @MyzerAT last edited by

              @myzerat

              Keine Ahnung was du da machst. Geht hier sofort:

              300d275c-9d69-40a9-8882-7d5a21fb263d-grafik.png

              MyzerAT 1 Reply Last reply Reply Quote 0
              • MyzerAT
                MyzerAT @Thomas Braun last edited by MyzerAT

                @thomas-braun

                ich bin auf eine samsung tablett s9 ultra mit dem samsung browser am probieren gewesen, mit dem firefox browser hat es sofort geklappt, komisch

                Screenshot_20241020_132134_Samsung Internet.jpg

                1 Reply Last reply Reply Quote 0
                • B
                  BigMike71 last edited by

                  vielen dank für dein Script!
                  Funktioniert mit meinem Qnap NAS super 🙂
                  Schalte damit über ein Blockly zusätzlich ein Festplatten Array was über USB3 damit verbunden ist ein und aus

                  1 Reply Last reply Reply Quote 0
                  • E
                    emil70 @Ro75 last edited by emil70

                    @ro75

                    super script von dir

                    Kann du sagen, warum Amazon Echos nicht gehen?

                    Mein Alexa-Echo-Show2 und FireTVStick wird als "true" angezeigt. Die Dot leider nicht

                    Edit: Was sagt den der Status "OK" aus bei jedem Netzwerkgerät

                    Asgothian 1 Reply Last reply Reply Quote 0
                    • Asgothian
                      Asgothian Developer @emil70 last edited by Asgothian

                      @emil70 sagte in Skript PING:

                      @ro75

                      super script von dir

                      Kann du sagen, warum Amazon Echos nicht gehen?

                      Mein Alexa-Echo-Show2 und FireTVStick wird als "true" angezeigt. Die Dot leider nicht

                      Edit: Was sagt den der Status "OK" aus bei jedem Netzwerkgerät

                      Das kannst du selber ausprobieren:
                      per konsole schickst du mal ein 'ping <IP.DES.ECHO.DOT> ab und schaust dir die Antwort an.

                      Es ist denkbar das die Firmware des EchoDot die Antworten auf ICMP Requests blockiert. Das würdest Du da dann sehen (oder auch andere Fehlermeldungen warum das nicht geht)

                      Das OK sagt aus das der Befehl sauber abgearbeitet wurde. Im Falle eines 'ERROR' ist auf deinem System etwas faul was dazu führt das die Pings nicht ausgeführt werden können.

                      A.

                      E 1 Reply Last reply Reply Quote 1
                      • E
                        emil70 @Asgothian last edited by

                        @asgothian

                        hast Recht, hätte ich auch selbst drauf kommen können

                        "Zeitüberschreitung der Anforderung." kommt

                        1 Reply Last reply Reply Quote 0
                        • E
                          emil70 last edited by

                          Hat hier jemand noch eine Idee, wie man

                          1. das man noch einen Datenpunkt bekommen, wieviele Geräte man im Netzwerk hat

                          2. das man noch einen Datenpunkt bekommen, wieviele davon auf "true" stehen

                          1 Reply Last reply Reply Quote 0
                          • E
                            emil70 last edited by

                            Habe das jetzt so gelöst. Für Alle die es brauchen können

                            Habe mir dazu extra Datenpunkte angelegt

                            Screenshot 2025-02-04 at 12-14-15 javascript - f5529c8310eb.png

                            Screenshot 2025-02-04 at 12-14-50 javascript - f5529c8310eb.png

                            Screenshot 2025-02-04 at 12-16-58 objects - f5529c8310eb.png

                            1 Reply Last reply Reply Quote 0
                            • E
                              emil70 last edited by emil70

                              ich habe aber generell noch eine Frage zu dem script. Ich habe daraus jetzt 3 script gemacht. Da ich Kameras, Lan und Wlan einzeln angezeigt bekommen möchte. Die funktionieren auch Alle soweit

                              ich würde gerne daraus ein script machen. Datenpunkte werden dann auch Alle richtig angelegt. Was ich nicht hinbekommen ist die Ping Abfrage

                              Momentan ist da so meine Einstellungen

                              //Version 1.0.0 - 04.10.2024
                              //Ersteller Ro75.
                              //https://forum.iobroker.net/topic/77249/skript-ping 
                              //Voraussetzungen (Version 1.0.0 getestet mit)
                              //NodeJS: 20.x
                              //Javascript-Adapter: 8.7.6
                              //Admin-Adapter: 7.0.23
                              //JS-Controller: 6.0.11
                              //https://forum.iobroker.net/topic/77249/skript-ping
                               
                              //"normale" Geräte ("Computer, Router, Switch, HUB, NAS, WLAN-Steckdosen, Android-Smartphone, Android-Tablet, etc.")
                              //Amazon Echos, SKY-Geräte und diverse Konsolen (einfach probieren) funktionieren nicht.
                               
                              const ping          = require('ping');          //Im Javascript-Adapter einzutragen (Zusätzliche NPM-Module)
                              const sMainPathKamera        = '0_userdata.0.Netzwerkgeräte-Test.Kamera.';     //zentraler Datenpunkt
                              const sMainPathKameras       = '0_userdata.0.Netzwerkgeräte-Test.Kameras';
                              const sMainPathLan           = '0_userdata.0.Netzwerkgeräte-Test.Lan.';     //zentraler Datenpunkt
                              const sMainPathLangeraete    = '0_userdata.0.Netzwerkgeräte-Test.Lan-Geräte';
                              const sMainPathWlan          = '0_userdata.0.Netzwerkgeräte-Test.Wlan.';     //zentraler Datenpunkt
                              const sMainPathWlangeraete   = '0_userdata.0.Netzwerkgeräte-Test.Wlan-Geräte';
                              
                               
                              //Konfiguration der abzufragenden Geräte. Geräte werden duch "Doppelpunkt" (:) getrennt.
                              //Jedes Geräte besteht aus zwei Werten. Die Werte werden durch Komma (,) getrennt.
                              //Links vom Komma die Bezeichnung und rechts vom Komma die IP-Adresse
                              const cDevicePingKamera   = 'Kamera-Garage,192.168.178.50'; //bitte anpassen
                              const cDevicePingLan      = 'Lan-Geraete,192.168.178.60'; //bitte anpassen
                              const cDevicePingWlan     = 'Wlan-Geraete,192.168.178.70'; //bitte anpassen
                              
                              //Kamera Datenpunkte anlegen
                              function PingInitalisierungKamera(){
                                  let sDevice = cDevicePingKamera.split(':');
                                  for (let i = 0; i <= sDevice.length-1; i++) {
                                      let device_data = sDevice[i].split(',');
                                      createState(sMainPathKamera+device_data[0], '', {name: device_data[1],read: true, write: true});
                                      createState(sMainPathKamera+device_data[0]+'.Ping.alive', false, {name: 'Pingstatus' ,type: 'boolean', read: true, write: true});
                                      createState(sMainPathKamera+device_data[0]+'.Ping.time', 0, {name: 'Zeit' ,type: 'number', read: true, write: true, unit: 'ms'});
                                      createState(sMainPathKamera+device_data[0]+'.Ping.status', '', {name: 'Status' ,type: 'string', read: true, write: true});
                              		createState(sMainPathKameras, 0, {name: 'Onlinestatus' ,type: 'number', read: true, write: true});
                                  }
                              }
                              
                              //Lan Datenpunkte anlegen
                              function PingInitalisierungLan(){
                                  let sDevice = cDevicePingLan.split(':');
                                  for (let i = 0; i <= sDevice.length-1; i++) {
                                      let device_data = sDevice[i].split(',');
                                      createState(sMainPathLan+device_data[0], '', {name: device_data[1],read: true, write: true});
                                      createState(sMainPathLan+device_data[0]+'.Ping.alive', false, {name: 'Pingstatus' ,type: 'boolean', read: true, write: true});
                                      createState(sMainPathLan+device_data[0]+'.Ping.time', 0, {name: 'Zeit' ,type: 'number', read: true, write: true, unit: 'ms'});
                                      createState(sMainPathLan+device_data[0]+'.Ping.status', '', {name: 'Status' ,type: 'string', read: true, write: true});
                              		createState(sMainPathLangeraete, 0, {name: 'Onlinestatus' ,type: 'number', read: true, write: true});
                                  }
                              }
                              
                              //Wlan Datenpunkte anlegen
                              function PingInitalisierungWlan(){
                                  let sDevice = cDevicePingWlan.split(':');
                                  for (let i = 0; i <= sDevice.length-1; i++) {
                                      let device_data = sDevice[i].split(',');
                                      createState(sMainPathWlan +device_data[0], '', {name: device_data[1],read: true, write: true});
                                      createState(sMainPathWlan +device_data[0]+'.Ping.alive', false, {name: 'Pingstatus' ,type: 'boolean', read: true, write: true});
                                      createState(sMainPathWlan +device_data[0]+'.Ping.time', 0, {name: 'Zeit' ,type: 'number', read: true, write: true, unit: 'ms'});
                                      createState(sMainPathWlan +device_data[0]+'.Ping.status', '', {name: 'Status' ,type: 'string', read: true, write: true});
                              		createState(sMainPathWlangeraete, 0, {name: 'Onlinestatus' ,type: 'number', read: true, write: true});
                                  }
                              }
                              
                              
                              //START
                              PingInitalisierungKamera();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathKamera+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathKamera+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathKamera+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathKamera+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              PingInitalisierungLan();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathLan+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathLan+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathLan+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathLan+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              PingInitalisierungWlan();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathWlan+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathWlan+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathWlan+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathWlan+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              
                              //Ping aller 10 Sekunden - kann angepasst werden - kleinerer Wert nicht empfohlen
                              //damit das Intervall (wenn zu niedrig) nicht "gesprengt" wird: Schleife sperren und am Ende wieder freigeben
                              let bPingSperreKamera = false;
                              schedule('*/20 * * * * *', async function StartPing() {
                                  if (bPingSperreKamera == false) {
                                      bPingSperreKamera = true;
                                      let sDevice = cDevicePingKamera.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreKamera = false;
                                  }
                              });
                              
                              let bPingSperreLan = false;
                              schedule('*/30 * * * * *', async function StartPing() {
                                  if (bPingSperreLan == false) {
                                      bPingSperreLan = true;
                                      let sDevice = cDevicePingLan.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreLan= false;
                                  }
                              });
                              
                              //Ping aller 10 Sekunden - kann angepasst werden - kleinerer Wert nicht empfohlen
                              //damit das Intervall (wenn zu niedrig) nicht "gesprengt" wird: Schleife sperren und am Ende wieder freigeben
                              let bPingSperreWlan = false;
                              schedule('*/40 * * * * *', async function StartPing() {
                                  if (bPingSperreWlan == false) {
                                      bPingSperreWlan = true;
                                      let sDevice = cDevicePingWlan.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreWlan = false;
                                  }
                              });
                              

                              der Part ist so nicht richtig. Da bräuchte ich Hilfe

                              //START
                              PingInitalisierungKamera();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathKamera+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathKamera+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathKamera+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathKamera+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              PingInitalisierungLan();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathLan+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathLan+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathLan+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathLan+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              PingInitalisierungWlan();
                               
                              async function pingHost(host,sDesc) {
                                  try {
                                      const res = await ping.promise.probe(host, {timeout: 2, deadline: 2, packetSize: 16});
                                      setState(sMainPathWlan+sDesc+'.Ping.alive', JSON.parse(JSON.stringify(res)).alive, true);
                                      setState(sMainPathWlan+sDesc+'.Ping.time', parseFloat(JSON.parse(JSON.stringify(res)).time), true);
                                      setState(sMainPathWlan+sDesc+'.Ping.status', 'OK', true);
                                  } catch (error) {
                                      setState(sMainPathWlan+sDesc+'.Ping.status', 'ERROR', true);
                                  }
                              }
                              
                              
                              //Ping aller 10 Sekunden - kann angepasst werden - kleinerer Wert nicht empfohlen
                              //damit das Intervall (wenn zu niedrig) nicht "gesprengt" wird: Schleife sperren und am Ende wieder freigeben
                              let bPingSperreKamera = false;
                              schedule('*/20 * * * * *', async function StartPing() {
                                  if (bPingSperreKamera == false) {
                                      bPingSperreKamera = true;
                                      let sDevice = cDevicePingKamera.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreKamera = false;
                                  }
                              });
                              
                              let bPingSperreLan = false;
                              schedule('*/30 * * * * *', async function StartPing() {
                                  if (bPingSperreLan == false) {
                                      bPingSperreLan = true;
                                      let sDevice = cDevicePingLan.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreLan= false;
                                  }
                              });
                              
                              //Ping aller 10 Sekunden - kann angepasst werden - kleinerer Wert nicht empfohlen
                              //damit das Intervall (wenn zu niedrig) nicht "gesprengt" wird: Schleife sperren und am Ende wieder freigeben
                              let bPingSperreWlan = false;
                              schedule('*/40 * * * * *', async function StartPing() {
                                  if (bPingSperreWlan == false) {
                                      bPingSperreWlan = true;
                                      let sDevice = cDevicePingWlan.split(':');
                                      for (let i = 0; i <= sDevice.length-1; i++) {
                                          await pingHost(sDevice[i].split(',')[1],sDevice[i].split(',')[0]);
                                      }
                                      bPingSperreWlan = false;
                                  }
                              });
                              

                              Edit: nach der ersten Pingabfrage kommt dann das

                              javascript.0	12:35:20.027	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.028	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.028	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.029	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.029	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.051	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:104:9)
                              javascript.0	12:35:20.051	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.053	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.053	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.054	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.054	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.077	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:104:9)
                              javascript.0	12:35:20.078	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.079	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.080	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.081	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.081	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.102	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:104:9)
                              javascript.0	12:35:20.103	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.104	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.104	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.106	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.106	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.136	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:104:9)
                              javascript.0	12:35:20.137	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.138	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.138	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.139	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.140	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.197	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:104:9)
                              javascript.0	12:35:20.197	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.198	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:105:9)
                              javascript.0	12:35:20.198	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              javascript.0	12:35:20.199	warn	at pingHost (script.js.common.Netzwerkstatus.Test1:106:9)
                              javascript.0	12:35:20.200	warn	at async Object.StartPing (script.js.common.Netzwerkstatus.Test1:121:13)
                              
                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              843
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              6
                              15
                              866
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo