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. String teilen - split-Befehl

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    473

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

String teilen - split-Befehl

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
46 Beiträge 7 Kommentatoren 5.9k Aufrufe 6 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.
  • ub.privatU ub.privat

    @OliverIO

    Hallo Oliver,

    so richtig hat es ehrlich gesagt nicht funktioniert.
    Die Daten kommen aus dem HomeConnect-Adapter (BOSCH/SIEMENS). Damit werden Zustände der Hausgeräte ausgelesen. Also welches Programm läuft, wie ist der Zustand des Gerätes.
    Die Datenpunkte sehen wie folgt aus:
    Geschirrspüler (arbeitet gerade)
    eac8f8eb-4854-4ba5-9a0c-9ce750a6e82a-grafik.png
    Backofen:
    b16c147c-5289-4778-9aa0-1e79512b75e5-grafik.png
    usw.

    Der aktuelle Zustand wird in einem String ausgegeben, welcher zum eigentlichen Inhalt noch "Müll" mit liefert.
    ea275f9b-306a-4c9a-8b24-64bed520ad40-grafik.png

    Ich benötige nur den Inhalt vor der Klammer!
    Ist dies so verständlicher?

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #8

    @ub-privat soweit hab ich das schon verstanden, aber was möchtest du mit dem Ergebnis anfangen?
    Du hast immer noch deinen bisherigen Lösungsweg im Kopf.
    Willst du dann einen Text anzeigen, ein Icon aufleuchten lassen?

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    ub.privatU 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @ub-privat soweit hab ich das schon verstanden, aber was möchtest du mit dem Ergebnis anfangen?
      Du hast immer noch deinen bisherigen Lösungsweg im Kopf.
      Willst du dann einen Text anzeigen, ein Icon aufleuchten lassen?

      ub.privatU Offline
      ub.privatU Offline
      ub.privat
      schrieb am zuletzt editiert von
      #9

      @OliverIO

      Eigentlich ganz simpel "nur" den Text anzeigen.
      Eine Art Statusanzeige, mehr nicht. Simpel, einfach, schlank....

      1 Antwort Letzte Antwort
      0
      • OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #10

        @ub-privat

        ok, dann nimmst du ein ganz normales basic-string widget
        bei HTML voranstellen trägst du folgendes ein:

        {s:Datenpunkt;s.slice(0,s.indexOf('('))}
        

        Das Wort Datenpunkt (und genau nur das) ersetzen mit dem Namen deines Datenpunktes

        Das nennt sich Binding wenn du da nach Dokumentation suchst und ist eine VIS-Funktionalität

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        ub.privatU 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @ub-privat

          ok, dann nimmst du ein ganz normales basic-string widget
          bei HTML voranstellen trägst du folgendes ein:

          {s:Datenpunkt;s.slice(0,s.indexOf('('))}
          

          Das Wort Datenpunkt (und genau nur das) ersetzen mit dem Namen deines Datenpunktes

          Das nennt sich Binding wenn du da nach Dokumentation suchst und ist eine VIS-Funktionalität

          ub.privatU Offline
          ub.privatU Offline
          ub.privat
          schrieb am zuletzt editiert von
          #11

          @OliverIO said in String teilen - split-Befehl:

          {s:Datenpunkt;s.slice(0,s.indexOf('('))}

          Ok, danke für deine Antwort. Leider will es nicht wirklich funktionieren.

          So heißt der Datenpunkt: homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState

          Diesen in das basic-string Widget unter HTML-voranstellen eingefügt:
          {s:homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState;s.slice(0,s.indexOf('('))}
          fca6945c-29dc-4dad-95d1-ea485c5aa0f5-grafik.png
          Das Event im Datenpunkt lautet:
          Inactive(BSH.Common.EnumType.OperationState.Inactive)
          e5ec88c7-82af-43e0-ad07-805a62bd9687-grafik.png
          Wovon eigentlich nur das "Inactive" als Ergebnis heraus extrahiert werden soll.

          Aber im Ergebnis der VIS steht: :angry:
          4a022379-144f-4add-b537-419df2da1ddb-grafik.png

          Die geplante Card:
          b8289ebc-2115-4508-bb53-bbe501fe07e7-grafik.png
          Unter Status soll dann jeweils der aktuelle Zustand z.Bsp. "inaktiv" ausgeführt werden.

          Bin aktiv am suchen und Lesen zum Thema "Binding VIS-Funktionalität"...

          OliverIOO 1 Antwort Letzte Antwort
          0
          • ub.privatU ub.privat

            @OliverIO said in String teilen - split-Befehl:

            {s:Datenpunkt;s.slice(0,s.indexOf('('))}

            Ok, danke für deine Antwort. Leider will es nicht wirklich funktionieren.

            So heißt der Datenpunkt: homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState

            Diesen in das basic-string Widget unter HTML-voranstellen eingefügt:
            {s:homeconnect.0.SIEMENS-HS858GXB6-68A40E060A0C.status.BSH_Common_Status_OperationState;s.slice(0,s.indexOf('('))}
            fca6945c-29dc-4dad-95d1-ea485c5aa0f5-grafik.png
            Das Event im Datenpunkt lautet:
            Inactive(BSH.Common.EnumType.OperationState.Inactive)
            e5ec88c7-82af-43e0-ad07-805a62bd9687-grafik.png
            Wovon eigentlich nur das "Inactive" als Ergebnis heraus extrahiert werden soll.

            Aber im Ergebnis der VIS steht: :angry:
            4a022379-144f-4add-b537-419df2da1ddb-grafik.png

            Die geplante Card:
            b8289ebc-2115-4508-bb53-bbe501fe07e7-grafik.png
            Unter Status soll dann jeweils der aktuelle Zustand z.Bsp. "inaktiv" ausgeführt werden.

            Bin aktiv am suchen und Lesen zum Thema "Binding VIS-Funktionalität"...

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #12

            @ub-privat
            Also mehrere Probleme:

            1. du hast in das Feld ObjectID (bei dir lustigerweise als Schalter bezeichnet) ebenfalls den Datenpunkt ausgewählt. Das bitte wieder rausnehmen. Hatte ich ja auch nicht geschrieben
            2. oben hast du mehrfach geschrieben, das alles nach der ( abgeschnitten werden soll.
              Im jetzigen Ergebnis sehe ich aber keine (
              Deswegen wird auch nichts abgeschnitten.
              Bitte liste alle Möglichkeiten der Ergebnisse, die der Datenpunkt so enthalten kann auf.
              Daraus kann man eine Regel ableiten, die man in Befehle umsetzen kann.
            3. Verstehst du das was du da eingetragen hast? Kannst du den Weg nachvollziehen?
              Bei IObroker ist wichtig, die Dinge nachzuvollziehen und ggfs. auch mal noch weitere Doku zu lesen, da man aus der Ferndiagnose nur mit den Informationen arbeiten kann, wass der TE einem gibt. Wenn da auch schon Fehler oder Ungenauigkeiten entstehen, dann kann sich das ewig hinziehen.

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            ub.privatU 1 Antwort Letzte Antwort
            1
            • dslraserD dslraser

              @ub-privat

              vielleicht hilft Dir das.

              https://forum.iobroker.net/post/349203

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von dslraser
              #13

              @dslraser sagte in String teilen - split-Befehl:

              @ub-privat

              vielleicht hilft Dir das.

              https://forum.iobroker.net/post/349203

              ich zitiere mich mal selbst...
              Ich habe zwar diesen Adapter nicht, aber ich denke auf Grund des Datenpunktes (siehe Link zu meinem Beitrag) handelt es sich bei diesem Datenpunkt um den Wert aus einer Werteliste, kann das sein ?
              Ich meine den Wert den Du anzeigen willst...

              Edit: zeige am besten mal den RAW von Deinem Datenpunkt.

              ub.privatU 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @ub-privat
                Also mehrere Probleme:

                1. du hast in das Feld ObjectID (bei dir lustigerweise als Schalter bezeichnet) ebenfalls den Datenpunkt ausgewählt. Das bitte wieder rausnehmen. Hatte ich ja auch nicht geschrieben
                2. oben hast du mehrfach geschrieben, das alles nach der ( abgeschnitten werden soll.
                  Im jetzigen Ergebnis sehe ich aber keine (
                  Deswegen wird auch nichts abgeschnitten.
                  Bitte liste alle Möglichkeiten der Ergebnisse, die der Datenpunkt so enthalten kann auf.
                  Daraus kann man eine Regel ableiten, die man in Befehle umsetzen kann.
                3. Verstehst du das was du da eingetragen hast? Kannst du den Weg nachvollziehen?
                  Bei IObroker ist wichtig, die Dinge nachzuvollziehen und ggfs. auch mal noch weitere Doku zu lesen, da man aus der Ferndiagnose nur mit den Informationen arbeiten kann, wass der TE einem gibt. Wenn da auch schon Fehler oder Ungenauigkeiten entstehen, dann kann sich das ewig hinziehen.
                ub.privatU Offline
                ub.privatU Offline
                ub.privat
                schrieb am zuletzt editiert von
                #14

                @OliverIO said in String teilen - split-Befehl:

                Moin.moin

                du hast in das Feld ObjectID (bei dir lustigerweise als Schalter bezeichnet) ebenfalls den Datenpunkt ausgewählt. Das bitte wieder rausnehmen. Hatte ich ja auch nicht geschrieben

                Habe den Datenpunkt wieder aus dem Feld "Schalter" entfernt.
                Das Ergebnis sieht wie folgt aus:
                c3c5c84e-af77-4017-9c58-84d4888d66a1-grafik.png
                Von dieser Zeichenfolge benötige ich nur das "Inactiv".

                oben hast du mehrfach geschrieben, das alles nach der ( abgeschnitten werden soll.
                Im jetzigen Ergebnis sehe ich aber keine (
                Deswegen wird auch nichts abgeschnitten.
                Bitte liste alle Möglichkeiten der Ergebnisse, die der Datenpunkt so enthalten kann auf.
                Daraus kann man eine Regel ableiten, die man in Befehle umsetzen kann.

                Die Ergebnisse aus den Datenpunkten können wie folgt aussehen:
                {
                "BSH.Common.EnumType.OperationState.Ready": "Ready",
                "BSH.Common.EnumType.OperationState.Inactive": "Inactive",
                "BSH.Common.EnumType.OperationState.Run": "Run",
                "BSH.Common.EnumType.OperationState.Finished": "Finished",
                "BSH.Common.EnumType.OperationState.Pause": "Pause",
                "BSH.Common.EnumType.OperationState.ActionRequired": "ActionRequired"
                }

                anderer Datenpunkt, aber identische Struktur:
                {
                "BSH.Common.EnumType.DoorState.Closed": "Closed",
                "BSH.Common.EnumType.DoorState.Open": "Open"
                }

                Dies sind die Daten direkt aus dem Adapter. Zu jedem Hausgerät gibt es untershiedliche Stati.

                Gerät1:
                a0ed8718-d4b6-4948-a3a5-0538f88c992c-grafik.png

                Gerät2:
                deb77270-928d-4c9b-8ea8-29514603e899-grafik.png

                Gerät3:
                3648b2c0-1f39-442d-8fc5-6bacbd8a9856-grafik.png

                Ich gehe davon aus, dass der String in der letzten Spalte der aktuelle Wert des Datenpunktes ist.
                Deshalb komme ich auf "alles nach der (".
                Wenn ich mir nun die Werte (siehe oben) ansehe, muss ich umdenken.
                Die Struktur lautet "blablabla": "Das Ergebnis möchte ich haben!" --> also alles nach dem Doppelpunkt!?

                Verstehst du das was du da eingetragen hast? Kannst du den Weg nachvollziehen?
                Bei IObroker ist wichtig, die Dinge nachzuvollziehen und ggfs. auch mal noch weitere Doku zu lesen, da man aus der Ferndiagnose nur mit den Informationen arbeiten kann, wass der TE einem gibt. Wenn da auch schon Fehler oder Ungenauigkeiten entstehen, dann kann sich das ewig hinziehen.

                Ich versuche zu verstehen, deshalb bin ich ja ursprünglich mit split-string gestartet.
                Aber wie gesagt, ich VERSUCHE zu verstehn, was nicht ganz einfach ist...

                1 Antwort Letzte Antwort
                0
                • dslraserD dslraser

                  @dslraser sagte in String teilen - split-Befehl:

                  @ub-privat

                  vielleicht hilft Dir das.

                  https://forum.iobroker.net/post/349203

                  ich zitiere mich mal selbst...
                  Ich habe zwar diesen Adapter nicht, aber ich denke auf Grund des Datenpunktes (siehe Link zu meinem Beitrag) handelt es sich bei diesem Datenpunkt um den Wert aus einer Werteliste, kann das sein ?
                  Ich meine den Wert den Du anzeigen willst...

                  Edit: zeige am besten mal den RAW von Deinem Datenpunkt.

                  ub.privatU Offline
                  ub.privatU Offline
                  ub.privat
                  schrieb am zuletzt editiert von
                  #15

                  @dslraser

                  je mehr ich mich damit beschäftige, hast du recht.
                  Die Werte entsprechen einer Werteliste.

                  so z.Bsp.

                  {
                  "BSH.Common.EnumType.OperationState.Ready": "Ready",
                  "BSH.Common.EnumType.OperationState.Inactive": "Inactive",
                  "BSH.Common.EnumType.OperationState.Run": "Run",
                  "BSH.Common.EnumType.OperationState.Finished": "Finished",
                  "BSH.Common.EnumType.OperationState.Pause": "Pause",
                  "BSH.Common.EnumType.OperationState.ActionRequired": "ActionRequired"
                  }

                  anderer Datenpunkt, aber identische Struktur:
                  {
                  "BSH.Common.EnumType.DoorState.Closed": "Closed",
                  "BSH.Common.EnumType.DoorState.Open": "Open"
                  }

                  Verfolge deinen von die verlinkten Beitrag parallel.
                  Da gibt es eine Menge Gemeinsamkeiten.
                  Nur wenn ich noch nicht einmal den reinen Text extrahiert bekomme, dann ist es mit Sprache sicher noch schwieriger...?

                  Ihr bastelt an einer "ähnlichen" Lösung...

                  dslraserD 1 Antwort Letzte Antwort
                  0
                  • ub.privatU ub.privat

                    @dslraser

                    je mehr ich mich damit beschäftige, hast du recht.
                    Die Werte entsprechen einer Werteliste.

                    so z.Bsp.

                    {
                    "BSH.Common.EnumType.OperationState.Ready": "Ready",
                    "BSH.Common.EnumType.OperationState.Inactive": "Inactive",
                    "BSH.Common.EnumType.OperationState.Run": "Run",
                    "BSH.Common.EnumType.OperationState.Finished": "Finished",
                    "BSH.Common.EnumType.OperationState.Pause": "Pause",
                    "BSH.Common.EnumType.OperationState.ActionRequired": "ActionRequired"
                    }

                    anderer Datenpunkt, aber identische Struktur:
                    {
                    "BSH.Common.EnumType.DoorState.Closed": "Closed",
                    "BSH.Common.EnumType.DoorState.Open": "Open"
                    }

                    Verfolge deinen von die verlinkten Beitrag parallel.
                    Da gibt es eine Menge Gemeinsamkeiten.
                    Nur wenn ich noch nicht einmal den reinen Text extrahiert bekomme, dann ist es mit Sprache sicher noch schwieriger...?

                    Ihr bastelt an einer "ähnlichen" Lösung...

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #16

                    @ub-privat
                    die Lösung steht in dem Beitrag drinn, weil der Zustand, den Du auch haben möchtest, ausgegeben wird. Nur das hier das Ergebnis als Sprachausgabe benutzt wird.

                    ub.privatU 1 Antwort Letzte Antwort
                    0
                    • dslraserD dslraser

                      @ub-privat
                      die Lösung steht in dem Beitrag drinn, weil der Zustand, den Du auch haben möchtest, ausgegeben wird. Nur das hier das Ergebnis als Sprachausgabe benutzt wird.

                      ub.privatU Offline
                      ub.privatU Offline
                      ub.privat
                      schrieb am zuletzt editiert von
                      #17

                      @dslraser

                      ok, dann muss ich noch einmal aufmerksam lesen!

                      1 Antwort Letzte Antwort
                      0
                      • OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #18

                        ok, dann füge in das basic string widget genau wie oben folgendes ein

                        {s:Datenpunkt;s.split('.')[s.split('.').length-1]}
                        

                        Ich habe eine Vermutung, warum die Anzeige des Wertes im iobroker und der Ausgabe in vis
                        differiert. Es scheint mit den Enums zu tun zu haben, mit denen ich selbst noch nicht gearbeitet habe.
                        Der Datenpunkt enthält nur den Enumtyp. Die Anzeige in iobroker ermittelt dir aber auch gleich den Wert dazu.
                        Um es Einfach zu machen ist im obigen Befehl jetzt folgendes drin:
                        splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        ub.privatU dslraserD 3 Antworten Letzte Antwort
                        1
                        • OliverIOO OliverIO

                          ok, dann füge in das basic string widget genau wie oben folgendes ein

                          {s:Datenpunkt;s.split('.')[s.split('.').length-1]}
                          

                          Ich habe eine Vermutung, warum die Anzeige des Wertes im iobroker und der Ausgabe in vis
                          differiert. Es scheint mit den Enums zu tun zu haben, mit denen ich selbst noch nicht gearbeitet habe.
                          Der Datenpunkt enthält nur den Enumtyp. Die Anzeige in iobroker ermittelt dir aber auch gleich den Wert dazu.
                          Um es Einfach zu machen ist im obigen Befehl jetzt folgendes drin:
                          splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                          ub.privatU Offline
                          ub.privatU Offline
                          ub.privat
                          schrieb am zuletzt editiert von
                          #19

                          @OliverIO said in String teilen - split-Befehl:

                          {s:Datenpunkt;s.split('.')[s.split('.').length-1]}

                          Tata: ES FUNKTIONIERT!!!

                          3d1612d0-e3e2-499b-bbd7-a3878d8d638f-grafik.png

                          Jetzt muss ich mich aber noch intensiv mit dem Split-Befehl auseinander setzen.
                          Erst einmal vielen DANK.

                          Das chöne daran ist, dass man immer wieder dazu lernt! Mein persönliches ioBroker-Kompendium wächst und wächst.

                          1 Antwort Letzte Antwort
                          0
                          • ub.privatU Offline
                            ub.privatU Offline
                            ub.privat
                            schrieb am zuletzt editiert von
                            #20

                            Lerne gerad hier https://www.w3schools.com/jsreF/jsref_slice_string.asp
                            Java für Einsteiger :blush:

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              ok, dann füge in das basic string widget genau wie oben folgendes ein

                              {s:Datenpunkt;s.split('.')[s.split('.').length-1]}
                              

                              Ich habe eine Vermutung, warum die Anzeige des Wertes im iobroker und der Ausgabe in vis
                              differiert. Es scheint mit den Enums zu tun zu haben, mit denen ich selbst noch nicht gearbeitet habe.
                              Der Datenpunkt enthält nur den Enumtyp. Die Anzeige in iobroker ermittelt dir aber auch gleich den Wert dazu.
                              Um es Einfach zu machen ist im obigen Befehl jetzt folgendes drin:
                              splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #21

                              @OliverIO sagte in String teilen - split-Befehl:

                              Um es Einfach zu machen ist im obigen Befehl jetzt folgendes drin:
                              splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                              so habe ich es in dem von mir verlinkten Beitrag zu Beginn (weiter oben in dem Thread) auch gemacht.
                              Der "echte" Wert von der Werteliste,(der eingedeutschte) habe ich dann später mit der kleinen Funktion in Blockly ermittelt.

                              1 Antwort Letzte Antwort
                              0
                              • ub.privatU ub.privat

                                Lerne gerad hier https://www.w3schools.com/jsreF/jsref_slice_string.asp
                                Java für Einsteiger :blush:

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #22

                                @ub-privat sehr schön.
                                Allerdings sind Java und JavaScript Zwei unterschiedliche Sprachen. Aber für Iobroker bist du auf der richtigen Seite.

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                ub.privatU 2 Antworten Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @ub-privat sehr schön.
                                  Allerdings sind Java und JavaScript Zwei unterschiedliche Sprachen. Aber für Iobroker bist du auf der richtigen Seite.

                                  ub.privatU Offline
                                  ub.privatU Offline
                                  ub.privat
                                  schrieb am zuletzt editiert von
                                  #23

                                  @OliverIO

                                  Das sind in JavaScript unendliche Weiten. Aber das Hirn hat noch ein paar freie Kapazitäten...

                                  So schaut es nun aus:
                                  1fcbb0e7-e786-4611-9e95-de8c2619f67d-grafik.png

                                  Muss jetzt noch abfragen einbauen, die bei inaktiven Gerät "null" ausblendet.
                                  Das undefiened bin ich noch am erkunden,,,
                                  Es wird und das ist die Hauptsache!

                                  1 Antwort Letzte Antwort
                                  0
                                  • OliverIOO OliverIO

                                    @ub-privat sehr schön.
                                    Allerdings sind Java und JavaScript Zwei unterschiedliche Sprachen. Aber für Iobroker bist du auf der richtigen Seite.

                                    ub.privatU Offline
                                    ub.privatU Offline
                                    ub.privat
                                    schrieb am zuletzt editiert von
                                    #24

                                    @OliverIO

                                    habe gerade deine Signatur gelesen - Adapter für Squeezebox - klingt gut.
                                    Aber ich suche etwas für TEUFEL/Raumfeld Komponenten. Steht bereits in der Adapteranfrage, aber scheinbar ohne Erfolg...

                                    OliverIOO 1 Antwort Letzte Antwort
                                    1
                                    • ub.privatU ub.privat

                                      @OliverIO

                                      habe gerade deine Signatur gelesen - Adapter für Squeezebox - klingt gut.
                                      Aber ich suche etwas für TEUFEL/Raumfeld Komponenten. Steht bereits in der Adapteranfrage, aber scheinbar ohne Erfolg...

                                      OliverIOO Offline
                                      OliverIOO Offline
                                      OliverIO
                                      schrieb am zuletzt editiert von OliverIO
                                      #25

                                      @ub-privat da hat wohl jemand angefangen aber nicht abgeschlossen
                                      https://forum.iobroker.net/topic/19003/noch-nicht-testbereit-teufel-raumfeld-adapter

                                      Meine Adapter und Widgets
                                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                      Links im Profil

                                      1 Antwort Letzte Antwort
                                      0
                                      • OliverIOO OliverIO

                                        ok, dann füge in das basic string widget genau wie oben folgendes ein

                                        {s:Datenpunkt;s.split('.')[s.split('.').length-1]}
                                        

                                        Ich habe eine Vermutung, warum die Anzeige des Wertes im iobroker und der Ausgabe in vis
                                        differiert. Es scheint mit den Enums zu tun zu haben, mit denen ich selbst noch nicht gearbeitet habe.
                                        Der Datenpunkt enthält nur den Enumtyp. Die Anzeige in iobroker ermittelt dir aber auch gleich den Wert dazu.
                                        Um es Einfach zu machen ist im obigen Befehl jetzt folgendes drin:
                                        splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von dslraser
                                        #26

                                        @OliverIO sagte in String teilen - split-Befehl:

                                        splitte den Wert mittels dem Punkt und nehme aus dem erzeugten Array immer das letzte Element. der Zustand ist ja immer der Text nach dem letzten Punkt.

                                        @ub-privat

                                        Der Wert nach dem letzten Punkt ist zwar fast immer der gleiche, aber nicht immer. Hier mal die Werte des Datenpunktes aus dem anderen Thread.

                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.Espresso": "Espresso",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.EspressoMacchiato": "Espresso Macchiato",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.Coffee": "Caffe Crema",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.Cappuccino": "Cappuccino",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.LatteMacchiato": "Latte Macchiato",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.CaffeLatte": "Milchkaffee",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.Ristretto": "Ristretto",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.MilkFroth": "Milchschaum",
                                            "ConsumerProducts.CoffeeMaker.Program.Beverage.WarmMilk": "Warme Milch",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KleinerBrauner": "Kleiner Brauner",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.GrosserBrauner": "Großer Brauner",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Verlaengerter": "Verlängerter",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.VerlaengerterBraun": "Verlängerter braun",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.WienerMelange": "Wiener Melange",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.FlatWhite": "Flat White",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Cortado": "Cortado",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeCortado": "Café cortado",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeConLeche": "Café con leche",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.CafeAuLait": "Café au lait",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Doppio": "Doppio",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Kaapi": "Kaapi",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.KoffieVerkeerd": "Koffie verkeerd",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Galao": "Galão",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Garoto": "Garoto",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.Americano": "Americano",
                                            "ConsumerProducts.CoffeeMaker.Program.CoffeeWorld.RedEye": "Red Eye"
                                        
                                        

                                        Ich vermute mal, das es in Deinem Datenpunkt im RAW Bereich ähnlich aussieht ?
                                        Vergleiche mal z.B. Milchschaum. Nach der Splitt Methode bekommst Du nicht Milchschaum angezeigt, sondern MilkFroth. Die gezeigte Funktion im anderen Thread ermittelt den "echten Wert"
                                        Ich bin unterwegs und nur am Handy, von daher kann ich es nicht besser zeigen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #27

                                          @ub-privat
                                          hier noch mal das was ich meine.....(danach halte ich mich raus)

                                          Testblockly mit Debug-Bausteinen. Hier wird vielleicht klar was ich meine. Oben die Funktion und unten die Splittmethode.

                                          Bildschirmfoto 2020-01-03 um 17.43.31.png

                                          Ergebnis:

                                          Bildschirmfoto 2020-01-03 um 17.43.22.png

                                          Hier die genutzte Funktion

                                          Bildschirmfoto 2020-01-03 um 17.36.30.png

                                          if(getObject(id).common.states) return getObject(id).common.states[val];
                                          return id + ' Dieser Datenpunkt hat keinen Zustand !';
                                          

                                          <xml xmlns="http://www.w3.org/1999/xhtml">
                                           <variables>
                                             <variable type="" id="y}n5NpIEF{U9uP/AG}OB">id</variable>
                                             <variable type="" id="u7#6,S]3U-LR0^kP5l]P">val</variable>
                                           </variables>
                                           <block type="procedures_defcustomreturn" id="7R:L*9?)7Wl^RqVg+G`q" x="13" y="13">
                                             <mutation statements="false">
                                               <arg name="id" varid="y}n5NpIEF{U9uP/AG}OB"></arg>
                                               <arg name="val" varid="u7#6,S]3U-LR0^kP5l]P"></arg>
                                             </mutation>
                                             <field name="NAME">Kaffeesorte</field>
                                             <field name="SCRIPT">aWYoZ2V0T2JqZWN0KGlkKS5jb21tb24uc3RhdGVzKSByZXR1cm4gZ2V0T2JqZWN0KGlkKS5jb21tb24uc3RhdGVzW3ZhbF07CnJldHVybiBpZCArICcgRGllc2VyIERhdGVucHVua3QgaGF0IGtlaW5lbiBadXN0YW5kICEnOw==</field>
                                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                           </block>
                                           <block type="debug" id="s7Q~Dg^CTndwVGwE,*a7" x="12" y="88">
                                             <field name="Severity">log</field>
                                             <value name="TEXT">
                                               <shadow type="text" id="fQ4x5I0_yE)XMLP)wC~a">
                                                 <field name="TEXT">test</field>
                                               </shadow>
                                               <block type="text_join" id="Kv@T0V3-5W4:|GmX@Cd(">
                                                 <mutation items="2"></mutation>
                                                 <value name="ADD0">
                                                   <block type="text" id="9rUT6o2O96Lk9p/t;P!F">
                                                     <field name="TEXT">Funktion-Werteliste: </field>
                                                   </block>
                                                 </value>
                                                 <value name="ADD1">
                                                   <block type="procedures_callcustomreturn" id="HpQS1cqWv}c}%Zepn}ax">
                                                     <mutation name="Kaffeesorte">
                                                       <arg name="id"></arg>
                                                       <arg name="val"></arg>
                                                     </mutation>
                                                     <value name="ARG0">
                                                       <block type="field_oid" id="j@NlUln%G`DESX4Ra8CJ">
                                                         <field name="oid">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                                                       </block>
                                                     </value>
                                                     <value name="ARG1">
                                                       <block type="get_value" id="cDp+]Va_smIe?b)Fp`ks">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="K$o+3aO=Sadm^HBM$2$R">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="fQ4x5I0_yE)XMLP)wC~a">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="text_join" id="wq(3B2wVQRPRNA!cQDle">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="_m%swPGrjWBn4:uQZ3CN">
                                                         <field name="TEXT">Split-Methode: </field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="text_getSubstring" id=";V75FO4VtMZ3nP[Seh:A" inline="false">
                                                         <mutation at1="true" at2="false"></mutation>
                                                         <field name="WHERE1">FROM_START</field>
                                                         <field name="WHERE2">LAST</field>
                                                         <value name="STRING">
                                                           <block type="get_value" id="t$6J}yw=#$*H%Oy@L$lh">
                                                             <field name="ATTR">val</field>
                                                             <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                                                           </block>
                                                         </value>
                                                         <value name="AT1">
                                                           <block type="math_arithmetic" id="h7_S)hH`5@RA?#U)5g=1" inline="false">
                                                             <field name="OP">ADD</field>
                                                             <value name="A">
                                                               <shadow type="math_number" id="A`TLz5Lbfgw;=mJOp}(^">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="text_indexOf" id="0e*(2Dhq5d1#U;xsFNn%" inline="false">
                                                                 <field name="END">LAST</field>
                                                                 <value name="VALUE">
                                                                   <block type="get_value" id="isq[qfzLYyRaRLY;L45w">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">homeconnect.0.BOSCH-CTL636ES6-68A40E26C6C6.programs.selected.BSH_Common_Root_SelectedProgram</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="FIND">
                                                                   <shadow type="text" id="P5s;aJDPT*F;y(,VtRBs">
                                                                     <field name="TEXT">abc</field>
                                                                   </shadow>
                                                                   <block type="text" id="c,}EJ]POpPpb|nI#.!zb">
                                                                     <field name="TEXT">.</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <shadow type="math_number" id="-9+`M14/p._`PvUM3`yk">
                                                                 <field name="NUM">1</field>
                                                               </shadow>
                                                               <block type="math_number" id="(Kg1M+/J_!`LmKq-sU!S">
                                                                 <field name="NUM">1</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </next>
                                           </block>
                                          </xml>
                                          

                                          I 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

                                          758

                                          Online

                                          32.5k

                                          Benutzer

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