Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Eigenes Widget erstellen und mit Daten füllen

NEWS

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

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

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

Eigenes Widget erstellen und mit Daten füllen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
25 Beiträge 5 Kommentatoren 1.1k Aufrufe 4 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.
  • HomoranH Homoran

    @mattes-0 sagte in Eigenes Widget erstellen und mit Daten füllen:

    Trotzdem schreibe ich sowas nicht grundlos oder leichtfertig

    doch es ist leichtfertig!
    Solche Posts fürhren regelmäßig zu Shitstormähnlichen Threads, dass hier bald alles gebührenpflichtig wird.
    Das wird es nicht!

    egal welche Erfahrungen du gemacht haben willst.
    Das hier ist eine Community

    Da gibt es eher die User, die ein ähnliches Verhalten wie du an den Tag legen, und sich hier beraten lassen, um anschließend das Ergebnis gewerblich zu nutzen.

    M Offline
    M Offline
    Mattes 0
    schrieb am zuletzt editiert von
    #21

    @homoran tut mir aufrichtig leid, denn das war nicht meine Absicht.

    Wie bereits erwähnt, Erfahrungen in dieser Hinsicht sind scheinbar bei mehreren vorhanden, aber deshalb einen shitstorm veranstalten weil's hier vielleicht, vielleicht auch nicht so kommen könnte ist mega übertrieben und unfair euch gegenüber.

    1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @mattes-0 sagte in Eigenes Widget erstellen und mit Daten füllen:

      @oliverio funktioniert nicht, Meldung kommt das er das template/widget nicht kennt(unbekannter Widget-Typ),

      so, du hast recht. ich habe noch ein problem im adapter gefunden, der dafür gesorgt hat. leider habe ich das nicht rechtzeitig entdeckt, da das nur dann auftritt, wenn man den adapter regulär installiert. in der dev umgebung ist jeweils edit und runtime alles gelaufen.

      das problem ist hoffentlich in der version 4.1.0 des adapters behoben.

      ich wollte eigentlich das ganze komplett ohne Vis oder Vis2 umsetzen.

      komplett ohne irgendeine visualisierung?
      du meinst wahrscheinlich ohne das vis-template. wie gesagt. du kannst jederzeit über deine grafik die normalen widgets legen, die sich dann normal mit den daten aktualisieren. allerdings wird es dann bei deinem nächsten wunsch da schon wieder schwieriger

      Wie blende ich aber die Animationen ein bzw aus?

      als du meinst die linien. meinst du den alle linien im einzelnen. oder alle linien gesamt? dann wahrscheinlich ersteres. dazu müsstest du jede einzelne linie in eine eigene grafik/svg packen. das dann alles übereinander stapeln(layern). über den abschnitt sichtbarkeit in der widgetkonfiguration (also bspw html) kannst du dann die sichtbarkeit über datenpunkte steuern und so ein layer/also einzelne linie ein oder ausblenden.

      Hatte gedacht ich könnte "boolsches SVG" nutzen, dort je eine Line mit bzw ohne animation eintragen und das ganze mit einem Datenpunkt verbinden, den ich auf True oder False setzen kann .... nur wird mir keine Line angezeigt, egal ob true oder false ....

      zeige das bitte als beispiel. das kommt darauf an wo/wie du das da eingetragen hast. theoretisch könnte man das per binding in die svg eintragen. da muss man aber immer genau schauen, was das jeweilige binding da konkret ausgibt, ansonste interpretiert der browser das falsch.

      und jetzt habe ich eine Lösung gefunden - ich setze statt bolsches svg ein weiteres Basic HTML Widget ein und blende dessen line ein bzw aus.

      das hatte beschrieben. werden dann wahrscheinlich dann sehr viele widgets übereinander, was dann die bearbeitung etwas komplizierter macht. es gibt eine Lock-Funktion, die ein widget vor versehentlichem verschieben schützt.

      mit dem json-template wäre das ebenfalls möglich. neben dem true/false setzen hättest du da auch die möglichkeit datenpunkt abhängig jeden einzelne linie zu rendern oder nicht.

      denke daran, das svg nicht zu komplex zu machen, da bei jeder einzelnen änderung das html widget seinen inhalt komplett entfernt und neu einfügt. wenn der inhalt zu komplex ist kann das durch ein kleines flackern sichtbar werden. wenn dann dazu noch sehr häufige änderungen der daten vorkommen, dann sieht man das. hängt aber auch von der performance des anzeigegeräts ab.

      hier habe ich mal so ein liniendemo gemacht. wieder als widget zum importieren

      f2789709-1f52-428e-a130-82d96074d441-20250912-0054-42.6217983.mp4

      [
       {
         "tpl": "tplJSONTemplate4",
         "data": {
           "bindings": [],
           "oid": "nothing_selected",
           "dpcount": 3,
           "g_common": true,
           "template": "<% debugger; %>\r\n<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\r\n<svg version=\"1.2\" width=\"297mm\" height=\"210mm\" viewBox=\"0 0 29700 21000\" preserveAspectRatio=\"xMidYMid\" fill-rule=\"evenodd\" stroke-width=\"28.222\" stroke-linejoin=\"round\" xml:space=\"preserve\" id=\"svg14\"\r\n\txmlns=\"http://www.w3.org/2000/svg\"\r\n\txmlns:svg=\"http://www.w3.org/2000/svg\">\r\n\t<defs id=\"defs14\"/>&#10; \t\r\n\t<g visibility=\"visible\" id=\"MasterSlide_1_Default\">&#10; \t\t\r\n\t\t<desc id=\"desc1\">Master slide&#10;</desc>&#10; \t\t\r\n\t\t<rect fill=\"none\" stroke=\"none\" x=\"0\" y=\"0\" width=\"29700\" height=\"21000\" id=\"rect1\"/>&#10; \t\r\n\t</g>&#10;&#10; \t\r\n\t<g visibility=\"visible\" id=\"Slide_1_page1\">&#10; \t\t\r\n\t\t<g id=\"Speicher\">&#10; \t\t\t\r\n\t\t\t<path fill=\"rgb(255,255,255)\" stroke=\"none\" d=\"M 22750,10500 C 22375,10500 22000,10875 22000,11250 L 22000,17250 C 22000,17625 22375,18001 22750,18001 L 25750,18001 C 26125,18001 26501,17625 26501,17250 L 26501,11250 C 26501,10875 26125,10500 25750,10500 L 22750,10500 Z\" id=\"path1\"/>&#10; \t\t\t\r\n\t\t\t<path fill=\"none\" stroke=\"rgb(0,0,0)\" id=\"Drawing_1_0\" stroke-linejoin=\"round\" d=\"M 22750,10500 C 22375,10500 22000,10875 22000,11250 L 22000,17250 C 22000,17625 22375,18001 22750,18001 L 25750,18001 C 26125,18001 26501,17625 26501,17250 L 26501,11250 C 26501,10875 26125,10500 25750,10500 L 22750,10500 Z\"/>&#10; \t\t\t\r\n\t\t\t<rect fill=\"none\" stroke=\"none\" x=\"22000\" y=\"10500\" width=\"4501\" height=\"7501\" id=\"rect2\"/>&#10;&#10; \t\t\r\n\t\t</g>&#10;&#10; \t\t\r\n\t\t<g id=\"Puffer\">&#10; \t\t\t\r\n\t\t\t<path fill=\"rgb(255,255,255)\" stroke=\"none\" d=\"M 9250,10500 C 8875,10500 8500,10875 8500,11250 L 8500,17250 C 8500,17625 8875,18001 9250,18001 L 12250,18001 C 12625,18001 13001,17625 13001,17250 L 13001,11250 C 13001,10875 12625,10500 12250,10500 L 9250,10500 Z\" id=\"path2\"/>&#10; \t\t\t\r\n\t\t\t<path fill=\"none\" stroke=\"rgb(0,0,0)\" id=\"Drawing_2_0\" stroke-linejoin=\"round\" d=\"M 9250,10500 C 8875,10500 8500,10875 8500,11250 L 8500,17250 C 8500,17625 8875,18001 9250,18001 L 12250,18001 C 12625,18001 13001,17625 13001,17250 L 13001,11250 C 13001,10875 12625,10500 12250,10500 L 9250,10500 Z\"/>&#10; \t\t\t\r\n\t\t\t<rect fill=\"none\" stroke=\"none\" x=\"8500\" y=\"10500\" width=\"4501\" height=\"7501\" id=\"rect3\"/>&#10; \t\t\r\n\t\t</g>&#10;&#10; \t\t\r\n\t\t<g id=\"Solar\">&#10; \t\t\t\r\n\t\t\t<path fill=\"rgb(255,255,255)\" stroke=\"none\" d=\"M 3625,3500 L 7001,3500 5875,6501 2500,6501 3625,3500 Z\" id=\"path3\"/>&#10; \t\t\t\r\n\t\t\t<path fill=\"none\" stroke=\"rgb(0,0,0)\" id=\"Drawing_3_0\" stroke-linejoin=\"round\" d=\"M 3625,3500 L 7001,3500 5875,6501 2500,6501 3625,3500 Z\"/>&#10; \t\t\t\r\n\t\t\t<rect fill=\"none\" stroke=\"none\" x=\"2500\" y=\"3500\" width=\"4501\" height=\"3001\" id=\"rect4\"/>&#10; \t\t\r\n\t\t</g>&#10;&#10; \t\t\r\n\t\t<g id=\"WP_PU\">&#10; \t\t\t\r\n\t\t\t<path fill=\"rgb(255,255,255)\" stroke=\"none\" d=\"M 6000,19500 L 4000,19500 4000,17500 8000,17500 8000,19500 6000,19500 Z\" id=\"path4\"/>&#10; \t\t\t\r\n\t\t\t<path fill=\"none\" stroke=\"rgb(0,0,0)\" stroke-linejoin=\"round\" d=\"M 6000,19500 L 4000,19500 4000,17500 8000,17500 8000,19500 6000,19500 Z\" id=\"path5\"/>&#10; \t\t\r\n\t\t</g>&#10; \t\t\r\n\t\t<g id=\"Heizen\">&#10; \t\t\t\r\n\t\t\t<path fill=\"rgb(255,255,255)\" stroke=\"none\" d=\"M 18000,4000 L 15500,4000 15500,1500 20500,1500 20500,4000 18000,4000 Z\" id=\"path6\"/>&#10; \t\t\t\r\n\t\t\t<path fill=\"none\" stroke=\"rgb(0,0,0)\" stroke-linejoin=\"round\" d=\"M 18000,4000 L 15500,4000 15500,1500 20500,1500 20500,4000 18000,4000 Z\" id=\"path7\"/>&#10; \t\t\t\r\n\t\t\t<text xml:space=\"preserve\" style=\"font-size:493.889px;fill:#000000;stroke-width:746.707\" x=\"16243.243\" y=\"2189.1892\" id=\"text14\">\r\n\t\t\t\t<tspan id=\"tspan14\" style=\"font-size:493.889px;stroke-width:746.707\" x=\"16243.243\" y=\"2189.1892\">test1: <%- dp[\"0_userdata.0.val1\"] %>\r\n\t\t\t\t</tspan>\r\n\t\t\t</text>\r\n\t\t\t<text xml:space=\"preserve\" style=\"font-size:493.89px;fill:#000000;stroke-width:746.707\" x=\"16222.973\" y=\"2918.9187\" id=\"text15\">\r\n\t\t\t\t<tspan id=\"tspan15\" style=\"stroke-width:746.707\" x=\"16222.973\" y=\"2918.9187\">test2: <%- dp[\"0_userdata.0.val2\"] %>\r\n\t\t\t\t</tspan>\r\n\t\t\t</text>\r\n\t\t</g>&#10;&#10;&#10;\r\n<% debugger; if (dp[\"0_userdata.0.val3\"]) { %>\t\t\r\n\t\t<line id=\"von_Puffer_an_Heizen_VL\" x1=\"15000\" y1=\"2500\" x2=\"15500\" y2=\"2500\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \r\n\t\r\n\t\t<line id=\"line7\" x1=\"15000\" y1=\"2500\" x2=\"15000\" y2=\"11000\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \r\n\t\t<line id=\"line8\" x1=\"13000\" y1=\"11000\" x2=\"15000\" y2=\"11000\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10;&#10;&#10;&#10;&#10; \t\t\r\n<% } %>\t\t\t\r\n\r\n\t\t<line id=\"von_Solar_an_Puffer_VL\" x1=\"13000\" y1=\"11500\" x2=\"18000\" y2=\"11500\" stroke=\"#FF5500\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10;&#10; \t\t\r\n\t\t<line id=\"von_Puffer_an_Speicher_RL\" x1=\"13001\" y1=\"16200\" x2=\"22000\" y2=\"16200\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10;&#10;&#10; \t\t\r\n\t\t<line id=\"Puffer_Speicher_VL\" x1=\"13001\" y1=\"11200\" x2=\"22000\" y2=\"11200\" stroke=\"#FF00F0\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10; \t\t\r\n\t\t<line id=\"Puffer_Speicher_VL_1\" x1=\"18000\" y1=\"11500\" x2=\"22000\" y2=\"11500\" stroke=\"#FF5500\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"Puffer_Speicher_RL\" x1=\"13001\" y1=\"16000\" x2=\"17600\" y2=\"16000\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"Puffer_Speicher_RL_1\" x1=\"17600\" y1=\"16000\" x2=\"22000\" y2=\"16000\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10;&#10; \t\t\r\n\t\t<line id=\"Speicher_Solar_VL_1\" x1=\"7001\" y1=\"3600\" x2=\"7001\" y2=\"7001\" stroke=\"#FF5500\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"Speicher_Solar_VL_2\" x1=\"7001\" y1=\"7001\" x2=\"18000\" y2=\"7001\" stroke=\"#FF5500\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"Speicher_Solar_VL_3\" x1=\"18000\" y1=\"7001\" x2=\"18000\" y2=\"11500\" stroke=\"#FF5500\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"Speicher_Solar_RL_1\" x1=\"6000\" y1=\"6000\" x2=\"6000\" y2=\"7600\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line9\" x1=\"6000\" y1=\"7600\" x2=\"17600\" y2=\"7600\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line10\" x1=\"17600\" y1=\"7600\" x2=\"17600\" y2=\"16000\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10; \t\t\r\n\t\t<line id=\"Speicher_WWPU_VL_\" x1=\"8000\" y1=\"18600\" x2=\"17000\" y2=\"18600\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line11\" x1=\"17000\" y1=\"18600\" x2=\"17000\" y2=\"11600\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line12\" x1=\"17000\" y1=\"11600\" x2=\"22000\" y2=\"11600\" stroke=\"#FF0000\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"-240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10;&#10;&#10; \t\t\r\n\t\t<line id=\"Speicher_WWPU_RL_\" x1=\"8000\" y1=\"19000\" x2=\"17500\" y2=\"19000\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line13\" x1=\"17500\" y1=\"19000\" x2=\"17500\" y2=\"16500\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10; \t\t\r\n\t\t<line id=\"line14\" x1=\"17500\" y1=\"16500\" x2=\"22000\" y2=\"16500\" stroke=\"#0000FF\" stroke-width=\"60\" stroke-linecap=\"round\" stroke-dasharray=\"120 120\" stroke-dashoffset=\"0\">&#10; \t\t\t\r\n\t\t\t<animate attributeName=\"stroke-dashoffset\" from=\"0\" to=\"240\" dur=\"1s\" repeatCount=\"indefinite\"/>&#10; \t\t\r\n\t\t</line>&#10;&#10; \t\r\n\t</g>&#10; \r\n</svg>",
           "g_datapoints-0": true,
           "g_datapoints-1": true,
           "g_datapoints-2": true,
           "datapoint-oid1": "0_userdata.0.val1",
           "datapoint-oid2": "0_userdata.0.val2",
           "g_datapoints-3": true,
           "datapoint-oid3": "0_userdata.0.val3"
         },
         "style": {
           "bindings": [],
           "left": -220,
           "top": -165,
           "width": "1030px",
           "height": "753px",
           "transform": "scale(0.5)"
         },
         "widgetSet": "vis-jsontemplate",
         "_id": "i000001"
       }
      ]
      

      M Offline
      M Offline
      Mattes 0
      schrieb am zuletzt editiert von
      #22

      @oliverio ich bin mir noch nicht ganz sicher ob ich das jetzt wirklich mit so vielen Widgets machen möchte oder ob ich die Linien bspw mit CSS dynamisch ein und ausblenden möchte - oder Javascript... das mit dem übereinander legen funktioniert in habpanel nicht, deshalb Anfangs die Verwirrung.

      Ist schon bisschen was her das ich mit dem Thema zu tun hatte - zuletzt mein Lebenslauf, auf allen Browsern und allen Displays exakt die selbe Seite darzustellen war damals sehr aufwendig.

      Bei meiner letzten Steuerung habe ich die Daten mit einem Python Script von den arduinos gesammelt und mit einem anderen regelmäßig die HTML Seiten gebastelt... das ging relativ lange und sehr zuverlässig, aber kein Vergleich zu dem was jetzt geht.

      Ich habe auch am 24. mündliche Prüfung, also eigentlich kaum Zeit für so Spielereien ... und schon habe ich die nächste Idee, was ich mit SVG (ohne iobroker) etc. noch anstellen kann... aber erst nach der Prüfung.

      OliverIOO 1 Antwort Letzte Antwort
      0
      • M Mattes 0

        @oliverio ich bin mir noch nicht ganz sicher ob ich das jetzt wirklich mit so vielen Widgets machen möchte oder ob ich die Linien bspw mit CSS dynamisch ein und ausblenden möchte - oder Javascript... das mit dem übereinander legen funktioniert in habpanel nicht, deshalb Anfangs die Verwirrung.

        Ist schon bisschen was her das ich mit dem Thema zu tun hatte - zuletzt mein Lebenslauf, auf allen Browsern und allen Displays exakt die selbe Seite darzustellen war damals sehr aufwendig.

        Bei meiner letzten Steuerung habe ich die Daten mit einem Python Script von den arduinos gesammelt und mit einem anderen regelmäßig die HTML Seiten gebastelt... das ging relativ lange und sehr zuverlässig, aber kein Vergleich zu dem was jetzt geht.

        Ich habe auch am 24. mündliche Prüfung, also eigentlich kaum Zeit für so Spielereien ... und schon habe ich die nächste Idee, was ich mit SVG (ohne iobroker) etc. noch anstellen kann... aber erst nach der Prüfung.

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

        @mattes-0

        ohne das widget kannst du im svg an das jeweilige liniensegment folgenden ausdruck hinzufügen

        visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" 
        

        so dass ein komplettes liniensegment
        wie folgt aussieht

        <line visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" id="von_Puffer_an_Heizen_VL" x1="15000" y1="2500" x2="15500" y2="2500" stroke="#FF0000" stroke-width="60" stroke-linecap="round" stroke-dasharray="120 120" stroke-dashoffset="0">&#10; 			
            <animate attributeName="stroke-dashoffset" from="0" to="-240" dur="1s" repeatCount="indefinite"/>&#10; 		
        </line>
        

        wenn du dann noch einen datenpunkt vom typ boolean hast, kannst du die visibility des elements darüber steuern. der ausdruck ist relativ einfach zu lesen.
        {val:0_userdata.0.val3;debugger;val?"visible":"hidden"}

        {} innerhalb der Klammern erkennt vis den binding ausdruck
        val:0_userdata.0.val3;debugger weise der variable val den inhalt des datenpunkts zu
        val?"visible":"hidden" prüfe die variable val, wenn wahr gebe das hinter dem fragezeichen aus, wenn falsch, dann das hinter dem doppelpunkt.
        so wird dynamisch die visibility des elements wahlweise auf visible oder hidden gestellt.

        da eine linie bei dir aus mehreren segmenten bestellt, muss man zu jedem einzelnen liniensegment die gleiche prüfung hinzufügen.

        ohne javascript geht, aber ohne boolsche logik wird es dann bei so einer steuerung schwierig.

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

        M 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @mattes-0

          ohne das widget kannst du im svg an das jeweilige liniensegment folgenden ausdruck hinzufügen

          visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" 
          

          so dass ein komplettes liniensegment
          wie folgt aussieht

          <line visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" id="von_Puffer_an_Heizen_VL" x1="15000" y1="2500" x2="15500" y2="2500" stroke="#FF0000" stroke-width="60" stroke-linecap="round" stroke-dasharray="120 120" stroke-dashoffset="0">&#10; 			
              <animate attributeName="stroke-dashoffset" from="0" to="-240" dur="1s" repeatCount="indefinite"/>&#10; 		
          </line>
          

          wenn du dann noch einen datenpunkt vom typ boolean hast, kannst du die visibility des elements darüber steuern. der ausdruck ist relativ einfach zu lesen.
          {val:0_userdata.0.val3;debugger;val?"visible":"hidden"}

          {} innerhalb der Klammern erkennt vis den binding ausdruck
          val:0_userdata.0.val3;debugger weise der variable val den inhalt des datenpunkts zu
          val?"visible":"hidden" prüfe die variable val, wenn wahr gebe das hinter dem fragezeichen aus, wenn falsch, dann das hinter dem doppelpunkt.
          so wird dynamisch die visibility des elements wahlweise auf visible oder hidden gestellt.

          da eine linie bei dir aus mehreren segmenten bestellt, muss man zu jedem einzelnen liniensegment die gleiche prüfung hinzufügen.

          ohne javascript geht, aber ohne boolsche logik wird es dann bei so einer steuerung schwierig.

          M Offline
          M Offline
          Mattes 0
          schrieb am zuletzt editiert von
          #24

          @oliverio said in Eigenes Widget erstellen und mit Daten füllen:

          visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}"

          es funktioniert echt wunderbar - danke für deine hilfe!

          @oliverio said in Eigenes Widget erstellen und mit Daten füllen:

          @mattes-0

          ohne das widget kannst du im svg an das jeweilige liniensegment folgenden ausdruck hinzufügen

          visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" 
          

          so dass ein komplettes liniensegment
          wie folgt aussieht

          <line visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" id="von_Puffer_an_Heizen_VL" x1="15000" y1="2500" x2="15500" y2="2500" stroke="#FF0000" stroke-width="60" stroke-linecap="round" stroke-dasharray="120 120" stroke-dashoffset="0">&#10; 			
              <animate attributeName="stroke-dashoffset" from="0" to="-240" dur="1s" repeatCount="indefinite"/>&#10; 		
          </line>
          

          wenn du dann noch einen datenpunkt vom typ boolean hast, kannst du die visibility des elements darüber steuern. der ausdruck ist relativ einfach zu lesen.
          {val:0_userdata.0.val3;debugger;val?"visible":"hidden"}

          {} innerhalb der Klammern erkennt vis den binding ausdruck
          val:0_userdata.0.val3;debugger weise der variable val den inhalt des datenpunkts zu
          val?"visible":"hidden" prüfe die variable val, wenn wahr gebe das hinter dem fragezeichen aus, wenn falsch, dann das hinter dem doppelpunkt.
          so wird dynamisch die visibility des elements wahlweise auf visible oder hidden gestellt.

          da eine linie bei dir aus mehreren segmenten bestellt, muss man zu jedem einzelnen liniensegment die gleiche prüfung hinzufügen.

          ohne javascript geht, aber ohne boolsche logik wird es dann bei so einer steuerung schwierig.

          OliverIOO 1 Antwort Letzte Antwort
          0
          • M Mattes 0

            @oliverio said in Eigenes Widget erstellen und mit Daten füllen:

            visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}"

            es funktioniert echt wunderbar - danke für deine hilfe!

            @oliverio said in Eigenes Widget erstellen und mit Daten füllen:

            @mattes-0

            ohne das widget kannst du im svg an das jeweilige liniensegment folgenden ausdruck hinzufügen

            visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" 
            

            so dass ein komplettes liniensegment
            wie folgt aussieht

            <line visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}" id="von_Puffer_an_Heizen_VL" x1="15000" y1="2500" x2="15500" y2="2500" stroke="#FF0000" stroke-width="60" stroke-linecap="round" stroke-dasharray="120 120" stroke-dashoffset="0">&#10; 			
                <animate attributeName="stroke-dashoffset" from="0" to="-240" dur="1s" repeatCount="indefinite"/>&#10; 		
            </line>
            

            wenn du dann noch einen datenpunkt vom typ boolean hast, kannst du die visibility des elements darüber steuern. der ausdruck ist relativ einfach zu lesen.
            {val:0_userdata.0.val3;debugger;val?"visible":"hidden"}

            {} innerhalb der Klammern erkennt vis den binding ausdruck
            val:0_userdata.0.val3;debugger weise der variable val den inhalt des datenpunkts zu
            val?"visible":"hidden" prüfe die variable val, wenn wahr gebe das hinter dem fragezeichen aus, wenn falsch, dann das hinter dem doppelpunkt.
            so wird dynamisch die visibility des elements wahlweise auf visible oder hidden gestellt.

            da eine linie bei dir aus mehreren segmenten bestellt, muss man zu jedem einzelnen liniensegment die gleiche prüfung hinzufügen.

            ohne javascript geht, aber ohne boolsche logik wird es dann bei so einer steuerung schwierig.

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

            @mattes-0 sagte in Eigenes Widget erstellen und mit Daten füllen:

            visibility="{val:0_userdata.0.val3;debugger;val?"visible":"hidden"}"

            super aber mir ist da noch was reingerutscht.
            bitte

            visibility="{val:0_userdata.0.val3;val?"visible":"hidden"}" 
            
            

            ohne debugger verwenden

            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

            849

            Online

            32.4k

            Benutzer

            81.5k

            Themen

            1.3m

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

            • Du hast noch kein Konto? Registrieren

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