Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Material Design Widgets v0.2.x

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    925

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Test Adapter Material Design Widgets v0.2.x

Scheduled Pinned Locked Moved Tester
visadapatervisualizationmaterialwidget
902 Posts 77 Posters 247.2k Views 79 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.
  • ScroungerS Scrounger

    @liv-in-sky sagte in Test Adapter Material Design Widgets v0.2.x:

    @Scrounger

    hoffentlich poste ich diesmal im richtigen thread

    Kein Problem, ich verschiebe es dann ja entsprechend, wenns nicht passt ;-)

    habe ein seltsames problem

    habe das menu app widget - eine hauptseite mit 3 widgets - menu app, view8 und MDalarm - wenn ich einen refresh auf die seite mache kommt fehler in view - wenn ich dann einen unterpunkt auswähle kommt die ansicht - alle views sind definiert und da

    Zwei Möglichkeiten:

    • Du hast keine View für All hinterlegt
    • kein gemeinsamer Datenpunkt (type: number) für TopAppBar und View in Widget 8. Spircht dafür, weil nach dem reload dann eigentlich die View TV wieder geladen werden müsste.
    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    wrote on last edited by liv-in-sky
    #839

    @Scrounger hier noch ein bild - das passiert, wenn ich von hand in den gemeinsamen datenpunkt die zahlen eingebe
    smart17.gif

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    ScroungerS 1 Reply Last reply
    0
    • liv-in-skyL liv-in-sky

      @Scrounger hier noch ein bild - das passiert, wenn ich von hand in den gemeinsamen datenpunkt die zahlen eingebe
      smart17.gif

      ScroungerS Offline
      ScroungerS Offline
      Scrounger
      Developer
      wrote on last edited by Scrounger
      #840

      @liv-in-sky
      Die Warnmeldung kommt nicht vom MDW Adapter.

      Ich hab an der TopAppBar seit Wochen nichts am Code geändert, d.h. du musst irgendwas bei dir verändert ahben, was zu diesem Phänomen führt - View Name geändert, Adapter updates, Irgend ne Einstellung verändert.
      Im Zweifel mal beide Widgets mal löschen und neu erstellen. Sorry mehr fällt mir aktuell dazu auch nicht ein.

      Was sehr komisch ist, dass du auf der View - Menüpunkt Name 'TV' bist, einen Reload machst und dann der Menüpunkt 'All' ausgewählt ist. Das spricht dafür das der DP nicht funktioniert.

      liv-in-skyL 1 Reply Last reply
      0
      • ScroungerS Scrounger

        @liv-in-sky
        Die Warnmeldung kommt nicht vom MDW Adapter.

        Ich hab an der TopAppBar seit Wochen nichts am Code geändert, d.h. du musst irgendwas bei dir verändert ahben, was zu diesem Phänomen führt - View Name geändert, Adapter updates, Irgend ne Einstellung verändert.
        Im Zweifel mal beide Widgets mal löschen und neu erstellen. Sorry mehr fällt mir aktuell dazu auch nicht ein.

        Was sehr komisch ist, dass du auf der View - Menüpunkt Name 'TV' bist, einen Reload machst und dann der Menüpunkt 'All' ausgewählt ist. Das spricht dafür das der DP nicht funktioniert.

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        wrote on last edited by
        #841

        @Scrounger habe mal anderen datenpunkt und NUR das view8 genommen - ist die selbe reaktion - etwas anderer fehler
        wird wohl nicht an deinem widget liegen - sagen dir die meldungen irgendwas ?

        Image 3.png

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        1 Reply Last reply
        0
        • sigi234S sigi234

          @Scrounger

          Hallo, die Charts werden im Edit Modus angezeigt, aber in der Runtime nicht?

          Screenshot (2110).png

          Edit: verschoben, da Funktion / Fehler betrifft

          sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          wrote on last edited by
          #842

          @sigi234 sagte in Test Adapter Material Design Widgets v0.2.x:

          @Scrounger

          Hallo, die Charts werden im Edit Modus angezeigt, aber in der Runtime nicht?

          Screenshot (2110).png

          Edit: verschoben, da Funktion / Fehler betrifft

          Hallo, den Fehler habe ich noch immer. Keine Ahnung warum.

          Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Immer Daten sichern!

          1 Reply Last reply
          0
          • ScroungerS Scrounger

            @skokarl

            Lest Euch doch bitte mal die zwei anderen Threads durch, da wurde die Frage inkl. Beispielen bereits beantwortet...

            https://forum.iobroker.net/topic/26199/test-adapter-material-design-widgets-v0-1-x/174
            https://forum.iobroker.net/topic/26199/test-adapter-material-design-widgets-v0-1-x/188

            S Offline
            S Offline
            stockics6
            wrote on last edited by stockics6
            #843

            Kann mir jemand ein Layout für den "Line History Chart" zur Verfügung stellen?

            Möchte gerne 6 Temperaturwerte in einem Chart darstellen und einzelnd auswählen können, leider bekomme ich es aber nicht hin.
            Im VIS wird er mir ab und zu mal angezeigt aber im Browser wiederum nicht.
            16872b53-995b-40f2-92cf-d8151014e8a4-grafik.png

            Danke!

            liv-in-skyL 1 Reply Last reply
            0
            • S stockics6

              Kann mir jemand ein Layout für den "Line History Chart" zur Verfügung stellen?

              Möchte gerne 6 Temperaturwerte in einem Chart darstellen und einzelnd auswählen können, leider bekomme ich es aber nicht hin.
              Im VIS wird er mir ab und zu mal angezeigt aber im Browser wiederum nicht.
              16872b53-995b-40f2-92cf-d8151014e8a4-grafik.png

              Danke!

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #844

              @stockics6 ich habe den fehler auch - die frage war schon etwas früher- würde aber leider nicht beantwortet

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              1 Reply Last reply
              0
              • ScroungerS Offline
                ScroungerS Offline
                Scrounger
                Developer
                wrote on last edited by
                #845

                @Mic sagte in [Vorlage] Google Charts Beispiel:

                @Negalein
                Super, so soll das sein :sunglasses:

                Ich überlege gerade, ob man nicht auch das "Line History Chart" vom Materials Design Widget Adapter von @Scrounger nutzen könnte alternativ. Also noch zu prüfen, ob das Widghet ausschließlich "History"-Datenpunkte akzeptiert oder auch eigene zur Darstellung.

                Hab ein neues Widget hinzugefügt, JSON Chart. Als Quelle wird ein DP mit json string benötigt und man kann bar und line Charts mischen.

                Alle verwendbraren Properties sind hier beschrieben:
                https://github.com/Scrounger/ioBroker.vis-materialdesign#json-chart

                Beispiel:

                {
                	"axisLabels": ["Jan", "Feb", "Mrz", "asdsd"],
                	"graphs": [
                		{
                			"data": ["80.4879", "40", "10", "30"],
                			"legendText": "legend data 1",
                			"type": "bar",
                			"color": "blue",
                			"barColorHover": "blue",
                			"displayOrder": "2",
                			"tooltip_AppendText": " %",
                			"yAxis_appendix": " %",
                			"tooltip_MaxDigits": "1",
                			"yAxis_min": "0",
                			"yAxis_max": "100",
                			"yAxis_color": "red",
                			"datalabel_maxDigits": "1"
                		}, 
                		{
                			"data": ["35", "25", "88.1221243132", "10"],
                			"legendText": "legend data 2",
                			"type": "line",
                			"displayOrder": "1",
                			"line_Tension": "0.51",
                			"line_Thikness": "1",
                			"line_UseFillColor": "true",
                			"tooltip_MaxDigits": "1",
                			"tooltip_AppendText": " $",
                			"yAxis_appendix": " $",
                			"yAxis_position": "right",
                			"yAxis_title_text": "axis title",
                			"yAxis_title_color": "red",
                			"yAxis_title_fontSize": "40",
                			"yAxis_title_fontFamily": "Alegreya-BlackItalic",
                			"yAxis_gridLines_show": "false"
                		},
                		{
                			"data": ["23", "76", "66", "12"],
                			"legendText": "legend data 3",
                			"type": "bar",
                			"displayOrder": "2",
                			"tooltip_AppendText": " %",
                			"yAxis_appendix": " %",
                			"tooltip_MaxDigits": "1",
                			"yAxis_min": "0",
                			"yAxis_max": "100",
                			"yAxis_color": "red",
                			"datalabel_maxDigits": "1",
                			"yAxis_id": "0"
                		}
                	]
                }
                

                6cf18e50-b67c-48c1-b1ba-606c93f2ad8b-grafik.png

                Bitte teste den aktuellen master -> v0.2.70.

                Widget hat einen Debug Modus:
                9013da10-4572-4d36-aac9-5a3dd4039e3f-grafik.png

                Wenn dir Fehler aufallen bitte debug modus aktivieren und consolen log vom browser mit posten.

                sigi234S MicM 2 Replies Last reply
                0
                • ScroungerS Scrounger

                  @Mic sagte in [Vorlage] Google Charts Beispiel:

                  @Negalein
                  Super, so soll das sein :sunglasses:

                  Ich überlege gerade, ob man nicht auch das "Line History Chart" vom Materials Design Widget Adapter von @Scrounger nutzen könnte alternativ. Also noch zu prüfen, ob das Widghet ausschließlich "History"-Datenpunkte akzeptiert oder auch eigene zur Darstellung.

                  Hab ein neues Widget hinzugefügt, JSON Chart. Als Quelle wird ein DP mit json string benötigt und man kann bar und line Charts mischen.

                  Alle verwendbraren Properties sind hier beschrieben:
                  https://github.com/Scrounger/ioBroker.vis-materialdesign#json-chart

                  Beispiel:

                  {
                  	"axisLabels": ["Jan", "Feb", "Mrz", "asdsd"],
                  	"graphs": [
                  		{
                  			"data": ["80.4879", "40", "10", "30"],
                  			"legendText": "legend data 1",
                  			"type": "bar",
                  			"color": "blue",
                  			"barColorHover": "blue",
                  			"displayOrder": "2",
                  			"tooltip_AppendText": " %",
                  			"yAxis_appendix": " %",
                  			"tooltip_MaxDigits": "1",
                  			"yAxis_min": "0",
                  			"yAxis_max": "100",
                  			"yAxis_color": "red",
                  			"datalabel_maxDigits": "1"
                  		}, 
                  		{
                  			"data": ["35", "25", "88.1221243132", "10"],
                  			"legendText": "legend data 2",
                  			"type": "line",
                  			"displayOrder": "1",
                  			"line_Tension": "0.51",
                  			"line_Thikness": "1",
                  			"line_UseFillColor": "true",
                  			"tooltip_MaxDigits": "1",
                  			"tooltip_AppendText": " $",
                  			"yAxis_appendix": " $",
                  			"yAxis_position": "right",
                  			"yAxis_title_text": "axis title",
                  			"yAxis_title_color": "red",
                  			"yAxis_title_fontSize": "40",
                  			"yAxis_title_fontFamily": "Alegreya-BlackItalic",
                  			"yAxis_gridLines_show": "false"
                  		},
                  		{
                  			"data": ["23", "76", "66", "12"],
                  			"legendText": "legend data 3",
                  			"type": "bar",
                  			"displayOrder": "2",
                  			"tooltip_AppendText": " %",
                  			"yAxis_appendix": " %",
                  			"tooltip_MaxDigits": "1",
                  			"yAxis_min": "0",
                  			"yAxis_max": "100",
                  			"yAxis_color": "red",
                  			"datalabel_maxDigits": "1",
                  			"yAxis_id": "0"
                  		}
                  	]
                  }
                  

                  6cf18e50-b67c-48c1-b1ba-606c93f2ad8b-grafik.png

                  Bitte teste den aktuellen master -> v0.2.70.

                  Widget hat einen Debug Modus:
                  9013da10-4572-4d36-aac9-5a3dd4039e3f-grafik.png

                  Wenn dir Fehler aufallen bitte debug modus aktivieren und consolen log vom browser mit posten.

                  sigi234S Online
                  sigi234S Online
                  sigi234
                  Forum Testing Most Active
                  wrote on last edited by
                  #846

                  @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                  Als Quelle wird ein DP mit json string

                  Hm, wie und wo lege ich den DP an?

                  Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Immer Daten sichern!

                  ScroungerS 1 Reply Last reply
                  0
                  • sigi234S sigi234

                    @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                    Als Quelle wird ein DP mit json string

                    Hm, wie und wo lege ich den DP an?

                    ScroungerS Offline
                    ScroungerS Offline
                    Scrounger
                    Developer
                    wrote on last edited by
                    #847

                    @sigi234
                    Da wo du möchtest. Muss vom String sein - sorry vergess ich immer zu erwähnen ;-)

                    1 Reply Last reply
                    0
                    • ScroungerS Scrounger

                      @Mic sagte in [Vorlage] Google Charts Beispiel:

                      @Negalein
                      Super, so soll das sein :sunglasses:

                      Ich überlege gerade, ob man nicht auch das "Line History Chart" vom Materials Design Widget Adapter von @Scrounger nutzen könnte alternativ. Also noch zu prüfen, ob das Widghet ausschließlich "History"-Datenpunkte akzeptiert oder auch eigene zur Darstellung.

                      Hab ein neues Widget hinzugefügt, JSON Chart. Als Quelle wird ein DP mit json string benötigt und man kann bar und line Charts mischen.

                      Alle verwendbraren Properties sind hier beschrieben:
                      https://github.com/Scrounger/ioBroker.vis-materialdesign#json-chart

                      Beispiel:

                      {
                      	"axisLabels": ["Jan", "Feb", "Mrz", "asdsd"],
                      	"graphs": [
                      		{
                      			"data": ["80.4879", "40", "10", "30"],
                      			"legendText": "legend data 1",
                      			"type": "bar",
                      			"color": "blue",
                      			"barColorHover": "blue",
                      			"displayOrder": "2",
                      			"tooltip_AppendText": " %",
                      			"yAxis_appendix": " %",
                      			"tooltip_MaxDigits": "1",
                      			"yAxis_min": "0",
                      			"yAxis_max": "100",
                      			"yAxis_color": "red",
                      			"datalabel_maxDigits": "1"
                      		}, 
                      		{
                      			"data": ["35", "25", "88.1221243132", "10"],
                      			"legendText": "legend data 2",
                      			"type": "line",
                      			"displayOrder": "1",
                      			"line_Tension": "0.51",
                      			"line_Thikness": "1",
                      			"line_UseFillColor": "true",
                      			"tooltip_MaxDigits": "1",
                      			"tooltip_AppendText": " $",
                      			"yAxis_appendix": " $",
                      			"yAxis_position": "right",
                      			"yAxis_title_text": "axis title",
                      			"yAxis_title_color": "red",
                      			"yAxis_title_fontSize": "40",
                      			"yAxis_title_fontFamily": "Alegreya-BlackItalic",
                      			"yAxis_gridLines_show": "false"
                      		},
                      		{
                      			"data": ["23", "76", "66", "12"],
                      			"legendText": "legend data 3",
                      			"type": "bar",
                      			"displayOrder": "2",
                      			"tooltip_AppendText": " %",
                      			"yAxis_appendix": " %",
                      			"tooltip_MaxDigits": "1",
                      			"yAxis_min": "0",
                      			"yAxis_max": "100",
                      			"yAxis_color": "red",
                      			"datalabel_maxDigits": "1",
                      			"yAxis_id": "0"
                      		}
                      	]
                      }
                      

                      6cf18e50-b67c-48c1-b1ba-606c93f2ad8b-grafik.png

                      Bitte teste den aktuellen master -> v0.2.70.

                      Widget hat einen Debug Modus:
                      9013da10-4572-4d36-aac9-5a3dd4039e3f-grafik.png

                      Wenn dir Fehler aufallen bitte debug modus aktivieren und consolen log vom browser mit posten.

                      MicM Offline
                      MicM Offline
                      Mic
                      Developer
                      wrote on last edited by Mic
                      #848

                      @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                      Hab ein neues Widget hinzugefügt, JSON Chart.

                      Super Sache, vielen Dank hierfür :+1:
                      Funktioniert auch soweit gut bei mir.

                      Ein paar Vorschläge:

                      1. Tippfehler Property line_Thikness, Thikness --> Thickness

                      2. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                      3. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.
                        Use Case: Ich zeige die nächsten 7 Tage des daswetter-Adapters an. So sollte es etwa aussehen (nur ein Beispiel, Farben nicht gut gewählt usw.):
                        xx1.png
                        So sieht es aus:
                        xx2.png
                        D.h. ich möchte beiden Linien dieselben Min/Max-Grenzen für die y-Achse zuordnen, daher wären Properties wie line_boundMin und line_boundMax als JSON-Option sehr nice.
                        (die Ermittlung der min/max-Werte mache ich über JS - also kein Thema für das Widget)

                      Möchtest du Github-Issues jeweils für diese Punkte, oder passt das hier? Lege ich gerne an im Fall.

                      ScroungerS 3 Replies Last reply
                      0
                      • MicM Mic

                        @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                        Hab ein neues Widget hinzugefügt, JSON Chart.

                        Super Sache, vielen Dank hierfür :+1:
                        Funktioniert auch soweit gut bei mir.

                        Ein paar Vorschläge:

                        1. Tippfehler Property line_Thikness, Thikness --> Thickness

                        2. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                        3. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.
                          Use Case: Ich zeige die nächsten 7 Tage des daswetter-Adapters an. So sollte es etwa aussehen (nur ein Beispiel, Farben nicht gut gewählt usw.):
                          xx1.png
                          So sieht es aus:
                          xx2.png
                          D.h. ich möchte beiden Linien dieselben Min/Max-Grenzen für die y-Achse zuordnen, daher wären Properties wie line_boundMin und line_boundMax als JSON-Option sehr nice.
                          (die Ermittlung der min/max-Werte mache ich über JS - also kein Thema für das Widget)

                        Möchtest du Github-Issues jeweils für diese Punkte, oder passt das hier? Lege ich gerne an im Fall.

                        ScroungerS Offline
                        ScroungerS Offline
                        Scrounger
                        Developer
                        wrote on last edited by Scrounger
                        #849

                        @Mic sagte in Test Adapter Material Design Widgets v0.2.x:

                        1. Tippfehler Property line_Thikness, Thikness --> Thickness

                        korrigier ich

                        1. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                        gibt schon:

                        4c410f31-6120-49fb-b51f-41cfe7858399-grafik.png

                        1. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.

                        gibts schon:

                        f957ba56-561b-4296-8180-e7c23e73294d-grafik.png

                        würde in deinem Fall beiden die gleiche
                        bb19a605-891b-4b3e-8a10-be33e8763129-grafik.png

                        geben -> gemeinsame y-achse

                        MicM 1 Reply Last reply
                        0
                        • ScroungerS Scrounger

                          @Mic sagte in Test Adapter Material Design Widgets v0.2.x:

                          1. Tippfehler Property line_Thikness, Thikness --> Thickness

                          korrigier ich

                          1. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                          gibt schon:

                          4c410f31-6120-49fb-b51f-41cfe7858399-grafik.png

                          1. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.

                          gibts schon:

                          f957ba56-561b-4296-8180-e7c23e73294d-grafik.png

                          würde in deinem Fall beiden die gleiche
                          bb19a605-891b-4b3e-8a10-be33e8763129-grafik.png

                          geben -> gemeinsame y-achse

                          MicM Offline
                          MicM Offline
                          Mic
                          Developer
                          wrote on last edited by
                          #850

                          @Scrounger
                          Perfekt, danke für die Hilfe, hast ja schon wirklich alles bedacht und implementiert. Schön auch die Property yAxis_id, dann muss man nichts zusätzlich programmieren.
                          :+1:

                          ScroungerS 1 Reply Last reply
                          0
                          • MicM Mic

                            @Scrounger
                            Perfekt, danke für die Hilfe, hast ja schon wirklich alles bedacht und implementiert. Schön auch die Property yAxis_id, dann muss man nichts zusätzlich programmieren.
                            :+1:

                            ScroungerS Offline
                            ScroungerS Offline
                            Scrounger
                            Developer
                            wrote on last edited by Scrounger
                            #851

                            @Mic
                            Danke, bin mir aber ziemlich sicher das Ihr noch was findet was ich nicht bedacht habe :grin:

                            Dann entferne ich mal das Beta Label.

                            1 Reply Last reply
                            0
                            • MicM Mic

                              @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                              Hab ein neues Widget hinzugefügt, JSON Chart.

                              Super Sache, vielen Dank hierfür :+1:
                              Funktioniert auch soweit gut bei mir.

                              Ein paar Vorschläge:

                              1. Tippfehler Property line_Thikness, Thikness --> Thickness

                              2. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                              3. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.
                                Use Case: Ich zeige die nächsten 7 Tage des daswetter-Adapters an. So sollte es etwa aussehen (nur ein Beispiel, Farben nicht gut gewählt usw.):
                                xx1.png
                                So sieht es aus:
                                xx2.png
                                D.h. ich möchte beiden Linien dieselben Min/Max-Grenzen für die y-Achse zuordnen, daher wären Properties wie line_boundMin und line_boundMax als JSON-Option sehr nice.
                                (die Ermittlung der min/max-Werte mache ich über JS - also kein Thema für das Widget)

                              Möchtest du Github-Issues jeweils für diese Punkte, oder passt das hier? Lege ich gerne an im Fall.

                              ScroungerS Offline
                              ScroungerS Offline
                              Scrounger
                              Developer
                              wrote on last edited by
                              #852

                              @Mic sagte in Test Adapter Material Design Widgets v0.2.x:

                              Use Case: Ich zeige die nächsten 7 Tage des daswetter-Adapters an. So sollte es etwa aussehen (nur ein Beispiel, Farben nicht gut gewählt usw.):
                              xx1.png

                              Hab noch eingebaut, dass man Arrays für colors verwenden kann. Damit kann man dann Temperaturverläufe farbig darstellen.

                              Anbei ein Beispiel, wo ich die chroma-js lib nutze um das zu realisieren:

                              d1aaaf75-4b9d-4bbd-9c1c-9293a1d42269-grafik.png

                              Skript:

                              const chroma = require("chroma-js")
                              
                              let chart = {}
                              let values = []
                              let axisLabels = []
                              let colors = [];
                              
                              for (var i = -10; i <= 40; i++) {
                                  axisLabels.push('');
                                  values.push(i);
                              
                                  colors.push(getColor(i));
                              }
                              
                              chart = {
                                  axisLabels: axisLabels,
                                  graphs: [{
                                      data: values,
                                      type: 'line',
                                      datalabel_color: colors,
                                      line_PointColor: colors,
                                      line_PointColorBorder: colors
                                  }]
                              }
                              
                              function getColor(temp) {
                                  let scale = chroma.scale(['blue', 'orange', 'red']);
                              
                                  let tempMax = 30;
                                  let tempMin = -10;
                              
                              
                                  if (temp > tempMax) {
                                      return scale(1).hex();
                                  } else if (temp < tempMin) {
                                      return scale(0).hex();
                                  } else {
                                      return scale(temp / (tempMax - tempMin)).hex();
                                  }
                              }
                              
                              setState('0_userdata.0.chart.tempColors', JSON.stringify(chart), true);
                              

                              Verlauf für die Linienfarbe wird aktuell von der API nicht unterstützt, issue gibt es aber schon dazu:https://github.com/chartjs/Chart.js/issues/4895

                              Funktioniert mit der aktuellen master von git -> v0.2.71

                              1 Reply Last reply
                              2
                              • KLVNK Offline
                                KLVNK Offline
                                KLVN
                                wrote on last edited by Scrounger
                                #853

                                Hi,
                                ich bin gerade dabei etwas zum Repo beizutragen und wollte fragen, wie man seine eigenen Änderungen im ioBroker testet? Pushe ich die Änderungen erst in meinen Fork und installiere diesen dann mit ioBroker?
                                Und wie fasse ich die ganzen einzelnen .js-Dateien zu widgets.min.js zusammen? :thinking_face:

                                Edit: verschoben, da Frage Fehlerbehbung betrifft und nicht Widget Einstellung

                                ScroungerS 1 Reply Last reply
                                0
                                • KLVNK KLVN

                                  Hi,
                                  ich bin gerade dabei etwas zum Repo beizutragen und wollte fragen, wie man seine eigenen Änderungen im ioBroker testet? Pushe ich die Änderungen erst in meinen Fork und installiere diesen dann mit ioBroker?
                                  Und wie fasse ich die ganzen einzelnen .js-Dateien zu widgets.min.js zusammen? :thinking_face:

                                  Edit: verschoben, da Frage Fehlerbehbung betrifft und nicht Widget Einstellung

                                  ScroungerS Offline
                                  ScroungerS Offline
                                  Scrounger
                                  Developer
                                  wrote on last edited by
                                  #854

                                  @KLVN sagte in Test Adapter Material Design Widgets v0.2.x:

                                  Und wie fasse ich die ganzen einzelnen .js-Dateien zu widgets.min.js zusammen? :thinking_face:

                                  Lass die Daten am besten raus, das führe ich dann zusammen.

                                  KLVNK 1 Reply Last reply
                                  0
                                  • ScroungerS Scrounger

                                    @KLVN sagte in Test Adapter Material Design Widgets v0.2.x:

                                    Und wie fasse ich die ganzen einzelnen .js-Dateien zu widgets.min.js zusammen? :thinking_face:

                                    Lass die Daten am besten raus, das führe ich dann zusammen.

                                    KLVNK Offline
                                    KLVNK Offline
                                    KLVN
                                    wrote on last edited by
                                    #855

                                    @Scrounger Danke, habe deine Anmerkungen gerade ausgebessert.
                                    Wie kann ich meine Änderungen vorher testen? Ich weiß nicht, wie man die ganzen .min-Files erstellt und dabei sind es genau die, die ich beim Testen brauche. Die erste Änderung mit dem Tippfehler konnte ich noch auf unschöne Art in der .min fixen, aber eine weitere Sache, die ich gerne implementieren würde, hat auf diese Weise nicht so gefruchtet.

                                    ScroungerS 1 Reply Last reply
                                    0
                                    • KLVNK KLVN

                                      @Scrounger Danke, habe deine Anmerkungen gerade ausgebessert.
                                      Wie kann ich meine Änderungen vorher testen? Ich weiß nicht, wie man die ganzen .min-Files erstellt und dabei sind es genau die, die ich beim Testen brauche. Die erste Änderung mit dem Tippfehler konnte ich noch auf unschöne Art in der .min fixen, aber eine weitere Sache, die ich gerne implementieren würde, hat auf diese Weise nicht so gefruchtet.

                                      ScroungerS Offline
                                      ScroungerS Offline
                                      Scrounger
                                      Developer
                                      wrote on last edited by
                                      #856

                                      @KLVN

                                      Zu erst die .min. Dateien dürfen nicht manuell bearbeitet werden!
                                      Ich verwende VS Code mit dem Plugin Minify, dass jedesmal nach dem speichern die *.min Dateien automatisch aus allen Dateien des Ordners erzeugt.
                                      Alternativ kannst du auch in der *.html Datei die Verweise auf die *.js Dateien setzten - ist für den Beginn sicher einfacher. Wichtig Reihenfolge beachten, die helper .js dateinen müssen als erstes importiert werden.

                                      Wie man die Änderungen testen kann ist hier beschrieben:
                                      https://github.com/ioBroker/ioBroker.docs/blob/master/docs/de/dev/adaptervis.md

                                      1 Reply Last reply
                                      1
                                      • MicM Mic

                                        @Scrounger sagte in Test Adapter Material Design Widgets v0.2.x:

                                        Hab ein neues Widget hinzugefügt, JSON Chart.

                                        Super Sache, vielen Dank hierfür :+1:
                                        Funktioniert auch soweit gut bei mir.

                                        Ein paar Vorschläge:

                                        1. Tippfehler Property line_Thikness, Thikness --> Thickness

                                        2. y-Achsen-Layout: Wünschenswert wäre noch Option "Achsenberschriftung anzeigen true/false", also wie bei x-Achse. Als Workaround geht aber: Farbe auf transparent setzen.

                                        3. Würde gerne beim Hochwert (y-Achse) Minimum- und Maximum-Grenzen setzen, damit ich mehreren Linien dieselben Min/Max-Grenzen geben kann.
                                          Use Case: Ich zeige die nächsten 7 Tage des daswetter-Adapters an. So sollte es etwa aussehen (nur ein Beispiel, Farben nicht gut gewählt usw.):
                                          xx1.png
                                          So sieht es aus:
                                          xx2.png
                                          D.h. ich möchte beiden Linien dieselben Min/Max-Grenzen für die y-Achse zuordnen, daher wären Properties wie line_boundMin und line_boundMax als JSON-Option sehr nice.
                                          (die Ermittlung der min/max-Werte mache ich über JS - also kein Thema für das Widget)

                                        Möchtest du Github-Issues jeweils für diese Punkte, oder passt das hier? Lege ich gerne an im Fall.

                                        ScroungerS Offline
                                        ScroungerS Offline
                                        Scrounger
                                        Developer
                                        wrote on last edited by
                                        #857

                                        @Mic
                                        Hab nochmal nen bissle weiter am JSON Chart gebastelt. Jetzt kann man damit auch Farbverläufe für Line und Füllfarbe verwenden.

                                        Anbei ein Beispiel:
                                        e85828b0-2aad-469f-8a1c-3aac86b38ab2-grafik.png

                                        Skript:

                                        const chromaJs = require("chroma-js")
                                        
                                        let chart = {}
                                        let values = []
                                        let axisLabels = []
                                        let colors = [];
                                        
                                        let fakeLine = [];
                                        
                                        let gradientChartColors = [                                                                           // Gradient Farben für Charts, value = Temperatur
                                            { value: -20, color: '#5b2c6f' },
                                            { value: 0, color: '#2874a6' },
                                            { value: 14, color: '#73c6b6' },
                                            { value: 22, color: '#008000' },
                                            { value: 27, color: '#FFA500' },
                                            { value: 35, color: '#FF0000' }
                                        ]
                                        
                                        let gradientColors = getGradientColors(-20, 40, gradientChartColors);
                                        
                                        for (var i = -20; i <= 40; i++) {
                                            axisLabels.push('');
                                        
                                            let val = randomIntFromInterval(-15, 40)
                                        
                                            values.push(i);
                                            colors.push(gradientColors.getColorByValue(i));
                                        
                                        
                                            fakeLine.push(-20);
                                        }
                                        
                                        chart = {
                                            axisLabels: axisLabels,
                                            graphs: [
                                                {
                                                    data: values,
                                                    type: 'line',
                                                    datalabel_color: 'white',
                                                    datalabel_backgroundColor: colors,
                                                    datalabel_offset: -12,
                                                    // line_PointColor: colors,
                                                    // line_PointColorBorder: colors,
                                                    line_pointSize: 0,
                                                    line_Thickness: 3,
                                                    datalabel_show: true,
                                                    datalabel_borderRadius: 15,
                                                    legendText: 'Temperatur',
                                                    yAxis_id: 0,
                                                    yAxis_gridLines_show: true,
                                                    yAxis_gridLines_border_show: true,
                                                    yAxis_gridLines_ticks_show: true,
                                                    yAxis_showTicks: false,
                                                    yAxis_zeroLineWidth: 0.4,
                                                    line_UseFillColor: true,
                                                    datalabel_steps: 3,
                                                    use_gradient_color: true,
                                                    gradient_color: gradientChartColors,
                                                    use_line_gradient_fill_color: true,
                                                    line_gradient_fill_color: gradientColors.getGradientWithOpacity(60),
                                                    line_FillBetweenLines: '+1'
                                                },
                                                {
                                                    data: fakeLine,
                                                    type: 'line',
                                                    datalabel_color: 'transparent',
                                                    datalabel_backgroundColor: colors,
                                                    // line_PointColor: colors,
                                                    // line_PointColorBorder: colors,
                                                    line_pointSize: 0,
                                                    line_Thickness: 0,
                                                    datalabel_borderRadius: 15,
                                                    yAxis_id: 0,
                                                    datalabel_show: false,
                                                }
                                            ]
                                        }
                                        
                                        function getGradientColors(min, max, colorValArray) {
                                            let delta = max - min;
                                        
                                            let chromaColors = []
                                            let chromaDomains = [];
                                        
                                            for (const item of colorValArray) {
                                                chromaColors.push(item.color);
                                                chromaDomains.push(item.value / delta);
                                            }
                                            let chroma = chromaJs.scale(chromaColors).domain(chromaDomains);
                                        
                                            return {
                                                getColorByValue: function (val) {
                                                    if (val > max) {
                                                        return chroma(1).hex();
                                                    } else if (val < min) {
                                                        return chroma(0).hex();
                                                    } else {
                                                        return chroma(val / delta).hex();
                                                    }
                                                },
                                                getGradientWithOpacity: function (opacity) {
                                                    colorValArray.forEach(item => {
                                                        item.color = chromaJs(item.color).alpha(opacity / 100).hex();
                                                    });
                                                    return colorValArray;
                                                }
                                            }
                                        }
                                        
                                        function randomIntFromInterval(min, max) { // min and max included 
                                            return Math.floor(Math.random() * (max - min + 1) + min);
                                        }
                                        
                                        setState('0_userdata.0.chart.tempColors', JSON.stringify(chart), true);
                                        

                                        Funktioniert mit der aktuellen master von git -> v0.2.74

                                        Weiter kann man jetzt auf Füllfarbe zwischen zwei Linien realisieren, sieht dann z.B. so aus.
                                        0f86ff4a-c454-426d-ba95-2098d7e7d924-grafik.png

                                        Ein Beispiel dazu ist auch im obigen Skript - property line_FillBetweenLines

                                        D 1 Reply Last reply
                                        4
                                        • ScroungerS Scrounger

                                          @Mic
                                          Hab nochmal nen bissle weiter am JSON Chart gebastelt. Jetzt kann man damit auch Farbverläufe für Line und Füllfarbe verwenden.

                                          Anbei ein Beispiel:
                                          e85828b0-2aad-469f-8a1c-3aac86b38ab2-grafik.png

                                          Skript:

                                          const chromaJs = require("chroma-js")
                                          
                                          let chart = {}
                                          let values = []
                                          let axisLabels = []
                                          let colors = [];
                                          
                                          let fakeLine = [];
                                          
                                          let gradientChartColors = [                                                                           // Gradient Farben für Charts, value = Temperatur
                                              { value: -20, color: '#5b2c6f' },
                                              { value: 0, color: '#2874a6' },
                                              { value: 14, color: '#73c6b6' },
                                              { value: 22, color: '#008000' },
                                              { value: 27, color: '#FFA500' },
                                              { value: 35, color: '#FF0000' }
                                          ]
                                          
                                          let gradientColors = getGradientColors(-20, 40, gradientChartColors);
                                          
                                          for (var i = -20; i <= 40; i++) {
                                              axisLabels.push('');
                                          
                                              let val = randomIntFromInterval(-15, 40)
                                          
                                              values.push(i);
                                              colors.push(gradientColors.getColorByValue(i));
                                          
                                          
                                              fakeLine.push(-20);
                                          }
                                          
                                          chart = {
                                              axisLabels: axisLabels,
                                              graphs: [
                                                  {
                                                      data: values,
                                                      type: 'line',
                                                      datalabel_color: 'white',
                                                      datalabel_backgroundColor: colors,
                                                      datalabel_offset: -12,
                                                      // line_PointColor: colors,
                                                      // line_PointColorBorder: colors,
                                                      line_pointSize: 0,
                                                      line_Thickness: 3,
                                                      datalabel_show: true,
                                                      datalabel_borderRadius: 15,
                                                      legendText: 'Temperatur',
                                                      yAxis_id: 0,
                                                      yAxis_gridLines_show: true,
                                                      yAxis_gridLines_border_show: true,
                                                      yAxis_gridLines_ticks_show: true,
                                                      yAxis_showTicks: false,
                                                      yAxis_zeroLineWidth: 0.4,
                                                      line_UseFillColor: true,
                                                      datalabel_steps: 3,
                                                      use_gradient_color: true,
                                                      gradient_color: gradientChartColors,
                                                      use_line_gradient_fill_color: true,
                                                      line_gradient_fill_color: gradientColors.getGradientWithOpacity(60),
                                                      line_FillBetweenLines: '+1'
                                                  },
                                                  {
                                                      data: fakeLine,
                                                      type: 'line',
                                                      datalabel_color: 'transparent',
                                                      datalabel_backgroundColor: colors,
                                                      // line_PointColor: colors,
                                                      // line_PointColorBorder: colors,
                                                      line_pointSize: 0,
                                                      line_Thickness: 0,
                                                      datalabel_borderRadius: 15,
                                                      yAxis_id: 0,
                                                      datalabel_show: false,
                                                  }
                                              ]
                                          }
                                          
                                          function getGradientColors(min, max, colorValArray) {
                                              let delta = max - min;
                                          
                                              let chromaColors = []
                                              let chromaDomains = [];
                                          
                                              for (const item of colorValArray) {
                                                  chromaColors.push(item.color);
                                                  chromaDomains.push(item.value / delta);
                                              }
                                              let chroma = chromaJs.scale(chromaColors).domain(chromaDomains);
                                          
                                              return {
                                                  getColorByValue: function (val) {
                                                      if (val > max) {
                                                          return chroma(1).hex();
                                                      } else if (val < min) {
                                                          return chroma(0).hex();
                                                      } else {
                                                          return chroma(val / delta).hex();
                                                      }
                                                  },
                                                  getGradientWithOpacity: function (opacity) {
                                                      colorValArray.forEach(item => {
                                                          item.color = chromaJs(item.color).alpha(opacity / 100).hex();
                                                      });
                                                      return colorValArray;
                                                  }
                                              }
                                          }
                                          
                                          function randomIntFromInterval(min, max) { // min and max included 
                                              return Math.floor(Math.random() * (max - min + 1) + min);
                                          }
                                          
                                          setState('0_userdata.0.chart.tempColors', JSON.stringify(chart), true);
                                          

                                          Funktioniert mit der aktuellen master von git -> v0.2.74

                                          Weiter kann man jetzt auf Füllfarbe zwischen zwei Linien realisieren, sieht dann z.B. so aus.
                                          0f86ff4a-c454-426d-ba95-2098d7e7d924-grafik.png

                                          Ein Beispiel dazu ist auch im obigen Skript - property line_FillBetweenLines

                                          D Online
                                          D Online
                                          darkiop
                                          Most Active
                                          wrote on last edited by
                                          #858

                                          @Scrounger Sieht Spannend aus. Hast du schon ein Beispiel wie man aus einem DP mit SQL Historie das neue Chart befüllen kann?

                                          Proxmox-ioBroker-Redis-HA Doku: https://forum.iobroker.net/topic/47478/dokumentation-einer-proxmox-iobroker-redis-ha-umgebung

                                          ScroungerS 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

                                          384

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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