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. Einsteigerfragen
  4. Automatisierung
  5. Steckdose über vis Steuerelemente automatisieren

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    512

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

Steckdose über vis Steuerelemente automatisieren

Geplant Angeheftet Gesperrt Verschoben Automatisierung
25 Beiträge 3 Kommentatoren 2.7k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @chenda sagte: Status bereit ist soll er automatisch arbeiten (Steckdose ein), sobald genug Stromüberschuss vorhanden ist.

    Dann muss auf den Überschuss getriggert werden und im Trigger die Bereitschaft geprüft werden.

    ChendaC Offline
    ChendaC Offline
    Chenda
    schrieb am zuletzt editiert von
    #11

    @paul53 ich dachte von der Logik her ist es wahrscheinlich, dass der Stromüberschuss reicht, wenn der Bedampfer gefüllt wird. Daher trigger so rum. Macht das denn einen Unterschied? geht doch beides, oder irre ich mich?

    paul53P 1 Antwort Letzte Antwort
    0
    • ChendaC Chenda

      @paul53 ich dachte von der Logik her ist es wahrscheinlich, dass der Stromüberschuss reicht, wenn der Bedampfer gefüllt wird. Daher trigger so rum. Macht das denn einen Unterschied? geht doch beides, oder irre ich mich?

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

      @chenda sagte: Macht das denn einen Unterschied?

      Wenn zum Zeitpunkt des Wechsels in Bereitschaft der Überschuss nicht ausreicht, bleibt die Steckdose aus, wenn nicht auf den Überschuss getriggert wird.

      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

      1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @chenda sagte: Logik gerne in js

        Versuche es mal so:

        const idUeber = 'alias.0.Erzeugung.Ueberschuss';
        const idPlug  = 'hs100.0.192_168_178_29.state';
        const idVis   = '0_userdata.0.Heubedampfer.Bereit'; // boolean
        var delayOn = null;
        
        on(idUeber, function(dp) {
            if(dp.state.val < 2000) { // Grenzwert anpassen!
                clearTimeout(delayOn);
                delayOn = null;
            } else if(!delayOn && getState(idVis).val) {
                delayOn = setTimeout(function() {
                    setState(idPlug, true);
                    setState(idVis, false, true);
                    setTimeout(function() {
                        setState(idPlug, false);
                        delayOn = null;
                    }, 3600000); // 60 Minuten
                }, 300000); // 5 Minuten
            }
        });
        
        ChendaC Offline
        ChendaC Offline
        Chenda
        schrieb am zuletzt editiert von
        #13

        @paul53 Danke dir.
        Ich habe das etwas angepasst. Was hälst du davon?

        const idUeber = "alias.0.Erzeugung.Ueberschuss"; // Stromüberschuss
        const idPlug  = "hs100.0.192_168_178_29.state"; // Steckdose
        const idStatus = "javascript.0.Heubedampfer.Status"; // Heubedampfer-Zustand
        const idVerbrauch = "alias.0.Verbrauch.Bedampfer"; // Verbrauchswert
        var delayOn = null;
        
        // Überprüfung bei jeder Änderung des Stromüberschusses
        on({id: idUeber, change: "ne"}, function(dp) {
            let überschuss = dp.state.val;
            let status = getState(idStatus)?.val || "Leer";
        
            if (status === "Bereit" && überschuss >= 2000 && !delayOn) {
                log("Genug Überschuss vorhanden! Startet in 5 Minuten...");
                
                // Verzögerung von 5 Minuten, um sicherzustellen, dass der Überschuss stabil bleibt
                delayOn = setTimeout(function() {
                    log("Starte Heubedampfer für 60 Minuten!");
                    setState(idPlug, true);
                    setState(idStatus, "Arbeitet", true);
                    setState(idVerbrauch, 2000); // Verbrauch direkt setzen
        
                    // Nach exakt 60 Minuten abschalten
                    setTimeout(function() {
                        log("60 Minuten sind um. Heubedampfer stoppt.");
                        setState(idPlug, false);
                        setState(idStatus, "Fertig", true);
                        setState(idVerbrauch, 0); // Verbrauch wieder auf 0 setzen
                        delayOn = null;
                    }, 3600000); // 60 Minuten
                }, 300000); // 5 Minuten Verzögerung
            }
        });
        
        // Aktualisierung des Verbrauchswerts, wenn sich der Steckdosenstatus ändert
        on({id: idPlug, change: "ne"}, function (obj) {
            let status = obj.state.val; // Zustand der Steckdose
            let verbrauch = status ? 2000 : 0; // Wenn an -> 2000W, wenn aus -> 0W
            setState(idVerbrauch, verbrauch);
        });
        
        
        ChendaC 1 Antwort Letzte Antwort
        0
        • ChendaC Chenda

          @paul53 Danke dir.
          Ich habe das etwas angepasst. Was hälst du davon?

          const idUeber = "alias.0.Erzeugung.Ueberschuss"; // Stromüberschuss
          const idPlug  = "hs100.0.192_168_178_29.state"; // Steckdose
          const idStatus = "javascript.0.Heubedampfer.Status"; // Heubedampfer-Zustand
          const idVerbrauch = "alias.0.Verbrauch.Bedampfer"; // Verbrauchswert
          var delayOn = null;
          
          // Überprüfung bei jeder Änderung des Stromüberschusses
          on({id: idUeber, change: "ne"}, function(dp) {
              let überschuss = dp.state.val;
              let status = getState(idStatus)?.val || "Leer";
          
              if (status === "Bereit" && überschuss >= 2000 && !delayOn) {
                  log("Genug Überschuss vorhanden! Startet in 5 Minuten...");
                  
                  // Verzögerung von 5 Minuten, um sicherzustellen, dass der Überschuss stabil bleibt
                  delayOn = setTimeout(function() {
                      log("Starte Heubedampfer für 60 Minuten!");
                      setState(idPlug, true);
                      setState(idStatus, "Arbeitet", true);
                      setState(idVerbrauch, 2000); // Verbrauch direkt setzen
          
                      // Nach exakt 60 Minuten abschalten
                      setTimeout(function() {
                          log("60 Minuten sind um. Heubedampfer stoppt.");
                          setState(idPlug, false);
                          setState(idStatus, "Fertig", true);
                          setState(idVerbrauch, 0); // Verbrauch wieder auf 0 setzen
                          delayOn = null;
                      }, 3600000); // 60 Minuten
                  }, 300000); // 5 Minuten Verzögerung
              }
          });
          
          // Aktualisierung des Verbrauchswerts, wenn sich der Steckdosenstatus ändert
          on({id: idPlug, change: "ne"}, function (obj) {
              let status = obj.state.val; // Zustand der Steckdose
              let verbrauch = status ? 2000 : 0; // Wenn an -> 2000W, wenn aus -> 0W
              setState(idVerbrauch, verbrauch);
          });
          
          
          ChendaC Offline
          ChendaC Offline
          Chenda
          schrieb am zuletzt editiert von
          #14

          Das Script funktioniert erstmal und tat, was es soll.
          Nun wollte ich mir noch die Restzeiten anzeigen lassen. Dafür habe ich mir in VIS-2 ein html widget eingebunden,
          84a314a7-0b0a-477e-8a57-538edffe31bd-image.png

          im Feld Allgemein "html" habe ich folgenden Code eingebaut:

          <div id="countdown" style="font-size: 28px; font-weight: bold; text-align: center;"></div>
          
          <script>
              const countdownElement = document.getElementById("countdown");
              const wartezeitDP = "javascript.0.Logik.Heubedampfer.Wartezeit";
              const arbeitszeitDP = "javascript.0.Logik.Heubedampfer.Restzeit";
          
              function updateCountdown() {
                  let wartezeit = getState(wartezeitDP)?.val || 0;
                  let arbeitszeit = getState(arbeitszeitDP)?.val || 0;
          
                  if (wartezeit > 0) {
                      let minutes = Math.floor(wartezeit / 60);
                      let seconds = wartezeit % 60;
                      countdownElement.innerHTML = `Wartezeit: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                      countdownElement.style.color = "#FFA500"; // Orange für Wartezeit
                  } else if (arbeitszeit > 0) {
                      let minutes = Math.floor(arbeitszeit / 60);
                      let seconds = arbeitszeit % 60;
                      countdownElement.innerHTML = `Heubedampfer läuft: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                      countdownElement.style.color = "#00FF00"; // Grün für aktive Betriebszeit
                  } else {
                      countdownElement.innerHTML = "Kein aktiver Timer";
                      countdownElement.style.color = "#FF0000"; // Rot für keine Aktivität
                  }
              }
          
              // Aktualisierung alle 1 Sekunde
              setInterval(updateCountdown, 1000);
              updateCountdown();
          </script>
          

          In den Variablen javascript.0.Logik.Heubedampfer.Wartezeit und javascript.0.Logik.Heubedampfer.Restzeit wird durch mein JS skript regelmäßig die Restzeit (in s) aktualisiert. Dennoch wird in der VIS-2 nichts angezeigt.
          Was habe ich falsch gemacht?

          HomoranH 1 Antwort Letzte Antwort
          0
          • ChendaC Chenda

            Das Script funktioniert erstmal und tat, was es soll.
            Nun wollte ich mir noch die Restzeiten anzeigen lassen. Dafür habe ich mir in VIS-2 ein html widget eingebunden,
            84a314a7-0b0a-477e-8a57-538edffe31bd-image.png

            im Feld Allgemein "html" habe ich folgenden Code eingebaut:

            <div id="countdown" style="font-size: 28px; font-weight: bold; text-align: center;"></div>
            
            <script>
                const countdownElement = document.getElementById("countdown");
                const wartezeitDP = "javascript.0.Logik.Heubedampfer.Wartezeit";
                const arbeitszeitDP = "javascript.0.Logik.Heubedampfer.Restzeit";
            
                function updateCountdown() {
                    let wartezeit = getState(wartezeitDP)?.val || 0;
                    let arbeitszeit = getState(arbeitszeitDP)?.val || 0;
            
                    if (wartezeit > 0) {
                        let minutes = Math.floor(wartezeit / 60);
                        let seconds = wartezeit % 60;
                        countdownElement.innerHTML = `Wartezeit: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                        countdownElement.style.color = "#FFA500"; // Orange für Wartezeit
                    } else if (arbeitszeit > 0) {
                        let minutes = Math.floor(arbeitszeit / 60);
                        let seconds = arbeitszeit % 60;
                        countdownElement.innerHTML = `Heubedampfer läuft: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                        countdownElement.style.color = "#00FF00"; // Grün für aktive Betriebszeit
                    } else {
                        countdownElement.innerHTML = "Kein aktiver Timer";
                        countdownElement.style.color = "#FF0000"; // Rot für keine Aktivität
                    }
                }
            
                // Aktualisierung alle 1 Sekunde
                setInterval(updateCountdown, 1000);
                updateCountdown();
            </script>
            

            In den Variablen javascript.0.Logik.Heubedampfer.Wartezeit und javascript.0.Logik.Heubedampfer.Restzeit wird durch mein JS skript regelmäßig die Restzeit (in s) aktualisiert. Dennoch wird in der VIS-2 nichts angezeigt.
            Was habe ich falsch gemacht?

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #15

            @chenda warum um alles in der Welt lässt du das in der vis laufen?
            Das läuft dann im (wahrscheinlich deutlich leistungsschwächeren) Frontend ab und nich auf dem Server.

            Lass es ganz normal im js-Adapter laufen und lass dir nur denn Wert der Datenpunkte in der Vis anzeigen.
            Das Tablet oder was auch immer hat schon genug mit der grafischen Aufarbeitung zu tun.

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            ChendaC 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @chenda warum um alles in der Welt lässt du das in der vis laufen?
              Das läuft dann im (wahrscheinlich deutlich leistungsschwächeren) Frontend ab und nich auf dem Server.

              Lass es ganz normal im js-Adapter laufen und lass dir nur denn Wert der Datenpunkte in der Vis anzeigen.
              Das Tablet oder was auch immer hat schon genug mit der grafischen Aufarbeitung zu tun.

              ChendaC Offline
              ChendaC Offline
              Chenda
              schrieb am zuletzt editiert von
              #16

              @homoran okay, ich kann das javascript natürlich verschieben. Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

              HomoranH 1 Antwort Letzte Antwort
              0
              • ChendaC Chenda

                @homoran okay, ich kann das javascript natürlich verschieben. Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #17

                @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

                dann reicht ja ein Number-Widget das die Werte des Countdown Datenpunkts anzeigt.
                mache ich schon lange so (mit vis! nicht mit vis-2! aber das sollte nicht der Grund sein)

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                ChendaC 1 Antwort Letzte Antwort
                0
                • HomoranH Homoran

                  @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                  Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

                  dann reicht ja ein Number-Widget das die Werte des Countdown Datenpunkts anzeigt.
                  mache ich schon lange so (mit vis! nicht mit vis-2! aber das sollte nicht der Grund sein)

                  ChendaC Offline
                  ChendaC Offline
                  Chenda
                  schrieb am zuletzt editiert von
                  #18

                  @homoran ja da hast du eigentlich recht, aber mir wird dennoch nix angezeigt:
                  6e8cbe53-4d50-42ef-ba1f-18224f5028fb-image.png
                  7be3902e-68e5-4435-931a-302a73d8ed91-image.png
                  6d4b94cf-2b91-4c4c-8952-1ebd76b00239-image.png
                  19080b75-8a12-4d17-ac4a-215ef6d23171-image.png

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • ChendaC Chenda

                    @homoran ja da hast du eigentlich recht, aber mir wird dennoch nix angezeigt:
                    6e8cbe53-4d50-42ef-ba1f-18224f5028fb-image.png
                    7be3902e-68e5-4435-931a-302a73d8ed91-image.png
                    6d4b94cf-2b91-4c4c-8952-1ebd76b00239-image.png
                    19080b75-8a12-4d17-ac4a-215ef6d23171-image.png

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von Homoran
                    #19

                    @chenda wie gesagt kenne ich vis-2 nicht

                    aber NaN heisst Not a Number.
                    du hast da Text in dem Feld

                    der müsste nach meinem Verständnis darunter in "voranstellen..."

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    ChendaC 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @chenda wie gesagt kenne ich vis-2 nicht

                      aber NaN heisst Not a Number.
                      du hast da Text in dem Feld

                      der müsste nach meinem Verständnis darunter in "voranstellen..."

                      ChendaC Offline
                      ChendaC Offline
                      Chenda
                      schrieb am zuletzt editiert von Chenda
                      #20

                      @homoran ja stimmt, aber das ändert nix, wenn ich das weglasse:
                      fa6b0503-dd28-496e-9a3b-dcc474d6aa70-image.png
                      oder ein String Widget benutze:
                      7498c130-e108-44a6-8ad9-091e23f23a1f-image.png
                      ich verstehe einfach nicht was da nicht stimmt :-/

                      In "voranstellen" braucht das glaub nicht, denn im Objekt Auswahldialog steht und es heißt ja auch voranstellen html
                      04ee6d13-6359-4db9-b0c7-74bf7388ca8d-image.png

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • ChendaC Chenda

                        @homoran ja stimmt, aber das ändert nix, wenn ich das weglasse:
                        fa6b0503-dd28-496e-9a3b-dcc474d6aa70-image.png
                        oder ein String Widget benutze:
                        7498c130-e108-44a6-8ad9-091e23f23a1f-image.png
                        ich verstehe einfach nicht was da nicht stimmt :-/

                        In "voranstellen" braucht das glaub nicht, denn im Objekt Auswahldialog steht und es heißt ja auch voranstellen html
                        04ee6d13-6359-4db9-b0c7-74bf7388ca8d-image.png

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von Homoran
                        #21

                        @chenda zeig mal die Objektdaten des Datenpunkts
                        was ist w00008 ?

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        ChendaC 1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @chenda zeig mal die Objektdaten des Datenpunkts
                          was ist w00008 ?

                          ChendaC Offline
                          ChendaC Offline
                          Chenda
                          schrieb am zuletzt editiert von
                          #22

                          @homoran du hattest doch recht. Und zusätzlich musste ich noch die geschweiften Klammern entfernen, die bei der Objektauswahl automatisch um die Variable herumgelegt wurden.
                          5abfec5f-c44a-4666-a416-7ed5bc1b3bf0-image.png
                          Mein JS stellt auch noch eine Farbvariable und einen Text ein:
                          0a868ebf-115a-4c40-9b7b-a9e67cb1a3d3-image.png
                          Kann ich die Farbe irgendwie dem Text zuordnen?

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • ChendaC Chenda

                            @homoran du hattest doch recht. Und zusätzlich musste ich noch die geschweiften Klammern entfernen, die bei der Objektauswahl automatisch um die Variable herumgelegt wurden.
                            5abfec5f-c44a-4666-a416-7ed5bc1b3bf0-image.png
                            Mein JS stellt auch noch eine Farbvariable und einen Text ein:
                            0a868ebf-115a-4c40-9b7b-a9e67cb1a3d3-image.png
                            Kann ich die Farbe irgendwie dem Text zuordnen?

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #23

                            @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                            Kann ich die Farbe irgendwie dem Text zuordnen?

                            in den Eigenschaften von Schrift als Binding nehme ich an

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            ChendaC 1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                              Kann ich die Farbe irgendwie dem Text zuordnen?

                              in den Eigenschaften von Schrift als Binding nehme ich an

                              ChendaC Offline
                              ChendaC Offline
                              Chenda
                              schrieb am zuletzt editiert von
                              #24

                              @homoran Danke - gefunden.
                              Da wiederum braucht es die geschweiften Klammern:
                              35d7aec7-b8b8-4e52-9933-6c187ff5f96e-image.png

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • ChendaC Chenda

                                @homoran Danke - gefunden.
                                Da wiederum braucht es die geschweiften Klammern:
                                35d7aec7-b8b8-4e52-9933-6c187ff5f96e-image.png

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #25

                                @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                                Da wiederum braucht es die geschweiften Klammern:

                                sonst wäre es kein Binding

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                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

                                312

                                Online

                                32.5k

                                Benutzer

                                81.8k

                                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