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

  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Button Bild durch JSON setzen ?

NEWS

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

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

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

Button Bild durch JSON setzen ?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
10 Beiträge 3 Kommentatoren 780 Aufrufe 3 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.
  • moelskiM Offline
    moelskiM Offline
    moelski
    schrieb am zuletzt editiert von
    #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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @oliver2017
              Dann zeige deine binding Anweisung

              Wie Soll ich das sonst prüfen?

              O Offline
              O Offline
              oliver2017
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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

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

                  OliverIOO 1 Antwort Letzte Antwort
                  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

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von 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)

                    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 Antwort Letzte Antwort
                    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)

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

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

                      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
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      294

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe