Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Adapter - Parser (regEx)

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Adapter - Parser (regEx)

Scheduled Pinned Locked Moved Tester
268 Posts 43 Posters 137.8k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mrniceguy
    wrote on last edited by
    #226

    Da Wunderground demnächst seine Api einstellen wird suche ich eine neue Möglichkeit auf andere Weise den UV INdex zu ermitteln.

    Kann mir einer erklären, wie ich mit dem Parser den UV Index der folgenden Seite auslesen kann ?

    https://www.wetter.de/deutschland/wette … tuell.html

    Auf der Seite wird der Wert als Zahl ausgegeben.

    Vielen Dank

    1 Reply Last reply
    0
    • nik82N Offline
      nik82N Offline
      nik82
      Most Active
      wrote on last edited by
      #227

      Hallo,

      ich hab heute mein Parser Adapter aktualisiert, seit dem parst er mit diesem Regex meine Seite nicht mehr, ist vor dem Update sauber gegangen,

      hat sich da was geändert?

      Ich will quasi den Wert in der zweiten Zeile mit "1102" parsen.

      Hier der Screenshot:

      6616_parser.jpg

      Schonmal vielen Dank im Voraus.

      1 Reply Last reply
      0
      • nik82N Offline
        nik82N Offline
        nik82
        Most Active
        wrote on last edited by
        #228

        Hat sich erledigt, anscheinend nimmt der Parser den Begriff "\n" also Zeilensprung nicht mehr wahr.

        Habs jetzt mit "(\d+,?\d? Watt)" hinbekommen.

        1 Reply Last reply
        0
        • I Offline
          I Offline
          icecube86
          wrote on last edited by icecube86
          #229

          Hallo zusammen,

          ich muss folgende Daten aus folgender URL auslesen:

          https://measurements.mobile-alerts.eu/H … XXXXXXXXXX

          0,0 mm

          3,9 C

          72%

          Die Werte sind weiß hinterlegt

          Hab aber echt überhaupt keinen Plan wie ich da ran komme.

          Oder wie ich den Code kürzer fassen kann.

          Vorab Danke

          <!DOCTYPE html>
          <html>
          <head>
              <meta charset="utf-8" />
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Sensor &#220;berblick</title>
              <link href="/Content/css?v=Eswk_2H6Ss2i4k1dsN9Z3Pw8JisA8ojhWaoiEJ001" rel="stylesheet"/>
          
              <script src="/bundles/modernizr?v=inCVuEFe6J4Q07A0AcRsbJic_UE5MwpRMNtk94TE1"></script>
          
          </head>
          <body>
              <div class="navbar navbar-inverse navbar-fixed-top">
                  <div class="container">
                      <div class="navbar-header">
                          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                              <span class="icon-bar"></span>
                              <span class="icon-bar"></span>
                              <span class="icon-bar"></span>
                          </button>
                          <div class="navbar-brand">MOBILE ALERTS</div>
                      </div>
                      <div class="navbar-collapse collapse">
                          <ul class="nav navbar-nav">
                              <li><a href="/">Home</a></li>
                                  <li><a href="/Home/SensorsOverview?phoneid=85032269">Sensoren</a></li>
                                  <li><a href="/Home/Actions?phoneid=85032269">Aktionslog</a></li>
          
                                  <li><a href="/Home/Imprint?phoneid=85032269">Impressum</a></li>
                                  <li><a href="/Home/Privacy?phoneid=85032269">Datenschutzerkl&#228;rung</a></li>
                          </ul>
                      </div>
                  </div>
              </div>
              <div class="container body-content">
                  
          
          
          <h3>&#220;berblick f&#252;r Phone ID 85032269</h3>
          
          <p><a href="/">Zur&#252;ck zu Home</a></p>
          
          
          
          <div class="panel panel-default">
              <div class="panel-body">
                  <div class="sensor">
          
          <div class="sensor-header">
              <h3>
                  <a href="/Home/MeasurementDetails?deviceid=0869C700&amp;vendorid=E1F232-3A62-44F3-8DA6-B586958D91D1&amp;appbundle=de.synertronixx.remotemonitor">Regensensor</a>
              </h3>
              <div class="sensor-component">
                  <h5>ID</h5>
                  <h4>0869C700</h4>
              </div>
          </div>
          
          <div class="nofloat"></div>
          
              <div class="sensor-component">
                  <h5>Zeitpunkt</h5>
                  <h4>14.02.2019 11:27:17</h4>
              </div>
              <div class="sensor-component">
                  <h5>Regen</h5>
                  <h4>0,0 mm</h4>
              </div>
                  </div>
              </div>
          </div>
          
          <div class="panel panel-default">
              <div class="panel-body">
                  <div class="sensor">
          
          <div class="sensor-header">
              <h3>
                  <a href="/Home/MeasurementDetails?deviceid=0320532F8&amp;vendorid=E1F232BB-3A62-44F3-8DA6-B586958D&amp;appbundle=de.synertronixx.remotemonitor">Temperatur Garage</a>
              </h3>
              <div class="sensor-component">
                  <h5>ID</h5>
                  <h4>0320532F84</h4>
              </div>
          </div>
          
          <div class="nofloat"></div>
          
              <div class="sensor-component">
                  <h5>Zeitpunkt</h5>
                  <h4>16.02.2019 09:52:07</h4>
              </div>
              <div class="sensor-component">
                  <h5>Temperatur</h5>
                  <h4>3,9 C</h4>
              </div>
              <div class="sensor-component">
                  <h5>Luftfeuchte</h5> <!-- Luftfeuchtigkeit -->
                  <h4>72%</h4>
              </div>
                  </div>
              </div>
          </div>
                  <hr />
                  <footer>
                      <p>&copy; 2019 - DATA INFORMATION SERVICES GmbH</p>
                  </footer>
              </div>
          
              <script src="/bundles/jquery?v=DilzeZuJxdbQsfc_JOwsWB4VFDhTPM73urYeggaKdL81"></script>
          
              <script src="/bundles/bootstrap?v=7Xzbs2X8mMtYC4-Iw230CaK9M6od8KC4beA8yw1"></script>
          
              
          </body>
          </html>
          1 Reply Last reply
          0
          • I Offline
            I Offline
            icecube86
            wrote on last edited by icecube86
            #230

            Keiner eine Idee? - ich vermute das man die URL auch noch weiter detailieren kann, sodass nur die entsprechenden Werte ausgegeben werden, aber auch da steh ich auf dem Schlauch. Wäre echt dankbar wenn einer einen tipp hätte

            HomoranH 1 Reply Last reply
            0
            • I icecube86

              Keiner eine Idee? - ich vermute das man die URL auch noch weiter detailieren kann, sodass nur die entsprechenden Werte ausgegeben werden, aber auch da steh ich auf dem Schlauch. Wäre echt dankbar wenn einer einen tipp hätte

              HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #231

              @icecube86dazu müsste ich am PC sitzen
              An Handy ist das nicht so dolle.

              Ich hoffe ich denke da heute Nachmittag dran

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • DiginixD Offline
                DiginixD Offline
                Diginix
                wrote on last edited by Diginix
                #232

                Ich versuche mich auch gerade an dem Parser. In der Instanz Konfiguration funktioniert das RegEx im Tester. In Onlinetest ebenso. Nur bei der eigentlichen Arbeit des Adapters bekomme ich immer nur den Error 0x44 Cannot find number in answer for parser.0.

                Edit: Das Sonderzeichen ° war das Problem. Das html ist nicht utf-8 und dadurch hat das Zeichen im RegEx nicht gematcht.

                ..:: So long! Tom ::..

                NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                1 Reply Last reply
                0
                • Q Offline
                  Q Offline
                  Qlink
                  wrote on last edited by
                  #233

                  Hi Leute,

                  ich habe nun endlich einen Weg gefunden wie ich unter Windows die Sensordaten auslesen und per Webserver abrufen kann.
                  Jetzt möchte ich die Daten gerne per Parser Adapter in iobroker bekommen, bekomme das mit regex101.com aber nicht mal ansatzweise hin. Verstehe nur Bahnhof ...

                  Es wäre toll wenn mir jemand Starthilfe geben könnte.

                  Hier die Website Daten:
                  hwinfo.txt
                  Ich möchte z.B. den Wert "Core #0 Usage", "SensorValue": "5,3" auslesen

                  oder "CPU Package", "SensorValue": "37"

                  oder "SensorClass": "S.M.A.R.T.: INTEL SSDSA2CW120G3 (CVPR344400F1120LGN)",
                  "SensorName": "Drive Remaining Life",
                  "SensorValue": "99",

                  usw.

                  Danke für eure Hilfe.

                  1 Reply Last reply
                  0
                  • Q Offline
                    Q Offline
                    Qlink
                    wrote on last edited by Qlink
                    #234

                    hätte mir mal folgendes zusammengebastelt:

                    (?<="Core #3 VID",)\n "SensorValue": "[0-9]+(,[0-9]+)?

                    aber damit fehlt mir die Stelle vor dem Komma und er nimmt mir auch das Wort SensorValue mit:

                    regex.PNG

                    https://regex101.com/r/oHCIgq/2

                    Wie bekomme ich die 2 Sachen weg ?

                    DiginixD 1 Reply Last reply
                    0
                    • Q Qlink

                      hätte mir mal folgendes zusammengebastelt:

                      (?<="Core #3 VID",)\n "SensorValue": "[0-9]+(,[0-9]+)?

                      aber damit fehlt mir die Stelle vor dem Komma und er nimmt mir auch das Wort SensorValue mit:

                      regex.PNG

                      https://regex101.com/r/oHCIgq/2

                      Wie bekomme ich die 2 Sachen weg ?

                      DiginixD Offline
                      DiginixD Offline
                      Diginix
                      wrote on last edited by Diginix
                      #235

                      @Qlink

                      Core #3 VID",\s*"SensorValue": "(\d+,\d+)",
                      

                      Die runde Klammer kommt nur um den Teil den du auch als Ergebnis willst. Du hast nur die Nachkommastelle in Klammern und den Namen "Core..." brauchst du gar nicht.
                      Den trägst du im Parser Adapter als Namen des Objektes ein. So bekommt das Objekt dann nur den eigentlichen Wert 0,7...
                      Der Parser trimmt bei mir schon alle Zeilenumbrüche usw. Der RegEx für den Adapter darf als nicht mehr nach Zeilenumbrüchen suchen. Daher müsste es wohl dann im Adapter so aussehen:

                      Core #3 VID",.*"SensorValue": "(\d+,\d+)",
                      

                      ..:: So long! Tom ::..

                      NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                      1 Reply Last reply
                      0
                      • Q Offline
                        Q Offline
                        Qlink
                        wrote on last edited by
                        #236

                        @Diginix

                        Danke für deine Hilfe!
                        Mit deinem ersten Vorschlag hab ich den Nuller vor dem Komma auch schonmal dabei. D.h. der Wert wäre soweit schonmal vollständig.
                        Den Name Core... brauche ich glaube ich schon in der Abfrage, da das Format "SensorValue" ... mit genau dem Wert öfters auf der Homepage vorkommt und ich sonst nicht wüsste wie ich den richtigen Wert erwische ...

                        Mit deinem zweiten Vorschlag kommt allerdings auf regex101.com nur "no matches found"

                        DiginixD 1 Reply Last reply
                        0
                        • HomoranH Do not disturb
                          HomoranH Do not disturb
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by Homoran
                          #237

                          Der ioBroker Parser schein mit dem \n nicht zurechtzukommen.
                          Gib mir ein paar Minuten, ich teste es mal.

                          EDIT:
                          probiere das mal:

                          Core #3 VID"[^\:]+:\s\"(\d\,\d+)
                          

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          HomoranH 1 Reply Last reply
                          0
                          • Q Offline
                            Q Offline
                            Qlink
                            wrote on last edited by
                            #238

                            @Homoran

                            hmm da hab ich bei regex101 zwar den vollen Wert, aber unter Full Match auch wieder Core #3 VID ... dabei:
                            siehe hier:
                            regex.PNG

                            https://regex101.com/r/oHCIgq/3

                            Das hätte ich dann ja auch in iobroker bei den objects dabei, was mir den Zahlenwert unbrauchbar macht oder habe ich hier einen Denkfehler ?

                            HomoranH 1 Reply Last reply
                            0
                            • HomoranH Homoran

                              Der ioBroker Parser schein mit dem \n nicht zurechtzukommen.
                              Gib mir ein paar Minuten, ich teste es mal.

                              EDIT:
                              probiere das mal:

                              Core #3 VID"[^\:]+:\s\"(\d\,\d+)
                              
                              HomoranH Do not disturb
                              HomoranH Do not disturb
                              Homoran
                              Global Moderator Administrators
                              wrote on last edited by
                              #239

                              @Homoran sagte in Adapter - Parser (regEx):

                              Der ioBroker Parser schein mit dem \n nicht zurechtzukommen.
                              Gib mir ein paar Minuten, ich teste es mal.

                              EDIT:
                              probiere das mal:

                              Core #3 VID"[^\:]+:\s\"(\d\,\d+)
                              

                              EDIT2:
                              das ganze lässt sich zum einen noch verkürzen, zum anderen noch variabler gestalten:

                              Core[^\:]+:\s\"(\d+\,\d+)
                              

                              Jetzt erwischst du alles mit "Core" über den gleichen RegEx und du musst im Parser-Adapter unter "Num" das gewünschte Ergebnis rausfiltern

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Reply Last reply
                              0
                              • Q Qlink

                                @Homoran

                                hmm da hab ich bei regex101 zwar den vollen Wert, aber unter Full Match auch wieder Core #3 VID ... dabei:
                                siehe hier:
                                regex.PNG

                                https://regex101.com/r/oHCIgq/3

                                Das hätte ich dann ja auch in iobroker bei den objects dabei, was mir den Zahlenwert unbrauchbar macht oder habe ich hier einen Denkfehler ?

                                HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by Homoran
                                #240

                                @Qlink sagte in Adapter - Parser (regEx):

                                habe ich hier einen Denkfehler ?

                                Ja!

                                Das Ergebnis ist die Group (grün)

                                der full match (blau) ist alles was du zur identifizierung dieser Group verwendest

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Reply Last reply
                                0
                                • Q Offline
                                  Q Offline
                                  Qlink
                                  wrote on last edited by
                                  #241

                                  ahhh okay und im parser Adapter passiert erst die unterscheidung welchen Wert über NUM !
                                  Ich glaub jetzt hab ichs :)

                                  Ich werds mal so versuchen anzulegen und schaue wie es sich verhält.

                                  Vielen Dank für die Hilfe!

                                  Beste Grüße

                                  HomoranH 1 Reply Last reply
                                  0
                                  • Q Qlink

                                    @Diginix

                                    Danke für deine Hilfe!
                                    Mit deinem ersten Vorschlag hab ich den Nuller vor dem Komma auch schonmal dabei. D.h. der Wert wäre soweit schonmal vollständig.
                                    Den Name Core... brauche ich glaube ich schon in der Abfrage, da das Format "SensorValue" ... mit genau dem Wert öfters auf der Homepage vorkommt und ich sonst nicht wüsste wie ich den richtigen Wert erwische ...

                                    Mit deinem zweiten Vorschlag kommt allerdings auf regex101.com nur "no matches found"

                                    DiginixD Offline
                                    DiginixD Offline
                                    Diginix
                                    wrote on last edited by Diginix
                                    #242

                                    @Qlink Mein zweiter Vorschlag war ja auch für den Parser. Hab ja geschrieben dass der Adapter keinen Zeilenumbruch braucht.
                                    Um mit regex101 wirklich den regex für den Adapter erarbeiten zu können, muss man die Quell Daten "minified" machen. Also alle Einrückungen und Zeilenumbrüche entfernen.
                                    Der Rest wurde hier glaube ausreichend erklärt.

                                    ..:: So long! Tom ::..

                                    NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                                    1 Reply Last reply
                                    0
                                    • Q Qlink

                                      ahhh okay und im parser Adapter passiert erst die unterscheidung welchen Wert über NUM !
                                      Ich glaub jetzt hab ichs :)

                                      Ich werds mal so versuchen anzulegen und schaue wie es sich verhält.

                                      Vielen Dank für die Hilfe!

                                      Beste Grüße

                                      HomoranH Do not disturb
                                      HomoranH Do not disturb
                                      Homoran
                                      Global Moderator Administrators
                                      wrote on last edited by
                                      #243

                                      @Qlink sagte in Adapter - Parser (regEx):

                                      im parser Adapter passiert erst die unterscheidung welchen Wert über NUM !

                                      Ja!

                                      Entweder musst du für jeden Fall ein eindeutiges RegEx bauen, so dass es nur ein match gibt, oder du nimmst ein möglichst universelles (aber Achtung, da sollte kein Mist bei rauskommen) und filterst dann die z.B.21 matches über die Num

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      DiginixD 1 Reply Last reply
                                      0
                                      • HomoranH Homoran

                                        @Qlink sagte in Adapter - Parser (regEx):

                                        im parser Adapter passiert erst die unterscheidung welchen Wert über NUM !

                                        Ja!

                                        Entweder musst du für jeden Fall ein eindeutiges RegEx bauen, so dass es nur ein match gibt, oder du nimmst ein möglichst universelles (aber Achtung, da sollte kein Mist bei rauskommen) und filterst dann die z.B.21 matches über die Num

                                        DiginixD Offline
                                        DiginixD Offline
                                        Diginix
                                        wrote on last edited by
                                        #244

                                        @Homoran Ich bevorzuge eindeutige Matches so es denn unique Werte gibt mit denen das möglich ist. Wenn man mehrere Werte aus einer Quelle will, muss man so oder so mehrere Objekte mit jeweils einem RegEx erstellen. Man kann natürlich bei z.B. 3 Werten und einem universellen RegEx mit 3 Klammerpaaren dann mit Num 0-2 arbeiten, aber ich hab eben lieber 3 verschiedene RegEx die exakt nur da matchen wo einer der 3 Werte existiert.
                                        Je nach Quelldaten kann es aber sein dass man Num braucht.

                                        ..:: So long! Tom ::..

                                        NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                                        HomoranH 1 Reply Last reply
                                        0
                                        • DiginixD Diginix

                                          @Homoran Ich bevorzuge eindeutige Matches so es denn unique Werte gibt mit denen das möglich ist. Wenn man mehrere Werte aus einer Quelle will, muss man so oder so mehrere Objekte mit jeweils einem RegEx erstellen. Man kann natürlich bei z.B. 3 Werten und einem universellen RegEx mit 3 Klammerpaaren dann mit Num 0-2 arbeiten, aber ich hab eben lieber 3 verschiedene RegEx die exakt nur da matchen wo einer der 3 Werte existiert.
                                          Je nach Quelldaten kann es aber sein dass man Num braucht.

                                          HomoranH Do not disturb
                                          HomoranH Do not disturb
                                          Homoran
                                          Global Moderator Administrators
                                          wrote on last edited by
                                          #245

                                          @Diginix
                                          ich eigentlich auch.

                                          Nur für Einsteiger mit dem Parser-Adapter kann es einfacher sein, den RegEx zu kopieren und die num einzustellen

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          637

                                          Online

                                          32.5k

                                          Users

                                          81.7k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe