Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Pi 3 als Bluetooth LE Scanner (Beispielscript)

NEWS

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

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

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

Pi 3 als Bluetooth LE Scanner (Beispielscript)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
254 Beiträge 28 Kommentatoren 64.0k Aufrufe 4 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #2

    .

    Globales Skript logs()

    Version: 0.1.1

    logs() ermöglicht ein abgestuftes Logging innerhalb eines Skripts.

    Falls jemand das globale Script nicht einsetzen möchte kann man am Anfang des Bluetooth Skripts einfach folgendes einfügen:

    function logs(text,level,color) {
    	//log(text,"debug"); // Kommentar entfernen, wenn Logging erwünscht
    }
    

    globales Skript logs():

    ! ````
    // globale Funktion: logs(logtext,level,color)
    // Version: 0.1.1
    ! // Beschreibung: Ermöglicht innerhalb eines Javascript-Scripts unterschiedliche Loglevel
    // Benutzung, wie log() mit der zusätzlichen Option die Ausgabefarbe zu überschreiben
    ! // Übergabeparameter: logtext der Text, der als Log ausgegeben werden soll
    // level [optional] der Loglevel der Meldung als String
    // der level (mögliche Werte definiert in JSON loglevels), in dem der Text ausgegeben werden soll
    // color [optional] die html-Farbe der Meldung als String, siehe z.B.: http://tomheller.de/theholycymbal/html-farben.html
    // "none" -> es wird die Standardfarbe von log() im Level Info ausgegebn.
    // nichts angegeben -> es werden die Farben ais dem JSON loglevels je nach level ausgegeben
    // html-Farbe übergeben -> es wird die übergebenen Farbe ausgegeben
    ! // Rückgabe: Gibt den aktuellen Loglevel für diesen Aufruf zurück.
    // Gültiger level beim Aufruf -> der im Script definierte Loglevel wird zurückgegeben
    // kein Level angegeben -> es wird der Level "info" verwendet und zurückgegeben
    // ungültiger Level -> es wird der Level "info" verwendet und zurückgegeben
    ! // Infos: Benötigt im Javascript, welches die Funktion logs() verwendet
    // die Variabele loglevel, z.B. var loglevel = "info";
    //
    // 0.1.1 Default Loglevel ergänzt
    ! // -----------------------------------------------------------------------------
    ! // globale Scripte werden vor dem eigentlichen Script als Text reinkopiert
    // daher kann im globalen Script eine Variable einen Defaultwert enthalten
    ! var loglevel = 'info'; // Default Loglevel, wenn der Loglevel im aufrufenden Script nicht definiert ist

    ! // -----------------------------------------------------------------------------
    // Script Log - logs() - ANFANG
    // -----------------------------------------------------------------------------
    var loglevels = {
    "debug2": {"level": -2, "leveltext":"debug2: ", "color": "blue"},
    "debug1": {"level": -1, "leveltext":"debug1: ", "color": "mediumblue"},
    "debug": {"level": 0, "leveltext":"debug0: ", "color": "darkblue"},
    "debug0": {"level": 0, "leveltext":"debug0: ", "color": "mediumblue"},
    "info": {"level": 10, "leveltext":"", "color": "none"},
    "warn": {"level": 20, "leveltext":"warn: ", "color": "darkorange"},
    "error": {"level": 30, "leveltext":"error:", "color": "darkred"}
    };
    ! function logs (logtext,level,color) {
    ! // in der Funktion den gesetzten Level überprüfen
    if (typeof level == 'undefined') {level = 'info'}
    if (level in loglevels) {} else {
    log("ungültiger loglevel " + level + " in Funktion logs() im Script","warn");
    log("loglevel für das Script auf Stufe: " + loglevel + " gesetzt.","warn");
    level = 'info';
    loglevel = level;
    }

    // den im Script konfigurierten Loglevel prüfen
    // zum Scriptstart muss die Variable loglevel deklariert werden
    // z.B.:
    // var loglevel = "warn";
    if (typeof loglevel == 'undefined') {loglevel = 'info'}
    if (loglevel in loglevels) {} else {
        var loglevelError = loglevel;
        loglevel = 'info';      // Loglevel auf Info stellen, wenn kein gültiger Loglevel im Script deklariert ist
        log("ungültiger loglevel für logs() in der Konfiguration im Script","error");
        log("variable loglevel am Anfang des Scripts einem gültigen Wert zuweisen","error");
        log('im Script konfigurierter loglevel: ' 
        + loglevelError + ' -> geändert in: ' 
        + loglevel) + '',"warn";
    }
    

    ! // Farbe ernitteln
    if (typeof color == 'undefined') {color = loglevels[level].color}
    ! // Log je nach eingestelltem Loglevel ausgeben
    var levelConf = loglevels[loglevel].level;
    var levelLogs = loglevels[level].level;
    if (levelLogs >= levelConf) {
    if (color == "none") {
    log(loglevels[level].leveltext + logtext);
    } else {
    log('' + loglevels[level].leveltext + logtext + '');
    }
    }
    ! return loglevel;
    }
    // -----------------------------------------------------------------------------
    // Script Log - logs() - ENDE
    // -----------------------------------------------------------------------------
    ! ````

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #3

      .

      Script: "Bluetooth Scanner für Raspberry Pi 3 (oder andere kompatible Geräte mit BT)"

      Version: 0.4.1

      ACHTUNG: 0.2.16 Ein Datenpunkt wurde geändert. Objektzweig Bluetooth vor Neuinstallation löschen.

      0.4.1 (14.06.2016) - fix: manuelles löschen über Control.Delete_Device

      0.4.0 (17.04.2016) - diverse Erweiterungen

      0.2.16 (30.03.2016) - Fehler beseitigt, wenn im ersten Durchlauf 0 Geräte gefunden wurden

      0.2.15 (29.03.2016) - Fehlerkorrekturen, Channelnamen umbenannt

      0.2.13 (28.03.2016) - Kalibrierung hinzugefügt, Distanzberechnung optimiert, Optimierungen

      0.2.10 (27.03.2016) - Blacklistbehandlung hinzugefügt, Script aufgeräumt

      0.2.8 (26.03.2016) - Channelname möglichst lesbar soweit bekannt, Optimierungen

      0.2.7 (25.03.2016) - Optimierungen, Hersteller anhand der Mac-Adresse, neue Datenpunkte, neue Funktionen

      Skript Bluetooth Scanner:

      zum Download:

      http://forum.iobroker.net/viewtopic.php … 266#p28266

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #4

        Ziele des Skripts

        1.) Nutzung zur Anwesenheitserkennung über Bluetooth "Tags" oder anderen Geräte, die dauerhaft Bluetooth Funkfeuer aussenden..

        2.) Geräteüberwachung per Bluetooth als Alternative zum Ping.

        3.) Einfach als Bluetooth Scanner

        4.) Für Indoor Ortung

        Wenn das Skript Sinn macht und auch ein gewisser Bedarf besteht wird das vielleicht mein zweites Projekt für einen Adapter :-)

        Bei mir wird es nicht auf meiner ioBroker Hauptinstallation eingesetzt, sondern auf einen eigenen Raspberry Pi 3, der einige Spezialaufgaben mit einer zweiten ioBorker Installation übernehmen wird.

        Ein Bluetooth Sender am Schlüsselbund wäre die zuverläslichste Anwesenheitserkennung.

        Anspruch an das endgültige Skript

        • möglichst wenig oder kein Eingriff für den User (ist jetzt schon der Fall)

        • Verhalten komplett über Datenpunkte konfigurierbar (als wäre es eine Konfigurationsseite eines Adapters). Expertenmodus: Einstellungen im Skript.

        Bisherige Erfahrung

        • ein Fitbit One sendet dauerhaft und kann zum Tracking verwendet werden

        • Mi Band von simpixo kann ebenfalls für das dauerhafte Tracking verwendet werden

        • Ti SensorTag CC2650STK sendet dauerhaft

        • Ein Gigaset G-Tag funktioniert ebenfalls, solange er nicht an der G-Tag App angemeldet ist. http://www.amazon.de/Gigaset-Bluetooth- … aset+g-tag

        • Garmin vívosmart HR

        • Garmin Forerunner 920 / 008706e5

        • ein Apple Pencil sendet nur selten. Allerdings taucht der selbe Pencil schon mit zwei Mac-Adressen auf. (kann nicht zur Anwesenheitserkennung genutzt werden, würde aber auch kein Sinn machen)

        • Mein Lichtwecker Withings Aura sendet dauerhaft Bluetooth. Das Skript könnte zur Überwachung des Lichtweckers genutzt werden und dann mich alternativ anders wecken, sollte der Wecker "ausgefallen sein" (Gong, Licht einschalten, Sonos, …).

        Langzeittest

        Momentan läuft das Skript ein paar Tage vor sich hin, ums zu sehen, was passiert (Lastverhalten bei vielen Devices). Danach geht es in der Programmierung weiter.

        Im Skript lädt sich einstellen, welche Mindestsignalstärke (rssi) ein Gerät haben muss, damit es mit Datenpunkten angelegt werden soll. Derzeit sind es -100 dB. Stellt mal eine größere Zahl ein, z.B. -80 dB, werden weiter entfernte Geräte nicht gescannt und damit auch keine Datenpunkte erzeugt.

        todos

        • Test mit anderer Hardware als den Pi 3 (ein Pi 1 und 2 mit externen USB-Bluetooth Dongle wird auch getestet. Davon habe ich noch ein paar rumstehen)

        • Dokumentation in diesem Thread. Screenshots. Skript Beschreibung (im Skript selbst steht schon einiges)

        • ERLEDIGT:Herstellernamen im Skript lesbar hinbekommen (Javascript Pufferbehandlung…)

        • ERLEDIGT: Whitelist. Nur bekannte Geräte scannen (ist sehr schnell eingebaut)

        • Interne Optimierungen und mehr Features

        geplante Erweiterungen

        • Datenpunkt: Liste als JSON aller gefundenen neuen Devices mit Datum und Uhrzeit

        • Per Datenpunkt Switch: Scan neuer Geräte für einen einstellbaren Zeitpunkt,z.B eine Stunde. Neue Geräte werden dann in einen eigen Zweig zusätzlich erfasst. Zweck: neue Geräte schnell identifizieren; "Besuch" auf BLE scannen.

        Über ein kurzes Feedback würde ich mich freuen, falls jemand das auch testet. Hat es sofort geklappt, gab es Stolpersteine, ging es gar nicht, Probleme, Nutzen, Wünsche, Verbesserungsvorschläge, Ideen…?

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          simpixo
          schrieb am zuletzt editiert von
          #5

          Interessant! Muss ich wohl mal selbst ausprobieren! Werden auch BLUETHOOTH LE Geräte gefunden!?

          Gesendet von meinem iPhone mit Tapatalk

          1 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #6

            @simpixo:

            … Werden auch BLUETHOOTH LE Geräte gefunden!? `

            Genau um die geht es :-)

            Das node.js Modul noble:

            A Node.js BLE (Bluetooth Low Energy) central module

            https://github.com/sandeepmistry/noble#prerequisites

            [EDIT] Ich habe dann auch mal die Überschrift geändert. Danke!

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              simpixo
              schrieb am zuletzt editiert von
              #7

              Also ich habe beim ersten installieren des noble Paket, haufenweise Fehler kassiert, erst nachdem ich folgende Pakete installiert habe wurde es korrekt installiert

              sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

              Vielleicht solltest du das in deinem ersten Beitrag erwähnen [emoji6]

              Ich teste dann mal weiter

              Gesendet von iPad mit Tapatalk

              1 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #8

                oh

                Schande über mein Haupt

                Du hast natürlich recht. Bluez ist Voraussetzung. Ergänze ich noch :-)

                Gesendet von iPhone mit Tapatalk

                [EDIT] @simpixo: ich habe das in der Beschreibung ergänzt. Danke!

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  simpixo
                  schrieb am zuletzt editiert von
                  #9

                  Hatte ich auf meinen Raspi 3 noch nicht drauf ;-) aber jetzt läuft es und hat mein Mi Band gefunden [emoji6][emoji1360]

                  Gesendet von meinem iPhone mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    schrieb am zuletzt editiert von
                    #10

                    ich sehe das hier in Tapatalk nicht…

                    wenn Du nur Dein Mi Band scannen willst... oben im Script ist eine Variable, in der jetzt nur ein leeres Array deklariert wird [], d.h. scanne alles.

                    Wenn Du da die mac Deines Mi Bands einträgst scannt das Skript nur noch das Mi Band.

                    ["badefee12345"]

                    Gesendet von iPhone mit Tapatalk

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      simpixo
                      schrieb am zuletzt editiert von
                      #11

                      Geilomat [emoji1360][emoji1360][emoji1360]

                      Gesendet von meinem iPhone mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #12

                        @simpixo:

                        Gesendet von meinem iPhone mit Tapatalk `

                        Hat das eigentlich geklappt?

                        Es ging um die Variable serviceUUIDs. Mir viel dann noch ein, dass ich noch gar nicht getestet hatte, ob dort die Mac-Adresse rein muss oder die UUID. Ich gehe mal von der Mac-Adresse aus.

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Antwort Letzte Antwort
                        0
                        • derAugeD Offline
                          derAugeD Offline
                          derAuge
                          schrieb am zuletzt editiert von
                          #13

                          habe nun mein RPi3 neu aufgesetzt

                          nach anleitung installiert

                          und es läuft :!:

                          Nun mal schauen was alles so gesehen wird

                          Gruß

                          Jürgen

                          1 Antwort Letzte Antwort
                          0
                          • derAugeD Offline
                            derAugeD Offline
                            derAuge
                            schrieb am zuletzt editiert von
                            #14

                            es wird nun ein Gerät gefunden (Welches auch immer ? )

                            Tab4 nicht

                            SmatePhone nicht

                            BlackBarry nicht

                            (mal eine Nacht drüber schlafen)

                            Gruß

                            Jürgen

                            1 Antwort Letzte Antwort
                            0
                            • ruhr70R Offline
                              ruhr70R Offline
                              ruhr70
                              schrieb am zuletzt editiert von
                              #15

                              Hi Jürgen,

                              danke für das Feedback!

                              Tab4, SmartPhone und BlackBerry sind keine BLE Geräte.

                              Mein iPhone, iPads und Macs werden auch nicht angezeigt.

                              Gefunden werden Geräte, die dauerhaft Bluetooth aussenden, wie Fitnessarmbänder, Bluetooth Tags und Geräte, die sich über Bluetooth zur Konfiguration bemerkbar machen, wie der Aura Lichtwecker.

                              Warum der Samsung Fernseher der Nachbarn ständig funkt, wenn er an ist… so kann ich denen einen monatlichen Report über deren Fernsehkonsum erstellen :-)

                              ich hoffe, dass der Gigaset G-tag dazugehört. Am Wochenende werde ich es wissen.

                              wenn ja kommt der G-tag ans Schlüsselbund und ergänzt meine Anwesenheitserkennung um die dann zuverlässigste Methode.

                              Bisher mache ich das per:

                              • Ping auf die iPhones

                              (in der jetzigen ioBroker Installation gestoppt, da der Ping Adapter auf dem iMac Probleme macht). Funktioniert auch nur, wenn man bei Ankunft den Bildschirm vom iPhone aktiviert oder es am Ladegerät hängt

                              • ein Raspberry Pi 2 mit Bluetooth Stick als iBeacon und Geofency. Funktioniert besser als die Erkennung über WLAN und Ping. Ist aber auch nicht ganz perfekt. Wenn der Akku vom iPhone leer ist z.B. nicht und manchmal schwankt die Erkennung. Und es zerrt am Akku.

                              Den Schlüssel hat man immer bei sich und die Batterie soll über ein Jahr halten.

                              Fitnissarmbänder oder Sticks, wie den Fitbit One sind auch schon oft vorhanden und werden auch oft dauerhaft getragen.

                              Danke schon einmal für Dein Feedback!

                              Würde mich interessieren, was da bei dir funkt. Dürfte aber nicht so einfach rauszufinden sein :-)

                              Gesendet von iPhone mit Tapatalk

                              Adapter: Fritzbox, Unify Circuit
                              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                              1 Antwort Letzte Antwort
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                schrieb am zuletzt editiert von
                                #16

                                Hallo Jürgen,

                                eine kleine Ergänzung. Wenn Du aus Deinen Androids ein Bacon machst, dann dürften die auch funktionieren.

                                ich habe mal nach einer passenden App gegoogelt:

                                https://play.google.com/store/apps/deta … uickbeacon

                                Gruß,

                                Michael

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Antwort Letzte Antwort
                                0
                                • derAugeD Offline
                                  derAugeD Offline
                                  derAuge
                                  schrieb am zuletzt editiert von
                                  #17

                                  315_bt.png

                                  nun sind es bereis 6 Geräte geworden

                                  Gruß

                                  Jürgen

                                  1 Antwort Letzte Antwort
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    schrieb am zuletzt editiert von
                                    #18

                                    @derAuge:

                                    nun sind es bereis 6 Geräte geworden `

                                    Hi Jürgen,

                                    Danke für die Info! Laut Screenshot sind es bei Dir nur zwei Geräte (CountAll = 2), ein Gigaset G-tag und ein Samsung TV.

                                    Freue mich gerade. D.h. das G-Tag wird funktionieren ;-)

                                    Sind das Deine Geräte (Samsung Fernseher und das/der G-tag)?

                                    VG,

                                    Michael

                                    Adapter: Fritzbox, Unify Circuit
                                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                    1 Antwort Letzte Antwort
                                    0
                                    • derAugeD Offline
                                      derAugeD Offline
                                      derAuge
                                      schrieb am zuletzt editiert von
                                      #19

                                      @ruhr70:

                                      Laut Screenshot sind es bei Dir nur zwei Geräte `

                                      stimmt. Da hatte ich das Bild gemacht.

                                      inzwischen hat er bereits 11 devices gesehen.

                                      und Ja

                                      Es ist ein Samsung TV und

                                      ein Gigaset ?

                                      Gruß

                                      Jürgen

                                      1 Antwort Letzte Antwort
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        schrieb am zuletzt editiert von
                                        #20

                                        @derAuge:

                                        ein Gigaset ? `

                                        Ein Gigaset G-tag:

                                        http://www.amazon.de/Gigaset-Bluetooth- … aset+g-tag

                                        Wenn es nicht Deins ist, dann war vielleicht jemand in der Nähe mit so einem Ding.

                                        Auf jeden Fall geht es mir u.a. darum. Ich hab eins zum Test bestellt und mich schon gefreut, dass es bei Dir erkannt wird :-)

                                        Adapter: Fritzbox, Unify Circuit
                                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                        1 Antwort Letzte Antwort
                                        0
                                        • derAugeD Offline
                                          derAugeD Offline
                                          derAuge
                                          schrieb am zuletzt editiert von
                                          #21

                                          ok

                                          dann ist es wohl vorbei gefahren

                                          der Wert "32.73" bei "Bluetooth Device Distanz" sind wohl Meter Entfernung?

                                          ich dachte erst es sei mein Gigaset Telefon SX353isdn mit BT

                                          NAchdem ich mein SamsungTV nun ausgeschaltet habe ist der OnlineZähler auf 0

                                          Gruß

                                          Jürgen

                                          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

                                          884

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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