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. Blockly
  5. obj.common.name undefiniert - durch Timingproblem?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

obj.common.name undefiniert - durch Timingproblem?

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
9 Beiträge 3 Kommentatoren 392 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.
  • padrinoP Offline
    padrinoP Offline
    padrino
    Most Active
    schrieb am zuletzt editiert von padrino
    #1

    Habe hier ein Blockly, das mir "Reminder" überwachen, bzw. deren neue Erstellung abfangen und auf den "Betreff" reagieren soll.

    Sieht so aus:

    timing.PNG

    Der erzeugte Code:
    on({id: new RegExp("(alexa2.0.Echo-Devices.*.Reminder.*.time)"), change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if ((obj.common ? obj.common.name : "").indexOf('Starte Aufnahme') + 1 == 1) {
      }
    });
    

    Nun kommt es ab und an vor, dass das Skript abschmiert.
    Der Grund wohl, dass "Name" zum Zeitpunkt der Prüfung undefiniert ist.
    Im Log steht dann:

    Error in callback: TypeError: Cannot read property 'indexOf' of undefined
    

    Nun Frage ich mich, (wie) kann das sein?
    Ich vermute ein Timing Problem.
    Aber ist es überhaupt möglich, dass "Name" (noch) nicht definiert ist, wenn doch die Einträge für ".enabled", ".time" und ".triggered" alle schon da sind?
    Frage an den Alexa2 Meister @apollon77, wird erst ganz am Ende die Struktur "benannt"?
    Im Webinterface kann ich dazu leider keine Schlüsse ziehen, da das viel zu träge dafür ist. :relieved:
    Sollte ein Timeout von 500ms vor dem "Falls" das Skript sicher machen?

    paul53P 1 Antwort Letzte Antwort
    0
    • padrinoP padrino

      Habe hier ein Blockly, das mir "Reminder" überwachen, bzw. deren neue Erstellung abfangen und auf den "Betreff" reagieren soll.

      Sieht so aus:

      timing.PNG

      Der erzeugte Code:
      on({id: new RegExp("(alexa2.0.Echo-Devices.*.Reminder.*.time)"), change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.common ? obj.common.name : "").indexOf('Starte Aufnahme') + 1 == 1) {
        }
      });
      

      Nun kommt es ab und an vor, dass das Skript abschmiert.
      Der Grund wohl, dass "Name" zum Zeitpunkt der Prüfung undefiniert ist.
      Im Log steht dann:

      Error in callback: TypeError: Cannot read property 'indexOf' of undefined
      

      Nun Frage ich mich, (wie) kann das sein?
      Ich vermute ein Timing Problem.
      Aber ist es überhaupt möglich, dass "Name" (noch) nicht definiert ist, wenn doch die Einträge für ".enabled", ".time" und ".triggered" alle schon da sind?
      Frage an den Alexa2 Meister @apollon77, wird erst ganz am Ende die Struktur "benannt"?
      Im Webinterface kann ich dazu leider keine Schlüsse ziehen, da das viel zu träge dafür ist. :relieved:
      Sollte ein Timeout von 500ms vor dem "Falls" das Skript sicher machen?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @padrino sagte:

      Error in callback: TypeError: Cannot read property 'indexOf' of undefined

      Die Fehlermeldung kann man verhindern.

      Blockly_temp.JPG

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      padrinoP 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @padrino sagte:

        Error in callback: TypeError: Cannot read property 'indexOf' of undefined

        Die Fehlermeldung kann man verhindern.

        Blockly_temp.JPG

        padrinoP Offline
        padrinoP Offline
        padrino
        Most Active
        schrieb am zuletzt editiert von
        #3

        @paul53
        Guter Tipp, danke.
        Aber dann wird ja nicht nur der Fehler unterdrückt, sondern auch das Skript evtl. gar nicht ausgeführt - obwohl "name" noch true sein wird.
        Vielleicht sollte ich es so machen :thinking_face:
        intervall.PNG

        paul53P 1 Antwort Letzte Antwort
        0
        • padrinoP padrino

          @paul53
          Guter Tipp, danke.
          Aber dann wird ja nicht nur der Fehler unterdrückt, sondern auch das Skript evtl. gar nicht ausgeführt - obwohl "name" noch true sein wird.
          Vielleicht sollte ich es so machen :thinking_face:
          intervall.PNG

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @padrino sagte:

          Vielleicht sollte ich es so machen

          Ich kann mir nicht vorstellen, dass common.name gesetzt wird, nachdem der Zustand des Datenpunktes geändert wurde. Wenn es aber wirklich ein Timing-Problem sein sollte, dann sollte timeout genügen.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #5

            Mir ist auch neu das bei einem State-Change Subscribe Objektdaten enthalten sind! Du musst eher getObject mit der ID des getriggerten Statechanges machen um an den Name zu kommen

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            paul53P padrinoP 2 Antworten Letzte Antwort
            0
            • apollon77A apollon77

              Mir ist auch neu das bei einem State-Change Subscribe Objektdaten enthalten sind! Du musst eher getObject mit der ID des getriggerten Statechanges machen um an den Name zu kommen

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @apollon77 sagte:

              Mir ist auch neu das bei einem State-Change Subscribe Objektdaten enthalten sind!

              Wirklich ?

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #7

                Ok, habt recht ... das gibts wirklich ... wieder was gelernt, aber da Objekte getrennt von States gepublished werden kann es zu solchen Timing-Dingen kommen.

                Vor allem bei neuen Objekten wird der initiale State als Default wert gesetzt. An sich code tech isch läuft das nach dem Anlegen des Objekts, aber state und objects sind zwei getrennte Netzwerk-Verbindungen über die die Daten zu neuen Daten reinkommen. Damit ist die Reihenfolge wieder offen.

                Ich würde ja ein delay von 500ms einbauen und dann getbject nehmen für die Objektdaten. Ist immer nch nicht 100% aber besser

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                1 Antwort Letzte Antwort
                0
                • apollon77A apollon77

                  Mir ist auch neu das bei einem State-Change Subscribe Objektdaten enthalten sind! Du musst eher getObject mit der ID des getriggerten Statechanges machen um an den Name zu kommen

                  padrinoP Offline
                  padrinoP Offline
                  padrino
                  Most Active
                  schrieb am zuletzt editiert von padrino
                  #8

                  @apollon77
                  Also, eigentlich klappt das hier so. ;)
                  a77_mail.PNG
                  War auch erstaunt, als auf einmal der Fehler auftrat, weil es ja sonst rund lief...

                  Dann pack' ich wohl ein timeout rein. Ich hab'/kann ja nur Blockly, damit kommt man leider nicht an jedes Detail ran...

                  apollon77A 1 Antwort Letzte Antwort
                  0
                  • padrinoP padrino

                    @apollon77
                    Also, eigentlich klappt das hier so. ;)
                    a77_mail.PNG
                    War auch erstaunt, als auf einmal der Fehler auftrat, weil es ja sonst rund lief...

                    Dann pack' ich wohl ein timeout rein. Ich hab'/kann ja nur Blockly, damit kommt man leider nicht an jedes Detail ran...

                    apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #9

                    @padrino Ist halt ein Timing Thema ,... 99% vs 1% und so :-)

                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                    1 Antwort Letzte Antwort
                    1
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    570

                    Online

                    32.7k

                    Benutzer

                    82.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