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. Skripten / Logik
  4. JavaScript
  5. The state contains the forbidden properties notExist!

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    283

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

The state contains the forbidden properties notExist!

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 3 Kommentatoren 797 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.
  • M MCU

    @adb-83 sagte in The state contains the forbidden properties notExist!:

    setState("0_userdata.0.Datenpunkt", getState("unifi.0.default.clients.00:xx:22:xx:a3xx.name"))

    setState("0_userdata.0.Datenpunkt", getState("unifi.0.default.clients.00:xx:22:xx:a3xx.name").val)
    

    .val fehlt

    A Offline
    A Offline
    ADB-83
    schrieb am zuletzt editiert von
    #3

    @mcu

    Danke für deinen Hinweis.
    Leider scheint es auch mit dem .val nicht zu funktionieren.

    setState("0_userdata.0.Test2", getState("unifi.0.default.clients.00:1a:xx:29:xx:a9.name").val)
    
    

    Seltsam ist, dass es mit demselben Code, jedoch statt "name" mit "hostname" einwandfrei funktioniert.

    CodierknechtC 1 Antwort Letzte Antwort
    0
    • A ADB-83

      @mcu

      Danke für deinen Hinweis.
      Leider scheint es auch mit dem .val nicht zu funktionieren.

      setState("0_userdata.0.Test2", getState("unifi.0.default.clients.00:1a:xx:29:xx:a9.name").val)
      
      

      Seltsam ist, dass es mit demselben Code, jedoch statt "name" mit "hostname" einwandfrei funktioniert.

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #4

      @adb-83
      Funktioniert problemlos.
      43309d4f-8c57-4d76-b87b-bb71e56df666-grafik.png
      Kann es sein, dass bei Dir in ".name" nur (null) drinsteht?

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      A 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @adb-83
        Funktioniert problemlos.
        43309d4f-8c57-4d76-b87b-bb71e56df666-grafik.png
        Kann es sein, dass bei Dir in ".name" nur (null) drinsteht?

        A Offline
        A Offline
        ADB-83
        schrieb am zuletzt editiert von ADB-83
        #5

        @codierknecht

        Leider nein...
        532d104b-695d-4e2e-af6e-8190caf59070-image.png

        Ich habe den Pfad im Javascript kopiert und bei den Objekten eingefügt. Gemäss dem Printscreen ist hier ein Name (Homematic Access Point) vorhanden.

        Kann es sein, dass .name nicht verwendet werden darf? Oder wie kann man sich erklären, dass es bei .hostname normal durch läuft...?

        Edit:
        @codierknecht
        Wurde bei deinem Test der Wert von .name in den Datenpunkt gesetzt??

        M CodierknechtC 2 Antworten Letzte Antwort
        0
        • A ADB-83

          @codierknecht

          Leider nein...
          532d104b-695d-4e2e-af6e-8190caf59070-image.png

          Ich habe den Pfad im Javascript kopiert und bei den Objekten eingefügt. Gemäss dem Printscreen ist hier ein Name (Homematic Access Point) vorhanden.

          Kann es sein, dass .name nicht verwendet werden darf? Oder wie kann man sich erklären, dass es bei .hostname normal durch läuft...?

          Edit:
          @codierknecht
          Wurde bei deinem Test der Wert von .name in den Datenpunkt gesetzt??

          M Online
          M Online
          MCU
          schrieb am zuletzt editiert von
          #6

          @adb-83 Welche javascript-Version hast du im Einsatz?

          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          A 1 Antwort Letzte Antwort
          0
          • M MCU

            @adb-83 Welche javascript-Version hast du im Einsatz?

            A Offline
            A Offline
            ADB-83
            schrieb am zuletzt editiert von
            #7

            @mcu

            d7473873-59d4-433d-bcea-eb149da0d3cd-image.png

            Passt das?

            M 1 Antwort Letzte Antwort
            0
            • A ADB-83

              @mcu

              d7473873-59d4-433d-bcea-eb149da0d3cd-image.png

              Passt das?

              M Online
              M Online
              MCU
              schrieb am zuletzt editiert von
              #8

              @adb-83 Sollte passen. Warum es nicht funktioniert keine Ahnung.
              Versuch mal den DP mit name als Alias anzulegen.
              also

              createAlias("unifi.namevomGerät","unifi.0.default.clients.00:xx:22:xx:a3xx.name");
              

              NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

              A 1 Antwort Letzte Antwort
              0
              • A ADB-83

                @codierknecht

                Leider nein...
                532d104b-695d-4e2e-af6e-8190caf59070-image.png

                Ich habe den Pfad im Javascript kopiert und bei den Objekten eingefügt. Gemäss dem Printscreen ist hier ein Name (Homematic Access Point) vorhanden.

                Kann es sein, dass .name nicht verwendet werden darf? Oder wie kann man sich erklären, dass es bei .hostname normal durch läuft...?

                Edit:
                @codierknecht
                Wurde bei deinem Test der Wert von .name in den Datenpunkt gesetzt??

                CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von
                #9

                @adb-83 sagte in The state contains the forbidden properties notExist!:

                Wurde bei deinem Test der Wert von .name in den Datenpunkt gesetzt??

                Narürlich. Sonst würde ich ja nicht schreiben "funktioniert" ;-)

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Antwort Letzte Antwort
                0
                • M MCU

                  @adb-83 Sollte passen. Warum es nicht funktioniert keine Ahnung.
                  Versuch mal den DP mit name als Alias anzulegen.
                  also

                  createAlias("unifi.namevomGerät","unifi.0.default.clients.00:xx:22:xx:a3xx.name");
                  
                  A Offline
                  A Offline
                  ADB-83
                  schrieb am zuletzt editiert von
                  #10

                  @mcu

                  Vielleicht muss noch kurz meinen eigentlichen Code zeigen:

                  Der Code wurde aus einem Forum kopiert und für mein Vorhaben angepasst. Es soll mir eine Push-Nachricht senden, sobald ein neues Gerät im Netzwerk erkannt wird.

                  const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                  var client_hostname
                  var client_name
                  var client_ip
                  
                  
                  
                  on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                  getState("unifi.0.default.clients.00:1a:22:19:a3:a7.name").val)
                      client_hostname = getState("unifi.0.default.clients." + dp.state.val + ".hostname").val
                      client_name = getState("unifi.0.default.clients." + dp.state.val + ".name").val
                      client_ip = getState("unifi.0.default.clients." + dp.state.val + ".ip").val
                      
                  
                  
                      if(!wlanids.includes(dp.id)) {
                          wlanids.push(dp.id);
                          sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                      }
                  });
                  
                  

                  Wie müsste ich denn nun mit "Alias" genau hantieren?

                  M 1 Antwort Letzte Antwort
                  0
                  • A ADB-83

                    @mcu

                    Vielleicht muss noch kurz meinen eigentlichen Code zeigen:

                    Der Code wurde aus einem Forum kopiert und für mein Vorhaben angepasst. Es soll mir eine Push-Nachricht senden, sobald ein neues Gerät im Netzwerk erkannt wird.

                    const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                    var client_hostname
                    var client_name
                    var client_ip
                    
                    
                    
                    on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                    getState("unifi.0.default.clients.00:1a:22:19:a3:a7.name").val)
                        client_hostname = getState("unifi.0.default.clients." + dp.state.val + ".hostname").val
                        client_name = getState("unifi.0.default.clients." + dp.state.val + ".name").val
                        client_ip = getState("unifi.0.default.clients." + dp.state.val + ".ip").val
                        
                    
                    
                        if(!wlanids.includes(dp.id)) {
                            wlanids.push(dp.id);
                            sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                        }
                    });
                    
                    

                    Wie müsste ich denn nun mit "Alias" genau hantieren?

                    M Online
                    M Online
                    MCU
                    schrieb am zuletzt editiert von MCU
                    #11

                    @adb-83 Mit dem createAlias wäre nur ein Versuch, um zu schauen, ob man dann den Wert lesen kann.
                    Hat nichts mit dem eigentlichen Programm zu tun.

                    Hier mal ein anderer Test um zu schauen, ob er die DPs lesen kann

                    /* in dem mac-DP steht die MAC-Adresse ? */
                    const wlanids = $('unifi.0.default.clients.*.mac')
                    for(let i=0;i<wlanIds.length;i++){
                        let macAdress =getState(wlanIds[i]).val
                        client_hostname = getState("unifi.0.default.clients." + macAdress + ".hostname").val
                        client_name = getState("unifi.0.default.clients." +macAdress+ ".name").val
                        client_ip = getState("unifi.0.default.clients." + macAdress + ".ip").val
                        console.log(client_hostname + ' '+ client_name +' ' + client_ip)
                    }
                    
                    

                    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                    A 2 Antworten Letzte Antwort
                    0
                    • M MCU

                      @adb-83 Mit dem createAlias wäre nur ein Versuch, um zu schauen, ob man dann den Wert lesen kann.
                      Hat nichts mit dem eigentlichen Programm zu tun.

                      Hier mal ein anderer Test um zu schauen, ob er die DPs lesen kann

                      /* in dem mac-DP steht die MAC-Adresse ? */
                      const wlanids = $('unifi.0.default.clients.*.mac')
                      for(let i=0;i<wlanIds.length;i++){
                          let macAdress =getState(wlanIds[i]).val
                          client_hostname = getState("unifi.0.default.clients." + macAdress + ".hostname").val
                          client_name = getState("unifi.0.default.clients." +macAdress+ ".name").val
                          client_ip = getState("unifi.0.default.clients." + macAdress + ".ip").val
                          console.log(client_hostname + ' '+ client_name +' ' + client_ip)
                      }
                      
                      
                      A Offline
                      A Offline
                      ADB-83
                      schrieb am zuletzt editiert von
                      #12

                      @mcu

                      schon wieder seltsam... :expressionless:

                      Wieso wird mit deinem Beispiel der korrekte Namen ausgegeben??

                      2c79eca4-7690-4eb1-a811-29790344ee8e-image.png

                      1 Antwort Letzte Antwort
                      0
                      • M MCU

                        @adb-83 Mit dem createAlias wäre nur ein Versuch, um zu schauen, ob man dann den Wert lesen kann.
                        Hat nichts mit dem eigentlichen Programm zu tun.

                        Hier mal ein anderer Test um zu schauen, ob er die DPs lesen kann

                        /* in dem mac-DP steht die MAC-Adresse ? */
                        const wlanids = $('unifi.0.default.clients.*.mac')
                        for(let i=0;i<wlanIds.length;i++){
                            let macAdress =getState(wlanIds[i]).val
                            client_hostname = getState("unifi.0.default.clients." + macAdress + ".hostname").val
                            client_name = getState("unifi.0.default.clients." +macAdress+ ".name").val
                            client_ip = getState("unifi.0.default.clients." + macAdress + ".ip").val
                            console.log(client_hostname + ' '+ client_name +' ' + client_ip)
                        }
                        
                        
                        A Offline
                        A Offline
                        ADB-83
                        schrieb am zuletzt editiert von
                        #13

                        @mcu

                        Der Versuch, mit deinem Code herumzuspielen scheiterte mit demselben Resultat:

                        const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                        
                        var client_hostname
                        var client_name
                        var client_ip
                        var client_mac
                        
                        
                        on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                            
                            const wlanIds1 = $('unifi.0.default.clients.*.mac')
                            for(let i=0;i<wlanIds1.length;i++){
                                    client_mac = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".mac").val
                                    client_name = getState("unifi.0.default.clients." +getState(wlanIds1[i]).val+ ".name").val
                                    client_hostname = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".hostname").val
                                    client_ip = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".ip").val
                                    
                                    if (client_mac == dp.state.val){
                                        if(!wlanids.includes(dp.id)) {
                                        wlanids.push(dp.id);
                                        sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                                        console.log(client_mac + ' '+ client_hostname + ' '+ client_name +' ' + client_ip)
                                        }
                        
                                    }
                            }
                        });
                        
                        
                        
                        

                        Fehlermeldung:
                        088df3c6-5b19-4ef6-aade-7bf3853f61cb-image.png

                        Beim .name zeigt es immer "null" an, obwohl hier ein Name hinterlegt ist.
                        Wir komme ich trotzdem zum Ziel? :flushed:

                        M 1 Antwort Letzte Antwort
                        0
                        • A ADB-83

                          @mcu

                          Der Versuch, mit deinem Code herumzuspielen scheiterte mit demselben Resultat:

                          const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                          
                          var client_hostname
                          var client_name
                          var client_ip
                          var client_mac
                          
                          
                          on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                              
                              const wlanIds1 = $('unifi.0.default.clients.*.mac')
                              for(let i=0;i<wlanIds1.length;i++){
                                      client_mac = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".mac").val
                                      client_name = getState("unifi.0.default.clients." +getState(wlanIds1[i]).val+ ".name").val
                                      client_hostname = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".hostname").val
                                      client_ip = getState("unifi.0.default.clients." + getState(wlanIds1[i]).val + ".ip").val
                                      
                                      if (client_mac == dp.state.val){
                                          if(!wlanids.includes(dp.id)) {
                                          wlanids.push(dp.id);
                                          sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                                          console.log(client_mac + ' '+ client_hostname + ' '+ client_name +' ' + client_ip)
                                          }
                          
                                      }
                              }
                          });
                          
                          
                          
                          

                          Fehlermeldung:
                          088df3c6-5b19-4ef6-aade-7bf3853f61cb-image.png

                          Beim .name zeigt es immer "null" an, obwohl hier ein Name hinterlegt ist.
                          Wir komme ich trotzdem zum Ziel? :flushed:

                          M Online
                          M Online
                          MCU
                          schrieb am zuletzt editiert von
                          #14

                          @adb-83 Ich vermute ein Zeit-Problem?

                          const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                          var client_hostname
                          var client_name
                          var client_ip
                           
                           
                           
                          on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                             setTimeout(function(){
                              client_hostname = getState("unifi.0.default.clients." + dp.state.val + ".hostname").val
                              client_name = getState("unifi.0.default.clients." + dp.state.val + ".name").val
                              client_ip = getState("unifi.0.default.clients." + dp.state.val + ".ip").val
                              
                           
                           
                              if(!wlanids.includes(dp.id)) {
                                  wlanids.push(dp.id);
                                  sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                              }
                          },1000);
                          });
                           
                          
                          

                          NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                          A 1 Antwort Letzte Antwort
                          0
                          • M MCU

                            @adb-83 Ich vermute ein Zeit-Problem?

                            const wlanids = Array.prototype.slice.apply($('unifi.0.default.clients.*.mac'));
                            var client_hostname
                            var client_name
                            var client_ip
                             
                             
                             
                            on({id: /^unifi\.0\.default\.clients\..+\.mac$/}, function(dp) {
                               setTimeout(function(){
                                client_hostname = getState("unifi.0.default.clients." + dp.state.val + ".hostname").val
                                client_name = getState("unifi.0.default.clients." + dp.state.val + ".name").val
                                client_ip = getState("unifi.0.default.clients." + dp.state.val + ".ip").val
                                
                             
                             
                                if(!wlanids.includes(dp.id)) {
                                    wlanids.push(dp.id);
                                    sendTo("pushover.0", { message: 'Neues Netzwerk-Gerät gefunden: \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name + '\n IP: ' + client_ip, sound: "vibrateonly", title: 'Neues Netzwerk-Gerät gefunden:  \n MAC: '+ dp.state.val + '\n Hostname: ' + client_hostname + '\n Name: ' + client_name  + client_name + '\n IP: ' + client_ip, priority: 1});
                                }
                            },1000);
                            });
                             
                            
                            
                            A Offline
                            A Offline
                            ADB-83
                            schrieb am zuletzt editiert von
                            #15

                            @mcu

                            Gute Arbeit! Das scheint es gewesen zu sein! :wink:

                            Herzlichen Dank für eure Bemühungen!

                            A 1 Antwort Letzte Antwort
                            0
                            • A ADB-83

                              @mcu

                              Gute Arbeit! Das scheint es gewesen zu sein! :wink:

                              Herzlichen Dank für eure Bemühungen!

                              A Offline
                              A Offline
                              ADB-83
                              schrieb am zuletzt editiert von
                              #16

                              Guten Morgen.

                              Als ich heute Morgen die Sache nochmals getestet habe, musste ich feststellen, dass es doch nicht bei allen Geräten den Namen auslesen kann (weshalb auch immer).

                              Zum Test habe ich jeden Schritt um eine Sekunde verzögert ausführen lassen -> ohne Erfolg. Auch die Verzögerung auf 10 Sekunden zu setzen brachte nicht den gewünschten Effekt.

                              Falls von euch niemand weitere Ideen hat, werde ich das Script wohl so belassen, obwohl ich dies wirklich gerne angezeigt bekommen hätte... :slightly_frowning_face:

                              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

                              439

                              Online

                              32.5k

                              Benutzer

                              81.9k

                              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