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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. ping Objekt - regex möglich ?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

ping Objekt - regex möglich ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
4 Beiträge 3 Kommentatoren 243 Aufrufe 3 Watching
  • Ä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.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #1

    Hallo,
    die Objekte bei ping heißen ja z.B. so:
    ping.0.NUC-Buero(Home).192_168_243_170

    In der Mitte steht also der PC und hinten die IP
    Mit getState bekommt man den Wert, z.B. so.
    var test1 = getState("ping.0.NUC-Buero(Home).192_168_243_170").val;

    Ändert sich aber nun der PC, dann wird der mittlere Teil automatisch auch geändert.
    Soll heißen, meine Scripte holen mit getState nicht mehr den Wert, weil der mittlere Teil ja nicht mehr stimmt.

    Nun bekam ich die Idee, den mittleren Teil durch regex zu ersetzen.
    Vorteil wäre, man müsste dann bei einem PC Wechsel nicht mehr sämtliche Scripte ändern.

    Geht das ?

    @Homoran
    Rainer, du bist doch ein regex Spezialist. Hast mir schon öfters geholfen.
    Wäre sowas möglich ?

    mfg
    Dieter


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    F AsgothianA 2 Antworten Letzte Antwort
    0
    • bahnuhrB bahnuhr

      Hallo,
      die Objekte bei ping heißen ja z.B. so:
      ping.0.NUC-Buero(Home).192_168_243_170

      In der Mitte steht also der PC und hinten die IP
      Mit getState bekommt man den Wert, z.B. so.
      var test1 = getState("ping.0.NUC-Buero(Home).192_168_243_170").val;

      Ändert sich aber nun der PC, dann wird der mittlere Teil automatisch auch geändert.
      Soll heißen, meine Scripte holen mit getState nicht mehr den Wert, weil der mittlere Teil ja nicht mehr stimmt.

      Nun bekam ich die Idee, den mittleren Teil durch regex zu ersetzen.
      Vorteil wäre, man müsste dann bei einem PC Wechsel nicht mehr sämtliche Scripte ändern.

      Geht das ?

      @Homoran
      Rainer, du bist doch ein regex Spezialist. Hast mir schon öfters geholfen.
      Wäre sowas möglich ?

      mfg
      Dieter

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #2

      @bahnuhr sagte in ping Objekt - regex möglich ?:

      ping.0.NUC-Buero(Home).192_168_243_170

      so?

      let x = new RegExp(/ping\.0\.([a-zA-Z\(\)-]+)\.192/);
      let state = 'ping.0.NUC-Buero(Home).192_168_243_170';
      let pcname = x.exec(state)[1];
      log(pcname);
      

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      1 Antwort Letzte Antwort
      1
      • bahnuhrB bahnuhr

        Hallo,
        die Objekte bei ping heißen ja z.B. so:
        ping.0.NUC-Buero(Home).192_168_243_170

        In der Mitte steht also der PC und hinten die IP
        Mit getState bekommt man den Wert, z.B. so.
        var test1 = getState("ping.0.NUC-Buero(Home).192_168_243_170").val;

        Ändert sich aber nun der PC, dann wird der mittlere Teil automatisch auch geändert.
        Soll heißen, meine Scripte holen mit getState nicht mehr den Wert, weil der mittlere Teil ja nicht mehr stimmt.

        Nun bekam ich die Idee, den mittleren Teil durch regex zu ersetzen.
        Vorteil wäre, man müsste dann bei einem PC Wechsel nicht mehr sämtliche Scripte ändern.

        Geht das ?

        @Homoran
        Rainer, du bist doch ein regex Spezialist. Hast mir schon öfters geholfen.
        Wäre sowas möglich ?

        mfg
        Dieter

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #3

        @bahnuhr

        • Wodurch ändern sich die Objektnamen im Ping adapter ?
        • Kannst du darauf Triggern ?
        • Wenn ja, Kannst du Dir eine Liste von Objekten bauen in denen du die IP der jeweiligen Rechner eintragen lässt (automatisch) ?
        • Hast Du ggf. schon so eine Liste von Objekten mit IP Adressen ?

        Wenn du so weit bist, dann kannst du den Namen der abzufragenden Objekte vor der eigentlichen Abfrage zusammen bauen - du weisst ja welchen Rechner du abfragen willst, und kannst aus der Liste die IP herauslesen, und damit den Namen des abzufragenden Objektes zusammen bauen. Keine Skript Anpassung mehr nötig.

        Ansonsten solltest Du dir das Thema "Selektor" genauer anschauen - darüber kannst du dir Werte von einem (oder mehreren) Objekten holen deren Namen eine bestimmte Regel einhalten, zum Beispiel "beginn mit 'ping.0.NUC-Buero(Home)."

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        1 Antwort Letzte Antwort
        1
        • bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4

          Mensch klasse,

          ein Kombination aus euren Antworten hab ich jetzt gebastelt.

          Und zwar so:

          cacheSelectorState = $("[id=ping.0.*.192*]").each(function (id) { });
          let x = new RegExp(/ping\.0\.([a-zA-Z\(\)-]+)\.192/);
          let state = cacheSelectorState[0];
          let pcname = x.exec(state)[1];
          log(pcname);
          
          

          Damit kann ich dann weiterarbeiten.

          Super.
          Nochmals Danke.


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          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

          420

          Online

          32.4k

          Benutzer

          81.4k

          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