Weiter zum Inhalt
  • Home
  • Aktuell
  • 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. Tester
  4. Test Adapter NSPanel-lovelace-ui v1.x.x

NEWS

  • Mitmachen: Sprich „ioBroker“ ein – für ein lokales Aktivierungswort
    BluefoxB
    Bluefox
    3
    1
    164

  • Neuer Blogbeitrag: KI in ioBroker, vom Helfer im Admin bis zum eigenen Smart Assistant
    BluefoxB
    Bluefox
    4
    1
    159

  • Neues Video: Der KI-Assistent im ioBroker Admin
    BluefoxB
    Bluefox
    8
    1
    223

Test Adapter NSPanel-lovelace-ui v1.x.x

Geplant Angeheftet Gesperrt Verschoben Tester
1.4k Beiträge 40 Kommentatoren 497.6k Aufrufe 40 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.
  • patricknitschP
    patricknitschP
    patricknitsch
    Developer
    schrieb am zuletzt editiert von patricknitsch
    #1388

    Ich finds nice. Erinnert mich an die virtuelle Möglichkeit, als man noch kein Panel hatte

    Systeme:

    • Proxmox 1 mit ioBroker, HomeAssistant, piHole, PBS und Nextcloud
    • Proxmox 2 mit SOLECTRUS, Mosquitto, piHole und Frigate
    • RPi4 mit Octoprint

    Eigene Adapter: grohe-smarthome, solectrus-influxdb, schlueter-thermostat

    1 Antwort Letzte Antwort
    0
    • T
      T
      ticaki
      schrieb am zuletzt editiert von
      #1389

      Die aktuelle Version gefällt mir dann aber von "handling" nicht. Jeder browser hat eigenen session, bekommt eigenes virtuelles Panel mit eigenen states... hab schon 15 "panels" auf dem dev-server...

      Ich baue das um virtuelle Panels die previews sind teilen sich die states mit dem orginal - mehrfach zugriffe sind synchron - heißt wenn man da mit mehreren session drauf zugreift zeigen alle das selbe an

      Zusätzlich gibtts dann noch autarke virtuelle Panels, die man für ein tablet benutzen kann

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      1 Antwort Letzte Antwort
      0
      • patricknitschP
        patricknitschP
        patricknitsch
        Developer
        schrieb am zuletzt editiert von
        #1390

        Was mir noch aufgefallen ist. Welcher Klick ist notwendig für die Indikatoren? Single Clock, Double Click, Long Click? Am Panel klappt es mit einem Single Click, virtuell mit Double Click.

        Systeme:

        • Proxmox 1 mit ioBroker, HomeAssistant, piHole, PBS und Nextcloud
        • Proxmox 2 mit SOLECTRUS, Mosquitto, piHole und Frigate
        • RPi4 mit Octoprint

        Eigene Adapter: grohe-smarthome, solectrus-influxdb, schlueter-thermostat

        T 1 Antwort Letzte Antwort
        0
        • T
          T
          ticaki
          schrieb am zuletzt editiert von ticaki
          #1391

          hm das passt zeitlich - hab vor ca. 30 Minuten angefangen das indikator problem untersuchen zu lassen - das wird mit dem nächsten upload gefixt.
          Das hier ist noch nicht online, wird aber wohl in der nächsten Stunde in der branch verfügbar sein. Sage dann bescheid:

          Seit dem letzten Push, zwei Commits plus der uncommittete Stand von heute:

          Committet

          • Klone starten mit den Laufzeiteinstellungen des echten Panels, Web-Panels folgen Skript-Neuladungen, Grid-Schriftgröße im Browser,
            Emulator-Referenzaufbau.

          Uncommittet, fertig

          • Ein Web-Panel pro Endpoint, alle Browser synchron, gemeinsamer Objektbaum mit dem echten Panel, alte _web-Bäume werden gelöscht.
          • Eigenständige Web-Panels ohne Hardware, anlegbar in der Panel-Übersicht.
          • Globale PIN mit Cookie, Admin-Links übergeben sie.
          • HTTPS mit ioBroker-Zertifikaten, alle Vorschau-Links und Hinweistexte protokollabhängig.
          • Optik-Abgleich mit den 41 Emulator-Bildern: Noto Sans, Nextion-Fonts, alle Karten, Popups und Screensaver-Layouts.
          • Popup-Kopf-Icon in der Farbe der Entity.
          • Bugfixes: Update-Icon beim Klon, Nav-Pfeile auf cardGrid, Schließen-Kreuz in popupSlider und popupThermo, Panel.loop lief nur einmal,
            Indikator-Buttons bei Screensaver als Seite 0.
          • Admin: Buttons in der Panel-Übersicht je zur Hälfte, Web-Panel-Button nur bei aktivem Server.

          Bis zum Push

          • FIDO2 als PIN-Alternative, nur mit HTTPS, Bedingungen am Einrichtungsfeld.
          • Klärung, warum der Indikator-Tastendruck beim Klon nicht ankommt.

          EDIT: Ich sollte echt bis zum ende lesen - das hier " Am Panel klappt es mit einem Single Click, virtuell mit Double Click." hat geholfen - Danke

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          1 Antwort Letzte Antwort
          0
          • T TT-Tom

            @13patrick37
            Hast du bei Tasmota eins vergeben oder du hast bei dem MQTT Einstellungen im Admin den Haken gesetzt bei Tasmota WebUI ??

            Welche Tasmota Version hast du installiert??

            1
            1
            13patrick37
            schrieb am zuletzt editiert von
            #1392

            @TT-Tom weder noch. :D Keine Ahnung woran das lag.

            Ich habe seit dem letzten Update allerdings das Problem, dass die Panels extrem langsam geworden sind. Da hilft manchmal nur ein Neustart des Adapters. Ist das Problem bekannt? WLAN Verbindung stabil.

            1 Antwort Letzte Antwort
            0
            • patricknitschP patricknitsch

              Was mir noch aufgefallen ist. Welcher Klick ist notwendig für die Indikatoren? Single Clock, Double Click, Long Click? Am Panel klappt es mit einem Single Click, virtuell mit Double Click.

              T
              T
              ticaki
              schrieb am zuletzt editiert von ticaki
              #1393

              @patricknitsch
              hab eine aktualisierte Version hoch geladen - sollte jetzt dichter am echten sein.

              Das ist ein React-App die sich wie ein echtes Panel mit dem adapter verbinden aber anstatt über mqtt per websocket quatscht - daher führt ein reload auch nicht zu einer Seitenaktualisierung, sondern zu einem "Panel"neustart.

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              1 Antwort Letzte Antwort
              0
              • 1
                1
                13patrick37
                schrieb am zuletzt editiert von 13patrick37
                #1394

                Ich habe gleich noch eine technische Frage hinterher:
                Ich bin dabei, alle Hauptbildschirme des Panels jeweils in ein Globalskript zu packen, dass ich darauf immer und überall Zugriff darauf habe.
                Ich habe im global alles soweit angelegt. Ich möchte allerdings einen Ordner anklicken, um darauf zu kommen - nicht über das klicken nach links/rechts.

                Ähnlich wie hier:

                { navigate: true, id: null, targetPage: 'Garage', icon: 'hammer-screwdriver', onColor: White,  name: 'Garage' },
                

                Muss ich beim Navigieren per Ordner noch irgendwas mit "global" hinterlegen? Komischerweise funktioniert es auch so.

                T 1 Antwort Letzte Antwort
                0
                • 1 13patrick37

                  Ich habe gleich noch eine technische Frage hinterher:
                  Ich bin dabei, alle Hauptbildschirme des Panels jeweils in ein Globalskript zu packen, dass ich darauf immer und überall Zugriff darauf habe.
                  Ich habe im global alles soweit angelegt. Ich möchte allerdings einen Ordner anklicken, um darauf zu kommen - nicht über das klicken nach links/rechts.

                  Ähnlich wie hier:

                  { navigate: true, id: null, targetPage: 'Garage', icon: 'hammer-screwdriver', onColor: White,  name: 'Garage' },
                  

                  Muss ich beim Navigieren per Ordner noch irgendwas mit "global" hinterlegen? Komischerweise funktioniert es auch so.

                  T
                  T
                  TT-Tom
                  schrieb am zuletzt editiert von TT-Tom
                  #1395

                  @13patrick37

                  Zwei fragen
                  Wenn du mit dem Admin deine Seiten erstellst, warum möchtest du das globalScript nutzen?

                  Ich möchte allerdings einen Ordner anklicken, um darauf zu kommen - nicht über das klicken nach links/rechts

                  Das verstehe ich nicht ganz, was du da meinst. Ordner = Channel oder Folder?
                  Mit klick auf Icon eine Seite öffnen?
                  Soll das Icon einen Status anzeigen vom Channel?

                  Gruß Tom

                  Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                  Public Transport
                  https://github.com/tt-tom17/ioBroker.public-transport
                  https://github.com/tt-tom17/ioBroker.public-transport/wiki

                  NSPanel Adapter Wiki
                  https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                  1 1 Antwort Letzte Antwort
                  0
                  • patricknitschP
                    patricknitschP
                    patricknitsch
                    Developer
                    schrieb am zuletzt editiert von
                    #1396

                    @ticaki habe ich getestet. Baut schneller auf, läuft auch schneller. Indikatoren funktionieren auch.

                    Systeme:

                    • Proxmox 1 mit ioBroker, HomeAssistant, piHole, PBS und Nextcloud
                    • Proxmox 2 mit SOLECTRUS, Mosquitto, piHole und Frigate
                    • RPi4 mit Octoprint

                    Eigene Adapter: grohe-smarthome, solectrus-influxdb, schlueter-thermostat

                    1 Antwort Letzte Antwort
                    0
                    • T
                      T
                      ticaki
                      schrieb am zuletzt editiert von
                      #1397

                      1.7.0 (2026-10-25)

                      • (ticaki) web panels: the panel UI in a web browser via http://<host>:8090/<topic>, no Tasmota needed - one web panel per address, all browsers on it stay in sync (new admin tab "Web panels")
                      • (ticaki) web panels: a real panel can be opened in the browser - the clone navigates on its own and shares the states tree panels.<id> with the panel
                      • (ticaki) web panels: standalone web panels without hardware - "Add web panel" in the panel overview (name, topic, model), configured by topic like a real panel
                      • (ticaki) web panels: optional PIN (webPin) for all web panels, asked once per browser; HTTPS with the ioBroker certificates (webSecure); a FIDO2 security key can replace the PIN (HTTPS only)
                      • (ticaki) web panels: look of the HMI - Noto Sans, Nextion font sizes, all page types, popups, the four screensaver layouts and the boot animation
                      • (ticaki) web panels: a lost connection to the adapter is shown (greyed out page), the browser reconnects after an adapter restart on its own
                      • (ticaki) admin: a button opens the web panel of a panel in a new tab (Maintain, panel settings, panel info), the host name of the links is configurable (webHost)
                      • (ticaki) screensaver: the indicator buttons (and the state buttons.indicator-N) work again when the screensaver is the first page of the configuration
                      • (ticaki) screensaver: a tap on an indicator sets buttons.indicator-N again when the indicators do not act as buttons, and the command of the indicator runs once instead of twice (a switch was flipped back at once)
                      • (ticaki) a panel that is offline gets the startup page offered every 5 s again (the panel loop never rescheduled itself)
                      • (ticaki) script config: fontSize: 0 on a grid item is no longer ignored

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Antwort Letzte Antwort
                      1
                      • T TT-Tom

                        @13patrick37

                        Zwei fragen
                        Wenn du mit dem Admin deine Seiten erstellst, warum möchtest du das globalScript nutzen?

                        Ich möchte allerdings einen Ordner anklicken, um darauf zu kommen - nicht über das klicken nach links/rechts

                        Das verstehe ich nicht ganz, was du da meinst. Ordner = Channel oder Folder?
                        Mit klick auf Icon eine Seite öffnen?
                        Soll das Icon einen Status anzeigen vom Channel?

                        1
                        1
                        13patrick37
                        schrieb am zuletzt editiert von
                        #1398

                        @TT-Tom Vielleicht habe ich auch einfach einen Denkfehler.

                        Unten links "Garage" ist Pfad zur Garage. In der Garage habe ich ebenfalls ein NSPanel.
                        Meine Überlegung war, die eingerichtete Konfiguration der Garage im global zu speichern, dass ich auch von jedem anderen Panel darauf komme. Vielleicht denke ich zu kompliziert?

                        IMG20261025201330.jpg_compressed.jpeg

                        T 1 Antwort Letzte Antwort
                        0
                        • arteckA
                          arteckA
                          arteck
                          Developer Most Active
                          schrieb am zuletzt editiert von arteck
                          #1399
                          javascript.0	17:34:05.142	error	
                          Error by run: script.js.nspanel-lovelace-ui_0.nspanel_garten:351
                          javascript.0	17:34:05.144	error	
                          }).call(exports);
                          javascript.0	17:34:05.146	error	
                             ^
                          javascript.0	17:34:05.148	error	
                          TypeError: (intermediate value)(...).call is not a function
                          javascript.0	17:34:05.150	error	
                              at script.js.nspanel-lovelace-ui_0.nspanel_garten:351:4
                          javascript.0	17:34:05.151	error	
                              at Script.runInContext (node:vm:149:12)
                          javascript.0	17:34:05.154	error	
                          Error: TypeError: id.includes is not a function
                          javascript.0	17:34:05.155	error	
                              at getStateAsync (/opt/iobroker/node_modules/iobroker.javascript/build/lib/sandbox.js:2595:20)
                          javascript.0	17:34:05.157	error	
                              at wrapped (/opt/iobroker/node_modules/iobroker.javascript/build/lib/sandbox.js:68:19)
                          javascript.0	17:34:05.159	error	
                              at getStateMe (script.js.nspanel-lovelace-ui_0.nspanel_garten:175:22)
                          javascript.0	17:34:05.161	error	
                              at script.js.nspanel-lovelace-ui_0.nspanel_garten:442:22
                          javascript.0	17:34:05.163	error	
                              at script.js.nspanel-lovelace-ui_0.nspanel_garten:1:1
                          javascript.0	17:34:05.165	error	
                              at Script.runInContext (node:vm:149:12)
                          javascript.0	17:34:10.792	info	
                          Stopping script
                          

                          ich hätte da ein Problem

                          grafik.jpeg

                          keine änderung am script..
                          da fehlt wohl ne methode

                          zigbee hab ich, zwave auch, nuc's genauso und HA auch

                          1 Antwort Letzte Antwort
                          0
                          • T
                            T
                            ticaki
                            schrieb am zuletzt editiert von ticaki
                            #1400
                            Error: TypeError: id.includes is not a function
                                 at getStateAsync (…/iobroker.javascript/build/lib/sandbox.js:2595:20)
                                 at wrapped (…/sandbox.js:68:19)
                                 at getStateMe (script.js.nspanel-lovelace-ui_0.nspanel_garten:175:22)   ← hier
                                 at script.js.nspanel-lovelace-ui_0.nspanel_garten:442:22
                            

                            getStateMe ist keine Funktion aus unserem code

                            wenn du code unten einfügst, wird der vom adapter überschrieben immmer oberhalb von

                            /**
                                 ********************************************************************************
                                 ********************************************************************************
                                 ********************************************************************************
                                 ********************************************************************************
                                 ********************************************************************************
                                 ********************************************************************************
                                 ********************************************************************************
                                 *  END STOP END STOP END - No more configuration - END STOP END STOP END       *
                                 ********************************************************************************
                            

                            bleiben

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            arteckA 1 Antwort Letzte Antwort
                            0
                            • T ticaki
                              Error: TypeError: id.includes is not a function
                                   at getStateAsync (…/iobroker.javascript/build/lib/sandbox.js:2595:20)
                                   at wrapped (…/sandbox.js:68:19)
                                   at getStateMe (script.js.nspanel-lovelace-ui_0.nspanel_garten:175:22)   ← hier
                                   at script.js.nspanel-lovelace-ui_0.nspanel_garten:442:22
                              

                              getStateMe ist keine Funktion aus unserem code

                              wenn du code unten einfügst, wird der vom adapter überschrieben immmer oberhalb von

                              /**
                                   ********************************************************************************
                                   ********************************************************************************
                                   ********************************************************************************
                                   ********************************************************************************
                                   ********************************************************************************
                                   ********************************************************************************
                                   ********************************************************************************
                                   *  END STOP END STOP END - No more configuration - END STOP END STOP END       *
                                   ********************************************************************************
                              

                              bleiben

                              arteckA
                              arteckA
                              arteck
                              Developer Most Active
                              schrieb am zuletzt editiert von arteck
                              #1401

                              @ticaki sagte:

                              getStateMe

                              das ist auch meine asynchrone nur die kommt in dem script nicht vor

                              grafik.jpeg

                              zigbee hab ich, zwave auch, nuc's genauso und HA auch

                              1 Antwort Letzte Antwort
                              0
                              • T
                                T
                                ticaki
                                schrieb am zuletzt editiert von
                                #1402

                                Bei mir hat in der Vergangenheit die Fehlermeldung sich auf den transpilierten Code bezogen und nicht auf ts.

                                1. nach der funktion suchen
                                2. Kleine Änderung und Skript neu transpilieren

                                Vielleicht hilft das.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                arteckA 1 Antwort Letzte Antwort
                                0
                                • T ticaki

                                  Bei mir hat in der Vergangenheit die Fehlermeldung sich auf den transpilierten Code bezogen und nicht auf ts.

                                  1. nach der funktion suchen
                                  2. Kleine Änderung und Skript neu transpilieren

                                  Vielleicht hilft das.

                                  arteckA
                                  arteckA
                                  arteck
                                  Developer Most Active
                                  schrieb am zuletzt editiert von arteck
                                  #1403

                                  @ticaki sagte:

                                  nach der funktion suchen

                                  was soll ich nach der funktion suchen.. die ist global definiert ..hmmmmmmmmmmm

                                  da komm jetzt ein undefined um die ecke...hhhhhmmmmmmmmmmmm.. merkwürdig .. ich such mal

                                  zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • 1 13patrick37

                                    @TT-Tom Vielleicht habe ich auch einfach einen Denkfehler.

                                    Unten links "Garage" ist Pfad zur Garage. In der Garage habe ich ebenfalls ein NSPanel.
                                    Meine Überlegung war, die eingerichtete Konfiguration der Garage im global zu speichern, dass ich auch von jedem anderen Panel darauf komme. Vielleicht denke ich zu kompliziert?

                                    IMG20261025201330.jpg_compressed.jpeg

                                    T
                                    T
                                    TT-Tom
                                    schrieb am zuletzt editiert von
                                    #1404

                                    @13patrick37

                                    ja, das sollte so funktionieren. Du musst nur in dem Script von dem Garagen Panel die main von der Global verlinken. In dem Script der anderen Panels musst du eine Navigation auf die main der Global machen.

                                    Zeige mal deine script einstellungen.

                                    Gruß Tom

                                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                    Public Transport
                                    https://github.com/tt-tom17/ioBroker.public-transport
                                    https://github.com/tt-tom17/ioBroker.public-transport/wiki

                                    NSPanel Adapter Wiki
                                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                    arteckA 1 Antwort Letzte Antwort
                                    0
                                    • arteckA arteck

                                      @ticaki sagte:

                                      nach der funktion suchen

                                      was soll ich nach der funktion suchen.. die ist global definiert ..hmmmmmmmmmmm

                                      da komm jetzt ein undefined um die ecke...hhhhhmmmmmmmmmmmm.. merkwürdig .. ich such mal

                                      T
                                      T
                                      ticaki
                                      schrieb am zuletzt editiert von
                                      #1405

                                      @arteck sagte:

                                      @ticaki sagte:

                                      nach der funktion suchen

                                      was soll ich nach der funktion suchen.. die ist global definiert ..hmmmmmmmmmmm

                                      da komm jetzt ein undefined um die ecke...hhhhhmmmmmmmmmmmm.. merkwürdig .. ich such mal

                                      im skript gucken obs doch drin steht und wenn nicht noch mal transpilieren vielleicht stehts in der javascript datei.
                                      Ansonsten weiß ich nicht, im Skript wurde kaum was gemacht

                                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                      Spenden

                                      1 Antwort Letzte Antwort
                                      0
                                      • T TT-Tom

                                        @13patrick37

                                        ja, das sollte so funktionieren. Du musst nur in dem Script von dem Garagen Panel die main von der Global verlinken. In dem Script der anderen Panels musst du eine Navigation auf die main der Global machen.

                                        Zeige mal deine script einstellungen.

                                        arteckA
                                        arteckA
                                        arteck
                                        Developer Most Active
                                        schrieb am zuletzt editiert von arteck
                                        #1406

                                        hmmmmmmmmmmmmmm

                                        gibts nicht mich tritt der Elch

                                        es fehlte ein ; in meinen globalen scripten als Abschluss.. gut dass ich nur 3 davon habe

                                        ulkig dass es erst jetzt auffält

                                        zigbee hab ich, zwave auch, nuc's genauso und HA auch

                                        1 Antwort Letzte Antwort
                                        1

                                        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

                                        384

                                        Online

                                        33.1k

                                        Benutzer

                                        84.1k

                                        Themen

                                        1.4m

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

                                        • Du hast noch kein Konto? Registrieren

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