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. Hardware
  4. SONOFF NSPanel mit Lovelace UI

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

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.8k Posts 273 Posters 6.8m Views 256 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.
  • theknutT theknut

    @marko1974
    Emulator: https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Nextion-Editor

    Das mit der Struktur fand ich sehr verwirrend, ich zeig dir mal wie ich es gemacht habe, der Variablenname ist entscheidend, das war mir unklar.

    let menuPage: PageType = 
    {
        'type': 'cardGrid',
        'heading': 'Menü',
        'useColor': false,
        'items': []
    };
    let menuPage2: PageType = 
    {
        'type': 'cardGrid',
        'heading': 'Menü', 
        'useColor': false,   
        'items': []
    };
    
    ...
    
    // das kommt auf die erste Page
    
    // Wohnzimmer
    let wohnzimmerLicht : PageType =
    {
        'type': 'cardGrid',
        'heading': 'Licht',
        'useColor': true,
        'subPage': true,
        'parent': menuPage,
        'home': Object.keys({menuPage})[0], 
        'items': [
            { id: 'alias.0.Rooms.Wohnzimmer.HueGradientLightStrips', icon: "led-strip-variant", offColor: White, onColor: White, name: 'Lightstrips'},
            { id: 'alias.0.Rooms.Wohnzimmer.Stehlampe', icon: "lightbulb-outline", offColor: White, onColor: White, name: 'Stehlampe'},
            { id: 'alias.0.Rooms.Wohnzimmer.Stern', icon: "star-outline", offColor: White, onColor: White, name: 'Stern'},
            { id: 'alias.0.Rooms.Wohnzimmer.Lichterketten', icon: "lightbulb-outline", offColor: White, onColor: White, name: 'Lichterketten'},
            { id: 'alias.0.Rooms.Wohnzimmer.Kinomodus', icon: "projector", offColor: White, onColor: White, name: 'Kino'},
            { id: 'alias.0.Rooms.Wohnzimmer.Lichter_Aus', icon: "lightbulb-group-off-outline", offColor: White, onColor: White, name: 'Alle aus'}
        ]
    };
    
    let wohnzimmerRollo : PageType =
    {
        'type': 'cardEntities',
        'heading': 'Rollo',
        'useColor': true,
        'subPage': true,
        'parent': menuPage,
        'home': Object.keys({menuPage})[0], 
        'items': [
            { id: 'alias.0.Rooms.Wohnzimmer.Fenster.Wohnen.Rollo', icon: "blinds-horizontal", offColor: White, onColor: White, name: 'Raffstore Wohnen'},
            { id: 'alias.0.Rooms.Wohnzimmer.Fenster.Arbeiten.Rollo', icon: "blinds-horizontal", offColor: White, onColor: White, name: 'Raffstore Arbeiten'},
            { id: 'alias.0.Rooms.Wohnzimmer.Leinwand', icon: "blinds-horizontal", offColor: White, onColor: White, name: 'Leinwand'}
        ]
    };
    
    ....
    
    // das kommt auf die zweite Page
    let technikraum : PageType =
    {
        'type': 'cardEntities',
        'heading': 'Technik',
        'useColor': true,
        'subPage': true,
        'parent': menuPage2,
        'home': Object.keys({menuPage2})[0], 
        'items': [
            ...
        ]
    };
    
    ...
    
    // am Ende die Items hinzufügen
    
    
    menuPage.items = [
        <PageItem> { navigate: true, id: null, targetPage: Object.keys({wohnzimmerLicht})[0], name: 'Lichter', icon: 'lightbulb-outline', onColor: White, offColor: White },
        <PageItem> { navigate: true, id: null, targetPage: Object.keys({wohnzimmerRollo})[0], name: 'Rolläden', icon: 'blinds-horizontal', onColor: White, offColor: White },
    ...
    ]
    menuPage2.items = [
        <PageItem> { navigate: true, id: null, targetPage: Object.keys({technikraum})[0], name: 'Technik', icon: 'meter-electric-outline', onColor: White, offColor: White },
    ...
    ]
    
    // und dann noch in der Struktur hinzufügen
    
    export const config: Config = {
        // Seiteneinteilung / Page division
        // Hauptseiten / Mainpages
        pages: [
            menuPage,
            menuPage2
        ],
        // Unterseiten / Subpages
        subPages: [	    
            wohnzimmerLicht,
            wohnzimmerRollo,
            technikraum,
            ...
    

    Btw, ich hab mich hier auch mit viel Hilfe eingefuchst, die Entwickler sind sehr hilfsbereit. Ich würde empfehlen mal was per Paypal zu schicken *hust

    T Offline
    T Offline
    TT-Tom
    wrote on last edited by
    #4890

    @theknut kann man so machen, ist aber nicht Standard. Siehe Wiki Navigation.

    Warum schreibst du die PageItem separat, welchen Vorteil hat dies?

    Gruß Tom
    https://github.com/tt-tom17
    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

    NSPanel Script Wiki
    https://github.com/joBr99/nspanel-lovelace-ui/wiki

    NSPanel Adapter Wiki
    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

    theknutT 1 Reply Last reply
    0
    • T TT-Tom

      @theknut kann man so machen, ist aber nicht Standard. Siehe Wiki Navigation.

      Warum schreibst du die PageItem separat, welchen Vorteil hat dies?

      theknutT Offline
      theknutT Offline
      theknut
      wrote on last edited by theknut
      #4891

      @tt-tom das hat den Vorteil, dass ich den String für home nicht mehr händisch tippen muss, sondern 'home': Object.keys({menuPage})[0] machen kann. Heißt, falls ich mal den Variablennamen für menuPage ändere, dann bekomme ich einen Kompilierfehler und merke es sofort. Andernfalls würde er es erstmal schlucken und die Navigation geht dann einfach nicht mehr. Daher muss ich die Deklaration der Variable und das Hinzufügen der Items trennen.
      Muss man nicht so machen, aber beugt eben Fehler vor, die bisschen hässlich zu finden sind.

      ☕ @ https://ko-fi.com/theknut

      C 1 Reply Last reply
      2
      • theknutT theknut

        @tt-tom das hat den Vorteil, dass ich den String für home nicht mehr händisch tippen muss, sondern 'home': Object.keys({menuPage})[0] machen kann. Heißt, falls ich mal den Variablennamen für menuPage ändere, dann bekomme ich einen Kompilierfehler und merke es sofort. Andernfalls würde er es erstmal schlucken und die Navigation geht dann einfach nicht mehr. Daher muss ich die Deklaration der Variable und das Hinzufügen der Items trennen.
        Muss man nicht so machen, aber beugt eben Fehler vor, die bisschen hässlich zu finden sind.

        C Offline
        C Offline
        cdn
        wrote on last edited by
        #4892

        Gibt es eigentlich ein best practice zum Updaten der nspanelts.ts? Stand jetzt kopiere ich per Hand immer alle meine Änderungen herein. Ist bei einigen TSPanels schon echt aufwändig.

        T ArmilarA 2 Replies Last reply
        0
        • C cdn

          Gibt es eigentlich ein best practice zum Updaten der nspanelts.ts? Stand jetzt kopiere ich per Hand immer alle meine Änderungen herein. Ist bei einigen TSPanels schon echt aufwändig.

          T Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by
          #4893

          @cdn
          suche im Skript nach no moremarkiere alles ab da, kopieren, im eigenen Skript ebenfalls suchen, markieren und alles ersetzten.

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          C 1 Reply Last reply
          0
          • T ticaki

            @cdn
            suche im Skript nach no moremarkiere alles ab da, kopieren, im eigenen Skript ebenfalls suchen, markieren und alles ersetzten.

            C Offline
            C Offline
            cdn
            wrote on last edited by cdn
            #4894

            @ticaki
            Hmm aber in dem Bereich bis no more hat sich in den letzten Versionen schon was getan.

            EDIT: OK, sind nur Kommentare

            T 1 Reply Last reply
            0
            • C cdn

              @ticaki
              Hmm aber in dem Bereich bis no more hat sich in den letzten Versionen schon was getan.

              EDIT: OK, sind nur Kommentare

              T Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by ticaki
              #4895

              @cdn

              Das hatte ich verbrochen und sollte nicht nochmal passieren und es war optional :)

              EDIT: changelog fehlt dann

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              C T 2 Replies Last reply
              1
              • T ticaki

                @cdn

                Das hatte ich verbrochen und sollte nicht nochmal passieren und es war optional :)

                EDIT: changelog fehlt dann

                C Offline
                C Offline
                cdn
                wrote on last edited by
                #4896

                @ticaki Passt so, danke :-)

                1 Reply Last reply
                0
                • T ticaki

                  @cdn

                  Das hatte ich verbrochen und sollte nicht nochmal passieren und es war optional :)

                  EDIT: changelog fehlt dann

                  T Do not disturb
                  T Do not disturb
                  ticaki
                  wrote on last edited by ticaki
                  #4897

                  @ticaki sagte in SONOFF NSPanel mit Lovelace UI:

                  Das hatte ich verbrochen und sollte nicht nochmal passieren und es war optional :)

                  Die Aussage ziehe ich zu 50% wieder zurück, beim kommenden Update werden PageItems gezählt und zuviele oder zuwenige werden angemeckert.

                  Wir ändern nix, aber wenn ihr euch nicht an die überschaubare Wiki gehalten habt, müsst ihr was ändern. :)

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  C 1 Reply Last reply
                  0
                  • T ticaki

                    @ticaki sagte in SONOFF NSPanel mit Lovelace UI:

                    Das hatte ich verbrochen und sollte nicht nochmal passieren und es war optional :)

                    Die Aussage ziehe ich zu 50% wieder zurück, beim kommenden Update werden PageItems gezählt und zuviele oder zuwenige werden angemeckert.

                    Wir ändern nix, aber wenn ihr euch nicht an die überschaubare Wiki gehalten habt, müsst ihr was ändern. :)

                    C Offline
                    C Offline
                    cdn
                    wrote on last edited by
                    #4898

                    @ticaki Gut, dass ich noch nicht so viele Funktionen nutze bis jetzt :-)

                    https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui/4828?_=1705424364978

                    Nochmal bezogen auf dieses Thema (weswegen ich das Update gemacht habe). Würde gerne manche Buttons entkoppeln die für andere Funktionen genutzt werden. Ich steuere über den Schalter ein Blockly Skript. Brauche also einen Datenpunkt oder sonst irgendetwas was sich verändert.
                    Muss hier dann wirklich ein Gerät anlegen, oder kann ich einfach einen Datenpunkt anlegen, bspw. so:

                        button1: {
                            // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                            // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                            mode: 'toggle',
                            // DE: Zielpage - Verwendet wenn mode = page
                            // EN: Target page - Used if mode = page
                            page: null,
                            // DE: Zielentity - Verwendet wenn mode = set oder toggle
                            // EN: Target entity - Used if mode = set or toggle
                            entity: AliasPath + 'Rollo',
                            // DE: Zielwert - Verwendet wenn mode = set
                            // EN: Target value - Used if mode = set
                            setValue: null
                        },
                    
                    T 1 Reply Last reply
                    0
                    • C cdn

                      @ticaki Gut, dass ich noch nicht so viele Funktionen nutze bis jetzt :-)

                      https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui/4828?_=1705424364978

                      Nochmal bezogen auf dieses Thema (weswegen ich das Update gemacht habe). Würde gerne manche Buttons entkoppeln die für andere Funktionen genutzt werden. Ich steuere über den Schalter ein Blockly Skript. Brauche also einen Datenpunkt oder sonst irgendetwas was sich verändert.
                      Muss hier dann wirklich ein Gerät anlegen, oder kann ich einfach einen Datenpunkt anlegen, bspw. so:

                          button1: {
                              // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                              // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                              mode: 'toggle',
                              // DE: Zielpage - Verwendet wenn mode = page
                              // EN: Target page - Used if mode = page
                              page: null,
                              // DE: Zielentity - Verwendet wenn mode = set oder toggle
                              // EN: Target entity - Used if mode = set or toggle
                              entity: AliasPath + 'Rollo',
                              // DE: Zielwert - Verwendet wenn mode = set
                              // EN: Target value - Used if mode = set
                              setValue: null
                          },
                      
                      T Do not disturb
                      T Do not disturb
                      ticaki
                      wrote on last edited by
                      #4899

                      @cdn

                       button1: {
                              // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                              // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                              mode: 'toggle',
                              // DE: Zielpage - Verwendet wenn mode = page
                              // EN: Target page - Used if mode = page
                              page: null,
                              // DE: Zielentity - Verwendet wenn mode = set oder toggle
                              // EN: Target entity - Used if mode = set or toggle
                              entity: 'shelly.0.shellyplus1pm#84cca87727dc#1.Relay0.Switch',
                              // DE: Zielwert - Verwendet wenn mode = set
                              // EN: Target value - Used if mode = set
                              setValue: null
                          },
                      
                      

                      so siehts bei mir im Flur aus.

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      C 1 Reply Last reply
                      0
                      • T ticaki

                        @cdn

                         button1: {
                                // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                                // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                                mode: 'toggle',
                                // DE: Zielpage - Verwendet wenn mode = page
                                // EN: Target page - Used if mode = page
                                page: null,
                                // DE: Zielentity - Verwendet wenn mode = set oder toggle
                                // EN: Target entity - Used if mode = set or toggle
                                entity: 'shelly.0.shellyplus1pm#84cca87727dc#1.Relay0.Switch',
                                // DE: Zielwert - Verwendet wenn mode = set
                                // EN: Target value - Used if mode = set
                                setValue: null
                            },
                        
                        

                        so siehts bei mir im Flur aus.

                        C Offline
                        C Offline
                        cdn
                        wrote on last edited by cdn
                        #4900

                        @ticaki
                        Ja geht nicht so ganz. Ist ja ein Rollo. Hier gibt es open, close, stop.
                        Würde hier dann denke ich einfach einen weiteren DP erstellen für den Trigger, korrekt? AliasPath liegt doch dann unter 0_userdata.0.XXX.Panelname ?

                        Habs für mich so gelöst. Hoch geht es ja leider nur wenn ich bspw. noch den Doppelklick nutze.

                        0a0ea5a3-3394-4a88-a177-ddb17ac302b0-grafik.png

                        EDIT: Sollte mir vielleicht auch mal anschauen was ihr da programmiert habt. NSPanel_Path tut es :-)

                        1 Reply Last reply
                        0
                        • T Do not disturb
                          T Do not disturb
                          ticaki
                          wrote on last edited by
                          #4901

                          @cdn

                          Du brauchst einen Datenpunkt den du veränderst fürs Panel, Dann ein Skript das bei jeder Veränderung an diesem Datenpunkt durch auf, stop, zu, stop , auf, stop, zu,.. schaltet.

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          C 1 Reply Last reply
                          1
                          • T ticaki

                            @cdn

                            Du brauchst einen Datenpunkt den du veränderst fürs Panel, Dann ein Skript das bei jeder Veränderung an diesem Datenpunkt durch auf, stop, zu, stop , auf, stop, zu,.. schaltet.

                            C Offline
                            C Offline
                            cdn
                            wrote on last edited by cdn
                            #4902

                            @ticaki Ja das ist ne Idee. Dann kann ich aber nicht mit toggle arbeiten. Mache ich dann einfach SET und mit nem kleinen Blockly, welches hochzählt bei Zustandänderung?

                            T 1 Reply Last reply
                            1
                            • C cdn

                              Gibt es eigentlich ein best practice zum Updaten der nspanelts.ts? Stand jetzt kopiere ich per Hand immer alle meine Änderungen herein. Ist bei einigen TSPanels schon echt aufwändig.

                              ArmilarA Offline
                              ArmilarA Offline
                              Armilar
                              Most Active Forum Testing
                              wrote on last edited by
                              #4903

                              @cdn

                              Ich kopiere, analog der Ankündigungen in den Updates, ebenfalls nur den unteren Teil + den Header des NSPanelTs.ts in das Script. Update je Panel würde ich mal auf 1 Minute schätzen.

                              Es müssen faktisch nicht alle Updates gemacht werden. Nur wenn sie für euch einen Mehrwert bringen oder ein paar elementare Bugs behoben werden, die euch stören.

                              Wir arbeiten aber an einer Lösung, die ein manuelles Update künftig nicht mehr erforderlich macht. Bitte etwas geduld :blush:

                              Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                              1 Reply Last reply
                              2
                              • C Offline
                                C Offline
                                cdn
                                wrote on last edited by
                                #4904

                                @armilar Wow. Das hört sich richtig gut an!

                                ArmilarA 1 Reply Last reply
                                0
                                • C cdn

                                  @armilar Wow. Das hört sich richtig gut an!

                                  ArmilarA Offline
                                  ArmilarA Offline
                                  Armilar
                                  Most Active Forum Testing
                                  wrote on last edited by Armilar
                                  #4905

                                  @cdn

                                  Hab's ja schon gesagt. Das erste Update-Chaos im Code ( @ticaki erinnerte sich heute ja wieder :grinning: ) passierte nicht wirklich grundlos und ist die Basis für genau diese Neuerungen...

                                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                                  C 1 Reply Last reply
                                  0
                                  • ArmilarA Armilar

                                    @cdn

                                    Hab's ja schon gesagt. Das erste Update-Chaos im Code ( @ticaki erinnerte sich heute ja wieder :grinning: ) passierte nicht wirklich grundlos und ist die Basis für genau diese Neuerungen...

                                    C Offline
                                    C Offline
                                    cdn
                                    wrote on last edited by
                                    #4906

                                    @armilar Ich bin echt gespannt. Das Projekt hat auf jeden Fall noch richtig viel Potential!

                                    ArmilarA 1 Reply Last reply
                                    1
                                    • C cdn

                                      @armilar Ich bin echt gespannt. Das Projekt hat auf jeden Fall noch richtig viel Potential!

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      wrote on last edited by
                                      #4907

                                      @cdn

                                      Oh ja - da kommt noch einiges in das NSPanel...

                                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

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

                                      theknutT C 2 Replies Last reply
                                      0
                                      • ArmilarA Armilar

                                        @cdn

                                        Oh ja - da kommt noch einiges in das NSPanel...

                                        theknutT Offline
                                        theknutT Offline
                                        theknut
                                        wrote on last edited by
                                        #4908

                                        Ich mach das Update immer mit Beyond Compare, ist relativ easy. Gibt auch kostenlose Tools bspw. https://editor.mergely.com/. Links das neue Skript, rechts deins. Dann haust du mit dem kleinen Pfeil einfach die Sachen von dir in das linke Skript, dann Strg + A & Strg + C. Dann in deinem Skript im ioBroker Strg + A & Strg + V. Klatsch klatsch, das geht ruckzuck ;)

                                        6adfde35-e705-4298-9189-f5f4e966aaae-image.png

                                        ☕ @ https://ko-fi.com/theknut

                                        1 Reply Last reply
                                        3
                                        • C cdn

                                          @ticaki Ja das ist ne Idee. Dann kann ich aber nicht mit toggle arbeiten. Mache ich dann einfach SET und mit nem kleinen Blockly, welches hochzählt bei Zustandänderung?

                                          T Do not disturb
                                          T Do not disturb
                                          ticaki
                                          wrote on last edited by ticaki
                                          #4909

                                          @cdn

                                          mach noch einen State der hoch zählt und den Wert auch für Neustarts usw. speichert und dann
                                          counter = counter + 1
                                          counter = counter % 4

                                          Du brauchst 4 Wert für auf, stop ,zu ,stop und mit dem modulo (%) machst du eine 4 zu einer 0

                                          Keine Ahnung wie das im Blockly hießt, wohl irgendwas mit Rest weil
                                          5 % 4 = 1
                                          5 geteilt durch 4 hat den Rest 1

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          C 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

                                          979

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          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