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

Fragen / Antworten rund um die neue Alias Funktion

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
aliasjs-controller
621 Beiträge 88 Kommentatoren 173.6k 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.
  • K K_o_bold

    Hallo zusammen,

    ich würde gerne ein Alias Objekt im IoT Adapter als Alexa Gerät definieren. Allerdings funktioniert das nicht. Es poppt nur ein Fenster auf, mit der Meldung, dass das Gerät nicht angelegt wurde.

    Gibt es diesbezüglich etwas zu beachten?

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

    @K_o_bold
    Ja, du musst ein native: {} manuell hinzufügen. Das Problem hatte ich jedenfalls mit meinen ersten Versuchen bei alias.0.
    Dabei gibt es einen gemeinen Fallstrick: wenn man das Objekt im Admin anguckt, dann fügt admin (vermutlich) das native: {} ganz unten im Textfeld ein, obwohl es ggf. in der Objektdatenbank gar nicht da ist. Wenn du dann auf "Speichern" drückst, obwohl du selber nichts geändert hast, geht es.

    @apollon77
    Da wüsste ich mal gerne, wo das her kommt. Das ist mir letztens schon aufgefallen. Ich wollte dafür auch ein Ticket aufmachen, dachte auch ich hätte das, finde es aber gerade nicht (urgs, ich werd alt?).

    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
    • K Offline
      K Offline
      K_o_bold
      schrieb am zuletzt editiert von K_o_bold
      #111

      @Garfonso,

      das muss man auch erst mal wissen. Was beschreibe ich mit einem native: {}. ?
      Ich habe es mal angelegt und jetzt ist das Objekt auch im IoT Adapter und Alexa verfügbar.
      Nachfolgend jetzt mal meine Objektdefinition mit dem Native. Habe ich es so richtig angelegt?

      {
        "type": "state",
        "common": {
          "name": "Weihnachtsbaum",
          "type": "boolean",
          "role": "switch",
          "read": true,
          "write": true,
          "smartName": {
            "de": "Weihnachtsbaum"
          },
          "alias": {
            "id": "deconz.0.Lights.2.on"
          }
        },
        "from": "system.adapter.javascript.0",
        "user": "system.user.admin",
        "ts": 1576736190798,
        "_id": "alias.0.EG.Wohnzimmer.Licht.Weihnachtsbaum.on_off",
        "acl": {
          "object": 1638,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.user",
          "state": 1638
        },
        "native": {
          "alexa": "switch"
        }
      }
      

      @apollon77 ,
      bleibt das so? Das ist für Anwender nicht gerade Selbsterklärend ;-)

      GarfonsoG 1 Antwort Letzte Antwort
      0
      • K K_o_bold

        @Garfonso,

        das muss man auch erst mal wissen. Was beschreibe ich mit einem native: {}. ?
        Ich habe es mal angelegt und jetzt ist das Objekt auch im IoT Adapter und Alexa verfügbar.
        Nachfolgend jetzt mal meine Objektdefinition mit dem Native. Habe ich es so richtig angelegt?

        {
          "type": "state",
          "common": {
            "name": "Weihnachtsbaum",
            "type": "boolean",
            "role": "switch",
            "read": true,
            "write": true,
            "smartName": {
              "de": "Weihnachtsbaum"
            },
            "alias": {
              "id": "deconz.0.Lights.2.on"
            }
          },
          "from": "system.adapter.javascript.0",
          "user": "system.user.admin",
          "ts": 1576736190798,
          "_id": "alias.0.EG.Wohnzimmer.Licht.Weihnachtsbaum.on_off",
          "acl": {
            "object": 1638,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.user",
            "state": 1638
          },
          "native": {
            "alexa": "switch"
          }
        }
        

        @apollon77 ,
        bleibt das so? Das ist für Anwender nicht gerade Selbsterklärend ;-)

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

        @K_o_bold
        in native muss nix drin stehen. Aber aus irgendeinem Grund will der iot Adapter das zwingend haben. Kann auch leer sein und er schreibt da auch nix rein...

        in native kann der Adapter, der das Objekt anlegt, Konfig zu dem Objekt speichern, da geht wohl keiner sonst dran oder so ist das gedacht. Das macht natürlich bei alias-Definitionen dann keinen Sinn da native zu haben.

        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
        • K Offline
          K Offline
          K_o_bold
          schrieb am zuletzt editiert von
          #113

          @Garfonso ,

          dann kann man an dieser Stelle wohl von einem "bug" sprechen...danke. Dann habe ich zumindest einen workaround,. wenn auch unschön. Ich denke aber das wird in irgendeiner Weise behoben, bzw. ist schon ein bekanntes Problem.

          apollon77A 1 Antwort Letzte Antwort
          0
          • K K_o_bold

            @Garfonso ,

            dann kann man an dieser Stelle wohl von einem "bug" sprechen...danke. Dann habe ich zumindest einen workaround,. wenn auch unschön. Ich denke aber das wird in irgendeiner Weise behoben, bzw. ist schon ein bekanntes Problem.

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

            @K_o_bold wie wurden die Objekte denn angelegt? Manuell per Admin? An sich über Adapter wird verhindert das es Objekte ohne native gibt. Wenn das per Admin geht ist die Frage ob man das forcieren muss oder nicht ...

            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
            GarfonsoG K 2 Antworten Letzte Antwort
            0
            • apollon77A apollon77

              @paul53 reicht auch „Objekte neu laden“ im Admin?

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

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

              reicht auch „Objekte neu laden“ im Admin?

              Habe gerade getestet und 2 neue Alias per Skript erzeugt und im Reiter "Objekte" beobachtet:

              • Objekt wird angezeigt ohne Zustand
              • Browser cache geleert: Keine Änderung
              • Baum neu erstellt: Keine Änderung
              • Reiter im gleichen Browser Tab gewechselt ("Instanzen" und zurück "Objekte"): Zustand wird angezeigt, aber mit falschem Wert.
              • Admin neu gestartet: Zustand wird richtig angezeigt

              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

              apollon77A 1 Antwort Letzte Antwort
              0
              • paul53P paul53

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

                reicht auch „Objekte neu laden“ im Admin?

                Habe gerade getestet und 2 neue Alias per Skript erzeugt und im Reiter "Objekte" beobachtet:

                • Objekt wird angezeigt ohne Zustand
                • Browser cache geleert: Keine Änderung
                • Baum neu erstellt: Keine Änderung
                • Reiter im gleichen Browser Tab gewechselt ("Instanzen" und zurück "Objekte"): Zustand wird angezeigt, aber mit falschem Wert.
                • Admin neu gestartet: Zustand wird richtig angezeigt
                apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #116

                @paul53 dann bitte issue anlegen im Admin dazu. Müssen wir ansehen

                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
                paul53P 1 Antwort Letzte Antwort
                0
                • apollon77A apollon77

                  @paul53 dann bitte issue anlegen im Admin dazu. Müssen wir ansehen

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

                  @apollon77 sagte:

                  issue anlegen im Admin

                  Sicher beim Admin oder beim js-controller ? Denn, wenn ich neue Objekte (enums) per Admin anlege, habe ich ein ähnliches Problem im Javascript-Adapter, den ich erst durchstarten muss, um auf die neuen Objekte zugreifen zu können.

                  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

                  apollon77A 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @apollon77 sagte:

                    issue anlegen im Admin

                    Sicher beim Admin oder beim js-controller ? Denn, wenn ich neue Objekte (enums) per Admin anlege, habe ich ein ähnliches Problem im Javascript-Adapter, den ich erst durchstarten muss, um auf die neuen Objekte zugreifen zu können.

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

                    @paul53 ich würde es erstmal bei den Adaptern sehen und deren zwischen caching. Falls doch rauskommt das es controller ist schieben wir es.

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

                      @K_o_bold wie wurden die Objekte denn angelegt? Manuell per Admin? An sich über Adapter wird verhindert das es Objekte ohne native gibt. Wenn das per Admin geht ist die Frage ob man das forcieren muss oder nicht ...

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

                      @apollon77
                      Die Frage ist ja eigentlich, warum iot unbedingt ein native Part braucht um die id für smartName zu aktzeptieren..?

                      Der Zigbee Adapter hat das Problem auch immer, k.a. warum. Und beim erstellen von Alias Objekten per Skript (mit setObject) muss man halt auch selber dran denken, dass der native Part da ist (und gemeinerweise zeigt halt das Admin ein native an, obwohl es das im Objekt gar nicht gibt -> das hat mich damals schon ein paar Stunden gekostet. Warum ist das so?)

                      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

                      apollon77A 1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Stefan_1969
                        schrieb am zuletzt editiert von
                        #120

                        Die alias-Funktion oder die Datenpunkte finde ich bei mir nicht.
                        Ich habe begonnen mir eine Struktur mit linkeddevices aufzubauen und habe jetzt zwei Fragen:

                        1. Was ist der Unterschied zwischen den beiden Funktionen?
                        2. Werden beide nebeneinander existieren oder eine abgelöst und eingestellt?

                        Die Funktionalität ist genial aber Ich würde mir ungern die Arbeit zwei mal machen ....

                        Viele Grüsse
                        Stefan


                        ioBroker, grafana, influx, mariaDB, pihole, MotionEye auf proxmox
                        Geräte: Homematic, Shelly, Sonoff, Gosund, WEMOS

                        apollon77A 1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          Phil85
                          schrieb am zuletzt editiert von
                          #121

                          Wirklich geile Sache mit dem Alias ;-)
                          Meine Struktur sieht bis jetztb wie folgt aus
                          95f1042c-fc52-4a3f-a710-60a4493d017d-grafik.png

                          1 Antwort Letzte Antwort
                          1
                          • P Offline
                            P Offline
                            Phil85
                            schrieb am zuletzt editiert von
                            #122

                            In Skripten aber hauptsächlich in Views welche raumübergreifend kopiert werden,
                            suche ich einfach nur noch den Zimmer Namen und ersetze ihn mit einem Anderen.
                            Und schon passt der View mit allen sämtlichen Datenpunkten ;-)

                            1 Antwort Letzte Antwort
                            0
                            • S Stefan_1969

                              Die alias-Funktion oder die Datenpunkte finde ich bei mir nicht.
                              Ich habe begonnen mir eine Struktur mit linkeddevices aufzubauen und habe jetzt zwei Fragen:

                              1. Was ist der Unterschied zwischen den beiden Funktionen?
                              2. Werden beide nebeneinander existieren oder eine abgelöst und eingestellt?

                              Die Funktionalität ist genial aber Ich würde mir ungern die Arbeit zwei mal machen ....

                              Viele Grüsse
                              Stefan

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

                              @Stefan_1969 Alias ist die direkt im js-controller (seit 2.0 neu) integrierte Form. Linkeddevices wird von einem Adapter gemanaged der auch immer laufen muss. Es gibt aktuell keine Pläne linkeddevices abzuklemmen oder so, also kannst Du das weiterhin nutzen - frisst halt mehr Ressourcen weil der Adapter alles handelt

                              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
                              S 1 Antwort Letzte Antwort
                              0
                              • GarfonsoG Garfonso

                                @apollon77
                                Die Frage ist ja eigentlich, warum iot unbedingt ein native Part braucht um die id für smartName zu aktzeptieren..?

                                Der Zigbee Adapter hat das Problem auch immer, k.a. warum. Und beim erstellen von Alias Objekten per Skript (mit setObject) muss man halt auch selber dran denken, dass der native Part da ist (und gemeinerweise zeigt halt das Admin ein native an, obwohl es das im Objekt gar nicht gibt -> das hat mich damals schon ein paar Stunden gekostet. Warum ist das so?)

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

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

                                Die Frage ist ja eigentlich, warum iot unbedingt ein native Part braucht um die id für smartName zu aktzeptieren..?

                                Sagen wir es so: Ein State-Objekt ohne "native" ist an sich ungültig, auch wenn native leer ist. Den genauen Grund warum iot auf native zugreift weiss ich gerade nicht und müsste ich nachsehen ...

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

                                  @Stefan_1969 Alias ist die direkt im js-controller (seit 2.0 neu) integrierte Form. Linkeddevices wird von einem Adapter gemanaged der auch immer laufen muss. Es gibt aktuell keine Pläne linkeddevices abzuklemmen oder so, also kannst Du das weiterhin nutzen - frisst halt mehr Ressourcen weil der Adapter alles handelt

                                  S Offline
                                  S Offline
                                  Stefan_1969
                                  schrieb am zuletzt editiert von
                                  #125

                                  @apollon77 vielen Dank! Die Info hat mir ein Licht aufgehen lassen :blush:
                                  Nun ist auch mir der Unterschied klar :+1:


                                  ioBroker, grafana, influx, mariaDB, pihole, MotionEye auf proxmox
                                  Geräte: Homematic, Shelly, Sonoff, Gosund, WEMOS

                                  1 Antwort Letzte Antwort
                                  0
                                  • apollon77A apollon77

                                    @K_o_bold wie wurden die Objekte denn angelegt? Manuell per Admin? An sich über Adapter wird verhindert das es Objekte ohne native gibt. Wenn das per Admin geht ist die Frage ob man das forcieren muss oder nicht ...

                                    K Offline
                                    K Offline
                                    K_o_bold
                                    schrieb am zuletzt editiert von
                                    #126

                                    @apollon77 ,

                                    die Objekte wurden mit dem Skript von @paul53 angelegt. Also per Admin..

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • K K_o_bold

                                      @apollon77 ,

                                      die Objekte wurden mit dem Skript von @paul53 angelegt. Also per Admin..

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

                                      @K_o_bold sagte:

                                      Also per Admin.

                                      Also per Javascript.

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

                                      Ein State-Objekt ohne "native" ist an sich ungültig, auch wenn native leer ist.

                                      Bei mir wird immer native mit einem leeren Objekt automatisch erzeugt.

                                      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
                                      • paul53P paul53

                                        @K_o_bold sagte:

                                        Also per Admin.

                                        Also per Javascript.

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

                                        Ein State-Objekt ohne "native" ist an sich ungültig, auch wenn native leer ist.

                                        Bei mir wird immer native mit einem leeren Objekt automatisch erzeugt.

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

                                        @paul53
                                        Bist du dir 100% sicher? Wie gesagt, der admin fügt das leere native ein, auch wenn es in der Objekt DB nicht steht. Wenn man dann auf speichern klickt, ohne was zu ändern, ist es da. Wenn nicht, dann fehlt es weiterhin und iot möchte weiterhin nicht mit dem Datenpunkt arbeiten. Probier das mal aus. Bei mir ist es 100% so, auch jetzt noch.

                                        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
                                          Bist du dir 100% sicher? Wie gesagt, der admin fügt das leere native ein, auch wenn es in der Objekt DB nicht steht. Wenn man dann auf speichern klickt, ohne was zu ändern, ist es da. Wenn nicht, dann fehlt es weiterhin und iot möchte weiterhin nicht mit dem Datenpunkt arbeiten. Probier das mal aus. Bei mir ist es 100% so, auch jetzt noch.

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

                                          @Garfonso sagte:

                                          admin fügt das leere native ein, auch wenn es in der Objekt DB nicht steht.

                                          Da habe ich mich offensichtlich von Admin täuschen lassen.

                                          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

                                          857

                                          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