Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Javascript: Zugriff auf Unterelem. funktion. nicht

    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

    [gelöst] Javascript: Zugriff auf Unterelem. funktion. nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @LoxDUS last edited by

      @loxdus sagte in Javascript: Zugriff auf Unterelement funktioniert nicht mehr:

      habe heute so einige Adapter aktualisiert

      vielleicht auch ical?
      Welche Version?

      Wie sieht denn da jetzt der Inhalt des DPs aus?
      und wie bisher?

      L 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @LoxDUS last edited by

        @loxdus sagte in Javascript: Zugriff auf Unterelement funktioniert nicht mehr:

        Hallo,

        habe heute so einige Adapter aktualisiert und jetzt funktioniert ein script nicht mehr das auf die Daten aus ical (Google Kalender) zugreift. Vielleicht habt ihr einen Tip für mich:

        Ich lese mit

        var termine = getState("ical.0.data.table").val;
        

        in termine die aktuellen termine ein. Da steht dann genau das hier drin:

         [{"date":"05.08.2021 ","event":"DUS Restmüll Vollservice (Tonne)","_class":"ical_Muellabfuhr ical_today","_date":"2021-08-04T22:00:00.000Z","_end":"2021-08-05T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023933@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"11.08.2021 ","event":"DUS Altpapier Teilservice (Tonne)","_class":"ical_Muellabfuhr ical_6days","_date":"2021-08-10T22:00:00.000Z","_end":"2021-08-11T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023997@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"12.08.2021 ","event":"DUS Restmüll Vollservice (Tonne)","_class":"ical_Muellabfuhr ical_oneweek","_date":"2021-08-11T22:00:00.000Z","_end":"2021-08-12T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023934@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"18.08.2021 ","event":"DUS Leichtverpackung Vollservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-08-17T22:00:00.000Z","_end":"2021-08-18T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023971@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"19.08.2021 ","event":"DUS Restmüll Vollservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-08-18T22:00:00.000Z","_end":"2021-08-19T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023935@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"25.08.2021 ","event":"DUS Altpapier Teilservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-08-24T22:00:00.000Z","_end":"2021-08-25T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023998@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"26.08.2021 ","event":"DUS Restmüll Vollservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-08-25T22:00:00.000Z","_end":"2021-08-26T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023936@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"01.09.2021 ","event":"DUS Leichtverpackung Vollservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-08-31T22:00:00.000Z","_end":"2021-09-01T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023972@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"},{"date":"02.09.2021 ","event":"DUS Restmüll Vollservice (Tonne)","_class":"ical_Muellabfuhr ","_date":"2021-09-01T22:00:00.000Z","_end":"2021-09-02T22:00:00.000Z","_section":"AWISTA\nGesellschaft für Abfallwirtschaft\nund Stadtreinigung mbH\n \nHöherweg 100\n40233 Düsseldorf","_IDID":"160871023937@muellmax.de","_allDay":true,"_private":false,"_rule":" ","location":"Meine Stadt, Meine Adresse","_calName":"Muellabfuhr","_calColor":"#000000"}]
        

        Jetzt wurde bisher immer mit diesem Code in den Einträgen gesucht:

        for (var i in termine) {
             //   Bio
             //   Restmüll
             //   Papier
             //   Gelbe
                
                var termin = termine[i];
        
                // suchen nach dem nächsten Termin der "Restmüll" enthält.
                log("###");
                // console.log(termin.event); // Debugging für Inhalt im Event Text
                // console.log(termin.date); // Debugging Inhalt Date
        
                if (termin.event.includes("Restmüll") && terminRest == "") {
                    terminRest = convertToEngDate(termin.date);
                    DDRest = dateDiff(terminRest);
                    if(DDRest<=1)
                        RestAllert = " alert";
                    else
                        RestAllert = " normal";
                    log("Rest: "+ terminRest);
                }
        
         ... Weiterer Code ...
        
        }
        

        Seit dem Update mekert JavaScript aber das

        script.js.common.Muellkalender: TypeError: Cannot read property 'includes' of undefined
        javascript.0 (27876) at updateMuellTermine (script.js.common.Muellkalender:55:26)
        

        und das ist genau die Zeile s.O.

        if (termin.event.includes("Restmüll") && terminRest == "") {
        

        Könnt ihr mir sagen warum er das auf einmal nicht mehr erkennt oder warum termin.event.includes nicht mehr funktioniert? In der Variablen termin, steht jetzt auch nur noch das erste Zeichen von termine, also "[" drinne. Ich vermute Javascript erkennt die Objektstruktur in Java nicht mehr (oder wie man das nennt) und interpretiert das jetzt als String und gibt mit dem Befehl halt das erste Zeichen aus.

        Hat jemand ein Tipp für mich? Bisher hat der Code immer funktioniert.

        Vielen Dank,

        Artur

        includes ist eine funktion eines arrays.
        bei der fehlermeldung ist die variable termin.event nicht gefüllt (also = undefined), da undefined kein typ ist, erkennt js auch die funktion includes nicht.

        es sieht so aus, das bei dem einlesen des Kalenders ein fehler passiert und er die Daten nicht erkennt. Eigentlich müsste es dann schon vorher einen Fehler gegeben habe.

        Da der Inhalt nach JSON aussieht, müsste diese Zeile dann nicht wie folgt heißen?

        var termine = JSON.parse(getState("ical.0.data.table").val);
        

        Diese macht aus einem JSON-String ein javascript objekt.

        paul53 L 2 Replies Last reply Reply Quote 0
        • cash
          cash Most Active last edited by

          @loxdus Du hast den ical aktualisiert. Dort gab es lt. Changellog ein Breaking Change. Das heißt Du solltest Dir das mal durchlesen und dann dein Script anpassen. Weiß leider nicht wie genau Du es ändern musst sollte aber mittels google schnell zu finden sein…

          L 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @OliverIO last edited by

            @oliverio sagte: Diese macht aus einem JSON-String ein javascript objekt.

            Wenn common.type = "array" ist, macht das ab Version 5.2.0 schon der Javascript-Adapter.

            L 1 Reply Last reply Reply Quote 0
            • L
              LoxDUS @OliverIO last edited by

              Da der Inhalt nach JSON aussieht, müsste diese Zeile dann nicht wie folgt heißen?

              var termine = JSON.parse(getState("ical.0.data.table").val);
              

              Diese macht aus einem JSON-String ein javascript objekt.

              Genau das war es!
              Jetzt funktionieren die "Mülldaten" wieder 😉

              Frage mich nur warum es vorher immer funktioniert hat.

              Viele Grüße,

              Artur

              paul53 1 Reply Last reply Reply Quote 0
              • L
                LoxDUS @cash last edited by

                @cash Ja, mit der Antwort von @OliverIO hat es dann geklappt. Durch das Umwandeln in ein javascript Objekt hat es dann funktioniert.

                Danke für Deinen Hinweis.

                Viele Grüße,

                Artur

                1 Reply Last reply Reply Quote 0
                • L
                  LoxDUS @paul53 last edited by

                  @paul53 Mit dem Hinweis von @OliverIO hat es geklappt. Der Wert musste in ein javascript Objekt umgewandelt werden.

                  Viele Grüße und danke,

                  Artur

                  1 Reply Last reply Reply Quote 0
                  • L
                    LoxDUS @Homoran last edited by

                    Hallo @homoran, ich weiß leider nicht wie der Inhalt des DP vorher aussah, ist schon zu lange her das ich mir den angesehen habe. Aber anscheinend will javascript jetzt ein expliziten Typen haben. Mit dem Hinweis von @OliverIO hats dann funktioniert.

                    Vielen Dank,

                    Artur

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

                      @loxdus sagte: Jetzt funktionieren die "Mülldaten" wieder

                      Welche Version des Javascript-Adapters verwendest Du?

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        LoxDUS @paul53 last edited by

                        @paul53 Ich verwende altuell die Version 5.1.3. Habe eben gesehen das es schon wieder eine neue Version gibt. Werde die später mal nehmen.

                        40b6a9dd-8bfb-440d-9d23-9dbdba06697c-image.png

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

                          @loxdus sagte: Habe eben gesehen das es schon wieder eine neue Version gibt.

                          Mit dieser Version muss das wieder rückgängig gemacht werden:

                          @loxdus sagte in [gelöst] Javascript: Zugriff auf Unterelem. funktion. nicht:

                          Der Wert musste in ein javascript Objekt umgewandelt werden.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          406
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          5
                          12
                          403
                          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