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. ioBroker Allgemein
  4. HM-RPC Level Kanal 3&4 nicht synchron

NEWS

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

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

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

HM-RPC Level Kanal 3&4 nicht synchron

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
156 Beiträge 7 Kommentatoren 14.4k Aufrufe 6 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.
  • paul53P paul53

    @negalein sagte: Dann könnt ich jetzt diesen Alias in Shuttercontroll verwenden?
    ... Bingo, wieder falsch

    Auch in Shuttercontrol?

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #141

    @paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:

    Auch in Shuttercontrol?

    wie meinst du das?

    Ich hab den Alias in Shuttercontroll verwendet.
    Seh es dann um ca. 20:45 obs funktioniert.
    Aber ich glaube nicht dass es funktioniert. Als Wert steht ja 0 dort. Somit wird Shuttercontroll nicht schalten.

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    paul53P 1 Antwort Letzte Antwort
    0
    • NegaleinN Negalein

      @paul53

      @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

      Bei mir war das auch nicht direkt nach dem bedienen falsch...

      Bingo, wieder falsch

      objects - ioBroker (2).png
      objects - ioBroker (3).png

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von dslraser
      #142

      @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

      Bingo, wieder falsch

      Ich habe es fast vermutet. Aber wenigstens bin ich dann nicht alleine damit.
      Warte aber trotzdem noch das Ergebnis heute Abend mit Shuttercontrol ab. Ich nutze den Adapter nicht, kann man da zum testen für das eine Rollo nicht die Zeiten einstellen ?

      NegaleinN 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        @paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:

        Auch in Shuttercontrol?

        wie meinst du das?

        Ich hab den Alias in Shuttercontroll verwendet.
        Seh es dann um ca. 20:45 obs funktioniert.
        Aber ich glaube nicht dass es funktioniert. Als Wert steht ja 0 dort. Somit wird Shuttercontroll nicht schalten.

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #143

        @negalein sagte: Als Wert steht ja 0 dort.

        Sicher? Prüfe es mal in einem kleinen Test-Skript:

        log('Rollo Wohnzimmer: ' + getState('alias.0.Rollos.Rollo_Wohnzimmer').val);
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        dslraserD NegaleinN 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @negalein sagte: Als Wert steht ja 0 dort.

          Sicher? Prüfe es mal in einem kleinen Test-Skript:

          log('Rollo Wohnzimmer: ' + getState('alias.0.Rollos.Rollo_Wohnzimmer').val);
          
          dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von dslraser
          #144

          @paul53
          Damit kam bei mir immer der richtige Wert (aber im admin stand trotzdem der falsche Wert und war dann auch in iQontrol falsch.)
          @Negalein
          Es wäre interessant welchen Wert denn Shuttercontrol nimmt, den sichtbaren aus dem admin oder den "wirklichen", wenn es denn in Deinem Log auch so ist wie bei mir.

          1 Antwort Letzte Antwort
          0
          • dslraserD dslraser

            @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

            Bingo, wieder falsch

            Ich habe es fast vermutet. Aber wenigstens bin ich dann nicht alleine damit.
            Warte aber trotzdem noch das Ergebnis heute Abend mit Shuttercontrol ab. Ich nutze den Adapter nicht, kann man da zum testen für das eine Rollo nicht die Zeiten einstellen ?

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            schrieb am zuletzt editiert von
            #145

            @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

            Warte aber trotzdem noch das Ergebnis heute Abend mit Shuttercontrol ab. Ich nutze den Adapter nicht, kann man da zum testen für das eine Rollo nicht die Zeiten einstellen ?

            So, ich hab jetzt wieder das Blockly deaktiviert, Alias-Script aktiviert und gerade geschalten.
            Derzeit ist der Alias noch gleich wie .3.LEVEL

            Hab jetzt noch History dafür aktiviert.

            @paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:

            Sicher? Prüfe es mal in einem kleinen Test-Skript:

            Ok, wenns wieder auftritt.

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @negalein sagte: Als Wert steht ja 0 dort.

              Sicher? Prüfe es mal in einem kleinen Test-Skript:

              log('Rollo Wohnzimmer: ' + getState('alias.0.Rollos.Rollo_Wohnzimmer').val);
              
              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #146

              @paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:

              Sicher? Prüfe es mal in einem kleinen Test-Skript:

              objects - ioBroker (4).png

              javascript.0	2021-04-09 18:00:52.697	info	(814) script.js.Fenster.Test-Alias: Rollo Wohnzimmer: 93
              

              Im Log stehts richtig.
              Bin dann gespannt.

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              dslraserD 1 Antwort Letzte Antwort
              0
              • NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                schrieb am zuletzt editiert von
                #147

                @dslraser @paul53

                Funktioniert mit dem Alias.

                Shuttercontroll hat soeben brav geschlossen! :)

                ° Node.js: 20.17.0 NPM: 10.8.2
                ° Proxmox, Ubuntu 22.04.3 LTS
                ° Fixer ---> iob fix

                dslraserD 1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

                  @dslraser @paul53

                  Funktioniert mit dem Alias.

                  Shuttercontroll hat soeben brav geschlossen! :)

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von dslraser
                  #148

                  @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                  @dslraser @paul53

                  Funktioniert mit dem Alias.

                  Shuttercontroll hat soeben brav geschlossen! :)

                  beobachte es mal noch einen Tag. Wie war das Log und history zu der Zeit als Shuttercontrol geschlossen hat ?

                  NegaleinN 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @paul53 sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                    Sicher? Prüfe es mal in einem kleinen Test-Skript:

                    objects - ioBroker (4).png

                    javascript.0	2021-04-09 18:00:52.697	info	(814) script.js.Fenster.Test-Alias: Rollo Wohnzimmer: 93
                    

                    Im Log stehts richtig.
                    Bin dann gespannt.

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von dslraser
                    #149

                    @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                    Im Log stehts richtig.
                    Bin dann gespannt.

                    ist das Log und der Screenshot zur gleichen Zeit gemacht ?

                    Edit: weil das Log von 18:00 Uhr ist ?

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • dslraserD dslraser

                      @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                      Im Log stehts richtig.
                      Bin dann gespannt.

                      ist das Log und der Screenshot zur gleichen Zeit gemacht ?

                      Edit: weil das Log von 18:00 Uhr ist ?

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #150

                      @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                      ist das Log und der Screenshot zur gleichen Zeit gemacht ?

                      Ja, war der Zeitpunkt, wo ich den Schalter betätigt habe.

                      Schalter betätigt --> im Wert wird 0 angezeigt, im Log aber die richtigen 93

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      1 Antwort Letzte Antwort
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #151

                        @dslraser

                        Kann ich in diesem Script auch die anderen Rollos einfügen, oder je Rollo 1 Script?

                        // Original-Datenpunkt
                        const idOrigin = 'hm-rpc.0.00115A49A5B2BE.4.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ 
                        // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                        // Bei Nicht-Verwendung Leerstring '' zuweisen
                        const idRead = 'hm-rpc.0.00115A49A5B2BE.3.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/
                         
                        // Alias-Datenpunkt
                        const idAlias = 'Rollos.Rollo_Wohnzimmer';
                         
                        var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                         
                        // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                        nameAlias = 'Rollo Wohnzimmer';
                        desc = 'per Script erstellt';
                        // typeAlias = 'boolean'; // oder 'number'
                        // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                        // write = "val ? String(1) : String(0)";
                        // role = 'value';
                        // min = 0; // nur Zahlen
                        // max = 100; // nur Zahlen
                        // unit = '%'; // nur für Zahlen
                        // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                        custom = {}; // verhindert doppelte Ausführung von history, ...
                        // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                        // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                         
                        // Ab hier nichts ändern !!
                        function createAlias(idDst, idSrc, idRd) {
                           if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                           else {
                              var obj = {};
                              obj.type = 'state';
                              obj.common = getObject(idSrc).common;
                              obj.common.alias = {};
                              if(idRd) {
                                  obj.common.alias.id = {};
                                  obj.common.alias.id.read = idRd;
                                  obj.common.alias.id.write = idSrc;
                                  obj.common.read = true;
                              } else obj.common.alias.id = idSrc;
                              if(typeAlias) obj.common.type = typeAlias;
                              if(obj.common.read !== false && read) obj.common.alias.read = read;
                              if(obj.common.write !== false && write) obj.common.alias.write = write;
                              if(nameAlias) obj.common.name = nameAlias;
                              if(role) obj.common.role = role;
                              if(desc) obj.common.desc = desc;
                              if(obj.common.type == 'number') {
                                 if(min !== undefined) obj.common.min = min;
                                 if(max !== undefined) obj.common.max = max;
                                 if(unit) obj.common.unit = unit;
                              } else {
                                 if(obj.common.min !== undefined) delete obj.common.min;
                                 if(obj.common.max !== undefined) delete obj.common.max;
                                 if(obj.common.unit) delete obj.common.unit;
                              }
                              if(states) obj.common.states = states;
                              if(custom && obj.common.custom) obj.common.custom = custom;
                              obj.native = {};
                              setObject(idDst, obj, function() {
                                 if(idRd) setState(idRd, getState(idRd).val, true);
                                 else setState(idSrc, getState(idSrc).val, true); 
                              });
                              if(raum && existsObject('enum.rooms.' + raum)) {
                                 let obj = getObject('enum.rooms.' + raum)
                                 obj.common.members.push(idDst);
                                 setObject('enum.rooms.' + raum, obj);
                              }
                              if(gewerk && existsObject('enum.functions.' + gewerk)) {
                                 let obj = getObject('enum.functions.' + gewerk)
                                 obj.common.members.push(idDst);
                                 setObject('enum.functions.' + gewerk, obj);
                              }
                           } 
                        }
                         
                        createAlias('alias.0.' + idAlias, idOrigin, idRead);
                        

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        dslraserD 1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

                          @dslraser

                          Kann ich in diesem Script auch die anderen Rollos einfügen, oder je Rollo 1 Script?

                          // Original-Datenpunkt
                          const idOrigin = 'hm-rpc.0.00115A49A5B2BE.4.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/ 
                          // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                          // Bei Nicht-Verwendung Leerstring '' zuweisen
                          const idRead = 'hm-rpc.0.00115A49A5B2BE.3.LEVEL'/*Rollo Wohnzimmer :4 LEVEL*/
                           
                          // Alias-Datenpunkt
                          const idAlias = 'Rollos.Rollo_Wohnzimmer';
                           
                          var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                           
                          // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                          nameAlias = 'Rollo Wohnzimmer';
                          desc = 'per Script erstellt';
                          // typeAlias = 'boolean'; // oder 'number'
                          // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch  
                          // write = "val ? String(1) : String(0)";
                          // role = 'value';
                          // min = 0; // nur Zahlen
                          // max = 100; // nur Zahlen
                          // unit = '%'; // nur für Zahlen
                          // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                          custom = {}; // verhindert doppelte Ausführung von history, ...
                          // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                          // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                           
                          // Ab hier nichts ändern !!
                          function createAlias(idDst, idSrc, idRd) {
                             if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                             else {
                                var obj = {};
                                obj.type = 'state';
                                obj.common = getObject(idSrc).common;
                                obj.common.alias = {};
                                if(idRd) {
                                    obj.common.alias.id = {};
                                    obj.common.alias.id.read = idRd;
                                    obj.common.alias.id.write = idSrc;
                                    obj.common.read = true;
                                } else obj.common.alias.id = idSrc;
                                if(typeAlias) obj.common.type = typeAlias;
                                if(obj.common.read !== false && read) obj.common.alias.read = read;
                                if(obj.common.write !== false && write) obj.common.alias.write = write;
                                if(nameAlias) obj.common.name = nameAlias;
                                if(role) obj.common.role = role;
                                if(desc) obj.common.desc = desc;
                                if(obj.common.type == 'number') {
                                   if(min !== undefined) obj.common.min = min;
                                   if(max !== undefined) obj.common.max = max;
                                   if(unit) obj.common.unit = unit;
                                } else {
                                   if(obj.common.min !== undefined) delete obj.common.min;
                                   if(obj.common.max !== undefined) delete obj.common.max;
                                   if(obj.common.unit) delete obj.common.unit;
                                }
                                if(states) obj.common.states = states;
                                if(custom && obj.common.custom) obj.common.custom = custom;
                                obj.native = {};
                                setObject(idDst, obj, function() {
                                   if(idRd) setState(idRd, getState(idRd).val, true);
                                   else setState(idSrc, getState(idSrc).val, true); 
                                });
                                if(raum && existsObject('enum.rooms.' + raum)) {
                                   let obj = getObject('enum.rooms.' + raum)
                                   obj.common.members.push(idDst);
                                   setObject('enum.rooms.' + raum, obj);
                                }
                                if(gewerk && existsObject('enum.functions.' + gewerk)) {
                                   let obj = getObject('enum.functions.' + gewerk)
                                   obj.common.members.push(idDst);
                                   setObject('enum.functions.' + gewerk, obj);
                                }
                             } 
                          }
                           
                          createAlias('alias.0.' + idAlias, idOrigin, idRead);
                          
                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #152

                          @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                          je Rollo 1 Script?

                          entweder je Rollo eins, oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.

                          NegaleinN 1 Antwort Letzte Antwort
                          0
                          • dslraserD dslraser

                            @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                            @dslraser @paul53

                            Funktioniert mit dem Alias.

                            Shuttercontroll hat soeben brav geschlossen! :)

                            beobachte es mal noch einen Tag. Wie war das Log und history zu der Zeit als Shuttercontrol geschlossen hat ?

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            schrieb am zuletzt editiert von
                            #153

                            @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                            Wie war das Log und history zu der Zeit als Shuttercontrol geschlossen hat ?

                            History hatte ich vergessen zu aktivieren. :(

                            2021-04-09 19:53:00.027  - info: shuttercontrol.0 (22669) #12 Set ID: alias.0.Rollos.Rollo_Wohnzimmer Rollo Wohnzimmer value: 0%
                            

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

                            1 Antwort Letzte Antwort
                            0
                            • dslraserD dslraser

                              @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                              je Rollo 1 Script?

                              entweder je Rollo eins, oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #154

                              @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                              oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.

                              Ok, also das Script muss nur 1x laufen um den Alias anzulegen. Danach kann es pausiert werden?

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              dslraserD 1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

                                @dslraser sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                                oder Du überschreibst nur die oberen beiden id und erstellst damit neu usw.

                                Ok, also das Script muss nur 1x laufen um den Alias anzulegen. Danach kann es pausiert werden?

                                dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #155

                                @negalein sagte in HM-RPC Level Kanal 3&4 nicht synchron:

                                Danach kann es pausiert werden?

                                ja, das brauchst Du nur jeweils 1x zum erstellen, danach kannst Du es ausschalten.

                                1 Antwort Letzte Antwort
                                1
                                • NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #156

                                  @dslraser @paul53

                                  mit Alias hat es soeben wiedermal funktioniert. :+1:

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  1 Antwort Letzte Antwort
                                  1
                                  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

                                  989

                                  Online

                                  32.4k

                                  Benutzer

                                  81.5k

                                  Themen

                                  1.3m

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

                                  • Du hast noch kein Konto? Registrieren

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