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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Skript PING

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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

                        515
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

                        6
                        15
                        690
                        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