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

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Fragen / Antworten rund um die neue Alias Funktion

NEWS

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

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

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

Fragen / Antworten rund um die neue Alias Funktion

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
aliasjs-controller
621 Beiträge 88 Kommentatoren 172.5k Aufrufe 73 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @zwer2k sagte: ist es möglich für alias read/write eine zuvor angelegte Funktion zu verwenden?

    Woher soll der js-controller die Funktion kennen?

    Z Offline
    Z Offline
    Zwer2k
    schrieb am zuletzt editiert von
    #365

    @paul53
    Der javascript-Adapter könnte die Funktionen beim Start registrieren. Keine Ahnung was alles implementiert ist.

    apollon77A 1 Antwort Letzte Antwort
    0
    • I Offline
      I Offline
      IOBaer
      schrieb am zuletzt editiert von
      #366

      Auch wenn es nicht nur direkt mit dem Alias zu tun hat: wie kann ich einen eigenen Datenpunkt anlegen, der nur zur späteren Verwendung da ist und nicht auf rot, sondern grün (Ack) stehen bleiben soll?

      apollon77A 1 Antwort Letzte Antwort
      0
      • Z Zwer2k

        @paul53
        Der javascript-Adapter könnte die Funktionen beim Start registrieren. Keine Ahnung was alles implementiert ist.

        apollon77A Offline
        apollon77A Offline
        apollon77
        schrieb am zuletzt editiert von
        #367

        @zwer2k was hat denn der JavaScript Adapter damit zu tun? Alias ist ein Core Feature. Den js Adapter muss man nicht installiert haben ...

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Antwort Letzte Antwort
        0
        • Z Zwer2k

          Hallo,
          ist es möglich für alias read/write eine zuvor angelegte Funktion zu verwenden?
          Wenn ja, wie erfolgt der Aufruf?

          "alias": {
                "id": "mein.datenpunkt",
                "read": "test1(val)",
                "write": "test2(val)"
              }
          

          Funktioniert leider nicht.

          GarfonsoG Offline
          GarfonsoG Offline
          Garfonso
          Developer
          schrieb am zuletzt editiert von
          #368

          @zwer2k said in Fragen / Antworten rund um die neue Alias Funktion:

          ist es möglich für alias read/write eine zuvor angelegte Funktion zu verwenden?

          Nein, ist nicht möglich.

          @iobaer said in Fragen / Antworten rund um die neue Alias Funktion:

          Auch wenn es nicht nur direkt mit dem Alias zu tun hat: wie kann ich einen eigenen Datenpunkt anlegen, der nur zur späteren Verwendung da ist und nicht auf rot, sondern grün (Ack) stehen bleiben soll?

          Beim setzten des Status ack=true setzen. In Admin kannst du dafür auf den Stift drücken, der beim Mausover ober das Statusfeld kommt, da kommt ein Fenster wo du "bestätigt" oder so anhaken kannst, bei setState in Javascript musst du noch ein "true" hinten dran hängen. In Blockly geht das bestimmt auch irgendwie.

          Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

          Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

          1 Antwort Letzte Antwort
          0
          • I IOBaer

            Auch wenn es nicht nur direkt mit dem Alias zu tun hat: wie kann ich einen eigenen Datenpunkt anlegen, der nur zur späteren Verwendung da ist und nicht auf rot, sondern grün (Ack) stehen bleiben soll?

            apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #369

            @iobaer also ja diese Frage hat mir alias nicht dazu tun. Vllt in nem eigene thread auf machen?

            Kurz: rot oder grün (also ack false bzw true) hängt davon ab wie du den Wert reinschreibst.

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Antwort Letzte Antwort
            0
            • Z Offline
              Z Offline
              Zwer2k
              schrieb am zuletzt editiert von
              #370

              @apollon77 sagte in Fragen / Antworten rund um die neue Alias Funktion:

              @zwer2k was hat denn der JavaScript Adapter damit zu tun? Alias ist ein Core Feature. Den js Adapter muss man nicht installiert haben ...

              JS-Adapter haben vermutlich auch 99,9% der Nutzer installiert. Und die Nutzer die den Adapter nicht installiert haben, haben auch keine Funktion definiert die sie für Alias verwenden könnten.
              War aber nur eine Frage ob es überhaupt geht.

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                Cino
                schrieb am zuletzt editiert von Cino
                #371

                Ich habe gerade ein Problem.

                Beim speichern von einem Alias bekomme ich den Fehler:

                Fehler beim Parsen des JSON-Quelltexts
                error_outlineSyntaxError: Unexpected end of JSON input

                {
                  "from": "system.adapter.admin.0",
                  "user": "system.user.admin",
                  "ts": 1625824504674,
                  "common": {
                    "name": "l1hak",
                    "role": "",
                    "type": "number",
                    "desc": "Manuell erzeugt",
                    "unit": "%",
                    "min": 0,
                    "max": 100,
                    "def": 0,
                    "read": true,
                    "write": true,
                    "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"
                  },
                  "native": {},
                  "acl": {
                    "object": 1638,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator",
                    "state": 1638
                  },
                  "_id": "alias.0.l1hak",
                  "type": "state"
                }
                

                IOB@RPI4
                Shelly, Zigbee, ebus

                apollon77A paul53P 3 Antworten Letzte Antwort
                0
                • C Cino

                  Ich habe gerade ein Problem.

                  Beim speichern von einem Alias bekomme ich den Fehler:

                  Fehler beim Parsen des JSON-Quelltexts
                  error_outlineSyntaxError: Unexpected end of JSON input

                  {
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1625824504674,
                    "common": {
                      "name": "l1hak",
                      "role": "",
                      "type": "number",
                      "desc": "Manuell erzeugt",
                      "unit": "%",
                      "min": 0,
                      "max": 100,
                      "def": 0,
                      "read": true,
                      "write": true,
                      "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"
                    },
                    "native": {},
                    "acl": {
                      "object": 1638,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator",
                      "state": 1638
                    },
                    "_id": "alias.0.l1hak",
                    "type": "state"
                  }
                  
                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #372

                  @cino Wo ist da ein Alias drin?

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  C 1 Antwort Letzte Antwort
                  0
                  • C Cino

                    Ich habe gerade ein Problem.

                    Beim speichern von einem Alias bekomme ich den Fehler:

                    Fehler beim Parsen des JSON-Quelltexts
                    error_outlineSyntaxError: Unexpected end of JSON input

                    {
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1625824504674,
                      "common": {
                        "name": "l1hak",
                        "role": "",
                        "type": "number",
                        "desc": "Manuell erzeugt",
                        "unit": "%",
                        "min": 0,
                        "max": 100,
                        "def": 0,
                        "read": true,
                        "write": true,
                        "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"
                      },
                      "native": {},
                      "acl": {
                        "object": 1638,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator",
                        "state": 1638
                      },
                      "_id": "alias.0.l1hak",
                      "type": "state"
                    }
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #373

                    @cino sagte in: Beim speichern von einem Alias bekomme ich den Fehler:

                    Das ist kein Alias. Verwende besser den Alias-Manager anstelle den Alias im Tab "Objekte" zu erstellen. Dann passieren weniger Fehler (alias, role, unit, max, write).
                    Beispiel für einen "Verbrauchs-Alias":

                    {
                      "type": "state",
                      "common": {
                        "name": "Zählerstand",
                        "role": "value",
                        "type": "number",
                        "read": true,
                        "write": false,
                        "alias": {
                          "id": "s7.0.xyz.Zähler",
                          "read": "val/1000"
                        },
                        "unit": "kWh"
                      },
                      "_id": "alias.0.Logo.Zaehler.Stand",
                      "native": {},
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1624382656991,
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    

                    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
                    • apollon77A apollon77

                      @cino Wo ist da ein Alias drin?

                      C Offline
                      C Offline
                      Cino
                      schrieb am zuletzt editiert von
                      #374

                      @apollon77 unter alias.0

                      IOB@RPI4
                      Shelly, Zigbee, ebus

                      apollon77A 1 Antwort Letzte Antwort
                      0
                      • C Cino

                        @apollon77 unter alias.0

                        apollon77A Offline
                        apollon77A Offline
                        apollon77
                        schrieb am zuletzt editiert von
                        #375

                        @cino nein,Da Objekt enthält keinen alias ...und common.id ist falsch ... siehe paul53 Post!

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          Cino
                          schrieb am zuletzt editiert von
                          #376

                          Danke, mit dem Alias Manager hat es geklappt. Ich wusste nicht das es ihn gab.

                          IOB@RPI4
                          Shelly, Zigbee, ebus

                          1 Antwort Letzte Antwort
                          0
                          • C Cino

                            Ich habe gerade ein Problem.

                            Beim speichern von einem Alias bekomme ich den Fehler:

                            Fehler beim Parsen des JSON-Quelltexts
                            error_outlineSyntaxError: Unexpected end of JSON input

                            {
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1625824504674,
                              "common": {
                                "name": "l1hak",
                                "role": "",
                                "type": "number",
                                "desc": "Manuell erzeugt",
                                "unit": "%",
                                "min": 0,
                                "max": 100,
                                "def": 0,
                                "read": true,
                                "write": true,
                                "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"
                              },
                              "native": {},
                              "acl": {
                                "object": 1638,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1638
                              },
                              "_id": "alias.0.l1hak",
                              "type": "state"
                            }
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #377

                            @cino sagte: "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"

                            Für eigene Datenpunkte verwendet man keinen Alias. Denen verpasst man eine sinnvolle ID ohne "SHEM-3#8CAAB561D496#1".

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

                            C 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @cino sagte: "id": "javascript.0.ShellyVerbrauch.SHEM-3#8CAAB561D496#1.Emeter0.heute"

                              Für eigene Datenpunkte verwendet man keinen Alias. Denen verpasst man eine sinnvolle ID ohne "SHEM-3#8CAAB561D496#1".

                              C Offline
                              C Offline
                              Cino
                              schrieb am zuletzt editiert von
                              #378

                              @paul53 das kommt von einem skript der die Vebräuche der Shellys summiert.

                              IOB@RPI4
                              Shelly, Zigbee, ebus

                              liv-in-skyL 1 Antwort Letzte Antwort
                              0
                              • GarfonsoG Offline
                                GarfonsoG Offline
                                Garfonso
                                Developer
                                schrieb am zuletzt editiert von
                                #379

                                Es spricht grundsätzlich nichts dagegen Aliase für javascript / eigene Datenpunkte zu machen. Bei Javascript finde ich das sogar ok, weil sich die ID auch ändern kann, wenn man die javascript Instanz mal wechselt oder so (weshalb ich persönlich mittlerweile nur noch ungern mit createState arbeite in Skripten, wenn der State für "außen" irgendwie wichtig sein könnte oder dann auch einen Alias drauf setze und den verwende).

                                Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                                Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • GarfonsoG Garfonso

                                  Es spricht grundsätzlich nichts dagegen Aliase für javascript / eigene Datenpunkte zu machen. Bei Javascript finde ich das sogar ok, weil sich die ID auch ändern kann, wenn man die javascript Instanz mal wechselt oder so (weshalb ich persönlich mittlerweile nur noch ungern mit createState arbeite in Skripten, wenn der State für "außen" irgendwie wichtig sein könnte oder dann auch einen Alias drauf setze und den verwende).

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

                                  @garfonso sagte: Es spricht grundsätzlich nichts dagegen Aliase für javascript / eigene Datenpunkte zu machen

                                  Doch: Unnötiger Ressourcenverbrauch.

                                  @garfonso sagte in Fragen / Antworten rund um die neue Alias Funktion:

                                  weil sich die ID auch ändern kann, wenn man die javascript Instanz mal wechselt

                                  Wegen dieser Problematik wurde das Verzeichnis "0_userdata.0" geschaffen, in dem man auch Datenpunkte mittels createState() erstellen kann.

                                  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

                                  GarfonsoG 1 Antwort Letzte Antwort
                                  0
                                  • C Cino

                                    @paul53 das kommt von einem skript der die Vebräuche der Shellys summiert.

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von
                                    #381

                                    @cino

                                    soweit ich mich erinnere, brauchst du die datenpunkte für die vis (binding)- ich kann mir nicht vorstellen, dass ein paar aliase unter javascript ein resourcen-problem erzeugt. als notfall lösung würd ich das machen - als standard lösung für viele dp unter javascript würde ich das auch nicht machen - da stimme ich paul zu

                                    eine andere lösung wäre natürlich, das script anzugleichen - z.b. beim anlegen der datenpunkte . kannst du nicht mal beim ersteller des scriptes nachfragen, ob er das ändern möchte

                                    ansonsten müßtest du ein eigenes script machen, welche die dp spiegeln - aber anstatt ein script finde ich das alias besser

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @garfonso sagte: Es spricht grundsätzlich nichts dagegen Aliase für javascript / eigene Datenpunkte zu machen

                                      Doch: Unnötiger Ressourcenverbrauch.

                                      @garfonso sagte in Fragen / Antworten rund um die neue Alias Funktion:

                                      weil sich die ID auch ändern kann, wenn man die javascript Instanz mal wechselt

                                      Wegen dieser Problematik wurde das Verzeichnis "0_userdata.0" geschaffen, in dem man auch Datenpunkte mittels createState() erstellen kann.

                                      GarfonsoG Offline
                                      GarfonsoG Offline
                                      Garfonso
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #382

                                      @paul53 said in Fragen / Antworten rund um die neue Alias Funktion:

                                      Doch: Unnötiger Ressourcenverbrauch.

                                      Ok, die zusätzlichen "Ressourcen" sind exakt der Speicherplatz für ein Objekt mehr in der Objektdatenbank. Nichtmal der State wird gespiegelt. Das nehme ich in Kauf. ;-)

                                      Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

                                      Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • GarfonsoG Garfonso

                                        @paul53 said in Fragen / Antworten rund um die neue Alias Funktion:

                                        Doch: Unnötiger Ressourcenverbrauch.

                                        Ok, die zusätzlichen "Ressourcen" sind exakt der Speicherplatz für ein Objekt mehr in der Objektdatenbank. Nichtmal der State wird gespiegelt. Das nehme ich in Kauf. ;-)

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

                                        @garfonso sagte: die zusätzlichen "Ressourcen" sind exakt der Speicherplatz für ein Objekt mehr in der Objektdatenbank.

                                        Da der Alias den Zustand des Original-Datenpunktes spiegelt, gehören auch noch zwei Trigger dazu.

                                        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
                                        • R Offline
                                          R Offline
                                          RkcCorian
                                          schrieb am zuletzt editiert von
                                          #384

                                          Hallo Zusammen,

                                          ich hoffe ich habe hier den "richtigen" Ort für meine Frage gefunden.
                                          Ich habe ein paar Geräte mit ~500 ALIAS angelegt. Egal ob die ursprünglichen DPs von userdata oder Adapter kommen, mit dem Vorteil dort Geräte mit Ihrer Definition an einer Stelle definiert zu haben (Abstraktion). Dort greife ich mit meinen Skripten, als auch Visualisierung (JARVIS) zentral zu.
                                          Nun zu meiner Frage... wenn ich mit JARVIS Geräte anlege, welche wiederum auf diese ALIAS zugreifen habe ich festgestellt, dass der Zugriff auf ALIAS merkbar langsamer ist (Daten werden sicherbar langsamer geladen, tlw. ~3 Sekunden langsamer), als wenn ich den originalen DP eintrage (userdata oder Adapter).
                                          Ist das ein grundsätzliches Problem von ALIAS oder eher von JARVIS. Ich habe mir ALIAS als Pointer vorgestellt ohne wesentliche Performance-Einbuße. Oder irre ich hier und man sollte es "irgendwie" anders machen.

                                          Vielen Dank im Voraus!!!!

                                          apollon77A 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

                                          386

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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