Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Weiterverarbeiten der Stati des Ping Adapters

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    924

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Weiterverarbeiten der Stati des Ping Adapters

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 1.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich möchte verschiedene Ip-Adressen bzw. deren Stati via Script auswerten und in Abhängigkeit des Status eine Variable setzen. Das ganze wollte ich mit folgendem Script machen, doch unabhängig vom hinterlegten Status (true/false) des Ping-Adapters im Objekte Baum wird die Variable immer auf false gesetzt.

    Vielleicht kann mir einer sagen wo mein Fehler ist.

    Danke Peoples

    createState('Netzwerk.GesamtStatus', false, {
        type: 'boolean',
        name: 'Netzwerkstatus',
        desc: 'Gesamtstatus Netzwerk'
    });
    var idState = 'javascript.0.Netzwerk.GesamtStatus'; // auf richtige Instanz achten
    
    schedule("* * * * *", function () {
    
        if(("ping.0.ioBroker-RasPi.192_168_1_1" === true) &&
           ("ping.0.ioBroker-RasPi.192_168_1_2" === true) &&
            ("ping.0.ioBroker-RasPi.192_168_1_3" === true)
        ){
            setState(idState, true);
            log ("a");
        }
        else{
            setState(idState, false);
            log ("b");
        }
    });
    
    

    Ich beantworte keine Fragen zu Themen via PN

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2
          if(("ping.0.ioBroker-RasPi.192_168_1_1" === true) &&
             ("ping.0.ioBroker-RasPi.192_168_1_2" === true) &&
              ("ping.0.ioBroker-RasPi.192_168_1_3" === true)
              ) {
      

      –>

          if(getState("ping.0.ioBroker-RasPi.192_168_1_1").val === true && getState("ping.0.ioBroker-RasPi.192_168_1_2").val === true && getState("ping.0.ioBroker-RasPi.192_168_1_3").val === true) {
      
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        Da der Ping-Adapter ohnehin zyklisch arbeitet, sollte man nicht mit einem weiteren Zyklus (schedule) abfragen, sondern besser auf Änderung triggern:

        var idState = 'javascript.0.Netzwerk.GesamtStatus'; // auf richtige Instanz achten
        
        var ping1 = getState("ping.0.ioBroker-RasPi.192_168_1_1").val;
        var ping2 = getState("ping.0.ioBroker-RasPi.192_168_1_2").val;
        var ping3 = getState("ping.0.ioBroker-RasPi.192_168_1_3").val;
        
        function check() {
            if(ping1 && ping2 && ping3) {
                setState(idState, true);
                log ("a");
            } else { 
                setState(idState, false);
                log ("b");
            }
        }
        
        check();  // script start
        
        on("ping.0.ioBroker-RasPi.192_168_1_1", function(dp) {
            ping1 = dp.state.val;
            check();
        });
        
        on("ping.0.ioBroker-RasPi.192_168_1_2", function(dp) {
            ping2 = dp.state.val;
            check();
        });
        
        on("ping.0.ioBroker-RasPi.192_168_1_3", function(dp) {
            ping3 = dp.state.val;
            check();
        });
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • PeoplesP Offline
          PeoplesP Offline
          Peoples
          schrieb am zuletzt editiert von
          #4

          Perfekt! Danke!

          Eine weitere Frage habe ich jedoch dazu noch:

          Kann man auch die "Inhalte / Unterpunkte" eines "Channels" sprich die einzelnen Einträge von "ping.0.ioBroker-RasPi" auslesen?

          So könnte ich das dann in einer foreach - Schleife automatisieren und bräuchte nicht bei jedem neuen Eintrag im Ping-Adapter das Script anpassen.

          Ich beantworte keine Fragen zu Themen via PN

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Das müsste mit einem Selektor gehen:

            var idState = 'javascript.0.Netzwerk.GesamtStatus'; // auf richtige Instanz achten
            
            schedule("* * * * *", function () {
                var allpings = true;
                $('channel[id=ping.0.ioBroker-RasPi*]').each(function(id, i) {
                    if(!getState(id).val) allpings = false;
                    log(id + ': ' + allpings);
                });
                setState(idState, allpings);
            });
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            711

            Online

            32.6k

            Benutzer

            82.2k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe