Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Denon HEOS Script

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Vorlage] Denon HEOS Script

Scheduled Pinned Locked Moved JavaScript
javascripttemplate
358 Posts 48 Posters 82.9k Views 44 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W withstu

    Der Heos Adapter ist nun im stable Repo in der Version 1.6.1 :muscle:

    @Meister-Mopper Das funktioniert ähnlich zu dem SONOS Adapter:

    • SayIt Adapter in der Version > 1.12.0 installieren
    • SayIt Adapter Instanz für HEOS konfigurieren
    • In Blockly Sendto -> Aussprechen auswählen -> Meldung hinzufügen -> Script ausführen
      heos-sayit-config.png heos-sayit.png
    Meister MopperM Online
    Meister MopperM Online
    Meister Mopper
    wrote on last edited by
    #229

    @withstu sagte in [Vorlage] Denon HEOS Script:

    SayIt Adapter Instanz für HEOS konfigurieren

    Danke, das hat mir gefehlt :+1: :blush:

    Proxmox und HA

    1 Reply Last reply
    0
    • NWHN Offline
      NWHN Offline
      NWH
      wrote on last edited by
      #230

      Ein Frage, wie kann ich mit dem Heos Adapter meine Favoriten auf eine Button legen? So das wenn ich auf einen Button klicke dieser abgespielt wird.

      W 1 Reply Last reply
      0
      • NWHN NWH

        Ein Frage, wie kann ich mit dem Heos Adapter meine Favoriten auf eine Button legen? So das wenn ich auf einen Button klicke dieser abgespielt wird.

        W Offline
        W Offline
        withstu
        wrote on last edited by withstu
        #231

        @NWH Da gibt es mehrere Varianten:

        • Per command: Den command state eines players mit folgendem Text füllen "play_preset&preset=1". Die Nummer ist der entsprechende Favorit. (oder um es auf allen Playern abzuspielen den State heos.0.command mit leader/play_preset&preset=1 füllen).
        • Per State: Zunächst einmal die aktuellen Favoriten abrufen, indem folgender State auf true gesetzt wird: heos.0.sources.1028.browse. Anschließend werden die Favoriten unter heos.0.sources.1028 aufgelistet. Diese enthalten jeweils auch einen play state. In Vis lässt sich ein jqui - Icon State Button wie folgt konfigurieren:
          Bildschirmfoto von 2021-01-06 18-34-57.png
        NWHN S M 3 Replies Last reply
        0
        • W withstu

          @NWH Da gibt es mehrere Varianten:

          • Per command: Den command state eines players mit folgendem Text füllen "play_preset&preset=1". Die Nummer ist der entsprechende Favorit. (oder um es auf allen Playern abzuspielen den State heos.0.command mit leader/play_preset&preset=1 füllen).
          • Per State: Zunächst einmal die aktuellen Favoriten abrufen, indem folgender State auf true gesetzt wird: heos.0.sources.1028.browse. Anschließend werden die Favoriten unter heos.0.sources.1028 aufgelistet. Diese enthalten jeweils auch einen play state. In Vis lässt sich ein jqui - Icon State Button wie folgt konfigurieren:
            Bildschirmfoto von 2021-01-06 18-34-57.png
          NWHN Offline
          NWHN Offline
          NWH
          wrote on last edited by NWH
          #232

          @withstu said in [Vorlage] Denon HEOS Script:

          "play_preset&preset=1"

          Sorry ich finde den unter dem Ordner 1028 keinen Play Button.
          9609b6b6-17a2-4094-8c28-91ae7a22f576-image.png

          Schon gefunden, habe das überlesen das man 1x die Favoriten abrufen muss. Dann kann man sie gleich auswählen. Sorry

          1 Reply Last reply
          0
          • W Offline
            W Offline
            withstu
            wrote on last edited by
            #233

            Hat sich hier schonmal jemand mit der SOAP API von HEOS beschäftigt? Eventuell könnte man den Funktionsumfang des Adapters so noch um Seek, Zonen, Updates etc. erweitern. Ich hab dazu gerade auf GitHub ein interessantes Projekt gefunden: https://github.com/mkarasoff/shoe

            RootXML: http://<Player IP>:60006/upnp/desc/aios_device/aios_device.xml

            W 1 Reply Last reply
            0
            • W withstu

              Hat sich hier schonmal jemand mit der SOAP API von HEOS beschäftigt? Eventuell könnte man den Funktionsumfang des Adapters so noch um Seek, Zonen, Updates etc. erweitern. Ich hab dazu gerade auf GitHub ein interessantes Projekt gefunden: https://github.com/mkarasoff/shoe

              RootXML: http://<Player IP>:60006/upnp/desc/aios_device/aios_device.xml

              W Offline
              W Offline
              withstu
              wrote on last edited by
              #234

              Ich habe am Wochenende dem Adapter eine UPNP Schnittstelle spendiert. Dadurch ist es nun möglich die Bitrate, Sample Rate, Audio Format anzuzeigen und Seek zu unterstützen. Folgende Aktionen unterstützt die API meines Receivers. Ihr könnt ja kommentieren, welche Funktionen für euch noch interessant für den Adapter wären:

              AVTransport

              • GetCurrentState
              • GetCurrentTransportActions
              • GetDeviceCapabilities
              • GetMediaInfo
              • GetMediaInfo_Ext
              • GetPositionInfo
              • GetTransportInfo
              • GetTransportSettings
              • Next
              • Pause
              • Play
              • Previous
              • Seek
              • SetAVTransportURI
              • SetNextAVTransportURI
              • SetPlayMode
              • Stop
              • X_SetShuffle

              ConnectionManager

              • ConnectionComplete
              • GetCurrentConnectionIDs
              • GetCurrentConnectionInfo
              • GetCurrentState
              • GetProtocolInfo
              • PrepareForConnection

              RenderingControl

              • GetCurrentState
              • GetMute
              • GetVolume
              • GetVolumeDB
              • ListPresets
              • SelectPreset
              • SetMute
              • SetVolume
              • SetVolumeDB
              • X_GetBalance
              • X_GetBass
              • X_GetPreset
              • X_GetSubwoofer
              • X_GetTreble
              • X_SetBalance
              • X_SetBass
              • X_SetMute
              • X_SetSubwoofer
              • X_SetTreble
              • X_SetVolume

              ErrorHandler

              • ClearError
              • DummyAction_ErrorHandler

              ZoneControl

              • AddMemberToZone
              • CreateZone
              • DestroyZone
              • DummyAction_ZoneControl
              • GetCurrentState
              • GetMemberStatus
              • GetZoneConnectedList
              • GetZoneFriendlyName
              • GetZoneMemberList
              • GetZoneMinimise
              • GetZoneMute
              • GetZoneStatus
              • GetZoneUUID
              • GetZoneVolume
              • RemoveMemberFromZone
              • SetZoneFriendlyName
              • SetZoneMinimise
              • SetZoneMute
              • SetZoneVolume
              • TestZoneConnectivity

              GroupControl

              • AddMembersToGroup
              • CreateGroup
              • DestroyGroup
              • DummyAction_GroupControl
              • GetConfigDeviceUUID
              • GetCurrentState
              • GetDeviceFriendlyName
              • GetGroupBalance
              • GetGroupBass
              • GetGroupFriendlyName
              • GetGroupMemberChannel
              • GetGroupMemberList
              • GetGroupMute
              • GetGroupStatus
              • GetGroupTreble
              • GetGroupUUID
              • GetGroupUpdating
              • GetGroupVolume
              • GetMediaServerUUID
              • GetSignalStrength
              • RemoveMembersFromGroup
              • SetDeviceFriendlyName
              • SetGroupBalance
              • SetGroupBass
              • SetGroupFriendlyName
              • SetGroupMemberChannel
              • SetGroupMute
              • SetGroupTreble
              • SetGroupVolume

              ACT

              • AddNetworkShare
              • ApplyChanges
              • CancelChanges
              • CancelFirmwareUpgrade
              • CheckForFirmwareUpgrade
              • DeleteNetworkShare
              • GetAccessPointList
              • GetActiveInterface
              • GetAudioConfig
              • GetAvrZoneStatus
              • GetBluetoothStatus
              • GetConfigurationStatus
              • GetConfigurationToken
              • GetCurrentLanguage
              • GetCurrentState
              • GetDaylightSaving
              • GetDevicePowerState
              • GetFriendlyName
              • GetHEOSNetID
              • GetLowLatencyConfig
              • GetNetworkConfiguration
              • GetNetworkConfigurationList
              • GetNetworkShares
              • GetP2PMode
              • GetQuickSelectNames
              • GetSessionId
              • GetSupportedLanguageList
              • GetSurroundSpeakerConfig
              • GetTimeZone
              • GetTranscode
              • GetUpdateAction
              • GetUpdateLevel
              • GetUpgradeProgress
              • GetUpgradeStatus
              • GetVolumeLimit
              • GetWirelessProfile
              • GetWirelessState
              • GetWirelessStatus
              • ReIndexNetworkShare
              • ReMountNetworkShare
              • RecallQuickSelect
              • RegisterUser
              • ReleaseConfigurationToken
              • SetAudioConfig
              • SetAvrZoneStatus
              • SetBluetoothAction
              • SetConfigurationStatus
              • SetCurrentLanguage
              • SetDaylightSaving
              • SetDevicePowerState
              • SetFriendlyName
              • SetHEOSNetID
              • SetLowLatencyConfig
              • SetNetworkConfiguration
              • SetQuickSelectNames
              • SetSessionId
              • SetSurroundSpeakerConfig
              • SetTimeZone
              • SetTranscode
              • SetUpdateAction
              • SetUpdateLevel
              • SetVolumeLimit
              • SetWPSPinSSID
              • SetWirelessProfile
              • StartInvitation
              • StartWifiAp
              • StopInvitation
              • StopWifiAp
              • StoreQuickSelect
              • SubmitDiagnostics
              • UpdateFirmware

              ContentDirectory

              • Browse
              • GetSearchCapabilities
              • GetSortCapabilities
              • GetSystemUpdateID
              • Search
              • X_HideItem
              • X_RenameItem
              • X_SetItemInputLevel
              1 Reply Last reply
              0
              • B Offline
                B Offline
                bouster
                wrote on last edited by
                #235

                Hallo,

                ich habe das Skript bei mir seit ein paar Wochen am laufen. Leider habe ich seit dem neuen Update das Problem, dass mein Blocky Skript nicht mehr in den HEOS command state schreiben kann, bzw. das Kommando nicht mehr ausgeführt wird. Das Skript wird an der Stelle ausgeführt, jedoch passiert nichts. Leider kann ich kein Bild einfügen, darum versuche ich es so:

                Steuere Kommando für Heos-Skript mit "browse/play_preset?pid=39318011&preset=3"

                Gebe ich das Kommando manuell ein, so wird es problemlos ausgeführt. Ich hab auch das Skript gedebuggt und der befehl wird definitiv so ausgeführt. Im Log ist das auch zu sehen:

                2021-05-27 08:21:25.696	info	script.js.Heos.Heos: [Heos] command: browse/play_preset?pid=39318011&preset=3
                2021-05-27 08:21:25.690	info	script.js.Heos.Heos_Steuerung: test Ende
                2021-05-27 08:21:25.689	info	script.js.Heos.Heos_Steuerung: PLAY ABSOLUTE RELAX: browse/play_preset?pid=39318011&preset=3
                2021-05-27 08:21:25.688	info	script.js.Heos.Heos_Steuerung: test Anfang
                

                Ich hoffe ich bin hier richtig für diese Frage.

                foxriver76F 1 Reply Last reply
                0
                • B bouster

                  Hallo,

                  ich habe das Skript bei mir seit ein paar Wochen am laufen. Leider habe ich seit dem neuen Update das Problem, dass mein Blocky Skript nicht mehr in den HEOS command state schreiben kann, bzw. das Kommando nicht mehr ausgeführt wird. Das Skript wird an der Stelle ausgeführt, jedoch passiert nichts. Leider kann ich kein Bild einfügen, darum versuche ich es so:

                  Steuere Kommando für Heos-Skript mit "browse/play_preset?pid=39318011&preset=3"

                  Gebe ich das Kommando manuell ein, so wird es problemlos ausgeführt. Ich hab auch das Skript gedebuggt und der befehl wird definitiv so ausgeführt. Im Log ist das auch zu sehen:

                  2021-05-27 08:21:25.696	info	script.js.Heos.Heos: [Heos] command: browse/play_preset?pid=39318011&preset=3
                  2021-05-27 08:21:25.690	info	script.js.Heos.Heos_Steuerung: test Ende
                  2021-05-27 08:21:25.689	info	script.js.Heos.Heos_Steuerung: PLAY ABSOLUTE RELAX: browse/play_preset?pid=39318011&preset=3
                  2021-05-27 08:21:25.688	info	script.js.Heos.Heos_Steuerung: test Anfang
                  

                  Ich hoffe ich bin hier richtig für diese Frage.

                  foxriver76F Offline
                  foxriver76F Offline
                  foxriver76
                  Developer
                  wrote on last edited by
                  #236

                  @bouster wieso nutzt du nicht den Adapter?

                  Videotutorials & mehr

                  Hier könnt ihr mich unterstützen.

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    bouster
                    wrote on last edited by
                    #237

                    Ich habe den Adapter installiert und möchte mit dem Skript den Wert von Command schreiben, damit das Skript den Befehl ausgeführt. Leider wird der Wert aber nicht eingetragen.

                    B 1 Reply Last reply
                    0
                    • B bouster

                      Ich habe den Adapter installiert und möchte mit dem Skript den Wert von Command schreiben, damit das Skript den Befehl ausgeführt. Leider wird der Wert aber nicht eingetragen.

                      B Offline
                      B Offline
                      Brati
                      wrote on last edited by
                      #238

                      @bouster

                      Das kannst du doch im Adapter im State

                      heos.0.players.3931801.command
                      

                      als commando

                      play_preset&preset=3
                      

                      übergeben. Klappt aus vis aus dem State oder einem beliebigen JS. Script und Adapter könnte sich beißen.

                      Grüße

                      Brati

                      CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                      B 1 Reply Last reply
                      0
                      • B Brati

                        @bouster

                        Das kannst du doch im Adapter im State

                        heos.0.players.3931801.command
                        

                        als commando

                        play_preset&preset=3
                        

                        übergeben. Klappt aus vis aus dem State oder einem beliebigen JS. Script und Adapter könnte sich beißen.

                        Grüße

                        Brati

                        B Offline
                        B Offline
                        bouster
                        wrote on last edited by
                        #239

                        @brati
                        Ich benutze Vis nicht. Ich nutze das Mediola AIO neo iobroker plugin und möchte darin eine Auswahl des Lautsprechers festlegen, indem ich die ID an 0_userdata.0.HeosSelected_ID übergebe.
                        In meinem Skript habe ich es wie folgt verwendet:

                        setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));

                        Das funktioniert aber leider nicht.

                        B 1 Reply Last reply
                        0
                        • B bouster

                          @brati
                          Ich benutze Vis nicht. Ich nutze das Mediola AIO neo iobroker plugin und möchte darin eine Auswahl des Lautsprechers festlegen, indem ich die ID an 0_userdata.0.HeosSelected_ID übergebe.
                          In meinem Skript habe ich es wie folgt verwendet:

                          setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));

                          Das funktioniert aber leider nicht.

                          B Offline
                          B Offline
                          Brati
                          wrote on last edited by
                          #240

                          @bouster die Syntax aufm Handy ist immer schwer, du kannst den o.g. State aus dem Adapter per setState so wie beschrieben setzen. Das sollte ohne das Heos Script funktionieren.

                          CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                          B 1 Reply Last reply
                          0
                          • B Brati

                            @bouster die Syntax aufm Handy ist immer schwer, du kannst den o.g. State aus dem Adapter per setState so wie beschrieben setzen. Das sollte ohne das Heos Script funktionieren.

                            B Offline
                            B Offline
                            bouster
                            wrote on last edited by
                            #241

                            @brati tut mir leid, ich verstehe nicht genau was du meinst. Meinst du so:

                            setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));

                            B ? 2 Replies Last reply
                            0
                            • B bouster

                              @brati tut mir leid, ich verstehe nicht genau was du meinst. Meinst du so:

                              setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));

                              B Offline
                              B Offline
                              bouster
                              wrote on last edited by
                              #242

                              Ok, ich denke jetzt habe ich verstanden was du gemeint hast. Danke, habs hinbekommen.

                              B 1 Reply Last reply
                              0
                              • B bouster

                                Ok, ich denke jetzt habe ich verstanden was du gemeint hast. Danke, habs hinbekommen.

                                B Offline
                                B Offline
                                Brati
                                wrote on last edited by
                                #243

                                @bouster sehr gut, jetzt hätte ich auch wieder Zugriff auf den PC :).

                                CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                1 Reply Last reply
                                0
                                • B bouster

                                  @brati tut mir leid, ich verstehe nicht genau was du meinst. Meinst du so:

                                  setState("javascript.1.heos.command"/Kommando für Heos-Script/, (['browse/play_preset?pid=',getState("0_userdata.0.HeosSelected_ID").val,'&preset=3'].join('')));

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #244

                                  @bouster

                                  Hallo,

                                  wie erstelle ich den HEOS Player im VIS und wie bekomme ich Zugriff das es mir mein Musikarchiv anzeigt was auf meinem NAS ist?

                                  In der HEOS App habe ich bereits Zugriff darauf.

                                  Danke Euch

                                  Olli

                                  1 Reply Last reply
                                  0
                                  • ? Offline
                                    ? Offline
                                    A Former User
                                    wrote on last edited by
                                    #245

                                    Wie bekomme dieses Widget mit dem Player hin?

                                    Bildschirmfoto 2021-08-17 um 13.05.14.png

                                    B 1 Reply Last reply
                                    0
                                    • ? A Former User

                                      Wie bekomme dieses Widget mit dem Player hin?

                                      Bildschirmfoto 2021-08-17 um 13.05.14.png

                                      B Offline
                                      B Offline
                                      Brati
                                      wrote on last edited by
                                      #246

                                      @olli_m

                                      Hallo Olli,

                                      warum installierst du nicht den Denon/ HEOS Adapter. Den Rest baust du dir im vis zusammen, also das Album Cover aus dem State, die Knöpfe werden mit dem zu bedienenden Commando verknüpft usw...

                                      Grüße

                                      Brati

                                      CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                      ? 1 Reply Last reply
                                      0
                                      • B Brati

                                        @olli_m

                                        Hallo Olli,

                                        warum installierst du nicht den Denon/ HEOS Adapter. Den Rest baust du dir im vis zusammen, also das Album Cover aus dem State, die Knöpfe werden mit dem zu bedienenden Commando verknüpft usw...

                                        Grüße

                                        Brati

                                        ? Offline
                                        ? Offline
                                        A Former User
                                        wrote on last edited by A Former User
                                        #247

                                        @brati

                                        Hi Brati,

                                        habe den Adapter installiert sogar, aber möchte ja trotzdem noch ne Browse View z.b. haben wie es hier ist:

                                        https://github.com/withstu/ioBroker.heos

                                        Wie es da beschrieben ist :

                                        Browse Widget: browse_player_widget.json
                                        Browse View: browse_view.json
                                        Browse HTML Generation Script: browse.js

                                        Aber da versteh ich nicht ganz die schritte wie ich das hinbekomme bzw. ich eigentlich lieber eine eigene View im VIS erstellen möchte.

                                        Welches Widget nutz ich z.b. wenn ich so playbutton machen möchte? VIS ist echt noch neuland für mich :-)

                                        Lg

                                        B 1 Reply Last reply
                                        0
                                        • ? A Former User

                                          @brati

                                          Hi Brati,

                                          habe den Adapter installiert sogar, aber möchte ja trotzdem noch ne Browse View z.b. haben wie es hier ist:

                                          https://github.com/withstu/ioBroker.heos

                                          Wie es da beschrieben ist :

                                          Browse Widget: browse_player_widget.json
                                          Browse View: browse_view.json
                                          Browse HTML Generation Script: browse.js

                                          Aber da versteh ich nicht ganz die schritte wie ich das hinbekomme bzw. ich eigentlich lieber eine eigene View im VIS erstellen möchte.

                                          Welches Widget nutz ich z.b. wenn ich so playbutton machen möchte? VIS ist echt noch neuland für mich :-)

                                          Lg

                                          B Offline
                                          B Offline
                                          Brati
                                          wrote on last edited by
                                          #248

                                          @olli_m Ich verstehe leider dein Problem nicht so ganz.

                                          Wenn du das aktuelle Cover angezeigt haben möchtest, dann nimmst du:

                                          • basic string img src

                                          und legst unter Objekt ID den State "heos.0.players.***.current_image_url" ab

                                          Natürlich deinen State nehmen...

                                          Der Vorspul Button ist ein "ctrl icon state" und damit setzt du den State "heos.0.players.***.next" auf "true"

                                          usw. usw. wie du es haben möchtest...

                                          Grüße

                                          Brati

                                          CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                          ? 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          712

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe