Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Modbus Adapter mit Ökofen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Modbus Adapter mit Ökofen

Scheduled Pinned Locked Moved ioBroker Allgemein
28 Posts 8 Posters 7.8k Views 4 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.
  • M Offline
    M Offline
    Mangid
    wrote on last edited by
    #1

    Hallo ich würde gerne meinen Ökofen über den ModBus mit dem ioBroker verbinden!

    Ich habe schon mehrere Einträge hier gelesen konnte aber den Adapter noch nicht so

    konfigurieren dass es funktioniert!

    Adapter Version: 0.5.4

    Ökofen SW Version: V2.08

    Im Anhang die Registerbelegung!

    Wie müsste die Konfiguration im Reiter Allgemein und Holding Registers aussehen?

    Vielen Dank!
    3790_modbus_v208_home_automation_2.pdf

    1 Reply Last reply
    0
    • apollon77A Online
      apollon77A Online
      apollon77
      wrote on last edited by
      #2

      Welcher Registertyp ists als denn? Empfehlung ist erstmal die zwei Haken in der konfig mit „alias“ (sorry gerade kein Bild da) wegzumachen. Dann würde ich im Notfall die registertypen (angefangen mit Holding Registers) durchprobieren mit der registernummer 1 oder irgendwas wo du den ergebniswert kennst.

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Reply Last reply
      0
      • L Offline
        L Offline
        looxer01
        wrote on last edited by
        #3

        Hi,

        ich habe auch eine Oekofen Anlage.

        Ich habe erhalte mit Modbus einige Daten aus der Oekofen. Auch z.B., Fehlermeldungen. Das ist wichtig.

        Ausserdem kann ich über die Laufzeit der Schnecke den Pelletverbrauch errechnen.

        vG Looxer

        Anbei meine Konfiguration:

        305_modbus1.jpg

        305_modbus2.jpg

        1 Reply Last reply
        0
        • M Offline
          M Offline
          Mangid
          wrote on last edited by
          #4

          Morgen,

          @looxer01 danke für die Infos! Hatte noch den Modbus auf IP-Sycon laufen und das war anschienend das Problem!

          Ich würde mich für die beschriebene Berechnung des Pelletverbrauchs interessieren!

          Könntest du mir dazu nähere Infos geben?

          Danke!

          lg

          Mangid

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Mangid
            wrote on last edited by
            #5

            Hallo,

            habe jetzt einmal ein paar Register eingetragen! Kann mir jemand sagen warum ich bei

            manchen Werte bekomme und bei manchen nicht?

            3790_register.png
            3790_objekte.png

            Danke!

            lg

            Niki

            1 Reply Last reply
            0
            • L Offline
              L Offline
              looxer01
              wrote on last edited by
              #6

              Hi,

              @Mangid:

              Kann mir jemand sagen warum ich bei

              manchen Werte bekomme und bei manchen nicht? `

              das kann dir wohl nur Oekofen selber sagen.

              Ich habe mit Oekofen deswegen einige male telefoniert. Sie sagten, dass nicht bzw noch nicht alle Register belegt sind.

              Fakt ist, dass Oekofen mit Modbus keine Öffnung vor hatte, sondern Heizsysteme miteinander verbinden wollte.

              Ich vermisse immer noch eine API. Die wird wohl nicht kommen.

              Ich habe zwei Systeme zur Messung des Verbrauchs. Die durchschnittliche Abweichung liegt bei 1 %.

              Ich habe ein Sacksilo mit untenliegender Schnecke.

              1. Die Messung über eine HM-Schnittstelle. Die wird geschaltet, wenn Strom anliegt. Damit kann ich die Laufzeit der Schnecke gemessen werden.

              2. Die Messung über die Modbus Schnittstelle. Damit messe ich die Laufzeit, die von Modbus kommt. Hierzu müssen dann die Saugvorlaufzeit und Nachlaufzeit gemessen werden. Funktioniert auch aber etwas weniger genau.

              Beides berechne ich mit dem generischen Betriebsstundenzähler, den ich im Forum veröffentlicht habe

              schau auch mal hier:

              http://forum.iobroker.net/viewtopic.php … fen#p15771

              Falls du interesse hast und für dich die Vorgehensweise in Frage kommt kann ich dich gerne unterstützen.

              vG Looxer

              1 Reply Last reply
              0
              • M Offline
                M Offline
                Mangid
                wrote on last edited by
                #7

                Hy,

                danke für deine Antwort! Also ich habe von Ökofen diese Registerbelegung bekommen!

                Vor allem mit der Version „HomeAutomatin“ umstellbar am Ofen oder Register 1 ist für

                mich eigentlich eine Öffnung vollzogen!

                Das Register 1 muss auf 2 stehen dann kann man die beschriebenen Register verwenden!

                Ich weiß die Doku ist bescheiden aber fürs erste kommt schon mehr als über Version 1!

                Derzeit habe ich in IP-Symcon alles Register mit Werten also sollte es nicht an Ökofen liegen!

                Vll bekommen wir das gemeinsam hin?

                In dieser Version „Home Automation“ bekommt man leider nicht die Einschubzeiten aber hast du

                dir schon mal überlegt diese csv die der Ofen schreibt miteinzubeziehen?

                Lg

                Mangid

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  looxer01
                  wrote on last edited by
                  #8

                  @Mangid:

                  or allem mit der Version „HomeAutomatin“ umstellbar am Ofen oder Register 1 ist für

                  mich eigentlich eine Öffnung vollzogen! `

                  ok, ich habe mich lange nicht mehr damit beschäftigt.

                  Home Automation sollte heissen, dass z.B. Solltemperaturen übermittelt werden können, Heizung aus-einschalten etc.

                  Soll das jetzt möglich sein ?

                  Schickst du mir mal deine Konfig ?

                  vG Looxer

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Mangid
                    wrote on last edited by
                    #9

                    Welche Konfig?

                    Hab am Modbus-Adapter im iobroker die konfig die du mir

                    gesendet hast! Welche SW-Version hast du am Ofen?

                    Wie gesagt in IP-Symcon klappt es bei mir!

                    Lg

                    Mangid

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      looxer01
                      wrote on last edited by
                      #10

                      @Mangid:

                      Hab am Modbus-Adapter im iobroker die konfig die du mir

                      gesendet hast! `

                      aaah. ok, ich dachte, dass du anders vorgehst.

                      @Mangid:

                      gesendet hast! Welche SW-Version hast du am Ofen? `
                      Touch V2.08 19092016

                      @Mangid:

                      Wie gesagt in IP-Symcon klappt es bei mir! `
                      da muss ich dann auch mal bei mir schauen. Damals hatte BF bei der Entwicklung von Modbus den Datenstrom angesehen.

                      Er meinte da, dass das eine eigenwillige Modbus implementierung ist. Daher habe ich nicht mehr weiter nachgesehen.

                      Interessant, dass es bei IPS klappte.

                      vG Looxer

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        Mangid
                        wrote on last edited by
                        #11

                        Hello,

                        ok, habe auch die gleiche Version dann müsstest du am Ofen folgendes einstellen können!
                        3790_img_2943.jpg
                        Dann müsstest du nach meiner Liste die Registerbelegung haben!

                        Im IPS hats auch sehr lange gedauert bis ich es am laufen hatte kann aber alles auslesen und setzen!

                        Was halt rw ist! Sogar den Status Text umwandeln, da müsste ich aber mal nachschauen!

                        3790_2017-10-13_16h30_40.png

                        3790_2017-10-13_16h30_57.png

                        Würde aber gerne komplett auf ioBroker umsteigen!

                        1 Reply Last reply
                        0
                        • M Offline
                          M Offline
                          Mangid
                          wrote on last edited by
                          #12

                          Habe jetzt den Modbus nochmal gestartet und siehe da alle Werte werden gelesen!

                          lg

                          Mangid

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            Mangid
                            wrote on last edited by
                            #13

                            Hallo,

                            es gibt News! Habe bei Ökofen nachgefragt was es denn so neues gibt!

                            Ab der Version 2.09 gibt es wohl eine JSON Schnittstelle:

                            ` > Hier die gewünschten Kurzinfo zu „JSON“

                            Voraussetzung ist die Softwareversion 2.09 die ein Ökofen Techniker oder Servicepartner machen muß!

                            Neu ist in dieser Version auch, das kein Portforwarding mehr gemacht werden muß (andere Aufbauweise)

                            Einfach die automatische Netzwerkeinrichtung bestätigen.

                            In diesem Menü finden sie auch dann die Funktion „JSON“ welche auf ein gestellt werden muß. Weiters wird der Json Port und das Json PW angezeigt.

                            Sobald Sie nun im Browser die IP mit Port eingeben wird Ihnen bereits die Erklärung aufgelistet. Damit sollten sie sich soweit mal zurecht finden.

                            Wichtig! Es ist wiederum „Neu“ und somit als Testfunktion erstmals anzusehen! Es besteht auch die Möglichkeit das noch Fehler in dieser Funktion auftreten können.
                            3790_oekofen.png `

                            Dann werde ich mal warten bis der Servicetechniker kommt um die neue Software aufzuspielen!

                            lg

                            Mangid

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              looxer01
                              wrote on last edited by
                              #14

                              Hi Mangid,

                              scheint ja einiges mehr an Daten rüberzukommen als über Modbus.

                              Allerdings gibt es nach wie vor nicht die Möglichkeit der Steuerung. (z.B. Soll-Temperatur setzen)

                              Ein update gibt es übrigens nicht zwangsläufig. Nur wenn es Sicherheits-Features gibt.

                              Inkl Anreise müsste ich so mind 150 Euro zahlen.

                              Das Abrufen der JSON scheint mir dann aber mit Javascript nicht das große Problem. (wenn es denn die neue Funktion einwandfrei funktioniert)

                              Andererseits hast du das Risiko, dass deine Modbus Anbindung nicht mehr funktioniert. who knows.

                              vG Looxer

                              1 Reply Last reply
                              0
                              • M Offline
                                M Offline
                                Mangid
                                wrote on last edited by
                                #15

                                Hi,

                                ja da ich sowiso mal eine Wartung machen muss bietet sich das an!

                                Naja wie du im unteren Bereich siehst gibt es auch eine set Möglichkeit!

                                Also sollte die Steuerung möglich sein! Aber kann es dir dann berichten

                                wenns so weit ist!

                                Ich habe den Modbus mittlerweile wieder deaktiviert da er nur Fehler wirft

                                und teilweise keine Werte liefert!

                                Ja anscheinend ist das ganze erstmals nur wieder im Testbetrieb war damals

                                beim Modbus in Version HomeAutomation auch so un da ich dann einen Bug

                                gefunden habe war das anschließende Update gratis! 😄

                                Wenn du willst halte ich dich am laufenden!

                                Lg

                                Mangid

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  looxer01
                                  wrote on last edited by
                                  #16

                                  @Mangid:

                                  Wenn du willst halte ich dich am laufenden! `

                                  sehr gerne. Wenn das mit dem set funktioniert, dann würde ich mir ein upgrade ebenfalls überlegen.

                                  Dann hätte ich ein neues Projekt 😉

                                  vG Looxer

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    Mangid
                                    wrote on last edited by
                                    #17

                                    Hi,

                                    so gestern war es so weit! Der Servicetechniker war da und hat die neue Version draufgespielt!

                                    Im Anhang siehst du einmal die Startseite und die Werte die bei mir zurückkommen!

                                    Alle Variablen die nicht mit L_ starten kannst du setzen!

                                    Beispiel zum schreiben einer Variable:

                                    http://10.0.0.20:4321/xxxx/hk1_temp_setback=180

                                    Bin erstmal recht zufrieden! Funktioniert für mich besser als mit dem Modbus!

                                    lg

                                    Niki
                                    3790_oekofen_json_werte.txt
                                    3790_oekofen_json_allg.txt

                                    1 Reply Last reply
                                    0
                                    • L Offline
                                      L Offline
                                      looxer01
                                      wrote on last edited by
                                      #18

                                      Hi Mangid,

                                      klingt ja super.

                                      Hast du das alles schon mit JS umgesetzt ?

                                      Lesen und Schreiben

                                      Dann würde ich mir das gerne mal -in Vorbereitung- ansehen.

                                      Geht das ?

                                      vG

                                      Looxer

                                      1 Reply Last reply
                                      0
                                      • M Offline
                                        M Offline
                                        Mangid
                                        wrote on last edited by
                                        #19

                                        Hi,

                                        habs nur mal schnell in javascript gemacht!

                                        Schreiben hab ich noch nicht über ioBroker gemacht nur über den Browser und

                                        da funktioniert es!

                                        var logging = true;
                                        var basePath = 'http://10.0.0.20:4321/xxxx/';
                                        var allPath = basePath + 'all';
                                        
                                        schedule("* * * * *",
                                            function () {
                                                log('Start Ökofen Daten einlesen');
                                                objekteAnlegen();
                                                readAllAlues();
                                            });
                                        
                                        function readAllAlues() {
                                            if (logging) log('Start Ökofen Daten einlesen');
                                            var request = require('request');
                                        
                                            request(allPath, function (error, response, body) {
                                                if (!error && response.statusCode == 200) {
                                                                var result;
                                                    try{
                                                        result = JSON.parse(body);
                                                        var data = JSON.stringify(result, null, 2);
                                                        //if (logging) log(data);
                                                        //if (logging) log('Kein Fehler :-D');
                                                    } catch (e) {
                                                        if (logging) log('Parse Fehler:' + e);
                                                    }    
                                                    if (result) {
                                                        setState("Pellematic.Ambient.Aussentemperatur", parseFloat((result.system.L_ambient * 0.1).toFixed(1)));
                                        
                                                        setState("Pellematic.Heizkreis.Raumtemperatur_ist", parseFloat((result.hk1.L_roomtemp_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Heizkreis.Raumtemperatur_soll", parseFloat((result.hk1.L_roomtemp_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Heizkreis.Absenktemperatur_soll", parseFloat((result.hk1.temp_setback * 0.1).toFixed(1)));
                                                        setState("Pellematic.Heizkreis.Vorlauftemperatur_ist", parseFloat((result.hk1.L_flowtemp_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Heizkreis.Vorlauftemperatur_soll", parseFloat((result.hk1.L_flowtemp_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Heizkreis.Status", result.hk1.L_statetext);
                                        
                                                        setState("Pellematic.Puffer.Temperatur_oben_ist", parseFloat((result.pu1.L_tpo_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Puffer.Temperatur_oben_soll", parseFloat((result.pu1.L_tpo_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Puffer.Temperatur_unten_ist", parseFloat((result.pu1.L_tpm_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Puffer.Temperatur_unten_soll", parseFloat((result.pu1.L_tpm_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Puffer.Ladepumpe", parseFloat(result.pu1.L_pump));
                                                        setState("Pellematic.Puffer.Status", result.pu1.L_statetext);
                                        
                                                        setState("Pellematic.Warmwasser.Temperatur_ist", parseFloat((result.ww1.L_ontemp_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Warmwasser.Temperatur_soll", parseFloat((result.ww1.L_temp_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Warmwasser.Pumpe_an", JSON.parse(result.ww1.L_pump));
                                                        setState("Pellematic.Warmwasser.Status", result.ww1.L_statetext);
                                                        setState("Pellematic.Warmwasser.Modus", parseFloat(result.ww1.mode_auto));
                                        
                                                        setState("Pellematic.Ofen.Modulation", parseFloat(result.pe1.L_modulation));
                                                        setState("Pellematic.Ofen.Kesseltemperatur_ist", parseFloat((result.pe1.L_temp_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Ofen.Kesseltemperatur_soll", parseFloat((result.pe1.L_temp_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Ofen.Feuerraumtemperatur_ist", parseFloat((result.pe1.L_frt_temp_act * 0.1).toFixed(1)));
                                                        setState("Pellematic.Ofen.Feuerraumtemperatur_soll", parseFloat((result.pe1.L_frt_temp_set * 0.1).toFixed(1)));
                                                        setState("Pellematic.Ofen.Status", result.pe1.L_statetext);
                                                        setState("Pellematic.Ofen.Brennerstarts", parseFloat(result.pe1.L_starts));
                                                        setState("Pellematic.Ofen.Brennerlaufzeit", parseFloat(result.pe1.L_runtime));
                                                        setState("Pellematic.Ofen.Mittlere_Laufzeit", parseFloat(result.pe1.L_avg_runtime));
                                                    }
                                                } else {
                                                    log('Fehler:' + error);
                                                }
                                        
                                            });   // Ende request 
                                            log('Daten aus Ökofen eingelesen');
                                        }
                                        
                                        function objekteAnlegen () {
                                            createState('Pellematic.Ambient.Aussentemperatur', {name: 'Außentemperatur', type: 'number', unit:'°C'});
                                        
                                            createState('Pellematic.Heizkreis.Raumtemperatur_ist', {name: 'Raumtemperatur ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Heizkreis.Raumtemperatur_soll', {name: 'Raumtemperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Heizkreis.Absenktemperatur_soll', {name: 'Absenktemperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Heizkreis.Vorlauftemperatur_ist', {name: 'Vorlauftemperatur ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Heizkreis.Vorlauftemperatur_soll', {name: 'Vorlauftemperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Heizkreis.Status', {name: 'Status', type: 'string'});
                                        
                                            createState('Pellematic.Puffer.Temperatur_oben_ist', {name: 'Temperatur oben ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Puffer.Temperatur_oben_soll', {name: 'Temperatur oben soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Puffer.Temperatur_unten_ist', {name: 'Temperatur unten ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Puffer.Temperatur_unten_soll', {name: 'Temperatur unten soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Puffer.Ladepumpe', {name: 'Ladepumpe', type: 'number', unit:'%'});
                                            createState('Pellematic.Puffer.Status', {name: 'Status', type: 'string'});
                                        
                                            createState('Pellematic.Warmwasser.Temperatur_ist', {name: 'Temperatur ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Warmwasser.Temperatur_soll', {name: 'Temperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Warmwasser.Pumpe_an', {name: 'Pumpe an', type: 'boolean'});
                                            createState('Pellematic.Warmwasser.Status', {name: 'Status', type: 'string'});
                                            createState('Pellematic.Warmwasser.Modus', {name: 'Modus', type: 'number'});
                                        
                                            createState('Pellematic.Ofen.Modulation', {name: 'Modulation', type: 'number', unit:'%'});
                                            createState('Pellematic.Ofen.Kesseltemperatur_ist', {name: 'Kesseltemperatur ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Ofen.Kesseltemperatur_soll', {name: 'Kesseltemperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Ofen.Feuerraumtemperatur_ist', {name: 'Feuerraumtemperatur ist', type: 'number', unit:'°C'});
                                            createState('Pellematic.Ofen.Feuerraumtemperatur_soll', {name: 'Feuerraumtemperatur soll', type: 'number', unit:'°C'});
                                            createState('Pellematic.Ofen.Status', {name: 'Status', type: 'string'});
                                            createState('Pellematic.Ofen.Brennerstarts', {name: 'Brennerstarts', type: 'number'});
                                            createState('Pellematic.Ofen.Brennerlaufzeit', {name: 'Brennerlaufzeit', type: 'number', unit:'h'});
                                            createState('Pellematic.Ofen.Mittlere_Laufzeit', {name: 'Mittlere Laufzeit', type: 'number', unit:'min'});
                                        }
                                        
                                        
                                        1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          Mangid
                                          wrote on last edited by
                                          #20

                                          Hallo looxer01,

                                          und hast du dich schon für ein Update entschieden?

                                          Bei mir läuft es stabil! Ich vermisse nur die Info ob die HK-Pumpe läuft oder nicht!

                                          Du hast mal erwähnt, dass du:
                                          > 1\. Die Messung über eine HM-Schnittstelle. Die wird geschaltet, wenn Strom anliegt. Damit kann ich die Laufzeit der Schnecke gemessen werden.
                                          Welche HM-Schnittstelle hast du denn dafür verwendet?

                                          Danke!

                                          lg

                                          Niki

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          478

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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