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. html5 canvas selbst zeichnen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

html5 canvas selbst zeichnen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
3 Beiträge 1 Kommentatoren 581 Aufrufe 1 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.
  • J Offline
    J Offline
    jampr
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,

    ich habe mal versucht, mir ein eigenes Balkendiagramm zu erzeugen. Allerdings scheitere ich schon an diesem Beispiel.

    Wenn ich die einzelnen Codestücke in einem basic-HTML-Widget zusammenfüge, bekomme ich nur die Hintergrundstreifen in einem kleinen Bereich links oben dargestellt. Lustigerweise funktioniert sowohl die Positionierung, als auch die Darstellung in der VIS-Administration einwandfrei.

    Hat jemand nen Tipp oder Beispiel, wie ich das funktionsfähig bekomme?

    Ich habe mir auch schon flot und grafana angeschaut. Erfüllen aber beide nicht meine Wünschen.

    1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      jampr
      schrieb am zuletzt editiert von jampr
      #2

      so, ich habe es nun selbst geschafft, das in einem basicHTML-Widget darzustellen. Kann ich irgendwie aus so einem Script-Block ein sendTo benutzen? Funktioniert 'einfach so' leider nicht

      
      <script>
      var werte = ['30','15','7'];
      </script>
      
      
      <script>
      
      var dist= 15;
      var DoM = daysInMonth('07','2020');
      var font = 10;
      
      var c = document.getElementById("myCanvas");
      var ctx = c.getContext("2d");
      
      ctx.fillRect(10, 2, 1, 310);
      ctx.fillRect(1, 298, DoM *dist +8, 1);
      
      for (var i = 1; i < DoM +1; ++i) {
      ctx.save();
      
      var text, x, y;
      
      text = i;
      
      //Set font size before measuring
      ctx.font = font + 'px Arial, sans-serif';
      
      //Get width of text
      var metrics = ctx.measureText(text);
      
      //Set the drawing coordinates
      x = font / 2 + dist*i;
      y = 308;
      //Style
      ctx.fillStyle = 'black';
      ctx.textAlign = 'center';
      ctx.textBaseline = "bottom";
      //Rotate the context and draw the text
      
      ctx.translate(x, y);
      ctx.rotate(-Math.PI / 2);
      ctx.fillText(text, 0, font / 2);
      
      
      ctx.restore();
      }
      
      for (var i = 1; i < DoM +1; ++i) {
      
      
      if(i-1 in werte){
      ctx.fillRect(dist * i, 298, 8,  -werte[i-1]);
      }else{
       ctx.fillRect(dist * i, 298, 8,  0);
      }
        
      }
      
      
      function daysInMonth (month, year) { 
                      return new Date(year, month, 0).getDate(); 
      } 
      
      </script>
      
      
      <canvas id="myCanvas" width="600" height="400" style="border:1px solid #000000;">
      </canvas>
      
      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        jampr
        schrieb am zuletzt editiert von
        #3

        @jampr said in html5 canvas selbst zeichnen:

                                                                                                                                                                                <script>                                                                                                                                                                            var werte = ['30','15','7'];                                                                                                                                                                            </script>
        

        kann mir jemand vielleicht noch sagen, wie ich die Werte aus einem Datenpunkt da rein bekomme?

        var werte = getState("javascript.0.test.list_array").val;
        

        funktioniert leider nicht.

        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

        748

        Online

        32.5k

        Benutzer

        81.7k

        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