Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Ping-Script mit IF-Abfrage

    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

    Ping-Script mit IF-Abfrage

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tomily last edited by

      Hallo Broker,

      ich als Script-Anfänger habe mal eine Frage an euch.

      Als Monitoring-Verwende ich den Ping-Adapter und lasse mich per Email benachrichten, wenn sich eine Änderung ergeben hat.

      Das ganze funktioniert mit dem untenstehenden Script ganz gut. Allerdings, sollen die Netzwerkgeräte hinter der Firewall nur Benachrichtigungen senden, wenn die Firewall davor auch erreichbar ist. Ist diese down, sind natürlich alle Geräte dahinter auch down und mir genügt eine Down-Mail für die Down-Meldung.

      Hat jemand eine Idee, wie ich das via IF-Abfrage lösen kann?

      Ping soll also nur ausgeführt werden, wenn der Datenpunkt "ping.0.ioBroker-RasPi.192_168_1_1" auf true steht.

      on(/^ping\.0\.ioBroker-RasPi\.192_168_1_\d+$/, function(dp) { // Triggern bei Wertänderung
         sendTo("email", {
             subject: ("Monitoring // " + dp.name + " -> " + dp.state.val),
             text: (dp.id + " // " + dp.name + " -> " + dp.state.val)
      })
      });
      
      

      Dies war mein verzweifelter Versuch, der aber leider nicht funktioniert=)

      on(/^ping\.0\.ioBroker-RasPi\.192_168_1_\d+$/, function(dp) {
         var r1status=getState("ping.0.ioBroker-RasPi.192_168_1_1").state.val,
              if (r1status=true) {
              sendTo("email", {
                  subject: ("TEST-Monitoring // " + dp.name + " -> " + dp.state.val),
                  text: (dp.id + " // " + dp.name + " -> " + dp.state.val)
                  })
          }
      });
      

      Besten Dank und Grüße

      Tomily

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Versuche es mal so:

        on(/^ping\.0\.ioBroker-RasPi\.192_168_1_\d+$/, function(dp) {
           var r1status = getState("ping.0.ioBroker-RasPi.192_168_1_1").val;
           if (r1status) {
                sendTo("email", {
                    subject: ("TEST-Monitoring // " + dp.common.name + " -> " + dp.state.val),
                    text: (dp.id + " // " + dp.common.name + " -> " + dp.state.val)
                });
           }
        });
        

        EDIT: Ende Zeile 2 korrigiert

        1 Reply Last reply Reply Quote 0
        • T
          tomily last edited by

          Danke für die Antwort.

          Bin gerade im Urlaub. Teste es am WE und melde mich sofort wieder 🙂

          1 Reply Last reply Reply Quote 0
          • T
            tomily last edited by

            Hallo Paul 53,

            danke für deine Antwort und Deine Rückmeldung!

            Leider hat es nicht funktioniert. Erhalte folgende Fehlermeldung, wenn ich das Debugging einschalte:

            15:45:35.903 [error] javascript.0 script.js.Test-Skripte.Ping_Email_Test01 compile failed: at script.js.Test-Skripte.Ping_Email_Test01:3

            Zeile 3 ist folgende:

            if (r1status) {
            

            Meiner Meinung nach fehlt die Definiton, welcher Wert abgefragt wird? Also If r1status = True oder False??

            Woher weiß das Skript,dass es bei "true" laufen soll?

            Grüße

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Der Fehler liegt am Ende von Zeile 2: Komma –> Semikolon.

              1 Reply Last reply Reply Quote 0
              • T
                tomily last edited by

                DANK! Ich blinder Anfänger sollte zuerst zum Optiker besuchen und dann einen JavaScript-Kurs belegen 🙂

                So funktioniert es tatsächlich.

                Allerdings bekomme ich natürlich auch nicht mit, wenn das Gerät "r1Status" also der Router am anderen Ende nicht mehr online ist.

                Erst, wenn dieser wieder online (True) ist bekomme ich eine Mail.

                Sollte das nochmals überdenken, bin aber schon einen bedeutenden Schritt weitergekommen…. 8-)

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                905
                Online

                31.7k
                Users

                79.9k
                Topics

                1.3m
                Posts

                2
                6
                1131
                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