Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Blockly
  5. Wenn 2 Datenpunkte true dann setze Datenpunkt auf true

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    448

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    371

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    967

Wenn 2 Datenpunkte true dann setze Datenpunkt auf true

Geplant Angeheftet Gesperrt Verschoben Blockly
45 Beiträge 6 Kommentatoren 1.4k Aufrufe 5 Beobachtet
  • Ä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.
  • CodierknechtC Codierknecht

    @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

    Es ist ziemlich schwierig das zu beschreiben

    Ist das schwierig zu beschreiben oder traust Du Dich nicht?
    Keine Sorge - wir haben hier schon die beklopptesten Ideen gehört.

    Und nur falls das mit der bool'schen Algebra noch nicht so ganz verstanden wurde:
    true UND true ergibt true
    true UND false ergibt false
    false UND true ergibt false

    Wenn der DP3 mit dem Ergebnis von DP1 UND DP2 beschrieben wird, erhält er das Ergebnis dieser bool'schen Berechnung ... also entweder true oder false.

    https://de.wikipedia.org/wiki/Boolesche_Algebra

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #32

    @codierknecht ach was!?

    normale boolsche Matrix!
    as I told

    @homoran sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

    was kann nicht funktionieren?
    die boolsche Mathematik klappt

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • Dr.PieD Dr.Pie

      @homoran genau.Dann aber schrieb ich ja das es so garnicht funktionieren kann ... der DP3 müsste einen dritten Zustand bekommen können.

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

      @dr-pie sagte: der DP3 müsste einen dritten Zustand bekommen können.

      Dann kann er z.B. vom Typ "Zahl" sein und 3 Werte erhalten:

      • beide false: 0
      • einer true: 1
      • beide true: 2

      Blockly_temp.JPG

      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

      Dr.PieD 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @dr-pie sagte: der DP3 müsste einen dritten Zustand bekommen können.

        Dann kann er z.B. vom Typ "Zahl" sein und 3 Werte erhalten:

        • beide false: 0
        • einer true: 1
        • beide true: 2

        Blockly_temp.JPG

        Dr.PieD Offline
        Dr.PieD Offline
        Dr.Pie
        schrieb am zuletzt editiert von
        #34

        @paul53 Ich will euch meine Anstrengungen nicht vorenthalten.

        garage.png
        Damit schreibe ich den Zustand in einen Datenpunkt, mit dem ich dann weiter arbeiten kann.

        Und hier ist das was ich mit dem Datenpunkt mache:
        garage1.png

        Grüße

        paul53P 1 Antwort Letzte Antwort
        0
        • Dr.PieD Dr.Pie

          @paul53 Ich will euch meine Anstrengungen nicht vorenthalten.

          garage.png
          Damit schreibe ich den Zustand in einen Datenpunkt, mit dem ich dann weiter arbeiten kann.

          Und hier ist das was ich mit dem Datenpunkt mache:
          garage1.png

          Grüße

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

          @dr-pie sagte: meine Anstrengungen nicht vorenthalten.

          Was für ein Ressourcenverbrauch:

          • 4 Trigger
          • 11 mal Wert holen
          • 8 mal Wert schreiben

          Sparsame Version:

          Blockly_temp.JPG

          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

          Dr.PieD 1 Antwort Letzte Antwort
          1
          • paul53P paul53

            @dr-pie sagte: meine Anstrengungen nicht vorenthalten.

            Was für ein Ressourcenverbrauch:

            • 4 Trigger
            • 11 mal Wert holen
            • 8 mal Wert schreiben

            Sparsame Version:

            Blockly_temp.JPG

            Dr.PieD Offline
            Dr.PieD Offline
            Dr.Pie
            schrieb am zuletzt editiert von
            #36

            @paul53 magst du mir das Blockly zur Verfügung stellen ?

            HomoranH paul53P 2 Antworten Letzte Antwort
            0
            • Dr.PieD Dr.Pie

              @paul53 magst du mir das Blockly zur Verfügung stellen ?

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #37

              @dr-pie wo liegt denn das Problem beim Nachbau?
              So etwas übt!

              zwei Variablen anlegen, der Rest ist out of the Box.

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              Dr.PieD 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @dr-pie wo liegt denn das Problem beim Nachbau?
                So etwas übt!

                zwei Variablen anlegen, der Rest ist out of the Box.

                Dr.PieD Offline
                Dr.PieD Offline
                Dr.Pie
                schrieb am zuletzt editiert von
                #38

                @homoran ja das dachte ich mir schon ... schade

                HomoranH 1 Antwort Letzte Antwort
                0
                • Dr.PieD Dr.Pie

                  @paul53 magst du mir das Blockly zur Verfügung stellen ?

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

                  @dr-pie sagte: das Blockly zur Verfügung stellen ?

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="2M5w5y%d}Ir82Iorfz^N">preset</variable>
                     <variable id="g$)ffp|}W6r%PP]CYAVg">garagentor</variable>
                   </variables>
                   <block type="on_ext" id="5/(#h!^]|%;=XV~6q1Kt" x="62" y="37">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="E(PUF,(~^qtC=3Rso(#x">
                         <field name="oid">0_userdata.0.Blockly.Switch1</field>
                       </shadow>
                     </value>
                     <value name="OID1">
                       <shadow type="field_oid" id="j0kv=1PT!,k]Vz=}+AqE">
                         <field name="oid">0_userdata.0.Blockly.Switch2</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="variables_set" id="Uv{nC#_HKrGrgM]eIiS,">
                         <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                         <value name="VALUE">
                           <block type="math_arithmetic" id="92uqn+RV)aSt[-)!F1GQ" inline="false">
                             <field name="OP">ADD</field>
                             <value name="A">
                               <shadow type="math_number" id="{vLV7mo`x;s2xKXoSN`m">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="logic_ternary" id="fPbvy[osYHG(d@4)h7#6" inline="true">
                                 <value name="IF">
                                   <block type="get_value" id="_0Tjyq_Is3TdzyjG$dnM">
                                     <field name="ATTR">val</field>
                                     <field name="OID">0_userdata.0.Blockly.Switch1</field>
                                   </block>
                                 </value>
                                 <value name="THEN">
                                   <block type="math_number" id="T22mGR]pZh5M!Nm-zLs[">
                                     <field name="NUM">1</field>
                                   </block>
                                 </value>
                                 <value name="ELSE">
                                   <block type="math_number" id="4t0/ZlzVk}pSxLrbtS0}">
                                     <field name="NUM">0</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <shadow type="math_number" id="84d(P}zQ:l9f,me1H7er">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="logic_ternary" id="6#?-_Gg9vVRQh0RUrMU0" inline="true">
                                 <value name="IF">
                                   <block type="get_value" id="^uJxxIlW%zk.)baR@EL~">
                                     <field name="ATTR">val</field>
                                     <field name="OID">0_userdata.0.Blockly.Switch2</field>
                                   </block>
                                 </value>
                                 <value name="THEN">
                                   <block type="math_number" id="`d_{x#Jo#5M1u6P](_R8">
                                     <field name="NUM">1</field>
                                   </block>
                                 </value>
                                 <value name="ELSE">
                                   <block type="math_number" id="mrlG%O!R|iK@u}xaPOa7">
                                     <field name="NUM">0</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="controls_if" id="3;X[z|`umBETA:eK}c(m">
                             <mutation elseif="1" else="1"></mutation>
                             <value name="IF0">
                               <block type="logic_compare" id="Zlp.Eur5bE.^qc26dz|n">
                                 <field name="OP">EQ</field>
                                 <value name="A">
                                   <block type="variables_get" id="%4ZK5bv/nr?WpazN+KTJ">
                                     <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="TL!E.`(zwutuWstr0uh~">
                                     <field name="NUM">2</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="variables_set" id="]aJOghV5qcv];r+lvINK">
                                 <field name="VAR" id="g$)ffp|}W6r%PP]CYAVg">garagentor</field>
                                 <value name="VALUE">
                                   <block type="text" id="Y^)}dwnZ!d2S,MQJ2L~/">
                                     <field name="TEXT">offen</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <value name="IF1">
                               <block type="logic_compare" id="6?nkO=w=8!+A!YW*Ts+l">
                                 <field name="OP">EQ</field>
                                 <value name="A">
                                   <block type="variables_get" id="i(~[d|,N(wbk}1tu1WO%">
                                     <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_number" id="/wk=b(.RcpSq9}AmWYYJ">
                                     <field name="NUM">1</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO1">
                               <block type="variables_set" id="g]@`|-Ijs:LA8@D-Y0k=">
                                 <field name="VAR" id="g$)ffp|}W6r%PP]CYAVg">garagentor</field>
                                 <value name="VALUE">
                                   <block type="text" id="QUSV1WXL0M|nl.jLi9Gb">
                                     <field name="TEXT">fahren</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <statement name="ELSE">
                               <block type="variables_set" id="D3f@-|xy@^{4HYm^RU^-">
                                 <field name="VAR" id="g$)ffp|}W6r%PP]CYAVg">garagentor</field>
                                 <value name="VALUE">
                                   <block type="text" id="9nxWb@(=!%$7*pwR/N4l">
                                     <field name="TEXT">geschlossen</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <next>
                               <block type="update" id="Hb6n$O(U[*Z=~@M?$DfV">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">0_userdata.0.Blockly.Garagentor</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="variables_get" id=";J/4@wD-^}flXE-9n/V6">
                                     <field name="VAR" id="g$)ffp|}W6r%PP]CYAVg">garagentor</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="control" id="zSrrvY,zD24=;O}.Ds3`">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">0_userdata.0.Test.OnOff</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="logic_compare" id="3=99sf*kkX3U$QzG`|.P">
                                         <field name="OP">GT</field>
                                         <value name="A">
                                           <block type="variables_get" id="oocj.ff!$SsTSMQ%B_+O">
                                             <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <block type="math_number" id="VcdV$t1!mL!geZ8gI.X+">
                                             <field name="NUM">0</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="controls_if" id="|T^f=g}Bv60zloPi.|Rw">
                                         <value name="IF0">
                                           <block type="variables_get" id="ZX`tsdX27}yf20!Tyv/l">
                                             <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="control" id="zPOo:eF9n/k8:.[2lOq{">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">Object ID</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="variables_get" id="0R;:]^?1WOThB$Z?r}M$">
                                                 <field name="VAR" id="2M5w5y%d}Ir82Iorfz^N">preset</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                  </xml>
                  

                  @homoran sagte: wo liegt denn das Problem beim Nachbau? So etwas übt!

                  Offenbar möchte @Dr-Pie lieber die Datenpunkt-IDs austauschen als Blockly zu üben.

                  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
                  • Dr.PieD Dr.Pie

                    @homoran ja das dachte ich mir schon ... schade

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #40

                    @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                    schade

                    warum?

                    Willst du es nie selber können?
                    Das wäre schade!

                    kein Support per PN! - Fragen im Forum stellen -
                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    Dr.PieD 1 Antwort Letzte Antwort
                    2
                    • HomoranH Homoran

                      @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                      schade

                      warum?

                      Willst du es nie selber können?
                      Das wäre schade!

                      Dr.PieD Offline
                      Dr.PieD Offline
                      Dr.Pie
                      schrieb am zuletzt editiert von
                      #41

                      @homoran Ich habe kein Problem mir Hilfe zu holen 😊 👍

                      crunchipC 1 Antwort Letzte Antwort
                      0
                      • Dr.PieD Dr.Pie

                        @homoran Ich habe kein Problem mir Hilfe zu holen 😊 👍

                        crunchipC Abwesend
                        crunchipC Abwesend
                        crunchip
                        Forum Testing Most Active Developer
                        schrieb am zuletzt editiert von
                        #42

                        @dr-pie andere haben auch kein Problem zu helfen,
                        aber
                        helfen ist nicht gleichgestellt mit, die ganze Arbeit übernehmen

                        eine gewisse Bereitschaft es selbst umzusetzen muss schon gegeben sein

                        umgestiegen von Proxmox auf Unraid

                        Dr.PieD 1 Antwort Letzte Antwort
                        1
                        • crunchipC crunchip

                          @dr-pie andere haben auch kein Problem zu helfen,
                          aber
                          helfen ist nicht gleichgestellt mit, die ganze Arbeit übernehmen

                          eine gewisse Bereitschaft es selbst umzusetzen muss schon gegeben sein

                          Dr.PieD Offline
                          Dr.PieD Offline
                          Dr.Pie
                          schrieb am zuletzt editiert von
                          #43

                          @crunchip eine gewisse Bereitschaft es selbst umzusetzen muss schon gegeben sein

                          Ich habe tagelang daran gesessen. Untätigkeit kann man mir nicht vorwerfen ... 😊

                          crunchipC 1 Antwort Letzte Antwort
                          0
                          • Dr.PieD Dr.Pie

                            @crunchip eine gewisse Bereitschaft es selbst umzusetzen muss schon gegeben sein

                            Ich habe tagelang daran gesessen. Untätigkeit kann man mir nicht vorwerfen ... 😊

                            crunchipC Abwesend
                            crunchipC Abwesend
                            crunchip
                            Forum Testing Most Active Developer
                            schrieb am zuletzt editiert von
                            #44

                            @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                            Ich habe tagelang daran gesessen. Untätigkeit kann man mir nicht vorwerfen

                            durchaus möglich, jedoch zu Beginn nicht ersichtlich

                            andere Herangehensweise

                            ...ich möchte dies und das erreichen, leider funktioniert das nicht wie gewollt...hier das blockly, (mit export)

                            somit wäre sofort ersichtlich, ah er hat es versucht, gerne hilft man

                            es wurde sich in dem Fall sogar die Zeit genommen, das blockly zu verbessern in dem ein neues erstellt wurde, allerdings mit der Erwartung dies zu verstehen, durch selbst Nachbau.

                            und eine Aussage wie

                            @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                            habe kein Problem mir Hilfe zu holen

                            machts dann auch nicht gerade besser

                            umgestiegen von Proxmox auf Unraid

                            Dr.PieD 1 Antwort Letzte Antwort
                            1
                            • crunchipC crunchip

                              @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                              Ich habe tagelang daran gesessen. Untätigkeit kann man mir nicht vorwerfen

                              durchaus möglich, jedoch zu Beginn nicht ersichtlich

                              andere Herangehensweise

                              ...ich möchte dies und das erreichen, leider funktioniert das nicht wie gewollt...hier das blockly, (mit export)

                              somit wäre sofort ersichtlich, ah er hat es versucht, gerne hilft man

                              es wurde sich in dem Fall sogar die Zeit genommen, das blockly zu verbessern in dem ein neues erstellt wurde, allerdings mit der Erwartung dies zu verstehen, durch selbst Nachbau.

                              und eine Aussage wie

                              @dr-pie sagte in Wenn 2 Datenpunkte true dann setze Datenpunkt auf true:

                              habe kein Problem mir Hilfe zu holen

                              machts dann auch nicht gerade besser

                              Dr.PieD Offline
                              Dr.PieD Offline
                              Dr.Pie
                              schrieb am zuletzt editiert von
                              #45

                              Wie soll man das auch sehen können.
                              Man sieht nur wenn man Hilfe braucht, aber nicht unbedingt was man vieles selber macht.
                              Ich zumindest bin froh soweit gekommen zu sein und das ohne direkte Hilfe.
                              Außerdem habe ich mir die Finger wund gegooglet und bin so weit gekommen das ich schon stolz bin.
                              Mir ist es auch egal was andere denken aufgrund von Vermutungen ;-)

                              Von mir hier mal ein FETTES Dankeschön an die die unermüdlich helfen.

                              1000 Dank an ALLE

                              1 Antwort Letzte Antwort
                              0

                              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                              Registrieren Anmelden
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              593

                              Online

                              32.8k

                              Benutzer

                              82.8k

                              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