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. Visualisierung
  4. URL selbst zusammensetzen bei Klick auf Button

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

URL selbst zusammensetzen bei Klick auf Button

Geplant Angeheftet Gesperrt Verschoben Visualisierung
19 Beiträge 4 Kommentatoren 3.2k Aufrufe
  • Ä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 Offline
    M Offline
    Marcel74
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich bin neu hier und habe schon ein wenig gesucht, bin aber irgendwie noch nicht auf das richtige gestoßen.

    Zunächst einmal: Was hier mit ioBroker zusammengestellt wurde ist erste Sahne. Hut ab! ioBroker macht SmartHome erst wirklich gut.

    Mein Problem: Ich habe mir eine LED-Stufenbeleuchtung mit LED-Stripes und einem Arduino Yun gebaut und programmiert. Gesteuert wird der Arduino über URL-Aufrufe mittels der Rest-API. Nun möchte ich nicht immer URLs in die Browserleiste tippen, sondern per Klick auf Buttons die entsprechenden Aktionen auslösen. Einfach ist das bei den einfachen Kommandos, zb: 192.168.1.80/arduino/setStatOn1 um ein statisches Licht einzuschalten. Um die Farbwerte einzustellen gibt es aber zB das Kommando: 192.168.1.80/arduino/setR1/200, wobei die 200 dann den Rotanteil in dem Licht darstellt. Nun der Kern des Problems: Ich muss mir die URL zusammenbauen und einen einstellbaren Wert aus einem Slider etc. holen um dann bei Druck auf einen Button die richtige URL zusammenzubauen und dann auch abzusenden. Am liebsten wäre mir ja ein Widget, welches das direkt kann "Wert an eine URL hängen und absenden".

    Wie gehe ich am Besten vor und welche Möglichkeiten habe ich. Ich brauche nur einen Denkanstoß in die richtige Richtung. Die Möglichkeiten in vis sind umfangreich, und ich habe einfach noch nicht alles entdeckt.

    Viele Grüße und Danke fürs helfen.

    Marcel

    1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      Hallo Marcel und Willkommen im Forum!

      Nicht dass ich dir final helfen könnte aber ;-) ,
      @Marcel74:

      Ich muss mir die URL zusammenbauen `
      Das sollte nicht das Problem sein.

      @Marcel74:

      einen einstellbaren Wert aus einem Slider `
      Warum aus dem Slider selbst?

      Der Slider hängt ja an einem Datenpunkt (Reiter Objekte9, dort steht der aktuell eingestellte Wert.

      Damit müsste sich doch arbeiten lassen.

      Gruß

      Rainer

      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
      • M Offline
        M Offline
        Marcel74
        schrieb am zuletzt editiert von
        #3

        Hallo Rainer,

        vielen Dank für Deine schnelle Antwort.

        Jetzt muss ich mal gucken, was Du damit meinst. Also mein Datenwert muss nicht zwingend von einem Slider kommen, ein Textfeld (nur für Ziffern) etc würde auch schon reichen.

        Deinen Hinweis auf "Datenpunkte" habe ich aufgenommen und daraus abgeleitet, dass ich mir für meine einstellbaren Werte im Bereich der Objekte Datenpunkte für die Werte anlegen muss, die ich dann abfragen kann.

        Wenn ich dann diese Datenpunkte habe, wie komme ich dann mit Hilfe dieser und meiner "halben URL" ala 192.168.1.80/arduino/setr1/ zu 192.168.1.80/arduino/setr1/170

        Viele Grüße und danke,

        Marcel

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          @Marcel74:

          Also mein Datenwert muss nicht zwingend von einem Slider kommen, ein Textfeld (nur für Ziffern) etc würde auch schon reichen. `
          Dann war das ein Missverständnis meinerseits.

          Ich hatte gedacht, dass du bereits mit einem Slider einen Datenpunkt eines Gerätes steuerst. Und den aktuellen Wert auslesen willst.

          Üblicherweise werden Widget ja einem State zugeordnet.

          Wenn deine Installation ganz anders aufbaut, erklärst du uns vielleicht noch (mit Screenshots), wie du das ganze angehen willst.

          Gruß

          Rainer

          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
          • M Offline
            M Offline
            Marcel74
            schrieb am zuletzt editiert von
            #5

            Hallo,

            Screenshots helfen da wohl nicht. Es gibt ja keinen Adapter der zu meinem Arduino gehört. Mein Arduino wird über URL-Aufrufe gesteuert. Und diese URLs muss ich bei Klick auf einen Button zusammenstellen und absenden. Ich habe mir jetzt eigene Datenpunkte angelegt. Einer heißt zB Treppenlicht.staticRed und beinhaltet eine Zahl zwischen 0 und 255. Diese Zahl muss ich nun an eine bekannte URL anhängen und dann per Klick auf einen Button absenden. Wie mache ich das?

            Viele Grüße

            Marcel

            1 Antwort Letzte Antwort
            0
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              Ich denke eher, dass du eine weiteren Datenpunkt typ text benötigst, in den ein Skript bei Klick auf einen Knopf den URL schreibt und dann an den Arduino weitergibt.

              Ich bin weder Scripter und erst recht nicht Arduino kenner.

              Aber würde das nicht mit mqtt gehen?

              Ansonsten bin ich leider raus.

              Gruß

              Rainer

              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
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                schrieb am zuletzt editiert von
                #7

                Ab einfachsten währe blockly darin kannst du einen HTML Befehl bauen mit verschiedenen Text Blöcken.

                Diesen Block kann man mit Text, Variable oder Werte von objecten zusammenbauen

                –-----------------------

                Send from mobile device

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  Hallo Dutch!

                  solange wir nicht wissen wie er das auslösen will und woher die Daten kommen, die in dem URL verbaut werden sollen können wir da nichts genaues zu sagen.

                  Gruß

                  Rainer

                  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
                  • R Offline
                    R Offline
                    RappiRN
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    Ich würde so versuchen, einen veränderbaren Link zu schicken:

                    2216_url.jpg

                    Objekte (Zahl) erstellen, für deine Slider. Diese Objekte oben beim Trigger eintragen, ich habe erstmal nur zwei erstellt. Beim Vergleich auch wieder diese Ojekte auswählen.

                    Was ich jetzt nicht genau weiß, was passiert beim ersten Aufruf und wie genau, bzw. ob es mit diesen skriptinternen Variablen passiert. Also am besten noch ein paar logs einbauen, damit du genau siehst, was passiert.

                    Enrico

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      Marcel74
                      schrieb am zuletzt editiert von
                      #10

                      Hallo,

                      vielen Dank für die Unterstützung, aber irgendwie bin ich wohl zu blöde, um das System zu raffen. Was muss man denn da für komplexe Verrenkungen machen um meinen frommen Wunsch umzusetzen. Kann ich das nicht simpel programmieren? Zur Not rufe ich ein wget mit meiner URL auf. Aber wie und wo kann ich das machen?

                      Also:

                      1. habe ich einen festen String. Von mir aus kann ich den in einen Datenpunkt von Typ String mit Namen "arduinoURL" schreiben. Der heißt zB : "http://192.168.1.80/arduino/setR1/"

                      2. habe ich nun einen Datenpunkt "Treppenlicht.StaticRed" vom Typ Zahl

                      3. Nun möchte ich daraus eine URL zusammenbauen. Also url = myURL + Integer.toString(Treppenlicht.StaticRed);

                      4. Diese URL aufrufen. Es darf kein Fenster aufgehen. Sowas wie wget reicht.

                      Ist das wirklich so ein spezielles Problem? Viele Aufrufe von Smarthome-Geräten funktionieren so (Homematic zB auch!). Nur da gibt es schon fertige Adapter, was es dann einfacher macht.

                      Viele Grüße

                      Marcel

                      1 Antwort Letzte Antwort
                      0
                      • HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #11

                        Vielleicht ist es auch ganz einfach und wir nehmen den falschen Ansatz weil wir deinen Ansatz nicht verstehen.

                        @Marcel74:

                        Viele Aufrufe von Smarthome-Geräten funktionieren so (Homematic zB auch!) `
                        und die bauen auch automatisch URLs zusammen aus verschiedenen Variablen?

                        @Marcel74:

                        Nur da gibt es schon fertige Adapter, was es dann einfacher macht `
                        und diese Adapter enthalten die Logik (im Hintergrund)

                        Du musst dir deine Logik selber bauen. Dafür sind die Widgets aber nicht zuständig, sondern z.B. der js-Adapter.

                        Vielleicht verstehe ich es wirklich nicht.

                        Gruß

                        Rainer

                        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
                        • R Offline
                          R Offline
                          RappiRN
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @Marcel74:

                          Was muss man denn da für komplexe Verrenkungen machen um meinen frommen Wunsch umzusetzen. `

                          Du hast dich doch auch für eine komlizierte Variante der Steuerung für deine Stufenbeleuchtung entschieden! :D Wer "A" sagt, muss auch "B" sagen!

                          Die Blockly-Bausteine sind zu sehen, ein bisschen Beschreibung ist auch dabei, also warum probierst du nicht?

                          Enrico

                          1 Antwort Letzte Antwort
                          0
                          • M Offline
                            M Offline
                            Marcel74
                            schrieb am zuletzt editiert von
                            #13

                            Hi!

                            Danke für die bisherige Unterstützung. Ich dachte die REST-API Steuerung ist nichts ungewöhnliches. Deshalb habe ich die für den Arduino gewählt. Und ja: Über die REST-API der Homematic kann man die auch steuern. Man muss nur die passende URL zusammenbauen und kann dadurch Aktionen in der Homematic-Zentrale auslösen oder auch Zustände lesen usw. Das "puffert" aber der Homematic-Adapter alles ab. Er stellt uns ein Abbild der Zustände in der CCU zur Verfügung und legt uns freundlicherweise dazu passende Datenpunkte in ioBroker an.

                            Nun zu meinem Problem: Ich kann es wohl mit dem javascript-Adapter lösen. Ich kann auf das Drücken eines Buttons reagieren (per on() glaube ich) und mir meine eigenen Datenpunkte auslesen. Dann kann ich die Strings aneinanderhängen und mit request() die URL aufrufen.

                            Das werde ich morgen mal ausprobieren. Mal sehen ob das klappt!

                            Viele Grüße

                            Marcel

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #14

                              @Marcel74:

                              Ich dachte die REST-API Steuerung ist nichts ungewöhnliches. `
                              OK - Dies ist eine bisher nicht bekannte Zusatzinfo.

                              Damit habe ich noch nie gearbeitet.

                              @Marcel74:

                              Ich kann es wohl mit dem javascript-Adapter lösen. Ich kann auf das Drücken eines Buttons reagieren (per on() glaube ich) und mir meine eigenen Datenpunkte auslesen. Dann kann ich die Strings aneinanderhängen und mit request() die URL aufrufen. `
                              Genau!

                              Das war unser Ansatz und ist IMHO auch nicht so etwas wie @Marcel74:

                              komplexe Verrenkungen ` zu machen ;-)

                              Das Skript läuft, wenn es erst einmal geschrieben ist, im Hintergrund und reagiert auf deine Einstellungen.

                              So müsstest du auch einen Slider mit deinem Datenpunkt (number) verbinden können und dort auf Änderungen reagieren und gut ist.

                              Gruß

                              Rainer

                              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
                              • R Offline
                                R Offline
                                RappiRN
                                Most Active
                                schrieb am zuletzt editiert von
                                #15

                                @Homoran:

                                @Marcel74:

                                Ich dachte die REST-API Steuerung ist nichts ungewöhnliches. `
                                OK - Dies ist eine bisher nicht bekannte Zusatzinfo.

                                Damit habe ich noch nie gearbeitet. `

                                Noch nie gehört, geschweige denn, mit gearbeitet.

                                Deine Datenpunkte, die du schon mit Werten von 0-255 hast, sind genau die, die du im Trigger eintragen müsstest. Ich kann leider nur ein bisschen Blockly, bei "normalem" Javaskript bin ich draußen!

                                Enrico

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #16

                                  @RappiRN:

                                  Noch nie gehört, `
                                  Sieh mal hier:

                                  https://github.com/ioBroker/ioBroker.simple-api

                                  Ist aber nichts für dich und mich. Nur für echte Programmierer.

                                  @RappiRN:

                                  Deine Datenpunkte, die du schon mit Werten von 0-255 hast, `
                                  Ich kann auch nur ein wenig blockly, Da gibt es einen Befehl auf Änderung eines Datenpunktes zu reagieren. Damit ist es egal welcher Wert da vorher oder hinterher szeht.

                                  Gruß

                                  rainer

                                  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
                                  • R Offline
                                    R Offline
                                    RappiRN
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #17

                                    @Homoran:

                                    @RappiRN:

                                    Noch nie gehört, `
                                    Sieh mal hier:

                                    https://github.com/ioBroker/ioBroker.simple-api `

                                    Simple-Api von ioBroker habe ich schon mal gehört und weiß, dass man damit von außerhalb steuern kann. Dass sowas ähnliches mit der CCU auch geht, weiß ich auch, das mache ich z.B. mit Tasker um Werte vom Android-Gerät in die CCU zu bekommen.

                                    @Homoran:

                                    Ich kann auch nur ein wenig blockly, Da gibt es einen Befehl auf Änderung eines Datenpunktes zu reagieren. Damit ist es egal welcher Wert da vorher oder hinterher szeht. `

                                    Auf diese Werte soll ja der Trigger in meinem Beispiel reagieren. Diesen Vergleich habe ich nur drin, damit nicht immer alle Zweige abgearbeitet werden. Man kann natürlich auch für jede Farbe ein kürzeres Blockly schreiben, sollte aber grundsätzlich so machbar sein.

                                    offtopic an: sag mal, Rainer, hast du eigentlich fünf oder mehr Bildschirme vor dir um auf alle Forumsfragen zu antworten? offtopic aus! :lol:

                                    Enrico

                                    1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #18

                                      @RappiRN:

                                      sag mal, Rainer, hast du eigentlich fünf oder mehr Bildschirme vor dir um auf alle Forumsfragen zu antworten? `
                                      Jein!
                                      144_bildschirme.jpg

                                      2 Bildschirme ja, aber nur auf einem alle Foren ;-)

                                      der andere für putty, Irfan, notepad….

                                      Gruß

                                      Rainer

                                      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
                                      • M Offline
                                        M Offline
                                        Marcel74
                                        schrieb am zuletzt editiert von
                                        #19

                                        Hi,

                                        so, ich habe mich gestern noch ein bisschen mit dem Javascript befasst und habe eine Lösung. Für die Nachwelt:

                                        1. Ein Button in VIS anlegen, der mit einem Datenpunkt verknüpft ist, den ihr entweder unter "Objekte" selbst erzeugt oder (besser) im Javascript mit create() erzeugen lasst. Vorteil der letzten Moethode: Ihr müsst nur das JS sichern und hinterher im Falle einer Wiederherstellung nicht auch die Objekte wieder von Hand erzeugen.

                                        2. Im Javascript müsst ihr euch per on() in die "Überwachungsliste" eintragen ("subscription"). Diese überwacht dann den übergebenen Zustand. Aber Achtung! Die offizielle Dokumentation für on() ist an einer Stelle fehlerhaft. Dort steht geschrieben, dass ohne Angabe des Parameters "change" die Überwachung auf jegliche Änderung oder Aktualisierung getriggert wird. Dies ist für den Button wichtig, da dieser immer nur und ausschließlich "true" liefert und bei einem Klick nur der Zeitstempel geändert wird. Aber das stimmt nicht! Ohne den Parameter change wird auf "ne" getestet, und das bedeutet, dass nur getriggert wird, wenn sich der Wert ÄNDERT! Das passiert aber bei dem Button nie (er bleibt ja immer auf true). Man muss für diesen Fall also unbedingt check: "any" eintragen. Mein javascript sieht demnach so aus:

                                        //Datenpunkt für Buttons und Werte aus den Slidern anlegen
                                        createState('javascript.0.VIS.setStatic1', false, {name: 'Treppe_setStatic1_script'});
                                        createState('Treppenbeleuchtung.0.staticRed', 128, {name: 'Treppenlicht_Rotanteil'});
                                        createState('Treppenbeleuchtung.0.staticGreen', 128, {name: 'Treppenlicht_Gruenanteil'});
                                        createState('Treppenbeleuchtung.0.staticBlue', 128, {name: 'Treppenlicht_Blauanteil'});
                                        
                                        //URL zum Arduino (nur linker Teil ohne Parameter):
                                        var arduinoUrl = 'http://192.168.2.80/arduino/setStatic1/';
                                        
                                        log("Script SetStatic1 initiated");		//Eintrag im log, dass das Script läuft
                                        
                                        on({id: "javascript.0.VIS.setStatic1", change: "any" }, function (obj) {
                                            if (!obj.state.ack && obj.state.val) {
                                        
                                        	//Datenpunkte auslesen
                                        	var redValue = getState('Treppenbeleuchtung.0.staticRed').val;
                                        	var greenValue = getState('Treppenbeleuchtung.0.staticGreen').val;
                                        	var blueValue = getState('Treppenbeleuchtung.0.staticBlue').val;
                                        
                                                //Die Farbwerte an die URL anhängen, so wie mein Arduino das erwartet
                                                var steuerbefehl = arduinoUrl + redValue + "/" + greenValue + "/" + blueValue;    
                                        
                                                request(steuerbefehl);    	//Die URL aufrufen, die Rückgabe verwerfen (alternativ: Rückantwort des Servers ins log schreiben)
                                                log("Requesting:" + steuerbefehl);	//log: Den an den Arduino übergebenen String mitloggen.
                                        
                                            }
                                            });
                                        
                                        

                                        Viele Grüße

                                        Marcel

                                        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

                                        577

                                        Online

                                        32.7k

                                        Benutzer

                                        82.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