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. Datenpunkte zusammenführen switch + state

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

Datenpunkte zusammenführen switch + state

Geplant Angeheftet Gesperrt Verschoben Gelöst ioBroker Allgemein
s7.0datenpunkteobjekte
55 Beiträge 3 Kommentatoren 4.0k Aufrufe 2 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.
  • Elektroniker86E Offline
    Elektroniker86E Offline
    Elektroniker86
    schrieb am zuletzt editiert von
    #7

    Ich meine das betrifft ja nicht nur Alexa, sondern auch die Aufzählungen....
    Wenn ich jetzt z.B iQontrol testen / nutzen möchte wird das in dieser Konstellation ja auch nicht funktionieren .

    1 Antwort Letzte Antwort
    0
    • Elektroniker86E Elektroniker86

      Genau das meine ich!
      Jetzt war meine Frage ob es mittlerweile eine einfachere Lösung gibt außer alles einzeln zu scripten.
      Ich habe ja die Ganze Bude in dieser Konstellation. Das sind schon ein paar Datenpunkte.....

      BBTownB Offline
      BBTownB Offline
      BBTown
      schrieb am zuletzt editiert von BBTown
      #8

      @Elektroniker86 das liegt ja maßgeblich an der Funktionsweise vom Siemens LOGO, würde ich meinen.

      Gerade in Verbindung mit Alexa wird das sonst "holprig"
      Du müsstes sonst ja immer auf "true" kommen, also nach meinem Verständnis sowohl beim Ein- als auch beim Ausschalten sagen: "Alexa, schalte die Lampe auf der Terrasse ein" damit der Button ohne Script schaltet

      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

      1 Antwort Letzte Antwort
      0
      • Elektroniker86E Offline
        Elektroniker86E Offline
        Elektroniker86
        schrieb am zuletzt editiert von
        #9

        Richtig genau!
        Momentan habe ich das mit dem Szenen Adapter hinbekommen.
        Damit funktioniert zumindest Alexa.

        BBTownB 1 Antwort Letzte Antwort
        0
        • Elektroniker86E Elektroniker86

          Richtig genau!
          Momentan habe ich das mit dem Szenen Adapter hinbekommen.
          Damit funktioniert zumindest Alexa.

          BBTownB Offline
          BBTownB Offline
          BBTown
          schrieb am zuletzt editiert von
          #10

          @Elektroniker86 der Aufwand ist ja der gleiche wie bei einem Script

          ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

          Elektroniker86E 1 Antwort Letzte Antwort
          0
          • BBTownB BBTown

            @Elektroniker86 der Aufwand ist ja der gleiche wie bei einem Script

            Elektroniker86E Offline
            Elektroniker86E Offline
            Elektroniker86
            schrieb am zuletzt editiert von
            #11

            @BBTown sagte in Datenpunkte zusammenführen switch + state:

            @Elektroniker86 der Aufwand ist ja der gleiche wie bei einem Script

            Ja genau, deswegen hier ja die Frage an die Profis ob es da ne elegantere Lösung gibt.

            1 Antwort Letzte Antwort
            0
            • Elektroniker86E Offline
              Elektroniker86E Offline
              Elektroniker86
              schrieb am zuletzt editiert von
              #12

              Ich habe mal gezählt, es wären ca. 55 neue Datenpunkte/ Scripte. Wie wirkt sich das denn auf die Performance aus?

              paul53P BBTownB 2 Antworten Letzte Antwort
              0
              • Elektroniker86E Elektroniker86

                Ich habe mal gezählt, es wären ca. 55 neue Datenpunkte/ Scripte. Wie wirkt sich das denn auf die Performance aus?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #13

                @Elektroniker86 sagte:

                Wie wirkt sich das denn auf die Performance aus?

                Kaum. Beim RAM-Verbrauch schon etwas mehr, aber wenn dadurch der Szenen-Adapter eingespart wird, sogar weniger.

                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
                • Elektroniker86E Elektroniker86

                  Ich habe mal gezählt, es wären ca. 55 neue Datenpunkte/ Scripte. Wie wirkt sich das denn auf die Performance aus?

                  BBTownB Offline
                  BBTownB Offline
                  BBTown
                  schrieb am zuletzt editiert von
                  #14

                  @Elektroniker86 ob das überhaupt eine Auswirkung hat, dass musst Du schon ausprobieren.
                  Ich sehe dazu aber überhaupt keine Alternative, also ist das sowieso nebensächlich .... denke ich zumindest mal 😎

                  ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.0.7 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                  1 Antwort Letzte Antwort
                  0
                  • Elektroniker86E Offline
                    Elektroniker86E Offline
                    Elektroniker86
                    schrieb am zuletzt editiert von
                    #15

                    Ok, trotzdem vielen Dank für eure Hilfe!!!

                    1 Antwort Letzte Antwort
                    0
                    • Elektroniker86E Offline
                      Elektroniker86E Offline
                      Elektroniker86
                      schrieb am zuletzt editiert von
                      #16

                      So, ich habe mal ein Blockly für oben beschriebenes Problem gebaut.
                      Es funktioniert, aber würdet ihr vielleicht nochmal drüber schauen ob man das eventuell noch optimieren könnte?

                      Vielen Dank im vorraus!

                      test blockly.png

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • Elektroniker86E Elektroniker86

                        So, ich habe mal ein Blockly für oben beschriebenes Problem gebaut.
                        Es funktioniert, aber würdet ihr vielleicht nochmal drüber schauen ob man das eventuell noch optimieren könnte?

                        Vielen Dank im vorraus!

                        test blockly.png

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #17

                        @Elektroniker86 sagte:

                        Es funktioniert,

                        Genügt es, den Taster-Datenpunkt auf true zu aktualisieren oder muss er nach kurzer Zeit auf false gesetzt werden ?
                        Dann schlage ich folgendes Skript vor, das beliebig kopiert werden kann und in dem jeweils nur die IDs in Zeilen 2 und 3 angepasst werden müssen. Die Datenpunkte für Vis usw. werden automatisch unter Verwendung des Taster-Namens erzeugt.

                        // IDs anpassen
                        const idButton = 's7.0.abc.NI19';
                        const idActor = 's7.0.xyz.Q19';
                        
                        const js = 'system.adapter.javascript.' + instance;
                        const common = getObject(idButton).common;
                        const idVis = 'Logo.' + common.name.replace(' ', '_');
                        
                        common.read = true;
                        createState(idVis, getState(idActor).val, common);
                        
                        on({id: idVis, change: 'ne', fromNe: js}, function() {
                            setState(idButton, true);
                        });
                        
                        on(idActor, function(dp) {
                            setState(idVis, dp.state.val, true);
                        });
                        

                        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

                        Elektroniker86E 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @Elektroniker86 sagte:

                          Es funktioniert,

                          Genügt es, den Taster-Datenpunkt auf true zu aktualisieren oder muss er nach kurzer Zeit auf false gesetzt werden ?
                          Dann schlage ich folgendes Skript vor, das beliebig kopiert werden kann und in dem jeweils nur die IDs in Zeilen 2 und 3 angepasst werden müssen. Die Datenpunkte für Vis usw. werden automatisch unter Verwendung des Taster-Namens erzeugt.

                          // IDs anpassen
                          const idButton = 's7.0.abc.NI19';
                          const idActor = 's7.0.xyz.Q19';
                          
                          const js = 'system.adapter.javascript.' + instance;
                          const common = getObject(idButton).common;
                          const idVis = 'Logo.' + common.name.replace(' ', '_');
                          
                          common.read = true;
                          createState(idVis, getState(idActor).val, common);
                          
                          on({id: idVis, change: 'ne', fromNe: js}, function() {
                              setState(idButton, true);
                          });
                          
                          on(idActor, function(dp) {
                              setState(idVis, dp.state.val, true);
                          });
                          
                          Elektroniker86E Offline
                          Elektroniker86E Offline
                          Elektroniker86
                          schrieb am zuletzt editiert von
                          #18

                          @paul53

                          Ja genau, es reicht den Taster Datenpunkt einmal auf true zu setzen.
                          Danach springt er nach einer Sekunde automatisch wieder auf false.

                          Cool, vielen Dank für deine Mühe. Werde das Script morgen testen.
                          Wo werden dann die Datenpunkte angelegt ?
                          Hätte da schon gerne ein Ordner unter Javascript.0/LOGO/s7.0........s7.1.........s7.2 usw.

                          Damit das soweit geordnet ist wie beim s7 Adapter unter Objekte.

                          paul53P 2 Antworten Letzte Antwort
                          0
                          • Elektroniker86E Elektroniker86

                            @paul53

                            Ja genau, es reicht den Taster Datenpunkt einmal auf true zu setzen.
                            Danach springt er nach einer Sekunde automatisch wieder auf false.

                            Cool, vielen Dank für deine Mühe. Werde das Script morgen testen.
                            Wo werden dann die Datenpunkte angelegt ?
                            Hätte da schon gerne ein Ordner unter Javascript.0/LOGO/s7.0........s7.1.........s7.2 usw.

                            Damit das soweit geordnet ist wie beim s7 Adapter unter Objekte.

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #19

                            @Elektroniker86 sagte:

                            Wo werden dann die Datenpunkte angelegt ?

                            Unter javascript.0.Logo.
                            Beispiel: "javascript.0.Logo.Wandleuchten_Terasse"

                            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
                            • Elektroniker86E Offline
                              Elektroniker86E Offline
                              Elektroniker86
                              schrieb am zuletzt editiert von
                              #20

                              Ah ja, das heißt wenn ein Datenpunkt unter "javascript.0.Logo.s70.Wandleuchten_Terasse" landen soll dann muss das cript so aussehen?

                              // IDs anpassen
                              const idButton = 's7.0.abc.NI19';
                              const idActor = 's7.0.xyz.Q19';
                               
                              const js = 'system.adapter.javascript.' + instance;
                              const common = getObject(idButton).common;
                              const idVis = 'Logo.s70' + common.name.replace(' ', '_');
                               
                              common.read = true;
                              createState(idVis, getState(idActor).val, common);
                               
                              on({id: idVis, change: 'ne', fromNe: js}, function() {
                                  setState(idButton, true);
                              });
                               
                              on(idActor, function(dp) {
                                  setState(idVis, dp.state.val, true);
                              });
                              
                              
                              paul53P 1 Antwort Letzte Antwort
                              0
                              • Elektroniker86E Elektroniker86

                                Ah ja, das heißt wenn ein Datenpunkt unter "javascript.0.Logo.s70.Wandleuchten_Terasse" landen soll dann muss das cript so aussehen?

                                // IDs anpassen
                                const idButton = 's7.0.abc.NI19';
                                const idActor = 's7.0.xyz.Q19';
                                 
                                const js = 'system.adapter.javascript.' + instance;
                                const common = getObject(idButton).common;
                                const idVis = 'Logo.s70' + common.name.replace(' ', '_');
                                 
                                common.read = true;
                                createState(idVis, getState(idActor).val, common);
                                 
                                on({id: idVis, change: 'ne', fromNe: js}, function() {
                                    setState(idButton, true);
                                });
                                 
                                on(idActor, function(dp) {
                                    setState(idVis, dp.state.val, true);
                                });
                                
                                
                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #21

                                @Elektroniker86 sagte:

                                muss das cript so aussehen?

                                Fast - es fehlt noch der Punkt hinter s70

                                const idVis = 'Logo.s70.' + common.name.replace(' ', '_');
                                

                                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
                                • Elektroniker86E Offline
                                  Elektroniker86E Offline
                                  Elektroniker86
                                  schrieb am zuletzt editiert von Elektroniker86
                                  #22

                                  @Elektroniker86 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                                              // IDs anpassen                                                                                                        const idButton = 's7.0.abc.NI19';                                                                                                        const idActor = 's7.0.xyz.Q19';                                                                                                                                                                                                                 const js = 'system.adapter.javascript.' + instance;                                                                                                        const common = getObject(idButton).common;                                                                                                        const idVis = 'Logo.s70' + common.name.replace(' ', '_');                                                                                                                                                                                                                 common.read = true;                                                                                                        createState(idVis, getState(idActor).val, common);                                                                                                                                                                                                                 on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                            setState(idButton, true);                                                                                                        });                                                                                                                                                                                                                 on(idActor, function(dp) {                                                                                                            setState(idVis, dp.state.val, true);                                                                                                        });                                                                                                                                 
                                  

                                  Alles klar ja den Punkt hatte ich vergessen.
                                  So, ich habe eben das Script getestet soweit alles in Ordnung.
                                  Allerdings kann ich die Aktoren nicht über den neuen Datenpunkt schalten.
                                  Wenn sich der Status vom Aktor ändert dann wechselt der neue Datenpunkt entsprechend mit, passt ja.
                                  Aber ich muss von dem neuen Datenpunkt auch den "Aktor" /Button ansteuern können.

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

                                    So habe ich das jetzt eingetragen, sollte doch so passen?

                                    Unbenannt.png

                                    1 Antwort Letzte Antwort
                                    0
                                    • Elektroniker86E Elektroniker86

                                      @Elektroniker86 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                                                  // IDs anpassen                                                                                                        const idButton = 's7.0.abc.NI19';                                                                                                        const idActor = 's7.0.xyz.Q19';                                                                                                                                                                                                                 const js = 'system.adapter.javascript.' + instance;                                                                                                        const common = getObject(idButton).common;                                                                                                        const idVis = 'Logo.s70' + common.name.replace(' ', '_');                                                                                                                                                                                                                 common.read = true;                                                                                                        createState(idVis, getState(idActor).val, common);                                                                                                                                                                                                                 on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                            setState(idButton, true);                                                                                                        });                                                                                                                                                                                                                 on(idActor, function(dp) {                                                                                                            setState(idVis, dp.state.val, true);                                                                                                        });                                                                                                                                 
                                      

                                      Alles klar ja den Punkt hatte ich vergessen.
                                      So, ich habe eben das Script getestet soweit alles in Ordnung.
                                      Allerdings kann ich die Aktoren nicht über den neuen Datenpunkt schalten.
                                      Wenn sich der Status vom Aktor ändert dann wechselt der neue Datenpunkt entsprechend mit, passt ja.
                                      Aber ich muss von dem neuen Datenpunkt auch den "Aktor" /Button ansteuern können.

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #24

                                      @Elektroniker86 sagte:

                                      kann ich die Aktoren nicht über den neuen Datenpunkt schalten.

                                      Das soll in Zeilen 13 bis 15 passieren: Tastendruck, wenn sich der Wert ändert, außer die Änderung erfolgt aus dem Skript. Füge mal vor Zeile 14 ein Log ein:

                                      on({id: idVis, change: 'ne', fromNe: js}, function() {
                                          log('Tastendruck');
                                          setState(idButton, true);
                                      });
                                      

                                      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

                                      Elektroniker86E 2 Antworten Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @Elektroniker86 sagte:

                                        kann ich die Aktoren nicht über den neuen Datenpunkt schalten.

                                        Das soll in Zeilen 13 bis 15 passieren: Tastendruck, wenn sich der Wert ändert, außer die Änderung erfolgt aus dem Skript. Füge mal vor Zeile 14 ein Log ein:

                                        on({id: idVis, change: 'ne', fromNe: js}, function() {
                                            log('Tastendruck');
                                            setState(idButton, true);
                                        });
                                        
                                        Elektroniker86E Offline
                                        Elektroniker86E Offline
                                        Elektroniker86
                                        schrieb am zuletzt editiert von
                                        #25

                                        @paul53 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                                                    on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                                                                                                log('Tastendruck');                                                                                                                                                                                setState(idButton, true);                                                                                                                                                                            });                                            
                                        
                                        // IDs anpassen
                                        const idButton = 's7.0.DBs.DB1.NI02';
                                        const idActor = 's7.0.DBs.DB1.Q02';
                                         
                                        const js = 'system.adapter.javascript.' + instance;
                                        const common = getObject(idButton).common;
                                        const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
                                         
                                        common.read = true;
                                        createState(idVis, getState(idActor).val, common);
                                         
                                        on({id: idVis, change: 'ne', fromNe: js}, function() {
                                            setState(idButton, true);on({id: idVis, change: 'ne', fromNe: js}, function() {
                                            log('Tastendruck');
                                            setState(idButton, true);
                                        });
                                        
                                        });
                                         
                                        on(idActor, function(dp) {
                                            setState(idVis, dp.state.val, true);
                                        });
                                         
                                        
                                        

                                        So?

                                        paul53P 1 Antwort Letzte Antwort
                                        0
                                        • Elektroniker86E Elektroniker86

                                          @paul53 sagte in Datenpunkte zusammenführen switch + state:

                                                                                                                                                                      on({id: idVis, change: 'ne', fromNe: js}, function() {                                                                                                                                                                                log('Tastendruck');                                                                                                                                                                                setState(idButton, true);                                                                                                                                                                            });                                            
                                          
                                          // IDs anpassen
                                          const idButton = 's7.0.DBs.DB1.NI02';
                                          const idActor = 's7.0.DBs.DB1.Q02';
                                           
                                          const js = 'system.adapter.javascript.' + instance;
                                          const common = getObject(idButton).common;
                                          const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
                                           
                                          common.read = true;
                                          createState(idVis, getState(idActor).val, common);
                                           
                                          on({id: idVis, change: 'ne', fromNe: js}, function() {
                                              setState(idButton, true);on({id: idVis, change: 'ne', fromNe: js}, function() {
                                              log('Tastendruck');
                                              setState(idButton, true);
                                          });
                                          
                                          });
                                           
                                          on(idActor, function(dp) {
                                              setState(idVis, dp.state.val, true);
                                          });
                                           
                                          
                                          

                                          So?

                                          paul53P Offline
                                          paul53P Offline
                                          paul53
                                          schrieb am zuletzt editiert von
                                          #26

                                          @Elektroniker86 sagte:

                                          So?

                                          Nein, so:

                                          // IDs anpassen
                                          const idButton = 's7.0.DBs.DB1.NI02';
                                          const idActor = 's7.0.DBs.DB1.Q02';
                                           
                                          const js = 'system.adapter.javascript.' + instance;
                                          const common = getObject(idButton).common;
                                          const idVis = 'LOGO.s7-0.' + common.name.replace(' ', '_');
                                           
                                          common.read = true;
                                          createState(idVis, getState(idActor).val, common);
                                           
                                          on({id: idVis, change: 'ne', fromNe: js}, function() {
                                              log('Tastendruck');
                                              setState(idButton, true);
                                          });
                                           
                                          on(idActor, function(dp) {
                                              setState(idVis, dp.state.val, true);
                                          });
                                          

                                          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
                                          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

                                          399

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          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