Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Synology fernsteuern (reboot/shutdown) möglich?

NEWS

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

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

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

Synology fernsteuern (reboot/shutdown) möglich?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
synology adapter fernsteuern
20 Beiträge 5 Kommentatoren 3.6k Aufrufe 7 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.
  • LatziL Latzi

    @Glasfaser
    Super, vielen Dank - hat perfekt funktioniert! Ich musste nur den Befehl etwas abändern ('echo "password"|sudo -S shutdown -h now'). 👏

    Off Topic: Gibt es auch eine Möglichkeit, einen Adapter per JS zu stoppen? Ich möchte einige Adapter beenden, bevor ich die Synology herunterfahre. Unter system.adapter... kann man nur lesen, nicht schreiben 😞 und ich bin nicht sicher, ob das überhaupt die richtige Stelle ist.

    Edit: Hab´s gefunden - ich werde kein Freund der Suchfunktion 😉

    horos73H Offline
    horos73H Offline
    horos73
    schrieb am zuletzt editiert von
    #5

    @Latzi Hallo Latzi, bin auch gerade dabei, einzurichten, meine Synology-NAS mittels Skript herunterfahren zu können.
    Könntest Du mir bitte Dein angepasstes Skript zur Verfügung stellen bzw. Dir meine Anpassung mal anschauen? Würde es gerne vergleichen mit "meinem": da hab ich einfach das von @Glasfaser verwendet und ein paar Stellen ersetzt. Bin mir allerdings nicht sicher, ob ich das so richtig gemacht habe:

    ////@Glasfaser 2020
    
    //// createState("MusikNAS.Shutdown");
    
     
    
    on({id: "javascript.0.MusikNAS.Shutdown", change: 'ne', val: true }, function (obj) {
    
     
    
    log ("--> Update gestartet!");
    
    console.log('+++ MusikNAS Shutdown durchgeführt +++');
    
       setState('javascript.0.MusikNAS.Shutdown', false);
    
       
    
    var SSH = require('simple-ssh');
    
     
    
    var ssh = new SSH({
    
        host: '192.168.178.XX',
    
        user: 'MeinNutzername',
    
        pass: 'MeinPasswort'
    
    });
    
     
    
    ssh.exec('echo "MeinPasswort"|sudo -S shutdown -h now', {
    
        out: function(stdout) {
    
            console.log(stdout);     
    
     
    
        }
    
    }).start();
    
     
    
     }
    
    );
    

    Danke schonmal!

    Schöne Grüße,
    Holger

    ? LatziL 2 Antworten Letzte Antwort
    0
    • horos73H horos73

      @Latzi Hallo Latzi, bin auch gerade dabei, einzurichten, meine Synology-NAS mittels Skript herunterfahren zu können.
      Könntest Du mir bitte Dein angepasstes Skript zur Verfügung stellen bzw. Dir meine Anpassung mal anschauen? Würde es gerne vergleichen mit "meinem": da hab ich einfach das von @Glasfaser verwendet und ein paar Stellen ersetzt. Bin mir allerdings nicht sicher, ob ich das so richtig gemacht habe:

      ////@Glasfaser 2020
      
      //// createState("MusikNAS.Shutdown");
      
       
      
      on({id: "javascript.0.MusikNAS.Shutdown", change: 'ne', val: true }, function (obj) {
      
       
      
      log ("--> Update gestartet!");
      
      console.log('+++ MusikNAS Shutdown durchgeführt +++');
      
         setState('javascript.0.MusikNAS.Shutdown', false);
      
         
      
      var SSH = require('simple-ssh');
      
       
      
      var ssh = new SSH({
      
          host: '192.168.178.XX',
      
          user: 'MeinNutzername',
      
          pass: 'MeinPasswort'
      
      });
      
       
      
      ssh.exec('echo "MeinPasswort"|sudo -S shutdown -h now', {
      
          out: function(stdout) {
      
              console.log(stdout);     
      
       
      
          }
      
      }).start();
      
       
      
       }
      
      );
      

      Danke schonmal!

      Schöne Grüße,
      Holger

      ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #6

      @horos73 vor ein paar Wochen wurde auch der Adapter komplett angepasst und der läuft jetzt super!
      nur mal so.. 😉

      horos73H 1 Antwort Letzte Antwort
      1
      • horos73H horos73

        @Latzi Hallo Latzi, bin auch gerade dabei, einzurichten, meine Synology-NAS mittels Skript herunterfahren zu können.
        Könntest Du mir bitte Dein angepasstes Skript zur Verfügung stellen bzw. Dir meine Anpassung mal anschauen? Würde es gerne vergleichen mit "meinem": da hab ich einfach das von @Glasfaser verwendet und ein paar Stellen ersetzt. Bin mir allerdings nicht sicher, ob ich das so richtig gemacht habe:

        ////@Glasfaser 2020
        
        //// createState("MusikNAS.Shutdown");
        
         
        
        on({id: "javascript.0.MusikNAS.Shutdown", change: 'ne', val: true }, function (obj) {
        
         
        
        log ("--> Update gestartet!");
        
        console.log('+++ MusikNAS Shutdown durchgeführt +++');
        
           setState('javascript.0.MusikNAS.Shutdown', false);
        
           
        
        var SSH = require('simple-ssh');
        
         
        
        var ssh = new SSH({
        
            host: '192.168.178.XX',
        
            user: 'MeinNutzername',
        
            pass: 'MeinPasswort'
        
        });
        
         
        
        ssh.exec('echo "MeinPasswort"|sudo -S shutdown -h now', {
        
            out: function(stdout) {
        
                console.log(stdout);     
        
         
        
            }
        
        }).start();
        
         
        
         }
        
        );
        

        Danke schonmal!

        Schöne Grüße,
        Holger

        LatziL Online
        LatziL Online
        Latzi
        schrieb am zuletzt editiert von Latzi
        #7

        @horos73
        skript passt so 👏 Verständnisfrage: Warum setzt du beim shutdown die Variable javascript.0.MusikNAS.Shutdown auf false?
        Der synology-Adapter ist auf jeden Fall einen Blick wert, läuft anstandslos.

        horos73H 1 Antwort Letzte Antwort
        1
        • ? Ein ehemaliger Benutzer

          @horos73 vor ein paar Wochen wurde auch der Adapter komplett angepasst und der läuft jetzt super!
          nur mal so.. 😉

          horos73H Offline
          horos73H Offline
          horos73
          schrieb am zuletzt editiert von
          #8

          @ilovegym Ja, hab ihn auch in Gebrauch. Aber: sowie das NAS aus ist, wird das LOG mit Polling-Error zugemüllt (klar: wenn NAS aus ist kann er nichts abrufen 😁 . Hab zwar auch schon mit dem Polling-Intervall experimentiert, hat aber nichts geholfen. Shutdown und Reboot via Adapter hatte funktioniert, nebenbei bemerkt.
          Mein Ziel ist: die NASse wenn's arg heiß ist oder ordentlich gewittert, schnell via iQontrol-Button herunterfahren zu können bzw. auch mal zeitgesteuert. Bin da aber auch noch am herausbekommen, was ich wie genau machen will...

          ? 1 Antwort Letzte Antwort
          0
          • LatziL Latzi

            @horos73
            skript passt so 👏 Verständnisfrage: Warum setzt du beim shutdown die Variable javascript.0.MusikNAS.Shutdown auf false?
            Der synology-Adapter ist auf jeden Fall einen Blick wert, läuft anstandslos.

            horos73H Offline
            horos73H Offline
            horos73
            schrieb am zuletzt editiert von
            #9

            @Latzi Hm, kommt davon wenn man ein Skript fast 1:1 übernimmt 😀
            Ich werd das herausnehmen, danke für den Tip!

            1 Antwort Letzte Antwort
            0
            • horos73H horos73

              @ilovegym Ja, hab ihn auch in Gebrauch. Aber: sowie das NAS aus ist, wird das LOG mit Polling-Error zugemüllt (klar: wenn NAS aus ist kann er nichts abrufen 😁 . Hab zwar auch schon mit dem Polling-Intervall experimentiert, hat aber nichts geholfen. Shutdown und Reboot via Adapter hatte funktioniert, nebenbei bemerkt.
              Mein Ziel ist: die NASse wenn's arg heiß ist oder ordentlich gewittert, schnell via iQontrol-Button herunterfahren zu können bzw. auch mal zeitgesteuert. Bin da aber auch noch am herausbekommen, was ich wie genau machen will...

              ? Offline
              ? Offline
              Ein ehemaliger Benutzer
              schrieb am zuletzt editiert von
              #10

              @horos73 hmm da würd ich in dem Script zum runterfahren den Adapter stoppen.
              und beim script fürs Hochfahren ( per WOL ?) dann den Adapter wieder starten lassen.. 🙂

              horos73H 1 Antwort Letzte Antwort
              1
              • ? Ein ehemaliger Benutzer

                @horos73 hmm da würd ich in dem Script zum runterfahren den Adapter stoppen.
                und beim script fürs Hochfahren ( per WOL ?) dann den Adapter wieder starten lassen.. 🙂

                horos73H Offline
                horos73H Offline
                horos73
                schrieb am zuletzt editiert von
                #11

                @ilovegym Oh, ja, ist ne gute Idee!!! Hat ich gar nicht dran gedacht, danke, Bernd!
                Wie müsste ich das Skript anpassen um die Adapter Instanz "synology.0" dann zu stoppen [und umkehrt im WOL-Skript wieder zu starten]?

                Bin leider kein Skript-Experte und taste mich da langsam ran 😊

                1 Antwort Letzte Antwort
                0
                • horos73H Offline
                  horos73H Offline
                  horos73
                  schrieb am zuletzt editiert von
                  #12

                  @ilovegym Mein WOL-Skript (hab ich hier aus dem Forum) sieht so aus:

                  createState("javascript.0.MusikDSstarten", 0);   // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
                  var wol = require('wake_on_lan');         // Lädt von ioBroker die das nötige Paket
                  var MusikDS = "MeineMAC;         // MAC definieren
                  
                  
                  // Ab hier automatisch
                  on({id: "javascript.0.MusikDSstarten", change: 'any'}, function (obj) {
                     wol.wake(MusikDS);
                     log("Script WOL - MusikDS aufgeweckt", "info");
                      }
                  
                  );
                  
                  ? 1 Antwort Letzte Antwort
                  0
                  • horos73H horos73

                    @ilovegym Mein WOL-Skript (hab ich hier aus dem Forum) sieht so aus:

                    createState("javascript.0.MusikDSstarten", 0);   // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
                    var wol = require('wake_on_lan');         // Lädt von ioBroker die das nötige Paket
                    var MusikDS = "MeineMAC;         // MAC definieren
                    
                    
                    // Ab hier automatisch
                    on({id: "javascript.0.MusikDSstarten", change: 'any'}, function (obj) {
                       wol.wake(MusikDS);
                       log("Script WOL - MusikDS aufgeweckt", "info");
                        }
                    
                    );
                    
                    ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #13

                    @horos73
                    du musst nur ne Zeile zum starten oder stoppen einfügen.

                    setState("system.adapter.synology.0.alive"/*synology.0 alive*/, false);
                    

                    false stoppt, true startet den Adapter. Das geht mit jedem Adapter so, nur den Javascript würd ich nie stoppen, sonst gehen die Scripte nicht mehr 🙂 😄

                    Würd das zwischen Zeile 3 und 4 reinschieben, dann startet der Adapter schonmal.. halt später, sonst hast du vielleicht ein paar Fehlermeldungen, wenn das NAS noch nicht online ist...
                    je nachdem wie schnell es ist...

                    horos73H 1 Antwort Letzte Antwort
                    1
                    • ? Ein ehemaliger Benutzer

                      @horos73
                      du musst nur ne Zeile zum starten oder stoppen einfügen.

                      setState("system.adapter.synology.0.alive"/*synology.0 alive*/, false);
                      

                      false stoppt, true startet den Adapter. Das geht mit jedem Adapter so, nur den Javascript würd ich nie stoppen, sonst gehen die Scripte nicht mehr 🙂 😄

                      Würd das zwischen Zeile 3 und 4 reinschieben, dann startet der Adapter schonmal.. halt später, sonst hast du vielleicht ein paar Fehlermeldungen, wenn das NAS noch nicht online ist...
                      je nachdem wie schnell es ist...

                      horos73H Offline
                      horos73H Offline
                      horos73
                      schrieb am zuletzt editiert von horos73
                      #14

                      @ilovegym Super, ich danke DIr! Werde das nachher noch umsetzen. Wenn Du nicht mehrs von mir hörst, läuft alles 😊

                      Ja, den JS-Adapter anzuhalten fände ich auch keine gute Idee, sonst sind graue Haare vorprogrammiert 😝

                      EDIT: inwelcher Zeile beim Shutdown-Skript kann ich Deine Zeile einfügen?

                      ? 1 Antwort Letzte Antwort
                      0
                      • horos73H horos73

                        @ilovegym Super, ich danke DIr! Werde das nachher noch umsetzen. Wenn Du nicht mehrs von mir hörst, läuft alles 😊

                        Ja, den JS-Adapter anzuhalten fände ich auch keine gute Idee, sonst sind graue Haare vorprogrammiert 😝

                        EDIT: inwelcher Zeile beim Shutdown-Skript kann ich Deine Zeile einfügen?

                        ? Offline
                        ? Offline
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von
                        #15

                        @horos73 Zeile 17, nach dem Logeintrag und bevor er das kommando schickt.. so solltest du keine Fehlermeldung im Log haben.

                        horos73H 1 Antwort Letzte Antwort
                        1
                        • ? Ein ehemaliger Benutzer

                          @horos73 Zeile 17, nach dem Logeintrag und bevor er das kommando schickt.. so solltest du keine Fehlermeldung im Log haben.

                          horos73H Offline
                          horos73H Offline
                          horos73
                          schrieb am zuletzt editiert von
                          #16

                          @ilovegym Hmm, irgendwas stimmt nicht: das Skript wird nicht ausgelöst/der Adapter nicht gestoppt und das Nas auch nicht.

                          Habe in Userdata einen Datenpunkt "button" erstellt

                          {
                            "from": "system.adapter.admin.0",
                            "user": "system.user.admin",
                            "ts": 1593351799846,
                            "common": {
                              "name": "SHUTDOWN-MusikNAS-Button",
                              "role": "button",
                              "type": "boolean",
                              "desc": "Manuell erzeugt",
                              "read": true,
                              "write": true,
                              "def": false
                            },
                            "native": {},
                            "acl": {
                              "object": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator",
                              "state": 1636
                            },
                            "_id": "0_userdata.0.Schalter.SHUTDOWN-MusikNAS-Button",
                            "type": "state"
                          }
                          

                          Dann ein Blockly erstellt, das auf Änderung des Buttons reagiert und das Skript startet:

                          <xml xmlns="http://www.w3.org/1999/xhtml">
                            <block type="on" id="m--eciX;Kl5HJ0iLhR@A" x="38" y="63">
                              <field name="OID">0_userdata.0.Schalter.SHUTDOWN-MusikNAS-Button</field>
                              <field name="CONDITION">gt</field>
                              <field name="ACK_CONDITION"></field>
                              <statement name="STATEMENT">
                                <block type="control" id="oo_;TmwS[)/3j-%JP%EN">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">javascript.0.scriptEnabled.WOL-und-Shutdown-Skripte.MusikDS-Shutdown-Script</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="$hpt[hrR6,wS4rzy/T?S">
                                      <field name="BOOL">TRUE</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </xml>
                          

                          Hier das Blockly als Bild:
                          Screenshot_1.png

                          Nur: es passiert nichts...

                          ? 1 Antwort Letzte Antwort
                          0
                          • horos73H horos73

                            @ilovegym Hmm, irgendwas stimmt nicht: das Skript wird nicht ausgelöst/der Adapter nicht gestoppt und das Nas auch nicht.

                            Habe in Userdata einen Datenpunkt "button" erstellt

                            {
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1593351799846,
                              "common": {
                                "name": "SHUTDOWN-MusikNAS-Button",
                                "role": "button",
                                "type": "boolean",
                                "desc": "Manuell erzeugt",
                                "read": true,
                                "write": true,
                                "def": false
                              },
                              "native": {},
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              },
                              "_id": "0_userdata.0.Schalter.SHUTDOWN-MusikNAS-Button",
                              "type": "state"
                            }
                            

                            Dann ein Blockly erstellt, das auf Änderung des Buttons reagiert und das Skript startet:

                            <xml xmlns="http://www.w3.org/1999/xhtml">
                              <block type="on" id="m--eciX;Kl5HJ0iLhR@A" x="38" y="63">
                                <field name="OID">0_userdata.0.Schalter.SHUTDOWN-MusikNAS-Button</field>
                                <field name="CONDITION">gt</field>
                                <field name="ACK_CONDITION"></field>
                                <statement name="STATEMENT">
                                  <block type="control" id="oo_;TmwS[)/3j-%JP%EN">
                                    <mutation delay_input="false"></mutation>
                                    <field name="OID">javascript.0.scriptEnabled.WOL-und-Shutdown-Skripte.MusikDS-Shutdown-Script</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="$hpt[hrR6,wS4rzy/T?S">
                                        <field name="BOOL">TRUE</field>
                                      </block>
                                    </value>
                                  </block>
                                </statement>
                              </block>
                            </xml>
                            

                            Hier das Blockly als Bild:
                            Screenshot_1.png

                            Nur: es passiert nichts...

                            ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von
                            #17

                            @horos73 huch, warum machst du ein Script, das ein Script startet? Das ist so nicht im Sinne des Erfinders 🙂

                            horos73H 1 Antwort Letzte Antwort
                            0
                            • ? Ein ehemaliger Benutzer

                              @horos73 huch, warum machst du ein Script, das ein Script startet? Das ist so nicht im Sinne des Erfinders 🙂

                              horos73H Offline
                              horos73H Offline
                              horos73
                              schrieb am zuletzt editiert von horos73
                              #18

                              @ilovegym Ich hatte mal gelesen, dass man Skripte nie direkt ansteuern sollte.
                              Edit: wäre möglich,d ass ich das mißverstanden habe..

                              Wie würdest Du es lösen: möchte in iQontrol einen Button einfügen, der das (irgendein) Skript startet?

                              Hast Du eine Idee, warum das Shutdown.Skript nichts stoppt? IP, Passwort etc sind korrekt..

                              ? 1 Antwort Letzte Antwort
                              0
                              • horos73H horos73

                                @ilovegym Ich hatte mal gelesen, dass man Skripte nie direkt ansteuern sollte.
                                Edit: wäre möglich,d ass ich das mißverstanden habe..

                                Wie würdest Du es lösen: möchte in iQontrol einen Button einfügen, der das (irgendein) Skript startet?

                                Hast Du eine Idee, warum das Shutdown.Skript nichts stoppt? IP, Passwort etc sind korrekt..

                                ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #19

                                @horos73 Also von der Logik her macht man kein Script, das ein anderes startet oder stoppt..
                                man baut im script den trigger ein, den man abfragt.

                                D.h. du fragst in deinem script den Datenpunkt ab, den du mit iqontrol steuerst, und wenn der sich ändert, dann passiert dies oder jenes..

                                Die funktion "erlaube exec" im Javascript enabled?
                                Funktionieren die Befehle, wenn du sie selbst per konsole eingibst?

                                horos73H 1 Antwort Letzte Antwort
                                0
                                • ? Ein ehemaliger Benutzer

                                  @horos73 Also von der Logik her macht man kein Script, das ein anderes startet oder stoppt..
                                  man baut im script den trigger ein, den man abfragt.

                                  D.h. du fragst in deinem script den Datenpunkt ab, den du mit iqontrol steuerst, und wenn der sich ändert, dann passiert dies oder jenes..

                                  Die funktion "erlaube exec" im Javascript enabled?
                                  Funktionieren die Befehle, wenn du sie selbst per konsole eingibst?

                                  horos73H Offline
                                  horos73H Offline
                                  horos73
                                  schrieb am zuletzt editiert von
                                  #20

                                  @ilovegym Klingt logisch. Hab das so an anderer Stelle allerdings schon erfolgreich im Einsatz, werde mir diese aber demnächst nochmal anschauen.

                                  "Erlaube exec" im JS ist angehakt. Hab vorhin im JS-Adapter auch noch bei "zusätzl. NPM-Module" "simple-ssh" hinzugefügt.
                                  Den JS-Adapter hatte ich vorhin auch schonmal neu gestartet.

                                  Ich habe eben in Termius mich auf dem MusikNas eingeloggt und dort

                                  echo "MusikNASPasswort!"|sudo -S shutdown -h now
                                  

                                  eingegeben: das NAS fuhr herunter.

                                  Ich glaub ich mach hier für heute einen Punkt und schau mir das nächstes Wochenende nochmal an. Irgendwo ist da ein Fehler..

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

                                  757

                                  Online

                                  32.4k

                                  Benutzer

                                  81.4k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe