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. Error/Bug
  4. Javascript in HTML Widget hat View "unbrauchbar" gemacht

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

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

Javascript in HTML Widget hat View "unbrauchbar" gemacht

Geplant Angeheftet Gesperrt Verschoben Error/Bug
10 Beiträge 3 Kommentatoren 716 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    lysy23
    schrieb am zuletzt editiert von lysy23
    #1

    Hallo,

    ich wollte mit einem Script die Kalenderwochen anzeigen lassen. Dabei habe ich ein HTML Widget erstellt und dort den script kopiert. Wenn ich jetzt auf View "HOME" klicke kommt nur eine weise Seite mit ne Zahle 31 ( 31 Kalenderwoche).
    Das Problem ist, ich kann jetzt auf mein View "HOME" nicht zugreifen bzw. editieren. Wie bekomme ich den Script wieder gelöscht?

    Script Kalenderwoche :

    <script>
    var date = new Date();
    
    // Get thursday
    // In JavaScript the Sunday has value 0 as return value of getDay() function.
    // So we have to order them first ascending from Monday to Sunday
    // Monday: ((1+6) % 7) = 0
    // Tuesday ((2+6) % 7) = 1
    // Wednesday: ((3+6) % 7) = 2
    // Thursday: ((4+6) % 7) = 3
    // Friday: ((5+6) % 7) = 4
    // Saturday: ((6+6) % 7) = 5
    // Sunday: ((0+6) % 7) = 6
    // (3 - result) is necessary to get the Thursday of the current week.
    // If we want to have Tuesday it would be (1-result)
    var currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000);
    
    // At the beginnig or end of a year the thursday could be in another year.
    var yearOfThursday = currentThursday.getFullYear();
    
    // Get first Thursday of the year
    var firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000);
    
    // +1 we start with week number 1
    // +0.5 an easy and dirty way to round result (in combinationen with Math.floor)
    var weekNumber = Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7);
    
    document.write(weekNumber);
    </script> 
    

    io1.JPG
    io2.JPG

    OliverIOO 1 Antwort Letzte Antwort
    0
    • L lysy23

      Hallo,

      ich wollte mit einem Script die Kalenderwochen anzeigen lassen. Dabei habe ich ein HTML Widget erstellt und dort den script kopiert. Wenn ich jetzt auf View "HOME" klicke kommt nur eine weise Seite mit ne Zahle 31 ( 31 Kalenderwoche).
      Das Problem ist, ich kann jetzt auf mein View "HOME" nicht zugreifen bzw. editieren. Wie bekomme ich den Script wieder gelöscht?

      Script Kalenderwoche :

      <script>
      var date = new Date();
      
      // Get thursday
      // In JavaScript the Sunday has value 0 as return value of getDay() function.
      // So we have to order them first ascending from Monday to Sunday
      // Monday: ((1+6) % 7) = 0
      // Tuesday ((2+6) % 7) = 1
      // Wednesday: ((3+6) % 7) = 2
      // Thursday: ((4+6) % 7) = 3
      // Friday: ((5+6) % 7) = 4
      // Saturday: ((6+6) % 7) = 5
      // Sunday: ((0+6) % 7) = 6
      // (3 - result) is necessary to get the Thursday of the current week.
      // If we want to have Tuesday it would be (1-result)
      var currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000);
      
      // At the beginnig or end of a year the thursday could be in another year.
      var yearOfThursday = currentThursday.getFullYear();
      
      // Get first Thursday of the year
      var firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000);
      
      // +1 we start with week number 1
      // +0.5 an easy and dirty way to round result (in combinationen with Math.floor)
      var weekNumber = Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7);
      
      document.write(weekNumber);
      </script> 
      

      io1.JPG
      io2.JPG

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

      @lysy23
      Kein guter Befehl für vis
      Lese auf folgender Seite insbesondere den ersten Kasten.
      https://developer.mozilla.org/de/docs/Web/API/Document/write#:~:text=Document.-,write(),Stream%2C der zuvor mittels document.
      Damit leerst du den kompletten browserinhalt und schreibst das rein was in weekNumber steht.

      Zum Testen ist der Befehl console.debug(weekNumber);
      besser.
      Zur Ausgabe von dynamischen Inhalten aus einem html Widget heraus, muss man ein paar Dinge beachten, da vis die Elemente dynamisch aufbaut. Besser ist

      <div id=„Meinelement“>
      <\div>
      <script>
      // hier dein Script von oben ohne das document.write
      
      var el = document.getElementById(„Meinelement“);
      el. innerHTML(weekNumber);
      <\script>
      

      Kann noch Fehler enthalten da am Tablet direkt getippt
      Auch die Anführungsstriche bitte noch korrigieren

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

      L 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @lysy23
        Kein guter Befehl für vis
        Lese auf folgender Seite insbesondere den ersten Kasten.
        https://developer.mozilla.org/de/docs/Web/API/Document/write#:~:text=Document.-,write(),Stream%2C der zuvor mittels document.
        Damit leerst du den kompletten browserinhalt und schreibst das rein was in weekNumber steht.

        Zum Testen ist der Befehl console.debug(weekNumber);
        besser.
        Zur Ausgabe von dynamischen Inhalten aus einem html Widget heraus, muss man ein paar Dinge beachten, da vis die Elemente dynamisch aufbaut. Besser ist

        <div id=„Meinelement“>
        <\div>
        <script>
        // hier dein Script von oben ohne das document.write
        
        var el = document.getElementById(„Meinelement“);
        el. innerHTML(weekNumber);
        <\script>
        

        Kann noch Fehler enthalten da am Tablet direkt getippt
        Auch die Anführungsstriche bitte noch korrigieren

        L Offline
        L Offline
        lysy23
        schrieb am zuletzt editiert von lysy23
        #3

        @oliverio sorry aber ich habe keine Ahnung was ich da machen soll.:disappointed_relieved:

        OliverIOO 1 Antwort Letzte Antwort
        0
        • L lysy23

          @oliverio sorry aber ich habe keine Ahnung was ich da machen soll.:disappointed_relieved:

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

          @lysy23
          dann frage ich mich allerdings, was du mit dem ersten skript bezwecken wolltest?

          wenn du lernen willst, dann kann ich dir ein paar links raussuchen, bei dem du nachschlagen kannst, was das alles überhaupt bedeutet.

          Ansonsten empfehle ich dir erst einmal die iobroker Standardmittel, bei denen man ebenfalls rechnen kann.

          mit dem html-widget benötigst du kenntnisse in html, javascript und ggfs noch css

          alternativ kannst du das skript auch in iobroker im javascript adapter eintragen und am ende das ergebnis in einen datenpunkt schreiben.
          den datenpunkt kannst du dann über eines der vielen widgets dir in vis anzeigen lassen

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

          L 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @lysy23
            dann frage ich mich allerdings, was du mit dem ersten skript bezwecken wolltest?

            wenn du lernen willst, dann kann ich dir ein paar links raussuchen, bei dem du nachschlagen kannst, was das alles überhaupt bedeutet.

            Ansonsten empfehle ich dir erst einmal die iobroker Standardmittel, bei denen man ebenfalls rechnen kann.

            mit dem html-widget benötigst du kenntnisse in html, javascript und ggfs noch css

            alternativ kannst du das skript auch in iobroker im javascript adapter eintragen und am ende das ergebnis in einen datenpunkt schreiben.
            den datenpunkt kannst du dann über eines der vielen widgets dir in vis anzeigen lassen

            L Offline
            L Offline
            lysy23
            schrieb am zuletzt editiert von
            #5

            @oliverio said in Javascript in HTML Widget hat View "unbrauchbar" gemacht:

            @lysy23
            dann frage ich mich allerdings, was du mit dem ersten skript bezwecken wolltest?

            Ich wollte mir die Kalenderwoche anzeigen lassen, wusste nicht dass ich das ganze zerstöre.

            Muss ich ja eine neue View erstellen. 1 Woche Arbeit ist pfutsch.:face_palm:
            Danke dir für deine Antwort.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • L lysy23

              @oliverio said in Javascript in HTML Widget hat View "unbrauchbar" gemacht:

              @lysy23
              dann frage ich mich allerdings, was du mit dem ersten skript bezwecken wolltest?

              Ich wollte mir die Kalenderwoche anzeigen lassen, wusste nicht dass ich das ganze zerstöre.

              Muss ich ja eine neue View erstellen. 1 Woche Arbeit ist pfutsch.:face_palm:
              Danke dir für deine Antwort.

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

              @lysy23

              ne nicht ganz, man kann das noch retten.

              1. nehme dir das letze backup von iobroker oder fertige ein neues aktuelles an.
              2. mache davon eine sicherungskopie
              3. öffne das backup mit einem archivprogramm das tar versteht
              4. gehe darin in den ordner backup/files/vis.0/
                hier sind alle deine views gespeichert
              5. gehe in den ordner mit der view, die das fehlerhafte widget enthält
                wenn du auf diese view verzichten kannst, dann lösche den ganzen ordner mit der view
              6. wenn du nicht verzichten kannst, dann geht es weiter
              7. im ordner gib es eine datei vis-views.json, öffne diese in einem editor, am besten notepad++
              8. suche in dieser datei nach dem text "document.write"
              9. entferne diesen, aber nur diesen
              10. alles wieder schliießen, speichern
              11. am ende das backup wieder in iobroker einspielen

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

              L 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @lysy23

                ne nicht ganz, man kann das noch retten.

                1. nehme dir das letze backup von iobroker oder fertige ein neues aktuelles an.
                2. mache davon eine sicherungskopie
                3. öffne das backup mit einem archivprogramm das tar versteht
                4. gehe darin in den ordner backup/files/vis.0/
                  hier sind alle deine views gespeichert
                5. gehe in den ordner mit der view, die das fehlerhafte widget enthält
                  wenn du auf diese view verzichten kannst, dann lösche den ganzen ordner mit der view
                6. wenn du nicht verzichten kannst, dann geht es weiter
                7. im ordner gib es eine datei vis-views.json, öffne diese in einem editor, am besten notepad++
                8. suche in dieser datei nach dem text "document.write"
                9. entferne diesen, aber nur diesen
                10. alles wieder schliießen, speichern
                11. am ende das backup wieder in iobroker einspielen
                L Offline
                L Offline
                lysy23
                schrieb am zuletzt editiert von
                #7

                @oliverio Danke für deine Hilfe. :+1:
                Ich habe das aber ein bisschen anders gelöst da ich das Backup nicht einspielen konnte. Beim einspielen bekam ich immer eine Fehlermeldung.

                Ich bin auf iobroker gegangen, dann auf "Dateien" und dort habe ich die Datei vis-views.json gefunden. Die habe ich gelöscht und modifizierte ohne den "killer script" :face_with_rolling_eyes: hochgeladen.
                Danach hat VIS eine Fehlermeldung ausgespuckt. Die vis-views.json mit dem Script wieder aufgesetzt aber ohne "<script>" und "</script>". Jetzt funktioniert wieder alles.

                BananaJoeB 1 Antwort Letzte Antwort
                0
                • L lysy23

                  @oliverio Danke für deine Hilfe. :+1:
                  Ich habe das aber ein bisschen anders gelöst da ich das Backup nicht einspielen konnte. Beim einspielen bekam ich immer eine Fehlermeldung.

                  Ich bin auf iobroker gegangen, dann auf "Dateien" und dort habe ich die Datei vis-views.json gefunden. Die habe ich gelöscht und modifizierte ohne den "killer script" :face_with_rolling_eyes: hochgeladen.
                  Danach hat VIS eine Fehlermeldung ausgespuckt. Die vis-views.json mit dem Script wieder aufgesetzt aber ohne "<script>" und "</script>". Jetzt funktioniert wieder alles.

                  BananaJoeB Online
                  BananaJoeB Online
                  BananaJoe
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @lysy23 sagte in Javascript in HTML Widget hat View "unbrauchbar" gemacht:

                  vis-views.json

                  Alternativ hättest du die VIS-Instanz auch deaktivieren können, unter Linux mit einem Editor die vis-views.json bearbeiten können und dort das Skript herauslöschen/bearbeiten/auskomentieren können.

                  Dann den VIS-Adapter wieder starten.

                  Ist mir auch schon mal passiert bei den Experimenten wie ich die VIS Instanz heraus bekomme ...

                  ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • BananaJoeB BananaJoe

                    @lysy23 sagte in Javascript in HTML Widget hat View "unbrauchbar" gemacht:

                    vis-views.json

                    Alternativ hättest du die VIS-Instanz auch deaktivieren können, unter Linux mit einem Editor die vis-views.json bearbeiten können und dort das Skript herauslöschen/bearbeiten/auskomentieren können.

                    Dann den VIS-Adapter wieder starten.

                    Ist mir auch schon mal passiert bei den Experimenten wie ich die VIS Instanz heraus bekomme ...

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

                    @bananajoe
                    ich glaube das hat er gemacht

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

                    BananaJoeB 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @bananajoe
                      ich glaube das hat er gemacht

                      BananaJoeB Online
                      BananaJoeB Online
                      BananaJoe
                      Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @oliverio im Prinzip schon ... aber etwas spooky mit Austausch im Live-Betrieb

                      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                      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

                      804

                      Online

                      32.5k

                      Benutzer

                      81.6k

                      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