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. Yahka script mit array geht nicht mehr...

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    281

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    775

Yahka script mit array geht nicht mehr...

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
gelöst
5 Beiträge 2 Kommentatoren 410 Aufrufe 2 Beobachtet
  • Ä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.
  • VillarribaV Offline
    VillarribaV Offline
    Villarriba
    schrieb am zuletzt editiert von Villarriba
    #1

    Bis vor kurzem habe ich die ChannelListe, die von meinem Sonos als array ([ "BR1","BR2", ...]) ausgegeben wird, ganz einfach in einem script in yahka dafür genutzt die einzelnen Kanäle in der HOME-App anzuzeigen und auszuwählen. Aber jetzt funktioniert das plötzlich nicht mehr. Anstelle des entsprechenden Listeneintrags wir jetzt nur noch der entsprechende Buchstabe in Reihenfolge des states ausgegeben. Also bei dem Beispiel oben [ "BR1","BR2", ...] kommt bei dem Aufruf "return value[5];" der Buchstabe "1" und nicht der 5. Listeneintrag so wie früher.

    Ich kann mich nicht erinnern ein yakah update gemacht zu haben, nach dem es nicht mehr funktionierte. Kann das auch mit dem JavaScript-Adapter zusammenhängen? Dafür gab es glaube ich ein update...
    Ich hab' schon ziemlich viel herumprobiert und absolut keine Lösung dafür gefunden.
    Hat nicht von euch jemand eine Idee, ob hier was geändert wurde oder wie ich die Listeneiträge wieder korrekt anzeigen kann?

    d0379c2f-8d75-4b59-b2be-b34fd444b1d1-image.png

    AsgothianA 1 Antwort Letzte Antwort
    0
    • VillarribaV Villarriba

      Bis vor kurzem habe ich die ChannelListe, die von meinem Sonos als array ([ "BR1","BR2", ...]) ausgegeben wird, ganz einfach in einem script in yahka dafür genutzt die einzelnen Kanäle in der HOME-App anzuzeigen und auszuwählen. Aber jetzt funktioniert das plötzlich nicht mehr. Anstelle des entsprechenden Listeneintrags wir jetzt nur noch der entsprechende Buchstabe in Reihenfolge des states ausgegeben. Also bei dem Beispiel oben [ "BR1","BR2", ...] kommt bei dem Aufruf "return value[5];" der Buchstabe "1" und nicht der 5. Listeneintrag so wie früher.

      Ich kann mich nicht erinnern ein yakah update gemacht zu haben, nach dem es nicht mehr funktionierte. Kann das auch mit dem JavaScript-Adapter zusammenhängen? Dafür gab es glaube ich ein update...
      Ich hab' schon ziemlich viel herumprobiert und absolut keine Lösung dafür gefunden.
      Hat nicht von euch jemand eine Idee, ob hier was geändert wurde oder wie ich die Listeneiträge wieder korrekt anzeigen kann?

      d0379c2f-8d75-4b59-b2be-b34fd444b1d1-image.png

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

      @villarriba der State kann kein Array mehr beinhalten, sondern nur eine Zeichenkette. Wenn du den 2. Eintrag eines Arrays haben willst musst du das Array erst aus dem String erzeugen.

      A.

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

      VillarribaV 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @villarriba der State kann kein Array mehr beinhalten, sondern nur eine Zeichenkette. Wenn du den 2. Eintrag eines Arrays haben willst musst du das Array erst aus dem String erzeugen.

        A.

        VillarribaV Offline
        VillarribaV Offline
        Villarriba
        schrieb am zuletzt editiert von Villarriba
        #3

        @asgothian
        Ok, ich dachte ein Array IST eine Zeichenkette mit entsprechenden Trennzeichen für die einzelnen Werte. ["0","1","2",...]

        Hast du eine Idee wie ich das dann umsetzen könnte?
        Das müsste ja dann in Yahka ein script sein, denn nach deiner Aussage kann ich keinen State mit einem Array anlegen und in Yahka aufrufen.

        Ich frag' mich nur, warum es vorher funktioniert hat und jetzt nicht mehr?!?
        Vielleicht nehme ich mal eine frühere Javascript-adapter-version.... könnte das was mit dem Update zu tun haben?!

        AsgothianA 1 Antwort Letzte Antwort
        0
        • VillarribaV Villarriba

          @asgothian
          Ok, ich dachte ein Array IST eine Zeichenkette mit entsprechenden Trennzeichen für die einzelnen Werte. ["0","1","2",...]

          Hast du eine Idee wie ich das dann umsetzen könnte?
          Das müsste ja dann in Yahka ein script sein, denn nach deiner Aussage kann ich keinen State mit einem Array anlegen und in Yahka aufrufen.

          Ich frag' mich nur, warum es vorher funktioniert hat und jetzt nicht mehr?!?
          Vielleicht nehme ich mal eine frühere Javascript-adapter-version.... könnte das was mit dem Update zu tun haben?!

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

          @villarriba Das hat etwas mit dem JS-Controller, nicht dem JavaScript adapter zu tun.

          Es einen Unterschied zwischen '["a","b","c"' und ["a","b","c"]

          Das erste ist ein Array als Zeichenkette dargestellt, das 2. ist ein Array.

          Seit dem Wechsel auf JS-Controller 3.3 (meine ich) sind in den Datenpunkten keine Objekte mehr erlaubt. Da in JS ein Array als Objekt verwaltet wird macht der JS-Controller bzw. der Adapter der das speichert daraus eine Zeichenkette.

          Du kannst versuchen ob du statt

          return value[5]
          

          mit

          return JSON.parse(value)[5]
          

          arbeiten kannst.

          A.

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

          VillarribaV 1 Antwort Letzte Antwort
          1
          • AsgothianA Asgothian

            @villarriba Das hat etwas mit dem JS-Controller, nicht dem JavaScript adapter zu tun.

            Es einen Unterschied zwischen '["a","b","c"' und ["a","b","c"]

            Das erste ist ein Array als Zeichenkette dargestellt, das 2. ist ein Array.

            Seit dem Wechsel auf JS-Controller 3.3 (meine ich) sind in den Datenpunkten keine Objekte mehr erlaubt. Da in JS ein Array als Objekt verwaltet wird macht der JS-Controller bzw. der Adapter der das speichert daraus eine Zeichenkette.

            Du kannst versuchen ob du statt

            return value[5]
            

            mit

            return JSON.parse(value)[5]
            

            arbeiten kannst.

            A.

            VillarribaV Offline
            VillarribaV Offline
            Villarriba
            schrieb am zuletzt editiert von Villarriba
            #5

            @asgothian
            Allererste Sahne!! Funktioniert!

            Lösung:

            return JSON.parse(value)[x];
            

            Super, danke für die gute Erklärung und die Hilfe!

            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

            541

            Online

            32.9k

            Benutzer

            83.0k

            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