Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. Hilfe/Frage Parser Adapter

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    248

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    238

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    899

Hilfe/Frage Parser Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
7 Beiträge 4 Kommentatoren 1.0k 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.
  • Z Offline
    Z Offline
    Zippolighter
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich habe ein Problem mit den Regex beim Parser. Mir ist unklar was der Unterschied zwischen String und JSON ist. Finde auch hierzu keine Beschreibung

    Ich habe folgenden Ausdruck
    > {"id":"AudioGetItem","jsonrpc":"2.0","result":{"item":{"albumid":129,"id":3174,"label":"Sakrileg 140","type":"song"}}}
    Hieraus benötige ich die 129 in dem Fall. albumid kann allerdings ja eine 1-4 stellige Zahl sein. (In meinem Fall. Grins)

    Benötige also eine Regex die nach "albumid": sucht und die Zahlen ausgibt bis ein komma kommt.

    Dachte hierfür eine lookaheadpattern assertion zu verwenden, was ich leider nicht hinbekomme, bzw der Parser macht es nicht mit.
    > (?="albumid":)[0-9]{1,}
    > (?=\"albumid\":)[0-9]{1,}

    Hoffe jemand hat Ahnung und kann mir sagen was ich als Regex verwende und ob String oder JSON

    Danke

    Gruß Zippolighter

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo,

      du kannst die JSON auch etwas übersichtlicher darstellen:

      {  
          "id":"AudioGetItem",
          "jsonrpc":"2.0",
          "result":{  
              "item":{  
                  "albumid":129,
                  "id":3174,
                  "label":"Sakrileg 140",
                  "type":"song"
              }
          }
      }
      

      So sieht man besser, welcher Pfad zu gewünschten Feld führt.

      Wenn du das mit dem javascript Adapter machst, geht das einfacher.

      /* JSON Daten auslesen
      
      http://forum.iobroker.net/viewtopic.php?f=20&t=8794
      erstellt: 01.11.2017
      */
      
      var jsondata = {  
          "id":"AudioGetItem",
          "jsonrpc":"2.0",
          "result":{  
              "item":{  
                  "albumid":129,
                  "id":3174,
                  "label":"Sakrileg 140",
                  "type":"song"
              }
          }
      };
      
      var ergebnis = jsondata.result.item.albumid;
      
      log(ergebnis);
      
      

      Gruß

      Pix

      Edit: Ich sehe ein, dass ich die Frage nicht beantwortet habe. Wo kommen die Daten her? Aus einem Datenpunkt eines Adapters?

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • Z Offline
        Z Offline
        Zippolighter
        schrieb am zuletzt editiert von
        #3

        Hi Pix,

        danke für Deinen Vorschlag. Ist im Endeffekt sogar der optimalere Lösungsansatz da ich sowieso die Daten im javascript weiterverarbeite.

        Ich werde das gerne ausprobieren.

        Gruß Zippolighter

        Edit:

        Scheint das ich da irgendwas noch nicht verstanden habe.

        var jsondata1 = getState("parser.0.Lenovo_Kodi_All").val;
        

        log(jsondata1);
        > {"id":"AudioGetItem","jsonrpc":"2.0","result":{"item":{"albumid":129,"id":3176,"label":"Sakrileg 142","type":"song"}}}
        > var ergebnis = jsondata1.result.item.albumid;
        log(ergebnis);

        Bringt Fehler. Kann ich das so nicht machen??

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #4

          Hallo,

          könnte sein, dass der Inhalt von jsondata1 kein Objekt, sondern ein String ist.

          Deshalb muss noch ein JSON.parse() dazwischen.

          var jsondata1_text = getState("parser.0.Lenovo_Kodi_All").val; // neue Stringvariable
          var jsondata1 = JSON.parse(jsondata1_text); // in Objekt umwandeln
          var ergebnis = jsondata1.result.item.albumid; // sollte dann funktionieren
          
          

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andyb
            schrieb am zuletzt editiert von
            #5

            Hallo Pix (gerne auch jemand anders),

            ich bräuchte bitte Hilfe :)

            mit dem Aufruf http://IP:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&version=1&method=GetInfo&_sid=XXX

            bekomme ich

            ! {"data":{"actrule_on":true,"actrules":"7,29,30","cameras":"","custom1_det":1,"custom1_di":0,"custom2_det":1,"custom2_di":1,"geo_delay_time":60,"geo_lat":99.4938980,"geo_lng":99.8202440,"geo_radius":100,"io_modules":"","mode_schedule":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","mode_schedule_next_time":-1,"mode_schedule_on":false,"notify_event_list":[{"eventGroupType":2,"eventType":3,"filter":0},{"eventGroupType":2,"eventType":4,"filter":0},{"eventGroupType":2,"eventType":5,"filter":0},{"eventGroupType":2,"eventType":6,"filter":0},{"eventGroupType":2,"eventType":7,"filter":0},{"eventGroupType":2,"eventType":9,"filter":0},{"eventGroupType":2,"eventType":10,"filter":0},{"eventGroupType":2,"eventType":11,"filter":0},{"eventGroupType":2,"eventType":12,"filter":0},{"eventGroupType":2,"eventType":13,"filter":0},{"eventGroupType":2,"eventType":14,"filter":0},{"eventGroupType":4,"eventType":17,"filter":0},{"eventGroupType":4,"eventType":18,"filter":0},{"eventGroupType":5,"eventType":21,"filter":0},{"eventGroupType":5,"eventType":22,"filter":0},{"eventGroupType":5,"eventType":23,"filter":0},{"eventGroupType":5,"eventType":24,"filter":0},{"eventGroupType":5,"eventType":25,"filter":0},{"eventGroupType":5,"eventType":26,"filter":0},{"eventGroupType":1,"eventType":27,"filter":1},{"eventGroupType":1,"eventType":28,"filter":1},{"eventGroupType":1,"eventType":31,"filter":0},{"eventGroupType":1,"eventType":32,"filter":0},{"eventGroupType":1,"eventType":33,"filter":0},{"eventGroupType":7,"eventType":34,"filter":4},{"eventGroupType":7,"eventType":35,"filter":4},{"eventGroupType":7,"eventType":36,"filter":4},{"eventGroupType":7,"eventType":37,"filter":4},{"eventGroupType":7,"eventType":38,"filter":4},{"eventGroupType":7,"eventType":39,"filter":4},{"eventGroupType":7,"eventType":40,"filter":4},{"eventGroupType":7,"eventType":41,"filter":4},{"eventGroupType":7,"eventType":42,"filter":4},{"eventGroupType":7,"eventType":43,"filter":4},{"eventGroupType":1,"eventType":44,"filter":0},{"eventGroupType":6,"eventType":45,"filter":0},{"eventGroupType":6,"eventType":46,"filter":0},{"eventGroupType":6,"eventType":47,"filter":0},{"eventGroupType":6,"eventType":48,"filter":0},{"eventGroupType":6,"eventType":49,"filter":0},{"eventGroupType":6,"eventType":50,"filter":0},{"eventGroupType":6,"eventType":51,"filter":0},{"eventGroupType":6,"eventType":52,"filter":0},{"eventGroupType":4,"eventType":53,"filter":0},{"eventGroupType":4,"eventType":54,"filter":0},{"eventGroupType":3,"eventType":55,"filter":0},{"eventGroupType":3,"eventType":56,"filter":0},{"eventGroupType":3,"eventType":57,"filter":0},{"eventGroupType":2,"eventType":60,"filter":0},{"eventGroupType":2,"eventType":61,"filter":0},{"eventGroupType":2,"eventType":62,"filter":0},{"eventGroupType":2,"eventType":63,"filter":0},{"eventGroupType":2,"eventType":64,"filter":0},{"eventGroupType":2,"eventType":65,"filter":0},{"eventGroupType":8,"eventType":66,"filter":0},{"eventGroupType":8,"eventType":67,"filter":0},{"eventGroupType":8,"eventType":68,"filter":0},{"eventGroupType":8,"eventType":69,"filter":0},{"eventGroupType":8,"eventType":70,"filter":0},{"eventGroupType":8,"eventType":71,"filter":0},{"eventGroupType":9,"eventType":72,"filter":0},{"eventGroupType":9,"eventType":73,"filter":0},{"eventGroupType":9,"eventType":74,"filter":0},{"eventGroupType":9,"eventType":75,"filter":0},{"eventGroupType":9,"eventType":76,"filter":0},{"eventGroupType":9,"eventType":77,"filter":0},{"eventGroupType":9,"eventType":78,"filter":0}],"notify_on":true,"on":false,"reason":1,"rec_schedule":"222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222222222222222000000000000000000000000000000002222","rec_schedule_on":false,"stream_profile":"0,0,0,0,1,1","streaming_on":false,"wifi_ssid":""},"success":true}
            als Antwort.

            Daraus bräuchte ich jetzt von "actrule_on":true das true oder false in einem Datenpunkte.

            Ich hab hat null Ahnung wie ich das hier umbauen müsste :oops:

            1 Antwort Letzte Antwort
            0
            • Z Offline
              Z Offline
              Zippolighter
              schrieb am zuletzt editiert von
              #6

              Versuche mal \w{1,5}(?=,"actrules":)

              1 Antwort Letzte Antwort
              0
              • HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #7

                Oder

                "actrule_on":([a-z]*)
                

                hier hilft immer https://regex101.com/

                Gruß

                Rainer

                kein Support per PN! - Fragen im Forum stellen -
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                1 Antwort Letzte Antwort
                0

                Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                Registrieren Anmelden
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                452

                Online

                32.8k

                Benutzer

                82.8k

                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