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. Heizkreisregelungen - JS

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    153

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Heizkreisregelungen - JS

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
47 Beiträge 4 Kommentatoren 7.9k Aufrufe 1 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.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #14

    Anmerkung: Die Trägheit der thermoelektrischen Stellantriebe (brauchen ca. 5 Minuten für gesamten Hub) sollte beachtet werden. Die Pumpe sollte also mit ca. 3 Minuten Verzögerung gaschaltet werden.

    var timer = null;
    
    function control() {
        if(timer) clearTimeout(timer);
        if (pump1 || pump2) {
            timer = setTimeout(function() {
                setState(idpump, true);
            }, 180000);  // 3 Minuten Verzögerung
        }
        else {
            timer = setTimeout(function() {
                setState(idpump, false);
            }, 180000);    
       }
    }
    

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      sound31
      schrieb am zuletzt editiert von
      #15

      Stimmt die Schaltung im Script FBH so?

      // PI-Regler Fussbodenheizung mit PWM-Ansteuerung
      // für FBH Flur EG
      // P-Band in K, Nachstellzeit in s, PWM-Periode in Intervallen (Minuten)
      var Xp = 2;
      var Tn = 3600;
      var pwm = 100; //* PWM Zeit verlängert
      
      var xid = "knx.0.Sensoren.Erdgeschoss.Temp-Sensor_Küche_EG"/*Temp-Sensor Küche EG*/;
      var wid = "javascript.0.Sollwert-Küche-EG"/*Sollwert-Küche-EG*/;
      var yid = "knx.0.Aktoren.Heizung-Technik.HK-Verteiler_EG_-_Solid_Stade_Relais_1"/*SSR-Küche-EG*/;
      var pump = "javascript.0.FBH-Pumpe-2"/*FBH-Pumpe-2*/;
      var n = 0;  // Intervallzähler
      
      var  PI = require('pi-controller');
      
      var pi = new PI(Xp, Tn); 
      pi.setOutputMax(pwm);   // default: OutputMax = 100
      
      // Abfrage für Sommer/Winter noch einfugen
      
      function control() {
        var x = getState(xid).val;    // Istwert in °C
        var w = getState(wid).val;    // Sollwert in °C
        var y = pi.Control(w - x);    // Stellsignal
        n++;
        if (n >= pwm) n = 0;
         if (n < 8 && y > 0)           // Mindesteinschaltdauer: 8 Intervalle
          {   setState(yid, 1);
              setState(pump, 1);		// Pumpe Einschalten
          }
        else if (n >= 8 && y <= n)    // Zwei Ventile werden geschalten
          {   setState(yid, 0);
              setState(pump, 0);		// Pumpe Ausschalten
          }  
      }
      
      control();  // Script start
      
      setInterval(control, 60000 );  // Intervall: 1 Minute
      
      
      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #16

        Die Intervall-Zeit solltest Du auf die Hälfte verringern.

        setInterval(control, 30000 );  // Intervall: 0,5 Minuten
        

        Die Datenpunkte zur Pumpenanforderung werden nicht benötigt, denn im Pumpenskript können die Ventildatenpunkte direkt ausgewertet werden (schalten identisch).

        Sind die KNX-Schalt-Datenpunkte vom Typ "boolean" mit den Werten false/true oder sind sie vom Typ Zahl mit den Werten 0/1 ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          sound31
          schrieb am zuletzt editiert von
          #17

          Die Datenpunkte sind Logikwert, switch so wurden sie eingelesen vom

          KNX Adapter.
          4002_screenshot.13.jpg
          deswegen habe ich die Ursprünglichen Werte true/false auf 0/1 geändert.

          Am WE möchte ich nochmal alle Datenpunkte von der KNX-seite prüfen um

          sicher zu gehen das auch alle richtig angezeigt werden.

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            sound31
            schrieb am zuletzt editiert von
            #18

            > Die Datenpunkte zur Pumpenanforderung werden nicht benötigt, denn im Pumpenskript können die Ventildatenpunkte direkt ausgewertet werden (schalten identisch).
            müsste ich dann im Pumpenscript nicht die ID's der Ventile bei den Variablen einfügen

            var idpump1 = "javascript.0.FBH-Pumpe-1"/*FBH-Pumpe-1*/;
            var idpump2 = "javascript.0.FBH-Pumpe-2"/*FBH-Pumpe-2*/;
            
            
            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #19

              @sound31:

              Die Datenpunkte sind Logikwert, switch so wurden sie eingelesen vom KNX Adapter. `
              Logikwert und min: 0, max: 1 sind ein Widerspruch. Diesbezüglich wurde der Adapter schlampig programmiert. Dann kommt es darauf an, auf welche Werte reagiert wird.
              @sound31:

              müsste ich dann im Pumpenscript nicht die ID's der Ventile bei den Variablen einfügen `
              Richtig.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                sound31
                schrieb am zuletzt editiert von
                #20

                > Logikwert und min: 0, max: 1 sind ein Widerspruch. Diesbezüglich wurde der Adapter schlampig programmiert. Dann kommt es darauf an, auf welche Werte reagiert wird.
                Sollte ich das in den Einstellungen ändern, Die Ventile und auch die Pumpen werden richtig geschalten.

                Dann kann ich im FBH-Script die Declaration der Variablen und auch das Ein und Ausschalten dieser entfernen.

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #21

                  @sound31:

                  Sollte ich das in den Einstellungen ändern, `
                  Nein - auch wenn es nicht korrekt ist - die Datenpunkteigenschaften werden vom Adapter erzeugt.
                  @sound31:

                  Die Ventile und auch die Pumpen werden richtig geschalten. `
                  Mit 0/1 ?

                  @sound31:

                  Dann kann ich im FBH-Script die Declaration der Variablen und auch das Ein und Ausschalten dieser entfernen. `
                  Ja.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    sound31
                    schrieb am zuletzt editiert von
                    #22

                    Hallo Paul53,

                    gibt es eine einfache Möglichkeit in die Scripte eine Stop Funktion einzufügen bei

                    zB. Service?

                    Aktuell hatte es mit die Heizkreispumpe am Donnerstag zerlegt um am Samstag

                    in der früh das Heizregister der Gastherme.

                    Das Script für den Mischermotor tut auch bereits Ihren Dienst.

                    Allerdings sind manchmal beide Ausgänge angesprochen.

                    Grüße, Andy.

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #23

                      @sound31:

                      gibt es eine einfache Möglichkeit in die Scripte eine Stop Funktion einzufügen bei zB. Service? `
                      Was soll erreicht werden ?

                      Was meinst Du mit Service ?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        sound31
                        schrieb am zuletzt editiert von
                        #24

                        Heute bekomme ich das neue Register für die Gastherme.

                        zum einbauen muss ich das Wasser zum Teil aus dem Heizkreis entfernen.

                        Dazu muss ich die Pumpe auch ausschalten das geht jetzt nur über

                        das ausschalten des Scrips oder Stromlos machen.

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #25

                          @sound31:

                          Dazu muss ich die Pumpe auch ausschalten das geht jetzt nur über das ausschalten des Scrips oder Stromlos machen. `
                          Stromlos machen ist keine schlechte Lösung. Jedes Skript lässt sich auch im Reiter "Javascript" deaktivieren und nach dem Deaktivieren des Skripts kann man den Datenpunkt für die Pumpe im Reiter "Objekte" auf "Aus" ändern.

                          Du solltest noch einen Datenpunkt "Heizperiode" oder "Jahreszeit" (Winter = true) vom Typ "Schalter" unter javascript.0 anlegen und darüber die Mischeransteuerung und die Pumpenansteuerung beeinflussen.

                          const idHeizen = 'javascript.0.Heizperiode';
                          
                          ...
                          var heizen = getState(idHeizen).val;
                          
                          function control() {
                              if(timer) clearTimeout(timer);
                              if ((pump1 || pump2) && heizen) {
                                 ...
                          }
                          
                          // am Ende zusätzlich
                          on(idHeizen, function(dp) {
                              heizen = dp.state.val;
                              control();
                          });    
                          
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #26

                            @sound31:

                            Das Script für den Mischermotor tut auch bereits Ihren Dienst. `
                            Welche Laufzeit hast Du ermittelt ?

                            @sound31:

                            Allerdings sind manchmal beide Ausgänge angesprochen. `
                            Das sollte die Bedingung

                               if(!motor) {
                            
                            

                            eigentlich verhindern.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              sound31
                              schrieb am zuletzt editiert von
                              #27

                              Hallo,
                              > Du solltest noch einen Datenpunkt "Heizperiode" oder "Jahreszeit" (Winter = true) vom Typ "Schalter" unter javascript.0 anlegen und darüber die Mischeransteuerung und die Pumpenansteuerung beeinflussen.
                              das würde heissen das nur die Pumpen abgeschalten werden und die Ventile und der Mischer weiter (auch im Sommer)

                              fahren würden.

                              Bei einer reinen Außentemperatur gesteuerte Abschaltung würde die Heizung auch zu laufen beginnen wenn die

                              Raumtemperaturen im Sommer mal unter den Sollwert sinken würde.
                              > Welche Laufzeit hast Du ermittelt ?
                              Von komplett "Geschlossen" bis "Offen" sind es 110sec.

                              Frage zur Mischeransteuerung:

                              Da ich die Pumpe für den HK im OG ja auf eine Elektronische ändern muss, die die ich jetzt verbaut habe

                              ist nicht passen für Heizkörperbetrieb (ist halt ein altes Haus).

                              Sollte ich diese dauern laufen lassen oder über eine Anforderung aus dem Script heraus.

                              Grüße, Andy

                              1 Antwort Letzte Antwort
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #28

                                @sound31:

                                das würde heissen das nur die Pumpen abgeschalten werden und die Ventile und der Mischer weiter (auch im Sommer)

                                fahren würden. `
                                Nein, der Datenpunkt "Heizperiode" sollte auch bei der Ventil- und Mischeransteuerung ausgewertet werden.
                                @sound31:

                                Sollte ich diese dauern laufen lassen oder über eine Anforderung aus dem Script heraus. `
                                Da die Pumpe selbst auf eine sehr geringe Leistung runter regelt, würde ich sie nur im Sommer (Datenpunkt "Heizperiode")abschalten.

                                Im Sommer sollte ein Wartungslauf gegen das Festsitzen ergänzt werden: Pumpen täglich 1 Minute ein, FBH-Ventile wöchentlich 5 Minuten auf; bei der FBH erst die Pumpe, danach die Ventile.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  sound31
                                  schrieb am zuletzt editiert von
                                  #29

                                  Denn Datenpunkt Heizperiode habe ich auch ins Script der FBH geschrieben

                                  danach schaut das so aus:

                                  var Xp = 2;
                                  var Tn = 3600;
                                  var pwm = 100; //* PWM Zeit verlängert
                                  const idHeizen = "javascript.0.Heizperiode"/*Heizperiode*/;
                                  var xid = "knx.0.Sensoren.Erdgeschoss.Temp-Sensor-Kueche-EG"/*Temp-Sensor-Kueche-EG*/;
                                  var wid = "javascript.0.Sollwert-Küche-EG"/*Sollwert-Küche-EG*/;
                                  var yid = "knx.0.Aktoren.Heizung-Technik.Ventil-FBH-Kueche-EG"/*Ventil-FBH-Kueche-EG*/;
                                  
                                  var n = 0;  // Intervallzähler
                                  
                                  var  PI = require('pi-controller');
                                  
                                  var pi = new PI(Xp, Tn); 
                                  pi.setOutputMax(pwm);   // default: OutputMax = 100
                                  
                                  // Abfrage für Sommer/Winter noch einfugen
                                  
                                  function control() {
                                    var x = getState(xid).val;    // Istwert in °C
                                    var w = getState(wid).val;    // Sollwert in °C
                                    var y = pi.Control(w - x);    // Stellsignal
                                    n++;
                                    if (n >= pwm) n = 0;
                                     if (n < 8 && y > 0)           // Mindesteinschaltdauer: 8 Intervalle
                                      {   setState(yid, 1);
                                  //        setState(pump, 1);
                                      }
                                    else if (n >= 8 && y <= n)    // Zwei Ventile werden geschalten
                                      {   setState(yid, 0);
                                  //        setState(pump, 0);
                                      }  
                                  }
                                  
                                  control();  // Script start
                                  
                                  setInterval(control, 30000 );  // Intervall: von 1 auf 0,5 Minuten geändert
                                  
                                  // Abschaltung
                                  on(idHeizen, function(dp) {
                                      heizen = dp.state.val;
                                      control();
                                  }); 
                                  
                                  

                                  nach dem Start des Scripts kommen zwei Warn Meldungen:

                                  (Ausdruck beim Start)

                                  08:03:46.803 [info] javascript.0 Stop script script.js.Heizung.Küche-EG.FBH-Küche-EG

                                  08:03:47.528 [info] javascript.0 Start javascript script.js.Heizung.Küche-EG.FBH-Küche-EG

                                  08:03:47.528 [warn] javascript.0 at control (script.js.Heizung.Küche-EG.FBH-Küche-EG:25:9)

                                  08:03:47.528 [warn] javascript.0 at script.js.Heizung.Küche-EG.FBH-Küche-EG:34:1

                                  08:03:47.528 [info] javascript.0 script.js.Heizung.Küche-EG.FBH-Küche-EG: registered 1 subscription and 0 schedules

                                  ist das so korrekt?

                                  Bei Script für die Regelung der Temperatur im OG genügt es ja wen die Abschaltung im
                                  > // 3-Punkt-Ansteuerung aus Stellsignal ist, oder?

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #30

                                    Die Warnung kommt, weil die Variable heizen nicht deklariert ist.

                                    var heizen = getState(idHeizen).val;
                                    

                                    Die Auswertung muss in der Funktion control() erfolgen, damit die Ventile zu bleiben.

                                       if (n < 8 && y > 0 && heizen)     // Mindesteinschaltdauer: 8 Intervalle
                                    
                                    

                                    Beim Übergang Winter zu Sommer ist es besser, die Ventile gleich zu schließen.

                                    // Abschaltung
                                    on(idHeizen, function(dp) {
                                        heizen = dp.state.val;
                                        if(!heizen) setState(yid, 0);
                                    });
                                    
                                    

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #31

                                      @sound31:

                                      ei Script für die Regelung der Temperatur im OG genügt es ja wen die Abschaltung im

                                      // 3-Punkt-Ansteuerung aus Stellsignal

                                      ist, oder? `
                                      Ja.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von
                                        #32

                                        Anmerkung: Da die KNX-Datenpunkte zum Schalten (Ventile, Pumpen) mit 0 und 1 anstelle false/true angesteuert werden müssen, sollte der Datenpunkttyp von "boolean" in "number" (Zahl) geändert werden.

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          sound31
                                          schrieb am zuletzt editiert von
                                          #33

                                          Hallo paul53,

                                          da ich für die Ladung des Boilers und die Fußbodenheizung nur einen Vorlauf

                                          zur verfügung habe ist dieser mit einem Ventil umschaltbar.

                                          (Leider ein altes Haus)

                                          Dazu muss ich allerdings die FBH Pumpe Abschalten.

                                          Ist das so korrekt wie ichs in das Script eingefügt habe?

                                          Das Ventil liefert eine "1" wenn es eingeschalten ist.

                                          // Ansteuerung Pumpe für Fußbodenheizungen
                                          
                                          const idHeizen = "javascript.0.Heizperiode"/*Heizperiode*/;
                                          const idladung = "knx.0.Aktoren.Heizung-Technik.Ventil-Ladung-Boiler"/*Ventil-Ladung-Boiler*/;
                                          
                                          var idpump1 = "knx.0.Aktoren.Heizung-Technik.Ventil-FBH-Kueche-EG"/*Ventil-FBH-Kueche-EG*/;
                                          var idpump2 = "knx.0.Aktoren.Heizung-Technik.Ventil-1-FBH-Flur-EG"/*Ventil-1-FBH-Flur-EG*/;
                                          var idpump = "knx.0.Aktoren.Heizung-Technik.HK-EG-Pumpe"/*HK-EG-Pumpe*/;
                                          
                                          // Initialisierung bei Skriptstart
                                          var pump1 = getState(idpump1).val;
                                          var pump2 = getState(idpump2).val;
                                          var timer = null;
                                          var heizen = getState(idHeizen).val;
                                          var ladung = getState(idladung).val;
                                          
                                          function control() {
                                              if(timer) clearTimeout(timer);
                                              if (pump1 || pump2) {
                                                  timer = setTimeout(function() {
                                                      setState(idpump, 1);
                                                  }, 180000);  // 3 Minuten Verzögerung
                                              }
                                              else {
                                                  timer = setTimeout(function() {
                                                      setState(idpump, 0);
                                                  }, 180000);    
                                             }
                                          }
                                          
                                          // Skriptstart
                                          control();
                                          
                                          // Auf Änderung von Pumpe1 reagieren
                                          on(idpump1, function(dp) {
                                              pump1 = dp.state.val;
                                              control();
                                          });
                                          
                                          // Auf Änderung von Pumpe 2 reagieren
                                          on(idpump2, function(dp) {
                                              pump2 = dp.state.val;
                                              control();
                                          });
                                          
                                          // Abschaltung
                                          on(idHeizen, function(dp) {
                                              heizen = dp.state.val;
                                              control();
                                          }); 
                                          
                                          // Abschaltung wegen Boilerladung
                                          on(idladung, function(dp) {
                                              heizen = dp.state.val;
                                              control();
                                          }); 
                                          
                                          
                                          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

                                          395

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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