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

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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. FritzBox WLAN Passwort ändern

NEWS

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

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

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

FritzBox WLAN Passwort ändern

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
61 Beiträge 16 Kommentatoren 12.6k Aufrufe 20 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.
  • GlasfaserG Glasfaser

    @jwerlsdf

    Zeige mal dein Script !

    hier reinpacken !!

    1.JPG

    J Offline
    J Offline
    jwerlsdf
    schrieb am zuletzt editiert von Negalein
    #41

    @Glasfaser

    // https://www.npmjs.com/package/qr-image
    
    var MySSID          = "MTL Gastzugang";  //  SSID Name
    var MyCrypt         = "WPA2";                //  [WEP|WPA|WPA2]
    var MyVisibility    = "n";                   //  Hidden SSID? 
    
    var cronStr         = "* 1 * * *";           // Script wird jeden Tag um 03:01 Ausgeführt
    
    var idQRZiel = "javascript.0.QR-Code.Gast";  // Zieldatenpunkt für QR-Code
    var IdGPasswd = "tr-064-community.0.states.wlanGuestPassword"; /*wlanGuestPassword*/
    
    if(MyVisibility == "y") {
        var MyHidden="H:true";
    } 
    else {
        MyHidden="";
    } 
    
    createState(idQRZiel, "", {
         name: 'QR-Code für Gastpasswort',
         desc: 'QR-Code für Gastpasswort',
         type: 'string',
         role: 'info'
    });
    
    createQRcode();
    
    function createQRcode() {
        var qr = require('qr-image');
       var pass = getState(IdGPasswd).val;     
             var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+pass+';'+MyHidden+';', { type: 'svg' });
        setState(idQRZiel, svg_string);
         log(svg_string);
        setState(IdGPasswd, NewPasswd);
    }
    
    // regelmässige Wiederholungen
    schedule(cronStr, createQRcode);
    
    sigi234S GlasfaserG 2 Antworten Letzte Antwort
    0
    • J jwerlsdf

      @Glasfaser

      // https://www.npmjs.com/package/qr-image
      
      var MySSID          = "MTL Gastzugang";  //  SSID Name
      var MyCrypt         = "WPA2";                //  [WEP|WPA|WPA2]
      var MyVisibility    = "n";                   //  Hidden SSID? 
      
      var cronStr         = "* 1 * * *";           // Script wird jeden Tag um 03:01 Ausgeführt
      
      var idQRZiel = "javascript.0.QR-Code.Gast";  // Zieldatenpunkt für QR-Code
      var IdGPasswd = "tr-064-community.0.states.wlanGuestPassword"; /*wlanGuestPassword*/
      
      if(MyVisibility == "y") {
          var MyHidden="H:true";
      } 
      else {
          MyHidden="";
      } 
      
      createState(idQRZiel, "", {
           name: 'QR-Code für Gastpasswort',
           desc: 'QR-Code für Gastpasswort',
           type: 'string',
           role: 'info'
      });
      
      createQRcode();
      
      function createQRcode() {
          var qr = require('qr-image');
         var pass = getState(IdGPasswd).val;     
               var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+pass+';'+MyHidden+';', { type: 'svg' });
          setState(idQRZiel, svg_string);
           log(svg_string);
          setState(IdGPasswd, NewPasswd);
      }
      
      // regelmässige Wiederholungen
      schedule(cronStr, createQRcode);
      
      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #42

      @jwerlsdf

      Bitte benutzt die Code Tags Funktion -> </>
      Hier gehts zur Hilfe.

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

      1 Antwort Letzte Antwort
      0
      • J jwerlsdf

        @Glasfaser

        // https://www.npmjs.com/package/qr-image
        
        var MySSID          = "MTL Gastzugang";  //  SSID Name
        var MyCrypt         = "WPA2";                //  [WEP|WPA|WPA2]
        var MyVisibility    = "n";                   //  Hidden SSID? 
        
        var cronStr         = "* 1 * * *";           // Script wird jeden Tag um 03:01 Ausgeführt
        
        var idQRZiel = "javascript.0.QR-Code.Gast";  // Zieldatenpunkt für QR-Code
        var IdGPasswd = "tr-064-community.0.states.wlanGuestPassword"; /*wlanGuestPassword*/
        
        if(MyVisibility == "y") {
            var MyHidden="H:true";
        } 
        else {
            MyHidden="";
        } 
        
        createState(idQRZiel, "", {
             name: 'QR-Code für Gastpasswort',
             desc: 'QR-Code für Gastpasswort',
             type: 'string',
             role: 'info'
        });
        
        createQRcode();
        
        function createQRcode() {
            var qr = require('qr-image');
           var pass = getState(IdGPasswd).val;     
                 var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+pass+';'+MyHidden+';', { type: 'svg' });
            setState(idQRZiel, svg_string);
             log(svg_string);
            setState(IdGPasswd, NewPasswd);
        }
        
        // regelmässige Wiederholungen
        schedule(cronStr, createQRcode);
        
        GlasfaserG Online
        GlasfaserG Online
        Glasfaser
        schrieb am zuletzt editiert von
        #43

        @jwerlsdf

        Du hast ein paar Fehler eingebaut .

        Nimm das :

        var MySSID          = "MTL Gastzugang";           //  SSID Name
        
        var MyCrypt         = "WPA2";                //  [WEP|WPA|WPA2]
        
        var MyVisibility    = "n";                  //  Hidden SSID? 
        
        var cronStr         = "3 1 * * *"           // Script wird jeden Tag um 01:03 Ausgeführt
        
        
        
        var idQRZiel = "javascript.0.QR-Code.Gast"; // Zieldatenpunkt für QR-Code
        
        var IdGPasswd = "tr-064-community.0.states.wlanGuestPassword"; /*wlanGuestPassword*/
        
        
        
        if(MyVisibility == "y") {
        
           var MyHidden="H:true";
        
        } 
        
        else {
        
           MyHidden="";
        
        } 
        
        
        
        createState(idQRZiel, "", {
        
        
        
            name: 'QR-Code für Gastpasswort',
        
            desc: 'QR-Code für Gastpasswort',
        
            type: 'string',
        
            role: 'value'
        
        });
        
        
        
        function randomString(length) {         // Methode zur Erstellung eines Random-Passworts kann angepasst werden
        
        
        
           return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
        
        
        
        }
        
        
        
        function createQRcode() {
        
        
        
           var qr = require('qr-image');
        
           var NewPasswd = randomString(16);       // 16 Stelliges Passwort
        
           var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+NewPasswd+';'+MyHidden+';', { type: 'svg' });
        
                
        
           setState(idQRZiel, svg_string);
           setState(IdGPasswd, NewPasswd);
           console.log('+++ Wlan Gast QR-Code neu erstellt +++');
        }
        
        
        
        
        // regelmässige Wiederholungen
        
        schedule(cronStr, createQRcode);
        

        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

        1 Antwort Letzte Antwort
        0
        • J jwerlsdf

          @a200 said in FritzBox WLAN Passwort ändern:

          tr-064-community.0.states.wlanGuestPassword

          Vielen Dank für deine Antwort!
          Ich habe jetzt folgendes gemacht:
          Javascript; Neues Skript hinzugefügt:
          Name: qr-image
          Mappe: root-Verzeichnis

          Das Skript habe ich dann eingefügt mit folgenden Änderungen:
          Zeile 3 MySSID --> in den namen meines GastWLans geändert
          Zeile 4 var MyCrypt --> WPA2
          Zeile 10: var IdGPasswd = "tr-064-community.0.states.wlanGuestPassword"; /wlanGuestPassword/

          Das wars. Wenn ich das Skript jetzt aktiviere, dann bekomme ich folgenden Fehler:
          error javascript.0 (8405) script.js.qr-image: script.js.qr-image:34
          error javascript.0 (8405) at createQRcode (script.js.qr-image:34:25)
          error javascript.0 (8405) at script.js.qr-image:26:1

          Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuestPassword" dort auf bearbeiten geklickt und bei "Nativ" "func" das passwort aus der Fritzbox hinterlegt.
          Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuest" dort auf bearbeiten geklickt und bei "Nativ" "func" den SSID Name hinterlegt.

          Aber wie gesagt es geht leider noch nicht...

          GlasfaserG Online
          GlasfaserG Online
          Glasfaser
          schrieb am zuletzt editiert von
          #44

          @jwerlsdf sagte in FritzBox WLAN Passwort ändern:

          Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuestPassword" dort auf bearbeiten geklickt und bei "Nativ" "func" das passwort aus der Fritzbox hinterlegt.
          Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuest" dort auf bearbeiten geklickt und bei "Nativ" "func" den SSID Name hinterlegt.

          Hast du die Objekteeigenschaften geändert , dort bitte nichts verändern !??

          Lösche bitte diese beiden Datenpunkte sicherheitshalber und lasse sie vom tr.064 Adapter neu anlegen .

          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

          J 1 Antwort Letzte Antwort
          0
          • GlasfaserG Glasfaser

            @jwerlsdf sagte in FritzBox WLAN Passwort ändern:

            Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuestPassword" dort auf bearbeiten geklickt und bei "Nativ" "func" das passwort aus der Fritzbox hinterlegt.
            Bei "Objekte" -- "tr-064-community.0" --> "States" --> "wlanGuest" dort auf bearbeiten geklickt und bei "Nativ" "func" den SSID Name hinterlegt.

            Hast du die Objekteeigenschaften geändert , dort bitte nichts verändern !??

            Lösche bitte diese beiden Datenpunkte sicherheitshalber und lasse sie vom tr.064 Adapter neu anlegen .

            J Offline
            J Offline
            jwerlsdf
            schrieb am zuletzt editiert von
            #45

            @Glasfaser Oh großer Meister!!!! Vielen, vielen Dank!!! Es geht nun!!!! :)

            1 Antwort Letzte Antwort
            0
            • GuLi69G Offline
              GuLi69G Offline
              GuLi69
              schrieb am zuletzt editiert von GuLi69
              #46

              Sorry ... erledigt

              GlasfaserG 1 Antwort Letzte Antwort
              0
              • GuLi69G GuLi69

                Sorry ... erledigt

                GlasfaserG Online
                GlasfaserG Online
                Glasfaser
                schrieb am zuletzt editiert von
                #47

                @GuLi69

                Nimm mal das …

                [{"tpl":"tplValueStringRaw","data":{"hm_id":"80101","digits":"","factor":1,"min":0,"max":1,"step":0.01,"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.QR-Code.Gast","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"156px","top":"640px","width":"125px","height":"125px","border":"2px solid rgb(255, 255, 255)","border-radius":"5px","z-index":"44","color":"","background":"#ffffff","font-family":"Jura-DemiBold"},"widgetSet":"basic"}]
                

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                GuLi69G 1 Antwort Letzte Antwort
                0
                • GlasfaserG Glasfaser

                  @GuLi69

                  Nimm mal das …

                  [{"tpl":"tplValueStringRaw","data":{"hm_id":"80101","digits":"","factor":1,"min":0,"max":1,"step":0.01,"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.QR-Code.Gast","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"156px","top":"640px","width":"125px","height":"125px","border":"2px solid rgb(255, 255, 255)","border-radius":"5px","z-index":"44","color":"","background":"#ffffff","font-family":"Jura-DemiBold"},"widgetSet":"basic"}]
                  

                  GuLi69G Offline
                  GuLi69G Offline
                  GuLi69
                  schrieb am zuletzt editiert von
                  #48

                  @Glasfaser
                  Sorry wo würde ich diesen Code einfügen?

                  GlasfaserG 1 Antwort Letzte Antwort
                  0
                  • GuLi69G GuLi69

                    @Glasfaser
                    Sorry wo würde ich diesen Code einfügen?

                    GlasfaserG Online
                    GlasfaserG Online
                    Glasfaser
                    schrieb am zuletzt editiert von
                    #49

                    @GuLi69
                    1.JPG

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    GuLi69G 1 Antwort Letzte Antwort
                    0
                    • GlasfaserG Glasfaser

                      @GuLi69
                      1.JPG

                      GuLi69G Offline
                      GuLi69G Offline
                      GuLi69
                      schrieb am zuletzt editiert von
                      #50

                      @Glasfaser
                      PERFEKT !!!
                      VIELEN DANK Glasfaser !!!

                      VG
                      Günter

                      1 Antwort Letzte Antwort
                      0
                      • jolicJ Offline
                        jolicJ Offline
                        jolic
                        schrieb am zuletzt editiert von jolic
                        #51

                        Hi, habe hier was kurioses gefunden, nichts tragisches ;)

                        Nutze das Script seit langem und lasse alle 24h das WLAN Passwort für Gast ändern.
                        Nur bei einem Neustart des Raspi zickt das Script etwas.

                        Das Passwort steht wie gehabt als Wert im Objekt "tr-064.0.states.wlanGuestPassword".
                        Wenn dann das Script per cronjob ein neues Passwort generiert, wird der Wert gelöscht und erst nach dem nächsten Durchlauf (bei mir also 24h) wieder eingetragen. Dann funktioniert alles wieder so wie es soll und alle 24h wird ein neues Passwort generiert und als Wert dort eingetragen.
                        Im Log sehe ich kein Fehler oder Hinweis warum dieser Wert gelöscht wird.

                        Das ist nichts tragisches, da der QR-Code immer richtig erstellt wird. Benutze den Wert zur Kontrolle und für Gäste die den QR nicht scannen können.

                        Frage: Kann das jemand nachvollziehen?
                        Evtl. liegt es an der Fritz Labor Version. Diese benötige ich dringend wegen der SMB2+3 Unterstützung.

                        Meine derzeitige Konfiguration:

                        • Raspberry Pi 4 (BCM2835) mit Linux Kernel 4.19.118
                        • ioBroker.admin 4.1.1
                        • Node.js: v12.18.1
                        • NPM: 6.14.5
                        • TR-064 Adapter 4.0.8
                        • FitzBox 7490 mit Labor Version: 07.19-79773
                        // Quelle:
                        // https://www.npmjs.com/package/qr-image
                        // https://forum.iobroker.net/topic/4574/fritzbox-wlan-passwort-%C3%A4ndern/49
                        
                        var MySSID          = "Gast24h";                            // SSID Name
                        var MyCrypt         = "WPA2 + WPA3";                        // [WEP|WPA|WPA2|WPA3]
                        var MyVisibility    = "n";                                  // Hidden SSID? 
                        var cronStr         = "* 2 * * *"                           // Script wird jeden Tag um 2 Uhr ausgeführt
                        //var cronStr         = "* * * * *"                        // jede Minute, nur zum Testen!
                        
                        
                        var idQRZiel = "javascript.0.QR-Code.Gast";                       // Zieldatenpunkt für QR-Code
                        var IdGPasswd = "tr-064.0.states.wlanGuestPassword";              // wlanGuestPassword
                        
                        if(MyVisibility == "y") {
                           var MyHidden="H:true";
                        } 
                        else {
                           MyHidden="";
                        } 
                        
                        createState(idQRZiel, "", {
                            name: 'QR-Code für Gastpasswort',
                            desc: 'QR-Code für Gastpasswort',
                            type: 'string',
                            role: 'value'
                        });
                        
                        // Methode zur Erstellung eines Random-Passworts kann angepasst werden
                        function randomString(length) {
                           return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
                        }
                        
                        function createQRcode() {
                           var qr = require('qr-image');
                           var NewPasswd = randomString(10);   // 10 Stelliges Passwort
                           var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+NewPasswd+';'+MyHidden+';', { type: 'svg' });
                           setState(IdGPasswd, NewPasswd);
                           setState(idQRZiel, svg_string);
                           console.log('WLAN Gast QR-Code neu erstellt: ' + NewPasswd);
                        }
                         
                        // regelmässige Wiederholungen
                        schedule(cronStr, createQRcode);
                        

                        jolic

                        C 1 Antwort Letzte Antwort
                        0
                        • jolicJ jolic

                          Hi, habe hier was kurioses gefunden, nichts tragisches ;)

                          Nutze das Script seit langem und lasse alle 24h das WLAN Passwort für Gast ändern.
                          Nur bei einem Neustart des Raspi zickt das Script etwas.

                          Das Passwort steht wie gehabt als Wert im Objekt "tr-064.0.states.wlanGuestPassword".
                          Wenn dann das Script per cronjob ein neues Passwort generiert, wird der Wert gelöscht und erst nach dem nächsten Durchlauf (bei mir also 24h) wieder eingetragen. Dann funktioniert alles wieder so wie es soll und alle 24h wird ein neues Passwort generiert und als Wert dort eingetragen.
                          Im Log sehe ich kein Fehler oder Hinweis warum dieser Wert gelöscht wird.

                          Das ist nichts tragisches, da der QR-Code immer richtig erstellt wird. Benutze den Wert zur Kontrolle und für Gäste die den QR nicht scannen können.

                          Frage: Kann das jemand nachvollziehen?
                          Evtl. liegt es an der Fritz Labor Version. Diese benötige ich dringend wegen der SMB2+3 Unterstützung.

                          Meine derzeitige Konfiguration:

                          • Raspberry Pi 4 (BCM2835) mit Linux Kernel 4.19.118
                          • ioBroker.admin 4.1.1
                          • Node.js: v12.18.1
                          • NPM: 6.14.5
                          • TR-064 Adapter 4.0.8
                          • FitzBox 7490 mit Labor Version: 07.19-79773
                          // Quelle:
                          // https://www.npmjs.com/package/qr-image
                          // https://forum.iobroker.net/topic/4574/fritzbox-wlan-passwort-%C3%A4ndern/49
                          
                          var MySSID          = "Gast24h";                            // SSID Name
                          var MyCrypt         = "WPA2 + WPA3";                        // [WEP|WPA|WPA2|WPA3]
                          var MyVisibility    = "n";                                  // Hidden SSID? 
                          var cronStr         = "* 2 * * *"                           // Script wird jeden Tag um 2 Uhr ausgeführt
                          //var cronStr         = "* * * * *"                        // jede Minute, nur zum Testen!
                          
                          
                          var idQRZiel = "javascript.0.QR-Code.Gast";                       // Zieldatenpunkt für QR-Code
                          var IdGPasswd = "tr-064.0.states.wlanGuestPassword";              // wlanGuestPassword
                          
                          if(MyVisibility == "y") {
                             var MyHidden="H:true";
                          } 
                          else {
                             MyHidden="";
                          } 
                          
                          createState(idQRZiel, "", {
                              name: 'QR-Code für Gastpasswort',
                              desc: 'QR-Code für Gastpasswort',
                              type: 'string',
                              role: 'value'
                          });
                          
                          // Methode zur Erstellung eines Random-Passworts kann angepasst werden
                          function randomString(length) {
                             return Math.round((Math.pow(36, length + 1) - Math.random() * Math.pow(36, length))).toString(36).slice(1);
                          }
                          
                          function createQRcode() {
                             var qr = require('qr-image');
                             var NewPasswd = randomString(10);   // 10 Stelliges Passwort
                             var svg_string = qr.imageSync('WIFI:S:'+MySSID+';T:'+MyCrypt+';P:'+NewPasswd+';'+MyHidden+';', { type: 'svg' });
                             setState(IdGPasswd, NewPasswd);
                             setState(idQRZiel, svg_string);
                             console.log('WLAN Gast QR-Code neu erstellt: ' + NewPasswd);
                          }
                           
                          // regelmässige Wiederholungen
                          schedule(cronStr, createQRcode);
                          

                          jolic

                          C Offline
                          C Offline
                          Chrunchy
                          schrieb am zuletzt editiert von
                          #52

                          @jolic Ich vermute es liegt hier beim Neustart ein Timing-Problem vor.

                          Ich hatte ähnliches bei einem Script, was mir beim Neustart vom iobrkoer Lichter eingeschaltet hat.
                          Ich habe es dadurch gelöst, dass ich dem Script einen Timeout von 1 Minute voran gestellt habe, welcher nur beim ersten durchlauf, also beim Starten des Scripts greift.

                          Damit hatten dann alle Adapter die Chance sauber zu laufen, bevor der Javascript-Adapter die ganzen Scripte ausgeführt hat.

                          Vielleicht hilft es ja auch bei dir.

                          Gruß Chrunchy

                          1 Antwort Letzte Antwort
                          0
                          • jolicJ Offline
                            jolicJ Offline
                            jolic
                            schrieb am zuletzt editiert von
                            #53

                            @Chrunchy: Danke für deinen Hinweis. Tipps und Hinweise sind immer willkommen.

                            Denke nicht das es ein Timeout Problem ist. Sorry, vielleicht habe ich mich etwas unklar ausgedrückt.

                            • Script wird genau nach Plan ausgeführt (habe auch andere Zeiten probiert)
                            • zur Kontrolle logge ich den Wert (wurde korrekt generiert), steht aber erst am 2ten Tag in "tr-064.0.states.wlanGuestPassword" als Wert
                            • die Fritz nimmt immer das neue Passwort an und der QR-Code stimmt auch immer ab dem ersten Tag (so wie es sein soll)

                            Das rennt Wochen lang so, bis ich ein Kernel Update mache und den Raspi neu starte (sudo restart). Sonst wäre mir das nicht aufgefallen.

                            Siehe Bild, der Wert wurde um 9 Uhr von "javascript.0/admin" ab dem 2 Tag korrekt eingetragen
                            wlanGuestPassword_klein.jpg

                            Wie schon erwähnt, nichts tragisches, kann damit gut leben. Würde mich dennoch interessieren was da falsch rennt.
                            Werde das weiter beobachten... :eye:

                            jolic

                            jolicJ 1 Antwort Letzte Antwort
                            0
                            • jolicJ jolic

                              @Chrunchy: Danke für deinen Hinweis. Tipps und Hinweise sind immer willkommen.

                              Denke nicht das es ein Timeout Problem ist. Sorry, vielleicht habe ich mich etwas unklar ausgedrückt.

                              • Script wird genau nach Plan ausgeführt (habe auch andere Zeiten probiert)
                              • zur Kontrolle logge ich den Wert (wurde korrekt generiert), steht aber erst am 2ten Tag in "tr-064.0.states.wlanGuestPassword" als Wert
                              • die Fritz nimmt immer das neue Passwort an und der QR-Code stimmt auch immer ab dem ersten Tag (so wie es sein soll)

                              Das rennt Wochen lang so, bis ich ein Kernel Update mache und den Raspi neu starte (sudo restart). Sonst wäre mir das nicht aufgefallen.

                              Siehe Bild, der Wert wurde um 9 Uhr von "javascript.0/admin" ab dem 2 Tag korrekt eingetragen
                              wlanGuestPassword_klein.jpg

                              Wie schon erwähnt, nichts tragisches, kann damit gut leben. Würde mich dennoch interessieren was da falsch rennt.
                              Werde das weiter beobachten... :eye:

                              jolic

                              jolicJ Offline
                              jolicJ Offline
                              jolic
                              schrieb am zuletzt editiert von jolic
                              #54

                              Hi, hier ein Update. Ist noch nicht gelöst aber der Verusacher ist der TR-064 Adapter.
                              Diese Sache passiert immer einmalig bei einem Neustart des Adapters (keine Meldung im error log).

                              Jetzige Konfiguration (nutze neuen Raspi mit SSD):

                              • Raspberry Pi 4 (BCM2711) mit Linux Kernel 5.10.17
                              • ioBroker.admin 4.2.1
                              • Node.js: v12.22.1
                              • NPM: 6.14.12
                              • TR-064 Adapter 4.2.12
                              • FitzBox 7490 Version: 07.27

                              Kann das evtl. jemand bestätigen oder hat eine Idee wie ich das "Problemchen" lösen kann?

                              jolic

                              A 1 Antwort Letzte Antwort
                              0
                              • V Offline
                                V Offline
                                Vickes
                                schrieb am zuletzt editiert von
                                #55

                                Hello,

                                ich würde diesen thread gerne noch einmal wiederbeleben:
                                Wäre es mit den o.g. Scripts (die hervorragend funktiponieren) möglich das ganze auch unter der lovelace vis anzeigen zu lassen? Mithilfe der direkten Einbindung in einer 'Picture' bzw 'Picture Element' Karte hatte ich bisher keinen Erfolg.

                                Any possible Ideas? :cold_sweat:

                                1 Antwort Letzte Antwort
                                0
                                • jolicJ jolic

                                  Hi, hier ein Update. Ist noch nicht gelöst aber der Verusacher ist der TR-064 Adapter.
                                  Diese Sache passiert immer einmalig bei einem Neustart des Adapters (keine Meldung im error log).

                                  Jetzige Konfiguration (nutze neuen Raspi mit SSD):

                                  • Raspberry Pi 4 (BCM2711) mit Linux Kernel 5.10.17
                                  • ioBroker.admin 4.2.1
                                  • Node.js: v12.22.1
                                  • NPM: 6.14.12
                                  • TR-064 Adapter 4.2.12
                                  • FitzBox 7490 Version: 07.27

                                  Kann das evtl. jemand bestätigen oder hat eine Idee wie ich das "Problemchen" lösen kann?

                                  jolic

                                  A Offline
                                  A Offline
                                  Aushilfsarnie
                                  schrieb am zuletzt editiert von Aushilfsarnie
                                  #56

                                  Hallo zusammen,
                                  grundsätzlich habe ich die Einrichtung hinbekommen. Leider wird das Passwort nicht an meine Fritzbox 6590 Cable übertragen. Alle anderen Funktionen des Adatpers funktionieren. Hat jemand eine Idee dazu? Vielen Dank im Voraus!

                                  jolicJ 1 Antwort Letzte Antwort
                                  0
                                  • A Aushilfsarnie

                                    Hallo zusammen,
                                    grundsätzlich habe ich die Einrichtung hinbekommen. Leider wird das Passwort nicht an meine Fritzbox 6590 Cable übertragen. Alle anderen Funktionen des Adatpers funktionieren. Hat jemand eine Idee dazu? Vielen Dank im Voraus!

                                    jolicJ Offline
                                    jolicJ Offline
                                    jolic
                                    schrieb am zuletzt editiert von jolic
                                    #57

                                    Hallo, nach über zwei Jahren habe ich mich nochmal mit dem Thema beschäftigt, einige Optimierungen vorgenommen und den nervigen Fehler endlich behoben. Vielleicht ist das ja auch für jemand anderen nützlich. Viel Spaß damit!

                                    Danke an das Team von ioBroker und einen guten Rutsch ins neue Jahr!

                                    // QR-Image V24.12.008 -> ein paar Optimierungen und ein lästiger Fehler behoben.
                                    // Nach jedem Neustart des TR-064 Adapter und ersten Start des Skripts war der DP "wlanGuestPassword" leer.
                                    // Der Fehler war ein Timing-Problem. Das Passwort wurde gesetzt, aber der TR-064 Adapter verarbeitete es zu langsam.
                                    // Durch den setState-Callback wird sichergestellt, dass der QR-Code erst nach erfolgreichem Speichern des Passworts generiert wird.
                                    //
                                    // Quelle:
                                    // https://www.npmjs.com/package/qr-image
                                    // https://forum.iobroker.net/topic/4574/fritzbox-wlan-passwort-%C3%A4ndern/49
                                    // Das Modul 'qr-image' muss in den JS Adapter (Instanzen) eingetragen werden!
                                    //
                                    // Der ioBroker TR-064 Adapter bietet keine Möglichkeit, die Verschlüsselungsmethode des Gast-WLANs (z. B. "WPA2" oder "WPA2 + WPA3") zu ändern.
                                    // Die Konfiguration der Verschlüsselung erfolgt über die Weboberfläche der FRITZ!Box.
                                    
                                    var MySSID = "HalloGast";                            // SSID Name
                                    var MyVisibility = "n";                              // Hidden SSID?
                                    var cronStr = "1 4 * * *";                           // Script wird jeden Tag um 04:01 ausgeführt
                                    // var cronStr = "1 4 * * 1";                       // Einmal je Woche  um 04:01 | 1 = Montag (0 = Sonntag, 6 = Samstag)
                                    // var cronStr = "1 4 1 * *";                       // Am 1. Tag jedes Monats um 04:01
                                    
                                    var idQRZiel = "javascript.0.QR-Code.Gast";          // Zieldatenpunkt für QR-Code
                                    var IdGPasswd = "tr-064.0.states.wlanGuestPassword"; // Datenpunkt für WLAN-Gastpasswort
                                    var passwordLength = 20;                             // Länge des Passworts (mind. 8 Zeichen!)
                                    
                                    if (MyVisibility === "y") {
                                        var MyHidden = "H:true";
                                    } else {
                                        MyHidden = "";
                                    }
                                    
                                    // Erstelle den Datenpunkt für den QR-Code, falls nicht vorhanden
                                    createState(idQRZiel, "", {
                                        name: 'QR-Code für Gastpasswort',
                                        desc: 'QR-Code für Gastpasswort',
                                        type: 'string',
                                        role: 'value'
                                    });
                                    
                                    // Methode zur Erstellung eines zufälligen Passworts (keine Sonderzeichen am Anfang oder Ende)
                                    function randomString(length) {
                                        var result = '';
                                        var lowerChars = 'abcdefghijklmnopqrstuvwxyz';
                                        var upperChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                                        var digits = '0123456789';
                                        var specialChars = '!?._-';
                                        var allChars = lowerChars + upperChars + digits + specialChars;
                                    
                                        // Ersten und letzten Charakter setzen (keine Sonderzeichen)
                                        result += lowerChars.charAt(Math.floor(Math.random() * lowerChars.length)); // Kleinbuchstabe am Anfang
                                    
                                        // Mittelteil auffüllen (inkl. Sonderzeichen)
                                        for (var i = 1; i < length - 1; i++) {
                                            var char = allChars.charAt(Math.floor(Math.random() * allChars.length));
                                            result += char;
                                        }
                                    
                                        // Letztes Zeichen (keine Sonderzeichen, aber Klein-/Großbuchstabe oder Zahl)
                                        result += lowerChars.concat(upperChars, digits).charAt(Math.floor(Math.random() * (lowerChars.length + upperChars.length + digits.length)));
                                    
                                        // Stelle sicher, dass mindestens ein Sonderzeichen enthalten ist (außer am Anfang und Ende)
                                        var specialIndex = Math.floor(Math.random() * (length - 2)) + 1;  // Position zwischen 1 und length-2
                                        var specialChar = specialChars.charAt(Math.floor(Math.random() * specialChars.length));
                                        result = result.substring(0, specialIndex) + specialChar + result.substring(specialIndex + 1);
                                    
                                        return result;
                                    }
                                    
                                    // Methode zur Erstellung des QR-Codes
                                    var qr;
                                    try {
                                        qr = require('qr-image');
                                    } catch (err) {
                                        log('Modul qr-image konnte nicht geladen werden: ' + err);
                                    }
                                    
                                    function createQRcode() {
                                        if (!qr) return; // Abbrechen, falls qr-image nicht geladen werden konnte
                                        var NewPasswd = randomString(passwordLength); // Passwortlänge dynamisch anpassbar
                                        setState(IdGPasswd, NewPasswd, false, function(err) {
                                            if (err) {
                                                log('Fehler beim Setzen des Passworts: ' + err);
                                            } else {
                                                setTimeout(function() {
                                                    setState(IdGPasswd, NewPasswd, true);  // Nach 2 Sekunden bestätigen
                                                }, 2000);
                                                var svg_string = qr.imageSync('WIFI:S:' + MySSID + ';T:WPA2;P:' + NewPasswd + ';' + MyHidden + ';', { type: 'svg' });
                                                setState(idQRZiel, svg_string, true);
                                            }
                                        });
                                    }
                                    
                                    // Erstelle den QR-Code einmalig beim ersten Start des Scripts
                                    createQRcode();
                                    
                                    // Planmäßige Wiederholungen der Erstellung des QR-Codes
                                    schedule(cronStr, createQRcode);
                                    
                                    
                                    M 1 Antwort Letzte Antwort
                                    2
                                    • S simpixo

                                      Ich habe mal auf Github den Entwickler gefragt ob er sowas implementieren könnte!?

                                      Habe auch erwähnt das du die Möglichkeit für das Passwort/Qr Code entwickelt hast [emoji6]

                                      Mal schauen was er dazu sagt

                                      Gruß

                                      Adrian

                                      Gesendet von iPhone mit Tapatalk Pro

                                      mcm1957M Online
                                      mcm1957M Online
                                      mcm1957
                                      schrieb am zuletzt editiert von mcm1957
                                      #58

                                      deleted da Unsinn
                                      Der Thread ist ja aus der Gruft gehiben worden ...

                                      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                                      Support Repositoryverwaltung.

                                      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                                      LESEN - gute Forenbeitrage

                                      1 Antwort Letzte Antwort
                                      0
                                      • jolicJ jolic

                                        Hallo, nach über zwei Jahren habe ich mich nochmal mit dem Thema beschäftigt, einige Optimierungen vorgenommen und den nervigen Fehler endlich behoben. Vielleicht ist das ja auch für jemand anderen nützlich. Viel Spaß damit!

                                        Danke an das Team von ioBroker und einen guten Rutsch ins neue Jahr!

                                        // QR-Image V24.12.008 -> ein paar Optimierungen und ein lästiger Fehler behoben.
                                        // Nach jedem Neustart des TR-064 Adapter und ersten Start des Skripts war der DP "wlanGuestPassword" leer.
                                        // Der Fehler war ein Timing-Problem. Das Passwort wurde gesetzt, aber der TR-064 Adapter verarbeitete es zu langsam.
                                        // Durch den setState-Callback wird sichergestellt, dass der QR-Code erst nach erfolgreichem Speichern des Passworts generiert wird.
                                        //
                                        // Quelle:
                                        // https://www.npmjs.com/package/qr-image
                                        // https://forum.iobroker.net/topic/4574/fritzbox-wlan-passwort-%C3%A4ndern/49
                                        // Das Modul 'qr-image' muss in den JS Adapter (Instanzen) eingetragen werden!
                                        //
                                        // Der ioBroker TR-064 Adapter bietet keine Möglichkeit, die Verschlüsselungsmethode des Gast-WLANs (z. B. "WPA2" oder "WPA2 + WPA3") zu ändern.
                                        // Die Konfiguration der Verschlüsselung erfolgt über die Weboberfläche der FRITZ!Box.
                                        
                                        var MySSID = "HalloGast";                            // SSID Name
                                        var MyVisibility = "n";                              // Hidden SSID?
                                        var cronStr = "1 4 * * *";                           // Script wird jeden Tag um 04:01 ausgeführt
                                        // var cronStr = "1 4 * * 1";                       // Einmal je Woche  um 04:01 | 1 = Montag (0 = Sonntag, 6 = Samstag)
                                        // var cronStr = "1 4 1 * *";                       // Am 1. Tag jedes Monats um 04:01
                                        
                                        var idQRZiel = "javascript.0.QR-Code.Gast";          // Zieldatenpunkt für QR-Code
                                        var IdGPasswd = "tr-064.0.states.wlanGuestPassword"; // Datenpunkt für WLAN-Gastpasswort
                                        var passwordLength = 20;                             // Länge des Passworts (mind. 8 Zeichen!)
                                        
                                        if (MyVisibility === "y") {
                                            var MyHidden = "H:true";
                                        } else {
                                            MyHidden = "";
                                        }
                                        
                                        // Erstelle den Datenpunkt für den QR-Code, falls nicht vorhanden
                                        createState(idQRZiel, "", {
                                            name: 'QR-Code für Gastpasswort',
                                            desc: 'QR-Code für Gastpasswort',
                                            type: 'string',
                                            role: 'value'
                                        });
                                        
                                        // Methode zur Erstellung eines zufälligen Passworts (keine Sonderzeichen am Anfang oder Ende)
                                        function randomString(length) {
                                            var result = '';
                                            var lowerChars = 'abcdefghijklmnopqrstuvwxyz';
                                            var upperChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
                                            var digits = '0123456789';
                                            var specialChars = '!?._-';
                                            var allChars = lowerChars + upperChars + digits + specialChars;
                                        
                                            // Ersten und letzten Charakter setzen (keine Sonderzeichen)
                                            result += lowerChars.charAt(Math.floor(Math.random() * lowerChars.length)); // Kleinbuchstabe am Anfang
                                        
                                            // Mittelteil auffüllen (inkl. Sonderzeichen)
                                            for (var i = 1; i < length - 1; i++) {
                                                var char = allChars.charAt(Math.floor(Math.random() * allChars.length));
                                                result += char;
                                            }
                                        
                                            // Letztes Zeichen (keine Sonderzeichen, aber Klein-/Großbuchstabe oder Zahl)
                                            result += lowerChars.concat(upperChars, digits).charAt(Math.floor(Math.random() * (lowerChars.length + upperChars.length + digits.length)));
                                        
                                            // Stelle sicher, dass mindestens ein Sonderzeichen enthalten ist (außer am Anfang und Ende)
                                            var specialIndex = Math.floor(Math.random() * (length - 2)) + 1;  // Position zwischen 1 und length-2
                                            var specialChar = specialChars.charAt(Math.floor(Math.random() * specialChars.length));
                                            result = result.substring(0, specialIndex) + specialChar + result.substring(specialIndex + 1);
                                        
                                            return result;
                                        }
                                        
                                        // Methode zur Erstellung des QR-Codes
                                        var qr;
                                        try {
                                            qr = require('qr-image');
                                        } catch (err) {
                                            log('Modul qr-image konnte nicht geladen werden: ' + err);
                                        }
                                        
                                        function createQRcode() {
                                            if (!qr) return; // Abbrechen, falls qr-image nicht geladen werden konnte
                                            var NewPasswd = randomString(passwordLength); // Passwortlänge dynamisch anpassbar
                                            setState(IdGPasswd, NewPasswd, false, function(err) {
                                                if (err) {
                                                    log('Fehler beim Setzen des Passworts: ' + err);
                                                } else {
                                                    setTimeout(function() {
                                                        setState(IdGPasswd, NewPasswd, true);  // Nach 2 Sekunden bestätigen
                                                    }, 2000);
                                                    var svg_string = qr.imageSync('WIFI:S:' + MySSID + ';T:WPA2;P:' + NewPasswd + ';' + MyHidden + ';', { type: 'svg' });
                                                    setState(idQRZiel, svg_string, true);
                                                }
                                            });
                                        }
                                        
                                        // Erstelle den QR-Code einmalig beim ersten Start des Scripts
                                        createQRcode();
                                        
                                        // Planmäßige Wiederholungen der Erstellung des QR-Codes
                                        schedule(cronStr, createQRcode);
                                        
                                        
                                        M Offline
                                        M Offline
                                        MartyBr
                                        schrieb am zuletzt editiert von
                                        #59

                                        @jolic
                                        Zuerst mal vielen dank für die Weiterentwicklung!
                                        Ich habe aber ein Problem mit dem Script oder evtl. dem TR-06-Adapter. Wenn ich das Script laufen lassen (genauer: per CRON-Starte), dann schreibt er das WLAN-Gast Kennwort in das zentrale WLAN-Passwort. Danach fällt das WLAN logisch aus (da die Geräte ja das neue Kennwort nicht kennen).

                                        Zu meiner Technik:
                                        Debian 12, ioBroker aktuell aus dem Stable.
                                        Fritz!Box 5690 Pro (DSL, wird nicht per Glasfaser betrieben).

                                        Hier die Datenpunkte: (Gäste-WLAN hat Kennwort, wird aber nicht ausgelesen)

                                        Bildschirmfoto 2025-04-15 um 21.05.18.png

                                        Was mir auffällt ist, dass der Adapter kein WLAN-60 kennt. Die 5690 Pro hat ja ein WLAN 6G.

                                        Gruß
                                        Martin


                                        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                        Raspeberry mit USB Leseköpfen für Smartmeter
                                        Homematic und Homematic IP

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • M MartyBr

                                          @jolic
                                          Zuerst mal vielen dank für die Weiterentwicklung!
                                          Ich habe aber ein Problem mit dem Script oder evtl. dem TR-06-Adapter. Wenn ich das Script laufen lassen (genauer: per CRON-Starte), dann schreibt er das WLAN-Gast Kennwort in das zentrale WLAN-Passwort. Danach fällt das WLAN logisch aus (da die Geräte ja das neue Kennwort nicht kennen).

                                          Zu meiner Technik:
                                          Debian 12, ioBroker aktuell aus dem Stable.
                                          Fritz!Box 5690 Pro (DSL, wird nicht per Glasfaser betrieben).

                                          Hier die Datenpunkte: (Gäste-WLAN hat Kennwort, wird aber nicht ausgelesen)

                                          Bildschirmfoto 2025-04-15 um 21.05.18.png

                                          Was mir auffällt ist, dass der Adapter kein WLAN-60 kennt. Die 5690 Pro hat ja ein WLAN 6G.

                                          M Offline
                                          M Offline
                                          MartyBr
                                          schrieb am zuletzt editiert von
                                          #60

                                          @martybr
                                          @jolic
                                          Auch wenn ich manuell das Gäste-Wlan setze, dann schreibt der Adapter das Kennwort direkt als mein WLAN-Kennwort in die Fritz!Box. Das Problem scheint daher der TR-06-Adapter zu sein.

                                          Gruß
                                          Martin


                                          Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                          Raspeberry mit USB Leseköpfen für Smartmeter
                                          Homematic und Homematic IP

                                          M 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          514

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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