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. Visualisierung
  4. Binding-Wert aus JSON filtern

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Binding-Wert aus JSON filtern

Geplant Angeheftet Gesperrt Verschoben Visualisierung
18 Beiträge 2 Kommentatoren 978 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.
  • OliverIOO OliverIO

    @marcio

    dann schaue mal in die browser konsole mit F12.
    Bindings haben glaube ich manchmal Probleme mit JSON

    Ergänzung.
    Du hast du im binding einen fehler

    Der folgende Ausdruck ist ungültig. Der Doppelpunkt ist nur in Verbindung eines Datenpunkts gültig. Da muss man dann = nehmen

    v:"Gerät A"
    

    Wenn die Funktion im script-Reiter drinsteht, dann ohne vis. referenzieren.

    {path:0_userdata.0.Fehlermeldung.wo_issues_data_json; v="Gerät A"; StandardFehler_V2(path, v)}
    

    Deine Funktion wird jedesmal mehrfach aufgerufen, teilweise mit undefined. Da musst mal schauen ob da noch was in der Funktion machen musst.
    Wenn du in die erste Zeile deiner Funktion

    debugger;
    

    reinschreibst und die developer konsole des browsers geöffnet hast, kannst du im detail sehen was passiert.

    M Offline
    M Offline
    MarcIO
    schrieb am zuletzt editiert von MarcIO
    #3

    @oliverio

    In der Konsole wird dies hier ausgegeben:

    [StandardFehler_V2] Fehler beim Parsen oder Filtern:"JSON Parse error: Unexpected identifier \"undefined\""
    

    Wüsste nicht warum dieser Zustand entstehen sollte und woher es auch kommen könnte. Findet er unter dem Pfad die JSON-Datei nicht oder kann er den Inhalt nicht auslesen?

    Aber der Skript wird ausgeführt, ich bekomme den Wert grau, standardmäßig ist es weiß.

    1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @marcio

      dann schaue mal in die browser konsole mit F12.
      Bindings haben glaube ich manchmal Probleme mit JSON

      Ergänzung.
      Du hast du im binding einen fehler

      Der folgende Ausdruck ist ungültig. Der Doppelpunkt ist nur in Verbindung eines Datenpunkts gültig. Da muss man dann = nehmen

      v:"Gerät A"
      

      Wenn die Funktion im script-Reiter drinsteht, dann ohne vis. referenzieren.

      {path:0_userdata.0.Fehlermeldung.wo_issues_data_json; v="Gerät A"; StandardFehler_V2(path, v)}
      

      Deine Funktion wird jedesmal mehrfach aufgerufen, teilweise mit undefined. Da musst mal schauen ob da noch was in der Funktion machen musst.
      Wenn du in die erste Zeile deiner Funktion

      debugger;
      

      reinschreibst und die developer konsole des browsers geöffnet hast, kannst du im detail sehen was passiert.

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

      @oliverio sagte in Binding-Wert aus JSON filtern:

      Bindings haben glaube ich manchmal Probleme mit JSON

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

      M 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @oliverio sagte in Binding-Wert aus JSON filtern:

        Bindings haben glaube ich manchmal Probleme mit JSON

        M Offline
        M Offline
        MarcIO
        schrieb am zuletzt editiert von MarcIO
        #5

        @oliverio

        Also einfach so annehmen? Ist ja mega verärgerlich..

        Gäbe es eine Alternative?

        OliverIOO 1 Antwort Letzte Antwort
        0
        • M MarcIO

          @oliverio

          Also einfach so annehmen? Ist ja mega verärgerlich..

          Gäbe es eine Alternative?

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

          @marcio
          ich habe mal ein widget gebaut mit dem das geht.
          https://forum.iobroker.net/topic/31521/test-widget-json-template
          Dan kannst du dir deine Darstellung individuell bauen

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

          M 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @marcio
            ich habe mal ein widget gebaut mit dem das geht.
            https://forum.iobroker.net/topic/31521/test-widget-json-template
            Dan kannst du dir deine Darstellung individuell bauen

            M Offline
            M Offline
            MarcIO
            schrieb am zuletzt editiert von
            #7

            @oliverio

            Ja den kenne ich bereits und nutze es auch, aber für diesen Fall wäre es leider viel zu aufwändig.
            Wie schaut es denn mit getState aus? Ist es mittlerweile wieder sinnvoll damit zu arbeiten? Hatte nämlich in der Vergangenheit öfter mal Probleme damit in IoB.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • M MarcIO

              @oliverio

              Ja den kenne ich bereits und nutze es auch, aber für diesen Fall wäre es leider viel zu aufwändig.
              Wie schaut es denn mit getState aus? Ist es mittlerweile wieder sinnvoll damit zu arbeiten? Hatte nämlich in der Vergangenheit öfter mal Probleme damit in IoB.

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

              @marcio

              Was heißt aufwändig, eigentlich nicht.

              GetState gibt es bei vis quasi nicht, bzw. ist es noch aufwändiger.

              Dann könnte man noch den Datenpunkt per Binding in ein Java Skript in einem HTML Widget einblenden. Ist aber genauso aufwändig, wie jsontemplate

              Beispiel:

              <p class="myvar">test</p>
              <script>
              debugger;    
              var json = {0_userdata.0.test};
              $(".myvar").html(json[0].geraet_name);
              </script>
              
              

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

              M 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @marcio

                Was heißt aufwändig, eigentlich nicht.

                GetState gibt es bei vis quasi nicht, bzw. ist es noch aufwändiger.

                Dann könnte man noch den Datenpunkt per Binding in ein Java Skript in einem HTML Widget einblenden. Ist aber genauso aufwändig, wie jsontemplate

                Beispiel:

                <p class="myvar">test</p>
                <script>
                debugger;    
                var json = {0_userdata.0.test};
                $(".myvar").html(json[0].geraet_name);
                </script>
                
                
                M Offline
                M Offline
                MarcIO
                schrieb am zuletzt editiert von
                #9

                @oliverio

                Von der Logik her nicht unbedingt, aber ich habe dieses Binding in nav-button verwendet und müsste es entsprechend in html/css/js nochmals machen.

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  MarcIO
                  schrieb am zuletzt editiert von MarcIO
                  #10

                  @oliverio Hey Oliver,

                  Ich hatte doch mal ein Versuch gewagt und habe es mit deiner JSON-Template 3 Widget probiert. Habe nun das Problem, dass es im Edit der Vis funktioniert aber in Runtime die Funktionen einfach weg sind.

                  So habe ich es gestaltet:

                  <%
                  debugger;
                  let newList = data
                    .map(el => {
                      return {
                        ...el,
                        status: el['issue_type'] === "error" ? 'red' :
                                el['issue_type'] === "warning" ? 'yellow' :
                                el['issue_type'] === "success" ? 'green' : 'grey'
                      };
                    })
                    .filter(item => item.machine_name === "Kaffeemaschine");
                  
                  let item = newList[0];
                  let targetView = "Kueche";
                  
                  return `
                    <button style="
                      width: 672px;
                      height: 538px;
                      border: 4px solid ${status};
                      border-radius: 8px;
                      background-color: #
                      cursor: pointer;
                    "
                    onclick="vis.changeView('${targetView}')">
                    </button>
                  `;
                  %>
                  
                  

                  In der Konsole auch nichts auffälliges entdeckt. Da ist zwar ein allgemeiner und ein alter Fehler über rssfeed, aber die anderen JSON-Templates funktionieren ja alle. Woran könnte es hier scheitern?

                  Im Bearbeitungsmodus sehe ich die Farbe/Status korrekt und kann auch per Klick navigieren, aber wie erwähnt ist im Runtime nichts mehr da..

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • M MarcIO

                    @oliverio Hey Oliver,

                    Ich hatte doch mal ein Versuch gewagt und habe es mit deiner JSON-Template 3 Widget probiert. Habe nun das Problem, dass es im Edit der Vis funktioniert aber in Runtime die Funktionen einfach weg sind.

                    So habe ich es gestaltet:

                    <%
                    debugger;
                    let newList = data
                      .map(el => {
                        return {
                          ...el,
                          status: el['issue_type'] === "error" ? 'red' :
                                  el['issue_type'] === "warning" ? 'yellow' :
                                  el['issue_type'] === "success" ? 'green' : 'grey'
                        };
                      })
                      .filter(item => item.machine_name === "Kaffeemaschine");
                    
                    let item = newList[0];
                    let targetView = "Kueche";
                    
                    return `
                      <button style="
                        width: 672px;
                        height: 538px;
                        border: 4px solid ${status};
                        border-radius: 8px;
                        background-color: #
                        cursor: pointer;
                      "
                      onclick="vis.changeView('${targetView}')">
                      </button>
                    `;
                    %>
                    
                    

                    In der Konsole auch nichts auffälliges entdeckt. Da ist zwar ein allgemeiner und ein alter Fehler über rssfeed, aber die anderen JSON-Templates funktionieren ja alle. Woran könnte es hier scheitern?

                    Im Bearbeitungsmodus sehe ich die Farbe/Status korrekt und kann auch per Klick navigieren, aber wie erwähnt ist im Runtime nichts mehr da..

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

                    @marcio

                    Ich schau mir das an. Du wendest den Template Mechanismus etwas ungewöhnlich an. Muss aber selbst prüfen, wo da genau das Problem liegt
                    Melde mich morgen

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

                    M 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @marcio

                      Ich schau mir das an. Du wendest den Template Mechanismus etwas ungewöhnlich an. Muss aber selbst prüfen, wo da genau das Problem liegt
                      Melde mich morgen

                      M Offline
                      M Offline
                      MarcIO
                      schrieb am zuletzt editiert von
                      #12

                      @oliverio

                      Super, danke dir!

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • M MarcIO

                        @oliverio

                        Super, danke dir!

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

                        @marcio

                        Gib mir bitte ein paar Beispiel Daten für den Input

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

                        M 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @marcio

                          Gib mir bitte ein paar Beispiel Daten für den Input

                          M Offline
                          M Offline
                          MarcIO
                          schrieb am zuletzt editiert von
                          #14

                          @oliverio

                          [
                            {
                              "geraet_name": "Gerät A",
                              "issue_name": "Nachbearbeiten",
                              "issue_date": "24.09.2024",
                              "issue_type": "warning",
                            },
                            {
                              "geraet_name": "Test 4",
                              "issue_name": "Vorrichtung nicht vorhanden",
                              "issue_date": "04.05.2025",
                              "issue_type": "warning",
                            },
                            {
                              "geraet_name": "Auto",
                              "issue_name": "defekt",
                              "issue_date": "31.05.2025",
                              "issue_type": "error",
                            },
                          
                          
                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • M MarcIO

                            @oliverio

                            [
                              {
                                "geraet_name": "Gerät A",
                                "issue_name": "Nachbearbeiten",
                                "issue_date": "24.09.2024",
                                "issue_type": "warning",
                              },
                              {
                                "geraet_name": "Test 4",
                                "issue_name": "Vorrichtung nicht vorhanden",
                                "issue_date": "04.05.2025",
                                "issue_type": "warning",
                              },
                              {
                                "geraet_name": "Auto",
                                "issue_name": "defekt",
                                "issue_date": "31.05.2025",
                                "issue_type": "error",
                              },
                            
                            
                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von OliverIO
                            #15

                            @marcio

                            ok folgende erkenntnisse:

                            leider passen die daten nicht zum template
                            in den daten steht
                            geraet_name
                            im template
                            filter(item => item.machine_name === "Kaffeemaschine");

                            da filtert natürlich nix

                            der unterschied zwischen edit und runtimemode ist leider durch den in vis eingebauten binding erkennungsmechanismus zu erklären

                            wenn man mit den browser dev tools sich jeweils das javascript anschaut, dann sieht man

                            im edit
                            onclick="vis.changeView('${targetView}')">

                            im runtime
                            onclick="vis.changeView('$undefined')">

                            der in vis eingebaute erkennungsmechanismuss sucht per regex nach allem was zwischen den geschweiften klammern steht und versucht das mit dem darin enthaltenen ausdruck zu ersetzen, was hier zu undefined führt.

                            wie ich schon im vorigen post erwähnt habe, wendest du den template mechanismus nicht gut an. schau dir bitte die dokumentation zum widget im adapter readme nochmal an. kannst aber auch gerne hier fragen.

                            hier ein verbessertes template

                            <%
                            debugger;
                            let newList = data
                              .map(el => {
                                return {
                                  ...el, 
                                  status: el['issue_type'] === "error" ? 'red' :
                                          el['issue_type'] === "warning" ? 'yellow' :
                                          el['issue_type'] === "success" ? 'green' : 'grey'
                                };
                              })
                              .filter(item => item.machine_name === "Auto"); 
                             
                            let item = newList[0];
                            let targetView = "Küche";
                             
                            %>
                              <button style="width: 50px;height: 50px;border: 4px solid <%- item.status||"blue" %>;border-radius: 8px;background-color: #555555;cursor: pointer;"
                              onclick="vis.changeView('<%- targetView %>')">
                              </button>
                            
                            

                            anmerkungen zu deinem ursprungstemplate

                            • backgroundcolor ist fehlerhaft, habe hier mal #555555 verwendet
                            • der knopf ist etwas groß?
                            • variable status hat keinen wert wen die liste leer ist, daher hier fallbackwert blau hinzugefügt
                            • die jeweilige statusfarbe ist nicht über status, sondern item.status erreichbar

                            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
                            1
                            • M Offline
                              M Offline
                              MarcIO
                              schrieb am zuletzt editiert von
                              #16

                              @oliverio said in Binding-Wert aus JSON filtern:

                              leider passen die daten nicht zum template
                              in den daten steht
                              geraet_name

                              Das habe ich im Nachhinein angepasst gehabt, deshalb stand im JSON noch die alte Version, aber ja hast natürlich richtig gesehen.

                              @oliverio said in Binding-Wert aus JSON filtern:

                              wie ich schon im vorigen post erwähnt habe, wendest du den template mechanismus nicht gut an. schau dir bitte die dokumentation zum widget im adapter readme nochmal an. kannst aber auch gerne hier fragen.

                              Ja das stimmt, ich fühl mich iwie in IoBroker noch so manchmal fremd, trotz JavaScript-Kenntnisse. Aber nehme mir deinen Rat zu Herzen.

                              @oliverio said in Binding-Wert aus JSON filtern:

                              anmerkungen zu deinem ursprungstemplate

                              • backgroundcolor ist fehlerhaft, habe hier mal #555555 verwendet

                              Was genau scheitert denn an #e5e5e5? Ich habe es schon zuvor verwendet und bisher problemlos.

                              Ich danke dir für deinen Skript. Das funktioniert nun einwandfrei! :)

                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • M MarcIO

                                @oliverio said in Binding-Wert aus JSON filtern:

                                leider passen die daten nicht zum template
                                in den daten steht
                                geraet_name

                                Das habe ich im Nachhinein angepasst gehabt, deshalb stand im JSON noch die alte Version, aber ja hast natürlich richtig gesehen.

                                @oliverio said in Binding-Wert aus JSON filtern:

                                wie ich schon im vorigen post erwähnt habe, wendest du den template mechanismus nicht gut an. schau dir bitte die dokumentation zum widget im adapter readme nochmal an. kannst aber auch gerne hier fragen.

                                Ja das stimmt, ich fühl mich iwie in IoBroker noch so manchmal fremd, trotz JavaScript-Kenntnisse. Aber nehme mir deinen Rat zu Herzen.

                                @oliverio said in Binding-Wert aus JSON filtern:

                                anmerkungen zu deinem ursprungstemplate

                                • backgroundcolor ist fehlerhaft, habe hier mal #555555 verwendet

                                Was genau scheitert denn an #e5e5e5? Ich habe es schon zuvor verwendet und bisher problemlos.

                                Ich danke dir für deinen Skript. Das funktioniert nun einwandfrei! :)

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

                                @marcio

                                Wenn es dagestanden wäre Nix
                                2b9f0748-0d81-4f00-a34e-7d6068d9eca2-image.png

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

                                M 1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @marcio

                                  Wenn es dagestanden wäre Nix
                                  2b9f0748-0d81-4f00-a34e-7d6068d9eca2-image.png

                                  M Offline
                                  M Offline
                                  MarcIO
                                  schrieb am zuletzt editiert von
                                  #18

                                  @oliverio

                                  Dann war ich ja wohl mega verpeilt unterwegs.

                                  Ich danke dir auf jeden Fall, es funktioniert wie gewollt :)

                                  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

                                  844

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  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