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. Skripten / Logik
  4. JavaScript
  5. ABRP API

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    220

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

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

ABRP API

Geplant Angeheftet Gesperrt Verschoben JavaScript
12 Beiträge 5 Kommentatoren 1.0k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H holgerwolf

    Hallo,

    bei APRB (A better route planner) https://abetterrouteplanner.com/ besteht ja die Möglichkeit über ein Token die SoC Werte eines EVs einzuspielen.
    Passenderweise hat jemand hierfür schon ein Projekt mit ein paar Scripten für den iobroker geschrieben: https://github.com/christophmoar/abrpTelemetrySmartInjector?tab=readme-ov-file
    Der Entwickler hat das wegen dem vorhandene Adapter für die smart#1 API so gemacht, nutzt den iobroker aber ansonsten nicht und deshalb das ganze Projekt auch in ein docker image (inkl iobroker, smart-eq Adapter, simple API Adapter... )gepackt.
    Da ich das script gerne in meine bestehende iobroker Umgebung nutzen möchte, nutzt mir das docker file wenig. Es ist ja auch der smart-eq Adaper mit drin und ggf will das jemand ja auch mit nem anderen EV nutzen.
    Ich hatte über github auch Kontakt mit dem Entwickler, der aber wenig vom iobroker weiß und sein script gerne zur Nutzung so anbietet.

    Vielleicht hat ja jemand auch Interesse und kann weiterhelfen.

    Im Script werden einige npm Module benötigt:

    import PubSub from 'pubsub-js'
    import fetch from 'sync-fetch'
    import axios from 'axios'
    

    Fehlermeldung bei Starten:

    script.js.common.abrp_js compile failed: at script.js.common.abrp_js:27
    

    Wie bekomme ich die in meiner Umgebung rein und das Script dann zum Laufen?

    Danke und Gruß
    Holger

    I Offline
    I Offline
    iobroker_Alex
    schrieb am zuletzt editiert von
    #2

    @holgerwolf Hier beschreibt das einer mit einer HA-Lösung und ein wenig später gibt es jemanden der es als Blockly umfunktioniert hat. Vielleicht testest du es mal damit und stellst deine finale Lösung hier rein. Ich habe leider bislang kein passendes Auto etc..

    https://www.enyaq-forum.de/forum/thread/5511-abrp-live-daten-soc-reichweite-aus-iobroker-an-abrp-api-senden/

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von arteck
      #3

      na hier ist das script

      https://github.com/christophmoar/abrpTelemetrySmartInjector/blob/main/abrp.js

      kopier es in ein javascript installier die module nach..
      622e547a-c2d1-494a-ad29-82c3e4618e64-grafik.png

      sollte laufen

      naaa..ok.. bissel drumherum muss man noch bauen..

      ich guck mir das mal an

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      H 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        na hier ist das script

        https://github.com/christophmoar/abrpTelemetrySmartInjector/blob/main/abrp.js

        kopier es in ein javascript installier die module nach..
        622e547a-c2d1-494a-ad29-82c3e4618e64-grafik.png

        sollte laufen

        naaa..ok.. bissel drumherum muss man noch bauen..

        ich guck mir das mal an

        H Online
        H Online
        holgerwolf
        schrieb am zuletzt editiert von
        #4

        @arteck Soweit war ich ja auch schon.

        Aber beim Starten des scripts mit den passenden Modulen in JS kommt gleich:

        javascript.0
        	2025-01-29 08:42:09.249	error	at processImmediate (node:internal/timers:485:21)
        javascript.0
        	2025-01-29 08:42:09.249	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1732:17)
        javascript.0
        	2025-01-29 08:42:09.249	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2322:17
        javascript.0
        	2025-01-29 08:42:09.248	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2224:37)
        javascript.0
        	2025-01-29 08:42:09.248	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1956:21)
        javascript.0
        	2025-01-29 08:42:09.248	error	at new Script (node:vm:117:7)
        javascript.0
        	2025-01-29 08:42:09.248	error	SyntaxError: Cannot use import statement outside a module
        javascript.0
        	2025-01-29 08:42:09.248	error	^^^^^^
        javascript.0
        	2025-01-29 08:42:09.248	error	import PubSub from 'pubsub-js'
        javascript.0
        	2025-01-29 08:42:09.248	error	script.js.common.abrp_js compile failed: at script.js.common.abrp_js:27
        
        1 Antwort Letzte Antwort
        0
        • H Online
          H Online
          holgerwolf
          schrieb am zuletzt editiert von
          #5

          Ich habe jetzt mal das Blockly von oben aus dem Enyak Forum als Vorlage genommen und es für den smart#1 angepasst:

          a523bc36-d536-4ed7-b9e7-4ac375e8201d-grafik.png

          M 1 Antwort Letzte Antwort
          0
          • H holgerwolf

            Ich habe jetzt mal das Blockly von oben aus dem Enyak Forum als Vorlage genommen und es für den smart#1 angepasst:

            a523bc36-d536-4ed7-b9e7-4ac375e8201d-grafik.png

            M Offline
            M Offline
            Matis
            schrieb am zuletzt editiert von
            #6

            @holgerwolf Habt Ihr das weiterentwickelt? Gibt's das auch als JAVA-Script und mit Anleitung?

            H 1 Antwort Letzte Antwort
            0
            • M Matis

              @holgerwolf Habt Ihr das weiterentwickelt? Gibt's das auch als JAVA-Script und mit Anleitung?

              H Online
              H Online
              holgerwolf
              schrieb am zuletzt editiert von
              #7

              @matis Nein, aber das Blockly oben läuft seit dem Post oben ohne Probleme durch.

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                chka
                schrieb am zuletzt editiert von
                #8

                Kann bitte mal jemand den blocky hier reinstellen leider geht der link im enyaq forum nicht mehr oder ich bin blind

                INTEL NUC BOXNUC6I3SYH i3-6100U - Proxmox

                Speicher: Transcend MTS800 M.2 SSD 128GB SATA III, MLC

                RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

                1 Antwort Letzte Antwort
                0
                • H Online
                  H Online
                  holgerwolf
                  schrieb zuletzt editiert von holgerwolf
                  #9

                  So läuft das bei mir seit nem Jahr sauber durch:

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <block type="schedule" id="r$b2ECTPMDgy(7A~eS%H" x="-1262" y="-662">
                      <field name="SCHEDULE">*/5 * * * *</field>
                      <statement name="STATEMENT">
                        <block type="http_post" id="s%1{Jn:w-w=5[,jTt],B">
                          <field name="TIMEOUT">2000</field>
                          <field name="UNIT">ms</field>
                          <field name="TYPE">text</field>
                          <value name="URL">
                            <shadow type="text" id="8%z5t@uzh6^qIIC,*24l">
                              <field name="TEXT">http://</field>
                            </shadow>
                            <block type="text_join" id=")rE3Co;HL:4;Ng4%`As?">
                              <mutation items="28"></mutation>
                              <value name="ADD0">
                                <block type="text" id="N*03Mk`lQ,7O^pWcV|}6">
                                  <field name="TEXT">https://api.iternio.com/1/tlm/send?api_key=XXXX</field>
                                </block>
                              </value>
                              <value name="ADD1">
                                <block type="text" id="osnkdZ#ONf)|#TQ^pV/s">
                                  <field name="TEXT">&amp;token=</field>
                                </block>
                              </value>
                              <value name="ADD2">
                                <block type="text" id="=dAKHnad6[p;XCfsH}XB">
                                  <field name="TEXT">73c3c6d2-3786-4e0f-a91e-1790ecd30124</field>
                                </block>
                              </value>
                              <value name="ADD3">
                                <block type="text" id="5Rdg?JF!ryP8$KBVK.Cr">
                                  <field name="TEXT">&amp;tlm={</field>
                                </block>
                              </value>
                              <value name="ADD4">
                                <block type="text" id="l_r|XG7ZS;:v7sak*YO?">
                                  <field name="TEXT">"utc":</field>
                                </block>
                              </value>
                              <value name="ADD5">
                                <block type="math_round" id="becJI}.|4p9QnF-moZek">
                                  <field name="OP">ROUND</field>
                                  <value name="NUM">
                                    <shadow type="math_number" id="Hx:8DeR-Mdz_nw+xVd7U">
                                      <field name="NUM">3.1</field>
                                    </shadow>
                                    <block type="math_arithmetic" id="4^B],tyoZ9|S!@4Y1Jd9">
                                      <field name="OP">DIVIDE</field>
                                      <value name="A">
                                        <shadow type="math_number" id="c*(]W5yNuk:0]P@E]$+V">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="time_get" id=";aG^,|a2#hHRhyvl-UN8">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                          <field name="OPTION">object</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="I]#7QtE3v1PphATiifKN">
                                          <field name="NUM">1000</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="ADD6">
                                <block type="text" id="-Xba~hamrgESIp4xLv}i">
                                  <field name="TEXT">,"soc":</field>
                                </block>
                              </value>
                              <value name="ADD7">
                                <block type="get_value" id="nF()UttDI-6g65h$Qct}">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.electricVehicleStatus.chargeLevel</field>
                                </block>
                              </value>
                              <value name="ADD8">
                                <block type="text" id="/MUe{M4O0R,qGt^ME),q">
                                  <field name="TEXT">,"capacity":62,"odometer":</field>
                                </block>
                              </value>
                              <value name="ADD9">
                                <block type="get_value" id="6Fq=tzt^~L2}}lWxqi`T">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.maintenanceStatus.odometer</field>
                                </block>
                              </value>
                              <value name="ADD10">
                                <block type="text" id="*ujr,G.,5X/8shmHf}Lr">
                                  <field name="TEXT">,"est_battery_range":</field>
                                </block>
                              </value>
                              <value name="ADD11">
                                <block type="get_value" id=":Nk6Nt%Fb,6ZS35*!-Wv">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.electricVehicleStatus.distanceToEmptyOnBatteryOnly</field>
                                </block>
                              </value>
                              <value name="ADD12">
                                <block type="text" id="6;)D3`w:HI(S?x/:8LiE">
                                  <field name="TEXT">,"ext_temp":</field>
                                </block>
                              </value>
                              <value name="ADD13">
                                <block type="get_value" id="GhNq*}n;QAbB{vi_[#Yj">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.climateStatus.exteriorTemp</field>
                                </block>
                              </value>
                              <value name="ADD14">
                                <block type="text" id="Bl4Mw3FG,5qhnjB$g3ZA">
                                  <field name="TEXT">,"cabin_temp":</field>
                                </block>
                              </value>
                              <value name="ADD15">
                                <block type="get_value" id=";XAm1(G-#UonJM0a(4PD">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.climateStatus.interiorTemp</field>
                                </block>
                              </value>
                              <value name="ADD16">
                                <block type="text" id="E:x~/yrF{E{F`(Os$ZhJ">
                                  <field name="TEXT">,"speed":</field>
                                </block>
                              </value>
                              <value name="ADD17">
                                <block type="get_value" id="K8t=XO89y4#PV.4YY}VL">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.basicVehicleStatus.speed</field>
                                </block>
                              </value>
                              <value name="ADD18">
                                <block type="text" id="8C{#XS8h6C6.FV4`!FKg">
                                  <field name="TEXT">,"elevation":</field>
                                </block>
                              </value>
                              <value name="ADD19">
                                <block type="get_value" id="4*K:KrIuF-zc/aSL,6!.">
                                  <field name="ATTR">val</field>
                                  <field name="OID">smart-eq.0.HESXXX.status.basicVehicleStatus.position.altitude</field>
                                </block>
                              </value>
                              <value name="ADD20">
                                <block type="text" id="VpF3Umzpb|l=:dWELE/7">
                                  <field name="TEXT">,"lat":</field>
                                </block>
                              </value>
                              <value name="ADD21">
                                <block type="math_arithmetic" id="BR68}a;E]2B5zZhK~~]J">
                                  <field name="OP">DIVIDE</field>
                                  <value name="A">
                                    <shadow type="math_number" id="_rMXc94n3xF^gi6L@Q3p">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="rro[))*;~~~))U|EX9Ci">
                                      <field name="ATTR">val</field>
                                      <field name="OID">smart-eq.0.HESXXX.status.basicVehicleStatus.position.latitude</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="}KD41:jX0iaH)`k:|w~Y">
                                      <field name="NUM">3600000</field>
                                    </shadow>
                                  </value>
                                </block>
                              </value>
                              <value name="ADD22">
                                <block type="text" id="DK}_]a74RuuiCjPH1kNf">
                                  <field name="TEXT">,"lon":</field>
                                </block>
                              </value>
                              <value name="ADD23">
                                <block type="math_arithmetic" id="Lz#YVURz-5oRwQvPZypU">
                                  <field name="OP">DIVIDE</field>
                                  <value name="A">
                                    <shadow type="math_number" id="_rMXc94n3xF^gi6L@Q3p">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="get_value" id="[3%]E|T/Z):B!GKu]Dp2">
                                      <field name="ATTR">val</field>
                                      <field name="OID">smart-eq.0.HESXXX.status.basicVehicleStatus.position.longitude</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="Tb[gIe=(A(WUwPWOIMU7">
                                      <field name="NUM">3600000</field>
                                    </shadow>
                                  </value>
                                </block>
                              </value>
                              <value name="ADD24">
                                <block type="text_join" id="Jm`uVa~n@p`KjsbLnVeA">
                                  <mutation items="1"></mutation>
                                  <value name="ADD0">
                                    <block type="logic_ternary" id="Qg357.ykWSUO:N)Wfh(-">
                                      <value name="IF">
                                        <block type="logic_compare" id="]EHVY4%@Tg4@d@%$|{L*">
                                          <field name="OP">EQ</field>
                                          <value name="A">
                                            <block type="get_value" id="9DVeuH#?6AoGioj;0bTx">
                                              <field name="ATTR">val</field>
                                              <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.electricVehicleStatus.chargeIAct</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <block type="text" id="yk-o3tiLP*$e13u#l+4}">
                                              <field name="TEXT">0.000</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="THEN">
                                        <block type="text_join" id="E]UaFngdhh5e-0?wkQb#">
                                          <mutation items="2"></mutation>
                                          <value name="ADD0">
                                            <block type="text" id="5^@eOPLNR,uc5by]=`n8">
                                              <field name="TEXT">,"is_charging":</field>
                                            </block>
                                          </value>
                                          <value name="ADD1">
                                            <block type="text" id="l#|l=2zJbKws0(rVx}o~">
                                              <field name="TEXT">0</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="ELSE">
                                        <block type="text_join" id="krMmu^H/+Q.xV509UdKK">
                                          <mutation items="2"></mutation>
                                          <value name="ADD0">
                                            <block type="text" id="i2T_y:9:eo-lK00^vETL">
                                              <field name="TEXT">,"is_charging":</field>
                                            </block>
                                          </value>
                                          <value name="ADD1">
                                            <block type="text" id="an^Ly~UUSA2KHGLaA9P0">
                                              <field name="TEXT">1</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="ADD25">
                                <block type="text" id="9hlwo#SA_wxyUor)u~_Z">
                                  <field name="TEXT">,"power":</field>
                                </block>
                              </value>
                              <value name="ADD26">
                                <block type="text_join" id="}Pt|r$sr98%`Hw=.}We5">
                                  <mutation items="1"></mutation>
                                  <value name="ADD0">
                                    <block type="math_arithmetic" id="=~:M1slq|NhbiJQ;tNkU">
                                      <field name="OP">MULTIPLY</field>
                                      <value name="A">
                                        <shadow type="math_number" id="_rMXc94n3xF^gi6L@Q3p">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="math_arithmetic" id="$THQ7v}}{oBSq9Q_wdWF">
                                          <field name="OP">MULTIPLY</field>
                                          <value name="A">
                                            <shadow type="math_number" id="ISg(9F~VE.r/p`I|K7vT">
                                              <field name="NUM">-1</field>
                                            </shadow>
                                          </value>
                                          <value name="B">
                                            <shadow type="math_number" id="}:l9^HkYzxb9hcY*,yzn">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="get_value" id="i-8fN4*n/02%.N{]J~KR">
                                              <field name="ATTR">val</field>
                                              <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.electricVehicleStatus.chargeIAct</field>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="x4u;{YRPS#k-YdmjPGa}">
                                          <field name="NUM">3600000</field>
                                        </shadow>
                                        <block type="math_arithmetic" id="(Lt=dj#6$IlQ,J2=ae*O">
                                          <field name="OP">DIVIDE</field>
                                          <value name="A">
                                            <shadow type="math_number" id="9-Z!!/E`P8vblpQaVG,=">
                                              <field name="NUM">1</field>
                                            </shadow>
                                            <block type="get_value" id="#Ur.:rK1t5K^A:KRY%!k">
                                              <field name="ATTR">val</field>
                                              <field name="OID">smart-eq.0.HESXXX.status.additionalVehicleStatus.electricVehicleStatus.chargeUAct</field>
                                            </block>
                                          </value>
                                          <value name="B">
                                            <shadow type="math_number" id="P3=:w:Ccz_0jj4WVq.DA">
                                              <field name="NUM">1000</field>
                                            </shadow>
                                          </value>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="ADD27">
                                <block type="text" id="0:-1FaL%lA-t=(#iR+*=">
                                  <field name="TEXT">}</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <value name="DATA">
                            <shadow type="logic_null" id="4O5}pQt1WhYoQd:Q;T5h"></shadow>
                          </value>
                        </block>
                      </statement>
                    </block>
                    <block type="convert_tonumber" id="b6]w[ZKgAf57In.$unjq" x="-362" y="-462"></block>
                  </xml>
                  

                  Die Felder musst du halt nach von deinem EV Adapter sinnvoll befüllen.

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    chka
                    schrieb zuletzt editiert von
                    #10

                    Top danke schaue ich mir später noch an.

                    Mach mal deinen api key da raus!

                    INTEL NUC BOXNUC6I3SYH i3-6100U - Proxmox

                    Speicher: Transcend MTS800 M.2 SSD 128GB SATA III, MLC

                    RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      chka
                      schrieb zuletzt editiert von
                      #11

                      Ich noch mal der Wert in der URL ist der welcher man von iternio.com per Mail anfragen muss und der token ist der unter live generic ?

                      INTEL NUC BOXNUC6I3SYH i3-6100U - Proxmox

                      Speicher: Transcend MTS800 M.2 SSD 128GB SATA III, MLC

                      RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

                      1 Antwort Letzte Antwort
                      0
                      • H Online
                        H Online
                        holgerwolf
                        schrieb zuletzt editiert von
                        #12

                        Keine Ahnung mehr wie das funktioniert. Der jetzt in der App abgerufene Key passt nicht zu denen im script oben eingetragen. Oder gibt es immer einen Neuen?
                        Aber die API kann ich noch ansprechen und die Werte werden aktualisiert. Will ich jetzt aber auch nicht ändern...

                        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

                        589

                        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