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. Tester
  4. Test Adapter device-reminder V 1.x

NEWS

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

  • 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

Test Adapter device-reminder V 1.x

Scheduled Pinned Locked Moved Tester
adapterdevice-remindergeräteüberwachungtest
626 Posts 76 Posters 183.0k Views 69 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.
  • RoboCopR RoboCop

    @xenon ich habe den Adaper erfolgreich installiert und er funktioniert soweit.
    Meine Frage wie kann oder mit was kann ich den Datenpunkt "last operations" in der VIS darstellen?

    XenonX Offline
    XenonX Offline
    Xenon
    Forum Testing Developer
    wrote on last edited by
    #267

    @robocop ähm ich bin da ehrlich, über eine direkte VIS Darstellung hab ich noch gar nicht nachgedacht 😃

    Ich selber nutze keine VIS, sollte das Format angepasst werden müssen um es mit einem bereits vorhandenen widget darstellen zu können einfach melden

    Vielleicht können die anderen dir helfen 🙂

    wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

    da_WoodyD RoboCopR 2 Replies Last reply
    0
    • XenonX Xenon

      @robocop ähm ich bin da ehrlich, über eine direkte VIS Darstellung hab ich noch gar nicht nachgedacht 😃

      Ich selber nutze keine VIS, sollte das Format angepasst werden müssen um es mit einem bereits vorhandenen widget darstellen zu können einfach melden

      Vielleicht können die anderen dir helfen 🙂

      da_WoodyD Online
      da_WoodyD Online
      da_Woody
      wrote on last edited by
      #268

      @xenon naja, man könnte ala mihome eine history erstellen.
      782c159e-d2c1-4315-9b31-c87ec636655a-grafik.png

      gruß vom Woody
      HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

      XenonX 1 Reply Last reply
      0
      • da_WoodyD da_Woody

        @xenon naja, man könnte ala mihome eine history erstellen.
        782c159e-d2c1-4315-9b31-c87ec636655a-grafik.png

        XenonX Offline
        XenonX Offline
        Xenon
        Forum Testing Developer
        wrote on last edited by
        #269

        @da_woody ich schau es mir an. Wie gesagt, VIS nutze ich nicht 😃

        wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

        da_WoodyD 1 Reply Last reply
        0
        • XenonX Xenon

          @da_woody ich schau es mir an. Wie gesagt, VIS nutze ich nicht 😃

          da_WoodyD Online
          da_WoodyD Online
          da_Woody
          wrote on last edited by
          #270

          @xenon willst du die dateien vom mihome haben als vorlage? hab die grad in den dreamweaver kopiert...

          gruß vom Woody
          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

          XenonX 1 Reply Last reply
          0
          • da_WoodyD da_Woody

            @xenon willst du die dateien vom mihome haben als vorlage? hab die grad in den dreamweaver kopiert...

            XenonX Offline
            XenonX Offline
            Xenon
            Forum Testing Developer
            wrote on last edited by
            #271

            @da_woody hab hier was von vis-inventwo, darauf beziehe ich mich dann :)

            wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

            da_WoodyD 1 Reply Last reply
            1
            • XenonX Xenon

              @da_woody hab hier was von vis-inventwo, darauf beziehe ich mich dann :)

              da_WoodyD Online
              da_WoodyD Online
              da_Woody
              wrote on last edited by
              #272

              @xenon die html könnte man dann auch easy in iQontrol verwenden.

              gruß vom Woody
              HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

              XenonX 1 Reply Last reply
              0
              • da_WoodyD da_Woody

                @xenon die html könnte man dann auch easy in iQontrol verwenden.

                XenonX Offline
                XenonX Offline
                Xenon
                Forum Testing Developer
                wrote on last edited by
                #273

                @da_woody das wird alles was für die Version 2.0

                wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                da_WoodyD 1 Reply Last reply
                0
                • XenonX Xenon

                  @da_woody das wird alles was für die Version 2.0

                  da_WoodyD Online
                  da_WoodyD Online
                  da_Woody
                  wrote on last edited by
                  #274

                  @xenon bascht scho! nur keinen stress! sind ja nur vorschläge, "ausbaden" musst ja du... :D

                  gruß vom Woody
                  HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                  1 Reply Last reply
                  0
                  • XenonX Xenon

                    @robocop ähm ich bin da ehrlich, über eine direkte VIS Darstellung hab ich noch gar nicht nachgedacht 😃

                    Ich selber nutze keine VIS, sollte das Format angepasst werden müssen um es mit einem bereits vorhandenen widget darstellen zu können einfach melden

                    Vielleicht können die anderen dir helfen 🙂

                    RoboCopR Offline
                    RoboCopR Offline
                    RoboCop
                    wrote on last edited by
                    #275

                    @xenon said in Test Adapter device-reminder V 1.x:

                    @robocop ähm ich bin da ehrlich, über eine direkte VIS Darstellung hab ich noch gar nicht nachgedacht 😃

                    Ich selber nutze keine VIS, sollte das Format angepasst werden müssen um es mit einem bereits vorhandenen widget darstellen zu können einfach melden

                    Vielleicht können die anderen dir helfen 🙂

                    Moin Moin, habe mal etwas rumgeschaut und habe andere JSON formatierungen angesehen. Wenn der Eintrag im Datenpunkt mit einer "eckigen Klammer auf" beginnt und mit einer eckigen Klammer zu" endet und wenn das Attribut "startVal" in nur "start" angepasst wird kann ich die Daten in meiner VIS verarbeiten... Ich habe leider keine Ahnung wie man/frau/inter das im Adapter ändert aber wär cool wenn das mir jemand anpassen könnte....

                    XenonX 1 Reply Last reply
                    0
                    • RoboCopR RoboCop

                      @xenon said in Test Adapter device-reminder V 1.x:

                      @robocop ähm ich bin da ehrlich, über eine direkte VIS Darstellung hab ich noch gar nicht nachgedacht 😃

                      Ich selber nutze keine VIS, sollte das Format angepasst werden müssen um es mit einem bereits vorhandenen widget darstellen zu können einfach melden

                      Vielleicht können die anderen dir helfen 🙂

                      Moin Moin, habe mal etwas rumgeschaut und habe andere JSON formatierungen angesehen. Wenn der Eintrag im Datenpunkt mit einer "eckigen Klammer auf" beginnt und mit einer eckigen Klammer zu" endet und wenn das Attribut "startVal" in nur "start" angepasst wird kann ich die Daten in meiner VIS verarbeiten... Ich habe leider keine Ahnung wie man/frau/inter das im Adapter ändert aber wär cool wenn das mir jemand anpassen könnte....

                      XenonX Offline
                      XenonX Offline
                      Xenon
                      Forum Testing Developer
                      wrote on last edited by
                      #276

                      @robocop welches widget nutzt du dafür?

                      Ich bin später am Rechner, baue dir dann wohl erstmal paar Zeilen zusammen jnd veröffentliche sie dann. Damit kannst du dann erstmal arbeiten

                      wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                      RoboCopR David G.D 2 Replies Last reply
                      0
                      • XenonX Xenon

                        @robocop welches widget nutzt du dafür?

                        Ich bin später am Rechner, baue dir dann wohl erstmal paar Zeilen zusammen jnd veröffentliche sie dann. Damit kannst du dann erstmal arbeiten

                        RoboCopR Offline
                        RoboCopR Offline
                        RoboCop
                        wrote on last edited by
                        #277

                        @xenon said in Test Adapter device-reminder V 1.x:

                        @robocop welches widget nutzt du dafür?

                        Ich bin später am Rechner, baue dir dann wohl erstmal paar Zeilen zusammen jnd veröffentliche sie dann. Damit kannst du dann erstmal arbeiten

                        ich wollte es mit JSON Table nutzen...

                        XenonX 1 Reply Last reply
                        0
                        • RoboCopR RoboCop

                          @xenon said in Test Adapter device-reminder V 1.x:

                          @robocop welches widget nutzt du dafür?

                          Ich bin später am Rechner, baue dir dann wohl erstmal paar Zeilen zusammen jnd veröffentliche sie dann. Damit kannst du dann erstmal arbeiten

                          ich wollte es mit JSON Table nutzen...

                          XenonX Offline
                          XenonX Offline
                          Xenon
                          Forum Testing Developer
                          wrote on last edited by
                          #278

                          @robocop Mist, ich sehe grade, das ich einen Fehler in der JSON habe......

                          wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                          RoboCopR 1 Reply Last reply
                          0
                          • XenonX Xenon

                            @robocop Mist, ich sehe grade, das ich einen Fehler in der JSON habe......

                            RoboCopR Offline
                            RoboCopR Offline
                            RoboCop
                            wrote on last edited by
                            #279

                            @xenon said in Test Adapter device-reminder V 1.x:

                            @robocop Mist, ich sehe grade, das ich einen Fehler in der JSON habe......

                            also bin ich nicht zu dumm gewesen...grins
                            [ Klammer ] und das "VAL" weg?

                            XenonX 1 Reply Last reply
                            0
                            • RoboCopR RoboCop

                              @xenon said in Test Adapter device-reminder V 1.x:

                              @robocop Mist, ich sehe grade, das ich einen Fehler in der JSON habe......

                              also bin ich nicht zu dumm gewesen...grins
                              [ Klammer ] und das "VAL" weg?

                              XenonX Offline
                              XenonX Offline
                              Xenon
                              Forum Testing Developer
                              wrote on last edited by Xenon
                              #280

                              @robocop ich hab mal auf die Schnelle ein kleines Script gemacht, welches dir die Sachen konvertiert.

                              Am Adapter selber werde ich die nächsten Wochen nicht arbeiten, außer es treten gravierende Bugs auf ;)

                              Einfach ein neues TypeScript erstellen, den Code einfügen und deine Pfade in arrPath anpassen (direkt in Zeile 1 zu finden) Da stehen aktuell meine Geräte drin. Solltest du weniger Geräte haben einfach den Rest rauslöschen, es dürfen nur deine tatsächlichen Pfade drin stehen!
                              Sollten beim Erststart Fehler auftreten einfach Script nochmal neu starten. Die konvertierten JSON liegen unter "0_userdata.0.device-reminder.0.XXX.last operations"

                              Auf die Schnelle nicht anders machbar, sorry :) er zeigt die wahrscheinlich [object Object] an, in Wahrheit steckt da aber

                              [{'0':{'start':'18.05.2021 15:56:29','end':'18.05.2021 18:52:30','runtime':'02:55:50'},'1':{'start':'19.05.2021 15:06:43','end':'19.05.2021 17:07:44','runtime':'02:00:50'}}]
                              

                              hinter und sollte funktionieren

                              Hier der Code:

                              const arrPath: string[] = [
                                  'device-reminder.0.Computer.last operations',
                                  'device-reminder.0.Geschirrspüler.last operations',
                                  'device-reminder.0.Wama.last operations',
                                  'device-reminder.0.Trockner.last operations',
                                  'device-reminder.0.Heizung.last operations'
                              ];
                              
                              const pathNew: string = '0_userdata.0';
                              
                              async function createJSON(path: string, pathNew: string) {
                                  let objTemp: object = {};
                              
                                  let result: string = await replaceAll(await replaceAll((await getStateAsync(path)).val, '},{', '}#{'), 'startVal', 'start');
                              
                                  async function replaceAll(str: string, find: string, replace: string): Promise<string> {
                                      return str.replace(new RegExp(find, 'g'), replace);
                                  };
                              
                                  const arr: object = result.split('#');
                              
                                  for (const i in arr) {
                                      const strTemp: string = arr[i];
                                      objTemp[i] = JSON.parse(strTemp);
                                  };
                              
                                  setStateAsync(pathNew, [objTemp], true);
                              
                              };
                              
                              // start
                              for (const i in arrPath) {
                                  const name: string = arrPath[i];
                                  const path: string = `${pathNew}.${name}`
                              
                                  createStateAsync(path, JSON.parse('{"name": "History as JSON","type": "json","role": "history","read": true}'), () => {
                                  });
                              
                                  createJSON(name, path);
                              
                                  on({ id: name, change: 'any', ack: true }, async () => {
                                      createJSON(name, path);
                                  });
                              };
                              

                              wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                              RoboCopR 2 Replies Last reply
                              0
                              • XenonX Xenon

                                @robocop ich hab mal auf die Schnelle ein kleines Script gemacht, welches dir die Sachen konvertiert.

                                Am Adapter selber werde ich die nächsten Wochen nicht arbeiten, außer es treten gravierende Bugs auf ;)

                                Einfach ein neues TypeScript erstellen, den Code einfügen und deine Pfade in arrPath anpassen (direkt in Zeile 1 zu finden) Da stehen aktuell meine Geräte drin. Solltest du weniger Geräte haben einfach den Rest rauslöschen, es dürfen nur deine tatsächlichen Pfade drin stehen!
                                Sollten beim Erststart Fehler auftreten einfach Script nochmal neu starten. Die konvertierten JSON liegen unter "0_userdata.0.device-reminder.0.XXX.last operations"

                                Auf die Schnelle nicht anders machbar, sorry :) er zeigt die wahrscheinlich [object Object] an, in Wahrheit steckt da aber

                                [{'0':{'start':'18.05.2021 15:56:29','end':'18.05.2021 18:52:30','runtime':'02:55:50'},'1':{'start':'19.05.2021 15:06:43','end':'19.05.2021 17:07:44','runtime':'02:00:50'}}]
                                

                                hinter und sollte funktionieren

                                Hier der Code:

                                const arrPath: string[] = [
                                    'device-reminder.0.Computer.last operations',
                                    'device-reminder.0.Geschirrspüler.last operations',
                                    'device-reminder.0.Wama.last operations',
                                    'device-reminder.0.Trockner.last operations',
                                    'device-reminder.0.Heizung.last operations'
                                ];
                                
                                const pathNew: string = '0_userdata.0';
                                
                                async function createJSON(path: string, pathNew: string) {
                                    let objTemp: object = {};
                                
                                    let result: string = await replaceAll(await replaceAll((await getStateAsync(path)).val, '},{', '}#{'), 'startVal', 'start');
                                
                                    async function replaceAll(str: string, find: string, replace: string): Promise<string> {
                                        return str.replace(new RegExp(find, 'g'), replace);
                                    };
                                
                                    const arr: object = result.split('#');
                                
                                    for (const i in arr) {
                                        const strTemp: string = arr[i];
                                        objTemp[i] = JSON.parse(strTemp);
                                    };
                                
                                    setStateAsync(pathNew, [objTemp], true);
                                
                                };
                                
                                // start
                                for (const i in arrPath) {
                                    const name: string = arrPath[i];
                                    const path: string = `${pathNew}.${name}`
                                
                                    createStateAsync(path, JSON.parse('{"name": "History as JSON","type": "json","role": "history","read": true}'), () => {
                                    });
                                
                                    createJSON(name, path);
                                
                                    on({ id: name, change: 'any', ack: true }, async () => {
                                        createJSON(name, path);
                                    });
                                };
                                
                                RoboCopR Offline
                                RoboCopR Offline
                                RoboCop
                                wrote on last edited by
                                #281

                                @xenon ok.. Danke, werde es gleich mal ausprobieren und schaun was passiert...

                                1 Reply Last reply
                                0
                                • XenonX Xenon

                                  @robocop ich hab mal auf die Schnelle ein kleines Script gemacht, welches dir die Sachen konvertiert.

                                  Am Adapter selber werde ich die nächsten Wochen nicht arbeiten, außer es treten gravierende Bugs auf ;)

                                  Einfach ein neues TypeScript erstellen, den Code einfügen und deine Pfade in arrPath anpassen (direkt in Zeile 1 zu finden) Da stehen aktuell meine Geräte drin. Solltest du weniger Geräte haben einfach den Rest rauslöschen, es dürfen nur deine tatsächlichen Pfade drin stehen!
                                  Sollten beim Erststart Fehler auftreten einfach Script nochmal neu starten. Die konvertierten JSON liegen unter "0_userdata.0.device-reminder.0.XXX.last operations"

                                  Auf die Schnelle nicht anders machbar, sorry :) er zeigt die wahrscheinlich [object Object] an, in Wahrheit steckt da aber

                                  [{'0':{'start':'18.05.2021 15:56:29','end':'18.05.2021 18:52:30','runtime':'02:55:50'},'1':{'start':'19.05.2021 15:06:43','end':'19.05.2021 17:07:44','runtime':'02:00:50'}}]
                                  

                                  hinter und sollte funktionieren

                                  Hier der Code:

                                  const arrPath: string[] = [
                                      'device-reminder.0.Computer.last operations',
                                      'device-reminder.0.Geschirrspüler.last operations',
                                      'device-reminder.0.Wama.last operations',
                                      'device-reminder.0.Trockner.last operations',
                                      'device-reminder.0.Heizung.last operations'
                                  ];
                                  
                                  const pathNew: string = '0_userdata.0';
                                  
                                  async function createJSON(path: string, pathNew: string) {
                                      let objTemp: object = {};
                                  
                                      let result: string = await replaceAll(await replaceAll((await getStateAsync(path)).val, '},{', '}#{'), 'startVal', 'start');
                                  
                                      async function replaceAll(str: string, find: string, replace: string): Promise<string> {
                                          return str.replace(new RegExp(find, 'g'), replace);
                                      };
                                  
                                      const arr: object = result.split('#');
                                  
                                      for (const i in arr) {
                                          const strTemp: string = arr[i];
                                          objTemp[i] = JSON.parse(strTemp);
                                      };
                                  
                                      setStateAsync(pathNew, [objTemp], true);
                                  
                                  };
                                  
                                  // start
                                  for (const i in arrPath) {
                                      const name: string = arrPath[i];
                                      const path: string = `${pathNew}.${name}`
                                  
                                      createStateAsync(path, JSON.parse('{"name": "History as JSON","type": "json","role": "history","read": true}'), () => {
                                      });
                                  
                                      createJSON(name, path);
                                  
                                      on({ id: name, change: 'any', ack: true }, async () => {
                                          createJSON(name, path);
                                      });
                                  };
                                  
                                  RoboCopR Offline
                                  RoboCopR Offline
                                  RoboCop
                                  wrote on last edited by
                                  #282

                                  @xenon
                                  sorry aber ich bekomme die Daten nur zu sehen wenn das
                                  json in folgenden Format ist:

                                  [{"start":"18.05.2021 15:56:29","end":"18.05.2021 18:52:30","runtime":"02:55:50"},{"start":"19.05.2021 15:06:43","end":"19.05.2021 17:07:44","runtime":"02:00:50"}] 
                                  

                                  ohne die '0' und '1' vermutlich Zähler und anstelle von ' Hochkomma, " Anführungszeichen.

                                  XenonX 1 Reply Last reply
                                  0
                                  • RoboCopR RoboCop

                                    @xenon
                                    sorry aber ich bekomme die Daten nur zu sehen wenn das
                                    json in folgenden Format ist:

                                    [{"start":"18.05.2021 15:56:29","end":"18.05.2021 18:52:30","runtime":"02:55:50"},{"start":"19.05.2021 15:06:43","end":"19.05.2021 17:07:44","runtime":"02:00:50"}] 
                                    

                                    ohne die '0' und '1' vermutlich Zähler und anstelle von ' Hochkomma, " Anführungszeichen.

                                    XenonX Offline
                                    XenonX Offline
                                    Xenon
                                    Forum Testing Developer
                                    wrote on last edited by
                                    #283

                                    @robocop dann müsstest du dir das selber formatieren. Meins ist ein originales json Format, bei vis inventwo gibt's zb ein widget was genau dieses Format nutzt.
                                    Deins benötigt anscheinend, warum auch immer, so ein spezielles Format?

                                    wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                                    RoboCopR 1 Reply Last reply
                                    0
                                    • XenonX Xenon

                                      @robocop dann müsstest du dir das selber formatieren. Meins ist ein originales json Format, bei vis inventwo gibt's zb ein widget was genau dieses Format nutzt.
                                      Deins benötigt anscheinend, warum auch immer, so ein spezielles Format?

                                      RoboCopR Offline
                                      RoboCopR Offline
                                      RoboCop
                                      wrote on last edited by
                                      #284

                                      @xenon said in Test Adapter device-reminder V 1.x:

                                      @robocop dann müsstest du dir das selber formatieren. Meins ist ein originales json Format, bei vis inventwo gibt's zb ein widget was genau dieses Format nutzt.
                                      Deins benötigt anscheinend, warum auch immer, so ein spezielles Format?

                                      Nutze diese Widget aber bei mir funktioniert es nicht device_JSON.png

                                      oder ich weiß nicht wie ich es mit deiner formatierung einsetzen muss

                                      XenonX 1 Reply Last reply
                                      0
                                      • RoboCopR RoboCop

                                        @xenon said in Test Adapter device-reminder V 1.x:

                                        @robocop dann müsstest du dir das selber formatieren. Meins ist ein originales json Format, bei vis inventwo gibt's zb ein widget was genau dieses Format nutzt.
                                        Deins benötigt anscheinend, warum auch immer, so ein spezielles Format?

                                        Nutze diese Widget aber bei mir funktioniert es nicht device_JSON.png

                                        oder ich weiß nicht wie ich es mit deiner formatierung einsetzen muss

                                        XenonX Offline
                                        XenonX Offline
                                        Xenon
                                        Forum Testing Developer
                                        wrote on last edited by
                                        #285

                                        @robocop höö.. Ich spreche mal mit den Jungs und melde mich wieder 😊

                                        wenn euch mein Beitrag geholfen hat, bewertet ihn bitte unten rechts :)

                                        RoboCopR 1 Reply Last reply
                                        0
                                        • XenonX Xenon

                                          @robocop höö.. Ich spreche mal mit den Jungs und melde mich wieder 😊

                                          RoboCopR Offline
                                          RoboCopR Offline
                                          RoboCop
                                          wrote on last edited by
                                          #286

                                          @xenon said in Test Adapter device-reminder V 1.x:

                                          @robocop höö.. Ich spreche mal mit den Jungs und melde mich wieder 😊

                                          OK... schönes WE

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          576

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          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