Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Button Bild durch JSON setzen ?

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    228

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

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

Button Bild durch JSON setzen ?

Button Bild durch JSON setzen ?

Scheduled Pinned Locked Moved Visualisierung
10 Posts 3 Posters 780 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • moelskiM Offline
    moelskiM Offline
    moelski
    wrote on last edited by
    #1

    Moin !
    Ich würde gerne das Bild eine "Jquery - ctrl - Icon State" Buttons durch einen bestimmten JSON Wert setzen lassen. Mein JSON sieht so aus:

    [{
            "Device": "Comp-L-Acer-L",
            "Profile ID": "filtprof1",
            "Profile Name": "Standard",
            "Usage": "Unbeschränkt",
            "Time": "00:00 von 24:00 Stunden"
        }, {
            "Device": "Comp-L-Acer-W",
            "Profile ID": "filtprof1",
            "Profile Name": "Standard",
            "Usage": "Unbeschränkt",
            "Time": "00:00 von 24:00 Stunden"
        }
    ]
    

    Das Icon soll nach dem Wert von Profile ID gesetzt werden aber für ein bestimmtes Device.

    Konkret der Wert Profile ID bei "Device": "Comp-L-Acer-L" auf filtprof1 steht dann möchte ich BILD1, steht er auf einem anderen Wert, dann eben BILD2.

    Ich weiß das man Bilder über Datenpunkte mittels Bindings direkt setzen kann. Bsp:

    {v:Global.0.Alexa.Selected;v == 'alexa2.0.Echo-Devices.G090XG08945606VC' ? '/icons-mfd-png/control_clear.png' : '/icons-mfd-png/status_light_off.png'}
    

    Nur geht das eben auch mittels JSON Wert ?

    Grüße Dominik

    Grüße Dominik

    O OliverIOO 2 Replies Last reply
    0
    • moelskiM moelski

      Moin !
      Ich würde gerne das Bild eine "Jquery - ctrl - Icon State" Buttons durch einen bestimmten JSON Wert setzen lassen. Mein JSON sieht so aus:

      [{
              "Device": "Comp-L-Acer-L",
              "Profile ID": "filtprof1",
              "Profile Name": "Standard",
              "Usage": "Unbeschränkt",
              "Time": "00:00 von 24:00 Stunden"
          }, {
              "Device": "Comp-L-Acer-W",
              "Profile ID": "filtprof1",
              "Profile Name": "Standard",
              "Usage": "Unbeschränkt",
              "Time": "00:00 von 24:00 Stunden"
          }
      ]
      

      Das Icon soll nach dem Wert von Profile ID gesetzt werden aber für ein bestimmtes Device.

      Konkret der Wert Profile ID bei "Device": "Comp-L-Acer-L" auf filtprof1 steht dann möchte ich BILD1, steht er auf einem anderen Wert, dann eben BILD2.

      Ich weiß das man Bilder über Datenpunkte mittels Bindings direkt setzen kann. Bsp:

      {v:Global.0.Alexa.Selected;v == 'alexa2.0.Echo-Devices.G090XG08945606VC' ? '/icons-mfd-png/control_clear.png' : '/icons-mfd-png/status_light_off.png'}
      

      Nur geht das eben auch mittels JSON Wert ?

      Grüße Dominik

      O Offline
      O Offline
      oliver2017
      wrote on last edited by
      #2

      @moelski Hast du es hinbekommen? Meine Work around lösung ist ein Script laufen zulassen und entsprechende Datenpunkte zu benutzen, diese dann per Binding verknüpfen!

      Gruß Olli

      Ein paar details über meinen iobroker:
      Proxmox VM iobroker
      Alarmanlage mit Alexa Sprachausgabe
      Solvis Heizung anbindung

      1 Reply Last reply
      0
      • moelskiM moelski

        Moin !
        Ich würde gerne das Bild eine "Jquery - ctrl - Icon State" Buttons durch einen bestimmten JSON Wert setzen lassen. Mein JSON sieht so aus:

        [{
                "Device": "Comp-L-Acer-L",
                "Profile ID": "filtprof1",
                "Profile Name": "Standard",
                "Usage": "Unbeschränkt",
                "Time": "00:00 von 24:00 Stunden"
            }, {
                "Device": "Comp-L-Acer-W",
                "Profile ID": "filtprof1",
                "Profile Name": "Standard",
                "Usage": "Unbeschränkt",
                "Time": "00:00 von 24:00 Stunden"
            }
        ]
        

        Das Icon soll nach dem Wert von Profile ID gesetzt werden aber für ein bestimmtes Device.

        Konkret der Wert Profile ID bei "Device": "Comp-L-Acer-L" auf filtprof1 steht dann möchte ich BILD1, steht er auf einem anderen Wert, dann eben BILD2.

        Ich weiß das man Bilder über Datenpunkte mittels Bindings direkt setzen kann. Bsp:

        {v:Global.0.Alexa.Selected;v == 'alexa2.0.Echo-Devices.G090XG08945606VC' ? '/icons-mfd-png/control_clear.png' : '/icons-mfd-png/status_light_off.png'}
        

        Nur geht das eben auch mittels JSON Wert ?

        Grüße Dominik

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        wrote on last edited by
        #3

        Ist zwar schon leicht veraltet, aber das Prinzip wäre so

        {v:Global.0.DatepunktMitJSON;JSON.parse(v)[1]["Profile ID"]}
        

        Durch die erste Anweisung befindet sich der JSON-Text in v
        Durch JSON.parse wird er in ein Objekt umgewandelt.
        Mit den nachfolgenden Anweisungen [1]["Profile ID"]
        wird das 2.Element (Comp-L-Acer-W) aus dem Array mit Objekten selektiert und davon das
        Attribut "Profile ID".
        Theoretisch würde bei Profile ID auch die Punktnotation ([1].ProfileID) gehen, da aber ein Leerzeichen enthalten ist, muss der Zugriff so erfolgen.

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

        O 1 Reply Last reply
        0
        • OliverIOO OliverIO

          Ist zwar schon leicht veraltet, aber das Prinzip wäre so

          {v:Global.0.DatepunktMitJSON;JSON.parse(v)[1]["Profile ID"]}
          

          Durch die erste Anweisung befindet sich der JSON-Text in v
          Durch JSON.parse wird er in ein Objekt umgewandelt.
          Mit den nachfolgenden Anweisungen [1]["Profile ID"]
          wird das 2.Element (Comp-L-Acer-W) aus dem Array mit Objekten selektiert und davon das
          Attribut "Profile ID".
          Theoretisch würde bei Profile ID auch die Punktnotation ([1].ProfileID) gehen, da aber ein Leerzeichen enthalten ist, muss der Zugriff so erfolgen.

          O Offline
          O Offline
          oliver2017
          wrote on last edited by
          #4

          @oliverio so dachte ich dass auch , aber ich bekomme immer nur eine "0" als Rückgabe!

          An was liegt es?

          Ein paar details über meinen iobroker:
          Proxmox VM iobroker
          Alarmanlage mit Alexa Sprachausgabe
          Solvis Heizung anbindung

          OliverIOO 1 Reply Last reply
          0
          • O oliver2017

            @oliverio so dachte ich dass auch , aber ich bekomme immer nur eine "0" als Rückgabe!

            An was liegt es?

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            wrote on last edited by
            #5

            @oliver2017
            Dann zeige deine binding Anweisung

            Wie Soll ich das sonst prüfen?

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

            O 1 Reply Last reply
            0
            • OliverIOO OliverIO

              @oliver2017
              Dann zeige deine binding Anweisung

              Wie Soll ich das sonst prüfen?

              O Offline
              O Offline
              oliver2017
              wrote on last edited by oliver2017
              #6

              @oliverio
              verschiedenes Probiert, aber immer nur "0" als Rückgabe wert.

              {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;JSON.parse(v)[2]["Device"]}
              {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;JSON.parse(v)v["2.Device"]}
              {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;vv:JSON.parse(v);vv["2.Device"]}
              

              Datenpunkt: (als Zeichenkette ) auch als JSON probiert

              [
                {
                  "Device": "3D-Drucker-octopi-1",
                  "Profile ID": "filtprof1",
                  "Profile Name": "Standard",
                  "Usage": "Unbeschränkt",
                  "Time": "Unbegrenzt"
                },
                {
                  "Device": "3D-Drucker-octopi-2",
                  "Profile ID": "filtprof1",
                  "Profile Name": "Standard",
                  "Usage": "Unbeschränkt",
                  "Time": "Unbegrenzt"
                },
                {
                  "Device": "amazon-22222",
                  "Profile ID": "filtprof1",
                  "Profile Name": "Standard",
                  "Usage": "Unbeschränkt",
                  "Time": "Unbegrenzt"
                }
              ]
              

              Ein paar details über meinen iobroker:
              Proxmox VM iobroker
              Alarmanlage mit Alexa Sprachausgabe
              Solvis Heizung anbindung

              OliverIOO 1 Reply Last reply
              0
              • O oliver2017

                @oliverio
                verschiedenes Probiert, aber immer nur "0" als Rückgabe wert.

                {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;JSON.parse(v)[2]["Device"]}
                {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;JSON.parse(v)v["2.Device"]}
                {v:0_userdata.0.Fritzbox.I-Net-Filter.DeviceFilterListJson;vv:JSON.parse(v);vv["2.Device"]}
                

                Datenpunkt: (als Zeichenkette ) auch als JSON probiert

                [
                  {
                    "Device": "3D-Drucker-octopi-1",
                    "Profile ID": "filtprof1",
                    "Profile Name": "Standard",
                    "Usage": "Unbeschränkt",
                    "Time": "Unbegrenzt"
                  },
                  {
                    "Device": "3D-Drucker-octopi-2",
                    "Profile ID": "filtprof1",
                    "Profile Name": "Standard",
                    "Usage": "Unbeschränkt",
                    "Time": "Unbegrenzt"
                  },
                  {
                    "Device": "amazon-22222",
                    "Profile ID": "filtprof1",
                    "Profile Name": "Standard",
                    "Usage": "Unbeschränkt",
                    "Time": "Unbegrenzt"
                  }
                ]
                
                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                wrote on last edited by
                #7

                @oliver2017

                hab mal debuged.
                da ist halt immer noch ein fehler in vis drin.
                ich hatte mal vor einiger zeit ein Verbesserungsvorschlag gemacht,
                allerdings ist dieser wieder verhunzt ins vis reingelaufen.
                so wie es jetzt drin ist kann es leider nicht funktionieren.
                mich wundert es halt, das nicht noch mehr das problem haben. wohl werten alle das json erst in einem skript aus

                ich kann dich nur auf mein widget JSON template im adapter rssfeed verweisen
                https://forum.iobroker.net/topic/31521/test-widget-json-template?_=1651682400120

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

                O 1 Reply Last reply
                0
                • OliverIOO OliverIO

                  @oliver2017

                  hab mal debuged.
                  da ist halt immer noch ein fehler in vis drin.
                  ich hatte mal vor einiger zeit ein Verbesserungsvorschlag gemacht,
                  allerdings ist dieser wieder verhunzt ins vis reingelaufen.
                  so wie es jetzt drin ist kann es leider nicht funktionieren.
                  mich wundert es halt, das nicht noch mehr das problem haben. wohl werten alle das json erst in einem skript aus

                  ich kann dich nur auf mein widget JSON template im adapter rssfeed verweisen
                  https://forum.iobroker.net/topic/31521/test-widget-json-template?_=1651682400120

                  O Offline
                  O Offline
                  oliver2017
                  wrote on last edited by
                  #8

                  @oliverio
                  meinst du das?

                  https://github.com/ioBroker/ioBroker.vis/commit/93d4affd0c959b20b1dd384bf239fe7a1c432fb7#r42103805

                  denke auch das da ein fehler ist, denn selbst console.log() funktioniert nicht

                  2 gsicilia82 committed to ioBroker/ioBroker.vis
                  parse JSON for VIS bindings
                  
                  For JSON-bindings in VIS. Contribution from user "oweitman" in ioBroker#263 (comment)
                  
                  `if (typeof value) { ... }` was not usable, I don't know the reason. With typeof-check, also Arrays would be recocnized as Objects and not declared as String.
                  Pull request to accelerate enhancement...

                  Ein paar details über meinen iobroker:
                  Proxmox VM iobroker
                  Alarmanlage mit Alexa Sprachausgabe
                  Solvis Heizung anbindung

                  OliverIOO 1 Reply Last reply
                  0
                  • O oliver2017

                    @oliverio
                    meinst du das?

                    https://github.com/ioBroker/ioBroker.vis/commit/93d4affd0c959b20b1dd384bf239fe7a1c432fb7#r42103805

                    denke auch das da ein fehler ist, denn selbst console.log() funktioniert nicht

                    2 gsicilia82 committed to ioBroker/ioBroker.vis
                    parse JSON for VIS bindings
                    
                    For JSON-bindings in VIS. Contribution from user "oweitman" in ioBroker#263 (comment)
                    
                    `if (typeof value) { ... }` was not usable, I don't know the reason. With typeof-check, also Arrays would be recocnized as Objects and not declared as String.
                    Pull request to accelerate enhancement...
                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    wrote on last edited by OliverIO
                    #9

                    @oliver2017

                    nicht ganz, aber fast
                    es ist dieser commit
                    https://github.com/ioBroker/ioBroker.vis/commit/fdb636630a452772a6bf798aab7b41e3b80c2d6c

                    hier wird der json-string value als text eingefügt. blöderweise aber von doppelten anführungzeichen eingeschlossen.
                    wenn dann später das generierte javascript ausgeführt wird, kommt es zum fehler.

                    so sieht dein intern generiertes javascript dann aus.

                    var v = JSON.parse("[{" Device ":" 3D - Drucker - octopi - 1 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "},{" Device ":" 3D - Drucker - octopi - 2 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "},{" Device ":" amazon - 22222 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "}]");
                    return v[2]["Device"];
                    

                    evtl entedckst du auch den fehler. da hilft das hinten angehängte replace leider auch nicht mehr. eigentlich konnte das seit diesem commit noch nie funktionieren (ausser bei primitive types)

                    1 GermanBluefox committed to ioBroker/ioBroker.vis
                    * (fceller) parse JSON for VIS bindings

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

                    OliverIOO 1 Reply Last reply
                    0
                    • OliverIOO OliverIO

                      @oliver2017

                      nicht ganz, aber fast
                      es ist dieser commit
                      https://github.com/ioBroker/ioBroker.vis/commit/fdb636630a452772a6bf798aab7b41e3b80c2d6c

                      hier wird der json-string value als text eingefügt. blöderweise aber von doppelten anführungzeichen eingeschlossen.
                      wenn dann später das generierte javascript ausgeführt wird, kommt es zum fehler.

                      so sieht dein intern generiertes javascript dann aus.

                      var v = JSON.parse("[{" Device ":" 3D - Drucker - octopi - 1 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "},{" Device ":" 3D - Drucker - octopi - 2 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "},{" Device ":" amazon - 22222 "," Profile ID ":" filtprof1 "," Profile Name ":" Standard "," Usage ":" Unbeschränkt "," Time ":" Unbegrenzt "}]");
                      return v[2]["Device"];
                      

                      evtl entedckst du auch den fehler. da hilft das hinten angehängte replace leider auch nicht mehr. eigentlich konnte das seit diesem commit noch nie funktionieren (ausser bei primitive types)

                      1 GermanBluefox committed to ioBroker/ioBroker.vis
                      * (fceller) parse JSON for VIS bindings
                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      wrote on last edited by
                      #10

                      @oliverio
                      hab das mal nochmal in einen ordentlichen github kommentar verfasst
                      https://github.com/ioBroker/ioBroker.vis/pull/281#issuecomment-1118353907

                      gsicilia82 opened this pull request in ioBroker/ioBroker.vis

                      closed parse JSON for VIS bindings #281

                      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 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      52

                      Online

                      32.4k

                      Users

                      81.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe