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. JavaScript
  5. [gelöst] Error: Cannot read properties of undefined abfangen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Error: Cannot read properties of undefined abfangen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
6 Beiträge 2 Kommentatoren 840 Aufrufe 2 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.
  • F Offline
    F Offline
    Farmer-cb
    schrieb am zuletzt editiert von Farmer-cb
    #1

    Hallo
    habe ein Script, welche per request eine API (Ultimaker 3) abfragt und ein Json erhält.

    Die Abfrage an sich funktioniert, ich bekomme Daten zurück.

    [
      {
        "id": 954,
        "uuid": "99496274-a9f4-431e-9fc3-8287c0fe2861",
        "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
        "owner": "Buechner",
        "created_at": "2023-10-30T12:56:18.596537",
        "deleted_at": "2023-10-30T12:57:16.342311",
        "status": "queued",
        "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "job_printcore_1": "AA 0.4",
        "job_material_amount_1": 38909,
        "job_material_2_guid": null,
        "job_printcore_2": null,
        "job_material_amount_2": null,
        "job_buildplate": "glass",
        "estimated_time_total": 13780,
        "force": false,
        "machine_variant": "Ultimaker 3",
        "printer_uuid": "",
        "time_total": null,
        "print_start_time": null,
        "print_end_time": null,
        "printer_material_1_guid": null,
        "printer_printcore_1": null,
        "printer_material_2_guid": null,
        "printer_printcore_2": null,
        "printer_buildplate": "glass",
        "compatible_machine_families": "",
        "require_printer_name": "",
        "cloud_job_id": null
      },
      {
        "id": 955,
        "uuid": "4c9c40bf-7df9-4747-b64c-b8128dd91962",
        "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
        "owner": "Buechner",
        "created_at": "2023-10-30T13:01:41.003291",
        "deleted_at": "2023-10-30T13:09:15.273831",
        "status": "aborted",
        "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "job_printcore_1": "AA 0.8",
        "job_material_amount_1": 0,
        "job_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "job_printcore_2": "AA 0.4",
        "job_material_amount_2": 38909,
        "job_buildplate": "glass",
        "estimated_time_total": 13787,
        "force": false,
        "machine_variant": "Ultimaker 3",
        "printer_uuid": "be15f44e-a9aa-4cd5-908f-bdc869f2ca7f",
        "time_total": 286,
        "print_start_time": "2023-10-30T13:01:42.749989",
        "print_end_time": "2023-10-30T13:06:28.811234",
        "printer_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "printer_printcore_1": "AA 0.8",
        "printer_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "printer_printcore_2": "AA 0.4",
        "printer_buildplate": "glass",
        "compatible_machine_families": "",
        "require_printer_name": "",
        "cloud_job_id": null
      },
      {
        "id": 956,
        "uuid": "fadb4f30-0ce2-4a03-a31b-95bf6ef85edf",
        "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
        "owner": "Buechner",
        "created_at": "2023-10-30T13:08:54.228739",
        "deleted_at": "2023-10-31T05:15:45.773095",
        "status": "aborted",
        "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "job_printcore_1": "AA 0.8",
        "job_material_amount_1": 0,
        "job_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "job_printcore_2": "AA 0.4",
        "job_material_amount_2": 38909,
        "job_buildplate": "glass",
        "estimated_time_total": 13787,
        "force": false,
        "machine_variant": "Ultimaker 3",
        "printer_uuid": "be15f44e-a9aa-4cd5-908f-bdc869f2ca7f",
        "time_total": 154,
        "print_start_time": "2023-10-30T13:09:16.254341",
        "print_end_time": "2023-10-30T13:11:50.544407",
        "printer_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "printer_printcore_1": "AA 0.8",
        "printer_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
        "printer_printcore_2": "AA 0.4",
        "printer_buildplate": "glass",
        "compatible_machine_families": "",
        "require_printer_name": "",
        "cloud_job_id": null
      }
    ]
    

    Jetzt will ich nur die Array's auslesen bei denen "printer_uuid" nicht leer ist
    hab dazu ganz simpel eine If-abfrage in meine For-schleife eingebaut

    ist nur ein teil der Abfrage:
    for (let i=0;i<=array_laenge;i++)
                            {
                                if (werte[i].printer_uuid!='')
                                     {
                                        LOG(printer_uuid);
                                     }
                             };
    

    diese Abfrage funktioniert zwar aber bringt mir jetzt ein error zurück:
    Error in request callback: TypeError: Cannot read properties of undefined
    wie kann ich diese Fehlermeldung abfrage

    nfg Christian

    smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

    5 x Echo Show, 2 x Echo Dot

    J 1 Antwort Letzte Antwort
    0
    • F Farmer-cb

      Hallo
      habe ein Script, welche per request eine API (Ultimaker 3) abfragt und ein Json erhält.

      Die Abfrage an sich funktioniert, ich bekomme Daten zurück.

      [
        {
          "id": 954,
          "uuid": "99496274-a9f4-431e-9fc3-8287c0fe2861",
          "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
          "owner": "Buechner",
          "created_at": "2023-10-30T12:56:18.596537",
          "deleted_at": "2023-10-30T12:57:16.342311",
          "status": "queued",
          "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "job_printcore_1": "AA 0.4",
          "job_material_amount_1": 38909,
          "job_material_2_guid": null,
          "job_printcore_2": null,
          "job_material_amount_2": null,
          "job_buildplate": "glass",
          "estimated_time_total": 13780,
          "force": false,
          "machine_variant": "Ultimaker 3",
          "printer_uuid": "",
          "time_total": null,
          "print_start_time": null,
          "print_end_time": null,
          "printer_material_1_guid": null,
          "printer_printcore_1": null,
          "printer_material_2_guid": null,
          "printer_printcore_2": null,
          "printer_buildplate": "glass",
          "compatible_machine_families": "",
          "require_printer_name": "",
          "cloud_job_id": null
        },
        {
          "id": 955,
          "uuid": "4c9c40bf-7df9-4747-b64c-b8128dd91962",
          "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
          "owner": "Buechner",
          "created_at": "2023-10-30T13:01:41.003291",
          "deleted_at": "2023-10-30T13:09:15.273831",
          "status": "aborted",
          "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "job_printcore_1": "AA 0.8",
          "job_material_amount_1": 0,
          "job_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "job_printcore_2": "AA 0.4",
          "job_material_amount_2": 38909,
          "job_buildplate": "glass",
          "estimated_time_total": 13787,
          "force": false,
          "machine_variant": "Ultimaker 3",
          "printer_uuid": "be15f44e-a9aa-4cd5-908f-bdc869f2ca7f",
          "time_total": 286,
          "print_start_time": "2023-10-30T13:01:42.749989",
          "print_end_time": "2023-10-30T13:06:28.811234",
          "printer_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "printer_printcore_1": "AA 0.8",
          "printer_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "printer_printcore_2": "AA 0.4",
          "printer_buildplate": "glass",
          "compatible_machine_families": "",
          "require_printer_name": "",
          "cloud_job_id": null
        },
        {
          "id": 956,
          "uuid": "fadb4f30-0ce2-4a03-a31b-95bf6ef85edf",
          "name": "UM3_Batterie_Halter_2_2021-11-03_08_31_32",
          "owner": "Buechner",
          "created_at": "2023-10-30T13:08:54.228739",
          "deleted_at": "2023-10-31T05:15:45.773095",
          "status": "aborted",
          "job_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "job_printcore_1": "AA 0.8",
          "job_material_amount_1": 0,
          "job_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "job_printcore_2": "AA 0.4",
          "job_material_amount_2": 38909,
          "job_buildplate": "glass",
          "estimated_time_total": 13787,
          "force": false,
          "machine_variant": "Ultimaker 3",
          "printer_uuid": "be15f44e-a9aa-4cd5-908f-bdc869f2ca7f",
          "time_total": 154,
          "print_start_time": "2023-10-30T13:09:16.254341",
          "print_end_time": "2023-10-30T13:11:50.544407",
          "printer_material_1_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "printer_printcore_1": "AA 0.8",
          "printer_material_2_guid": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9",
          "printer_printcore_2": "AA 0.4",
          "printer_buildplate": "glass",
          "compatible_machine_families": "",
          "require_printer_name": "",
          "cloud_job_id": null
        }
      ]
      

      Jetzt will ich nur die Array's auslesen bei denen "printer_uuid" nicht leer ist
      hab dazu ganz simpel eine If-abfrage in meine For-schleife eingebaut

      ist nur ein teil der Abfrage:
      for (let i=0;i<=array_laenge;i++)
                              {
                                  if (werte[i].printer_uuid!='')
                                       {
                                          LOG(printer_uuid);
                                       }
                               };
      

      diese Abfrage funktioniert zwar aber bringt mir jetzt ein error zurück:
      Error in request callback: TypeError: Cannot read properties of undefined
      wie kann ich diese Fehlermeldung abfrage

      nfg Christian

      J Offline
      J Offline
      Jaksa
      schrieb am zuletzt editiert von Jaksa
      #2

      @farmer-cb

      Änder die for Schleife in:

      for (let i=0;i<array_laenge;i++)
      

      Edit: Zum Hintergrund.

      Wenn du 1 Ergebnis im Array hast würde die Schleife einmal mit "0" und einmal mit "1" laufen weil du in deiner Programmierung sagst das i auch gleich der array Länge sein darf.
      werte[0] gibt es in dem Fall aber werte[1] halt nicht mehr.

      Sorry bin kein großartiger Erklärbär ich hoffe du verstehst wo der Fehler liegt :-)

      F 1 Antwort Letzte Antwort
      0
      • J Jaksa

        @farmer-cb

        Änder die for Schleife in:

        for (let i=0;i<array_laenge;i++)
        

        Edit: Zum Hintergrund.

        Wenn du 1 Ergebnis im Array hast würde die Schleife einmal mit "0" und einmal mit "1" laufen weil du in deiner Programmierung sagst das i auch gleich der array Länge sein darf.
        werte[0] gibt es in dem Fall aber werte[1] halt nicht mehr.

        Sorry bin kein großartiger Erklärbär ich hoffe du verstehst wo der Fehler liegt :-)

        F Offline
        F Offline
        Farmer-cb
        schrieb am zuletzt editiert von Farmer-cb
        #3

        @jaksa
        kann ich machen, hat aber leider mit meinen eigentlichen Problem nix zu tun
        Wie man in der Beschreibung sieht, bekomme ich ja Array 0-3 zurück (id 954,955,956)
        vielleicht hilft das zum verständnis

        request(urlpfad, function(error, response, body) 
                    {
                        //log('FehlerNr: '+body.error_code)
                    if (error)
                        {
                            log('auf Fehler reagieren');
                        } 
                        else 
                        {
                            var werte=JSON.parse(body);
                            let array_laenge=werte.length;
        
                            for (let i=0;i<array_laenge;i++)
                                {
                                    if (werte[i].printer_uuid!='')
                                         {
                                            LOG(printer_uuid);
                                         }
                                 };
                            
                        
        

        mfg
        Christian

        smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

        5 x Echo Show, 2 x Echo Dot

        J 1 Antwort Letzte Antwort
        0
        • F Farmer-cb

          @jaksa
          kann ich machen, hat aber leider mit meinen eigentlichen Problem nix zu tun
          Wie man in der Beschreibung sieht, bekomme ich ja Array 0-3 zurück (id 954,955,956)
          vielleicht hilft das zum verständnis

          request(urlpfad, function(error, response, body) 
                      {
                          //log('FehlerNr: '+body.error_code)
                      if (error)
                          {
                              log('auf Fehler reagieren');
                          } 
                          else 
                          {
                              var werte=JSON.parse(body);
                              let array_laenge=werte.length;
          
                              for (let i=0;i<array_laenge;i++)
                                  {
                                      if (werte[i].printer_uuid!='')
                                           {
                                              LOG(printer_uuid);
                                           }
                                   };
                              
                          
          

          mfg
          Christian

          J Offline
          J Offline
          Jaksa
          schrieb am zuletzt editiert von Jaksa
          #4

          @farmer-cb

          Genau da ist ja das Problem. Du hast nicht Array 0-3 sondern nur Array 0-2... [0] ist schon der erste, [1] der zweite und [2] der dritte.

          Und du läufst danach noch über [3] den es nicht gibt weil das der vierte wäre.

          Edit:

          i(0) <= 0 ist true (id 954)
          i(1) <= 1 ist true (id 955)
          i(2) <= 2 ist true (id 956)
          i(3) <= 3 ist true (id gibt es nicht Ergebnis ist dann: Error in request callback: TypeError: Cannot read properties of undefined)

          Wenn du das "=" weg nimmst ist das letzte false und somit stimmt deine Schleife dann auch mit den 3 Einträgen.

          F 1 Antwort Letzte Antwort
          0
          • J Jaksa

            @farmer-cb

            Genau da ist ja das Problem. Du hast nicht Array 0-3 sondern nur Array 0-2... [0] ist schon der erste, [1] der zweite und [2] der dritte.

            Und du läufst danach noch über [3] den es nicht gibt weil das der vierte wäre.

            Edit:

            i(0) <= 0 ist true (id 954)
            i(1) <= 1 ist true (id 955)
            i(2) <= 2 ist true (id 956)
            i(3) <= 3 ist true (id gibt es nicht Ergebnis ist dann: Error in request callback: TypeError: Cannot read properties of undefined)

            Wenn du das "=" weg nimmst ist das letzte false und somit stimmt deine Schleife dann auch mit den 3 Einträgen.

            F Offline
            F Offline
            Farmer-cb
            schrieb am zuletzt editiert von
            #5

            @jaksa
            habs getestet und muss dir leider mitteilen DAS DU VOLLKOMMEN RECHT HAST :confounded:

            da bin ich doch total auf dem falschen pfad gewesen :face_palm: , dachte immer ich müsste den irgenwie abfangen , danke für den wink mit dem Zaunpfahl :hammer:

            DANKE

            smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

            5 x Echo Show, 2 x Echo Dot

            J 1 Antwort Letzte Antwort
            0
            • F Farmer-cb

              @jaksa
              habs getestet und muss dir leider mitteilen DAS DU VOLLKOMMEN RECHT HAST :confounded:

              da bin ich doch total auf dem falschen pfad gewesen :face_palm: , dachte immer ich müsste den irgenwie abfangen , danke für den wink mit dem Zaunpfahl :hammer:

              DANKE

              J Offline
              J Offline
              Jaksa
              schrieb am zuletzt editiert von
              #6

              @farmer-cb

              Super das es jetzt läuft. Gerne :-)

              Ich hoffe du verstehst wo dein Denkfehler ist/war. Ist der absolute "Klassiker" wenn man noch nicht so viel programmiert hat.
              Den Fehler macht man ein mal und evtl. ein zweites mal danach hat man es meist verinnerlicht. Da muss nur ein mal der Groschen fallen :-D

              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

              689

              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