Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 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. ioBroker Allgemein
  4. Name zu Telefonnummer pharsen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    681

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Name zu Telefonnummer pharsen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
20 Beiträge 4 Kommentatoren 542 Aufrufe 5 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.
  • HomoranH Homoran

    @david-g und was steht dann im Quelltext?

    David G.D Offline
    David G.D Offline
    David G.
    schrieb am zuletzt editiert von David G.
    #3

    @homoran

    Beim genannten Beispiel
    telefonbuch.txt

    Leider zu lang für hier.

    EDIT
    Die Treffer fangen immer mit:

    <div class="name" title="Deutsche Telekom">
    

    an. Auch wenn es mehrere gibt.

    Zeigt eure Lovelace-Visualisierung klick
    (Auch ideal um sich Anregungen zu holen)

    Meine Tabellen für eure Visualisierung klick

    1 Antwort Letzte Antwort
    0
    • David G.D Offline
      David G.D Offline
      David G.
      schrieb am zuletzt editiert von
      #4

      Mit dem Parser Adapter bekomme ich den Namen jetzt ausgelesen.

      Nur bringt mir das ja leider nichts, da ich dort nur eine feste URL eingeben kann und der Adapter keine URL per sendTo oder ähnlich empfangen kann.

      Bekomme ich sowas in Blockly nachgebaut?

      P. S.
      Wäre eine nette Funktion für den TR64 Adapter.
      In den Nutzungsbedinungen von Das Telefonbuch finde ich nichts was das verbietet.

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      1 Antwort Letzte Antwort
      0
      • David G.D David G.

        Hallo,

        denkt ihr es ist möglich, die Namen von Telefonnummern aus der Rückwärtssuche von Das Telefonbuch zu pharsen?

        Zumindest immer den ersten Treffer.

        Die URLs Suns ganz easy aufgebaut.
        Zb
        https://www.dastelefonbuch.de/Rückwärts-Suche/08003301000
        wenn man die Nummer der Telekom sucht.

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #5

        @david-g

        Klar,

        hab das mal eine Seitenerweiterung für das Schweizer Telefonbuch mit Spidermonkey gemacht (inklusive Download)

        Kann am Wochenende mal reinschauen

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        David G.D 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @david-g

          Klar,

          hab das mal eine Seitenerweiterung für das Schweizer Telefonbuch mit Spidermonkey gemacht (inklusive Download)

          Kann am Wochenende mal reinschauen

          David G.D Offline
          David G.D Offline
          David G.
          schrieb am zuletzt editiert von David G.
          #6

          @oliverio

          Habe es mit ChatGPT bis hierhin geschafft.

          tel.png
          (Im Log im Bild sieht man einmal eine gefundene Nummer und danach eine nicht gefundene Nummer)

          // Erfordert die 'axios' Bibliothek, die du installieren musst: npm install axios
          const axios = require('axios');
          const cheerio = require('cheerio');
          var link;
          
          // URL der Webseite
          const url = link;
          
          
          // HTTP-Anfrage an die Webseite senden
          axios.get(url)
           .then(response => {
             // Den HTML-Inhalt der Antwort erhalten
             const html = response.data;
          
             // Die HTML-Inhalte mit Cheerio parsen
             const $ = cheerio.load(html);
          
             // Das gewünschte Element mit der Klasse 'name' auswählen und den Titelwert auslesen
             const title = $('.name').attr('title');
          
             // Das Ergebnis in der Variable "result" speichern
             const result = title;
          
             // Den Titelwert ausgeben
             console.log(result);
           })
           .catch(error => {
             console.error('Fehler beim Abrufen der Seite:', error);
           });
          
          

          Schaffe es aber nicht, das Skript so anzupassen, dass ich eine Funktion mit Ergebnis nehmen kann. Wo dann im Ergebnis entweder der Name oder ein Fehler steht.

          Zeigt eure Lovelace-Visualisierung klick
          (Auch ideal um sich Anregungen zu holen)

          Meine Tabellen für eure Visualisierung klick

          OliverIOO 1 Antwort Letzte Antwort
          0
          • David G.D David G.

            @oliverio

            Habe es mit ChatGPT bis hierhin geschafft.

            tel.png
            (Im Log im Bild sieht man einmal eine gefundene Nummer und danach eine nicht gefundene Nummer)

            // Erfordert die 'axios' Bibliothek, die du installieren musst: npm install axios
            const axios = require('axios');
            const cheerio = require('cheerio');
            var link;
            
            // URL der Webseite
            const url = link;
            
            
            // HTTP-Anfrage an die Webseite senden
            axios.get(url)
             .then(response => {
               // Den HTML-Inhalt der Antwort erhalten
               const html = response.data;
            
               // Die HTML-Inhalte mit Cheerio parsen
               const $ = cheerio.load(html);
            
               // Das gewünschte Element mit der Klasse 'name' auswählen und den Titelwert auslesen
               const title = $('.name').attr('title');
            
               // Das Ergebnis in der Variable "result" speichern
               const result = title;
            
               // Den Titelwert ausgeben
               console.log(result);
             })
             .catch(error => {
               console.error('Fehler beim Abrufen der Seite:', error);
             });
            
            

            Schaffe es aber nicht, das Skript so anzupassen, dass ich eine Funktion mit Ergebnis nehmen kann. Wo dann im Ergebnis entweder der Name oder ein Fehler steht.

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #7

            @david-g
            Blockly ist nicht so meins.
            Das Skript sieht schon mal gut aus mit axios und cheerio.
            Wenn du das kopierst und als neues JavaScript Skript einfügst und dann mit setState den Inhalt von result einfach in einen DatenPunkt schreiben

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            David G.D 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @david-g
              Blockly ist nicht so meins.
              Das Skript sieht schon mal gut aus mit axios und cheerio.
              Wenn du das kopierst und als neues JavaScript Skript einfügst und dann mit setState den Inhalt von result einfach in einen DatenPunkt schreiben

              David G.D Offline
              David G.D Offline
              David G.
              schrieb am zuletzt editiert von
              #8

              @oliverio

              In das JS muss irgendwo dann ein return rein.

              Wenn ich eine leere Funktion mit Ergebnis in Blockly anlege steht da

              return 0;
              

              drinnen und er gibt eine 0 aus.
              Darein würde ich gerne die beiden Meldungen haben, die jetzt ja an 2 Stellen in das Log geschrieben werden).

              Zeigt eure Lovelace-Visualisierung klick
              (Auch ideal um sich Anregungen zu holen)

              Meine Tabellen für eure Visualisierung klick

              T 1 Antwort Letzte Antwort
              0
              • David G.D David G.

                @oliverio

                In das JS muss irgendwo dann ein return rein.

                Wenn ich eine leere Funktion mit Ergebnis in Blockly anlege steht da

                return 0;
                

                drinnen und er gibt eine 0 aus.
                Darein würde ich gerne die beiden Meldungen haben, die jetzt ja an 2 Stellen in das Log geschrieben werden).

                T Offline
                T Offline
                ticaki
                schrieb am zuletzt editiert von ticaki
                #9

                @david-g

                // Erfordert die 'axios' Bibliothek, die du installieren musst: npm install axios
                const axios = require('axios');
                
                // axios soll bei keiner Antwort nach 3 Sekunden einen Fehler auswerfen und nicht ewig weiter warten 
                axios.defaults.timeout = 3000
                
                const cheerio = require('cheerio');
                
                //der sollte eigentlich im Funktionsaufruf stehen das link in deinem Blockly
                // let link; 
                let result = ''
                // URL der Webseite
                const url = link;
                
                try {
                    // HTTP-Anfrage an die Webseite senden
                    const response = await axios.get(url)
                    // Den HTML-Inhalt der Antwort erhalten
                    const html = response.data;
                
                    // Die HTML-Inhalte mit Cheerio parsen
                    const $ = cheerio.load(html);
                    // Das gewünschte Element mit der Klasse 'name' auswählen und den Titelwert auslesen
                    const title = $('.name').attr('title');
                
                    // Das Ergebnis in der Variable "result" speichern
                    result = title;
                
                    // Den Titelwert ausgeben
                    log(result);
                } catch(error) { 
                    result = `Fehler beim Abrufen der Seite: ${error}`
                    log(result, 'error'); // hoffe ich hab nicht nachricht und type vertauscht :)
                };
                return result
                

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                David G.D 1 Antwort Letzte Antwort
                0
                • T ticaki

                  @david-g

                  // Erfordert die 'axios' Bibliothek, die du installieren musst: npm install axios
                  const axios = require('axios');
                  
                  // axios soll bei keiner Antwort nach 3 Sekunden einen Fehler auswerfen und nicht ewig weiter warten 
                  axios.defaults.timeout = 3000
                  
                  const cheerio = require('cheerio');
                  
                  //der sollte eigentlich im Funktionsaufruf stehen das link in deinem Blockly
                  // let link; 
                  let result = ''
                  // URL der Webseite
                  const url = link;
                  
                  try {
                      // HTTP-Anfrage an die Webseite senden
                      const response = await axios.get(url)
                      // Den HTML-Inhalt der Antwort erhalten
                      const html = response.data;
                  
                      // Die HTML-Inhalte mit Cheerio parsen
                      const $ = cheerio.load(html);
                      // Das gewünschte Element mit der Klasse 'name' auswählen und den Titelwert auslesen
                      const title = $('.name').attr('title');
                  
                      // Das Ergebnis in der Variable "result" speichern
                      result = title;
                  
                      // Den Titelwert ausgeben
                      log(result);
                  } catch(error) { 
                      result = `Fehler beim Abrufen der Seite: ${error}`
                      log(result, 'error'); // hoffe ich hab nicht nachricht und type vertauscht :)
                  };
                  return result
                  
                  David G.D Offline
                  David G.D Offline
                  David G.
                  schrieb am zuletzt editiert von
                  #10

                  @ticaki

                  Danke,

                  bei einem Treffer klappt es.
                  Bei einer unbekannten Nummer kommt unter result jetzt (debugbaustein als warn)

                  12:29:54.417	warn	javascript.0 (20690) script.js.Eigene_Scripte.Tests.Tel_parser: Fehler beim Abrufen der Seite: AxiosError: Request failed with status code 410
                  

                  Der Ursprungscode hat da ja eine schöne Meldung ausgegeben.

                  Zeigt eure Lovelace-Visualisierung klick
                  (Auch ideal um sich Anregungen zu holen)

                  Meine Tabellen für eure Visualisierung klick

                  T OliverIOO 2 Antworten Letzte Antwort
                  0
                  • David G.D David G.

                    @ticaki

                    Danke,

                    bei einem Treffer klappt es.
                    Bei einer unbekannten Nummer kommt unter result jetzt (debugbaustein als warn)

                    12:29:54.417	warn	javascript.0 (20690) script.js.Eigene_Scripte.Tests.Tel_parser: Fehler beim Abrufen der Seite: AxiosError: Request failed with status code 410
                    

                    Der Ursprungscode hat da ja eine schöne Meldung ausgegeben.

                    T Offline
                    T Offline
                    ticaki
                    schrieb am zuletzt editiert von
                    #11

                    @david-g

                    410 Die angeforderte Ressource wird nicht länger bereitgestellt und wurde dauerhaft entfernt.
                    

                    https://de.wikipedia.org/wiki/HTTP-Statuscode

                    btw. du solltest das nicht laufend prüfen, irgendwann kommst du auf ne banliste wegen bot :)

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    David G.D 1 Antwort Letzte Antwort
                    0
                    • David G.D David G.

                      @ticaki

                      Danke,

                      bei einem Treffer klappt es.
                      Bei einer unbekannten Nummer kommt unter result jetzt (debugbaustein als warn)

                      12:29:54.417	warn	javascript.0 (20690) script.js.Eigene_Scripte.Tests.Tel_parser: Fehler beim Abrufen der Seite: AxiosError: Request failed with status code 410
                      

                      Der Ursprungscode hat da ja eine schöne Meldung ausgegeben.

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von
                      #12

                      @david-g sagte

                      Code 410

                      Wenn du die selbe Telefonnummer über den Browser anfragst, was kommt da für eine Meldung?

                      Du solltest dem axios auf jeden Fall einen User-Agent header eines browsers mitgeben,
                      Sonst wird die abfrage leicht identifiziert das sie von einem Skript kommt.
                      Dann könnte die ip recht schnell gesperrt werden.
                      Auch würde ich die Ergebnisse cachen und die Anzahl der Abfragen pro Tag begrenzen.

                      Ggfs mal im Browser nachschauen was da im Header noch mitgeliefert wird.;

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      1 Antwort Letzte Antwort
                      0
                      • T ticaki

                        @david-g

                        410 Die angeforderte Ressource wird nicht länger bereitgestellt und wurde dauerhaft entfernt.
                        

                        https://de.wikipedia.org/wiki/HTTP-Statuscode

                        btw. du solltest das nicht laufend prüfen, irgendwann kommst du auf ne banliste wegen bot :)

                        David G.D Offline
                        David G.D Offline
                        David G.
                        schrieb am zuletzt editiert von David G.
                        #13

                        @ticaki sagte in Name zu Telefonnummer pharsen:

                        @david-g

                        410 Die angeforderte Ressource wird nicht länger bereitgestellt und wurde dauerhaft entfernt.
                        

                        https://de.wikipedia.org/wiki/HTTP-Statuscode

                        btw. du solltest das nicht laufend prüfen, irgendwann kommst du auf ne banliste wegen bot :)

                        So oft werde ich ja nicht angerufen ^^.

                        @oliverio sagte in Name zu Telefonnummer pharsen:

                        Du solltest dem axios auf jeden Fall einen User-Agent header eines browsers mitgeben,
                        Sonst wird die abfrage leicht identifiziert das sie von einem Skript kommt.
                        Dann könnte die ip recht schnell gesperrt werden.
                        Auch würde ich die Ergebnisse cachen und die Anzahl der Abfragen pro Tag begrenzen.
                        Ggfs mal im Browser nachschauen was da im Header noch mitgeliefert wird.;

                        Da bin ich überfragt.
                        Weist du, was ich noch einfügen muss?

                        Vom zusammengooglen würde ich sagen, dass ich das noch einbauen muss:

                        const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ';
                        
                        const headers = {
                          'User-Agent': userAgent,
                          // Weitere benutzerdefinierte Header, falls erforderlich
                        };
                        

                        Passt das so?
                        Nicht, dass das unplausibel ist und man noch schneller geblockt wird.

                        Zeigt eure Lovelace-Visualisierung klick
                        (Auch ideal um sich Anregungen zu holen)

                        Meine Tabellen für eure Visualisierung klick

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • David G.D David G.

                          @ticaki sagte in Name zu Telefonnummer pharsen:

                          @david-g

                          410 Die angeforderte Ressource wird nicht länger bereitgestellt und wurde dauerhaft entfernt.
                          

                          https://de.wikipedia.org/wiki/HTTP-Statuscode

                          btw. du solltest das nicht laufend prüfen, irgendwann kommst du auf ne banliste wegen bot :)

                          So oft werde ich ja nicht angerufen ^^.

                          @oliverio sagte in Name zu Telefonnummer pharsen:

                          Du solltest dem axios auf jeden Fall einen User-Agent header eines browsers mitgeben,
                          Sonst wird die abfrage leicht identifiziert das sie von einem Skript kommt.
                          Dann könnte die ip recht schnell gesperrt werden.
                          Auch würde ich die Ergebnisse cachen und die Anzahl der Abfragen pro Tag begrenzen.
                          Ggfs mal im Browser nachschauen was da im Header noch mitgeliefert wird.;

                          Da bin ich überfragt.
                          Weist du, was ich noch einfügen muss?

                          Vom zusammengooglen würde ich sagen, dass ich das noch einbauen muss:

                          const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ';
                          
                          const headers = {
                            'User-Agent': userAgent,
                            // Weitere benutzerdefinierte Header, falls erforderlich
                          };
                          

                          Passt das so?
                          Nicht, dass das unplausibel ist und man noch schneller geblockt wird.

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von OliverIO
                          #14

                          @david-g

                          Du schaust mit f12 in die Developer Tools deines Browsers.
                          Dann in den Netzwerk tab
                          Dann machst du irgendeine Web Abfrage
                          Und schaust dir irgend einen request an
                          Da stehen dann die request und die respond headers irgendwo
                          Bei request header müsste dann einer mit dem Namen user-agent sein.
                          Den kopierst du und spendest ihn mit axios bei deiner Anfrage mit.
                          Wie, das kann dir chatgpt oder die Doku von axios sagen

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          David G.D 1 Antwort Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @david-g

                            Du schaust mit f12 in die Developer Tools deines Browsers.
                            Dann in den Netzwerk tab
                            Dann machst du irgendeine Web Abfrage
                            Und schaust dir irgend einen request an
                            Da stehen dann die request und die respond headers irgendwo
                            Bei request header müsste dann einer mit dem Namen user-agent sein.
                            Den kopierst du und spendest ihn mit axios bei deiner Anfrage mit.
                            Wie, das kann dir chatgpt oder die Doku von axios sagen

                            David G.D Offline
                            David G.D Offline
                            David G.
                            schrieb am zuletzt editiert von
                            #15

                            @oliverio

                            Da haben wir zeitgleich geschrieben.
                            Hab meinen letzten Post ergänzt.

                            Lässt das?

                            Zeigt eure Lovelace-Visualisierung klick
                            (Auch ideal um sich Anregungen zu holen)

                            Meine Tabellen für eure Visualisierung klick

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • David G.D David G.

                              @oliverio

                              Da haben wir zeitgleich geschrieben.
                              Hab meinen letzten Post ergänzt.

                              Lässt das?

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #16

                              @david-g
                              ?

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              David G.D 1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @david-g
                                ?

                                David G.D Offline
                                David G.D Offline
                                David G.
                                schrieb am zuletzt editiert von David G.
                                #17

                                @oliverio
                                Passt das? (kleine Handytastatur)

                                @david-g sagte in Name zu Telefonnummer pharsen:

                                Vom zusammengooglen würde ich sagen, dass ich das noch einbauen muss:

                                const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '; const headers = { 'User-Agent': userAgent, // Weitere benutzerdefinierte Header, falls erforderlich };

                                Passt das so?
                                Nicht, dass das unplausibel ist und man noch schneller geblockt wird.

                                EDIT
                                Und hier muss wohl noch was angepasst werden:

                                const response = await axios.get(url, { headers });
                                

                                Zeigt eure Lovelace-Visualisierung klick
                                (Auch ideal um sich Anregungen zu holen)

                                Meine Tabellen für eure Visualisierung klick

                                OliverIOO 1 Antwort Letzte Antwort
                                0
                                • David G.D Offline
                                  David G.D Offline
                                  David G.
                                  schrieb am zuletzt editiert von David G.
                                  #18

                                  Hab das Skript jetzt so weit fertig.

                                  Bei einem Anruf wird die Telefonnummer vom TR64 Adapter genommen und mir das Ergebnis per Telegramm gesendet.

                                  Falls eine Durchwahl anruft, die nicht im Telefonbuch steht, wird versucht ein 1000er, 100er oder 10er Rufnummernblock aufzulösen und mit der -0 zu ersetzen.
                                  So bekommt man in vielen Fällen zumindest die Nummer der Zentrale aufgelöst.

                                  Hab das heute bestimmt schon 30x laufen lassen und wurde noch nicht geblockt.

                                  Screenshot_20230902_101401_Chrome.jpg

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id="J55+e5#Rk1jjgZgkGUoo">Telefonnummer</variable>
                                     <variable id="1+}aTgPXrN+Y7GnXo*@1">Fehler</variable>
                                     <variable id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</variable>
                                     <variable id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</variable>
                                     <variable id="b7]IRV?y6uyLj![kND(:">Ergebnis</variable>
                                   </variables>
                                   <block type="procedures_defcustomreturn" id="PuGxGLZ=_a(z.JdVyn29" x="138" y="213">
                                     <mutation statements="false">
                                       <arg name="Telefonnummer" varid="J55+e5#Rk1jjgZgkGUoo"></arg>
                                       <arg name="Fehler" varid="1+}aTgPXrN+Y7GnXo*@1"></arg>
                                     </mutation>
                                     <field name="NAME">name_aufloesen</field>
                                     <field name="SCRIPT">Ly8gRXJmb3JkZXJ0IGRpZSBheGlvcy1CaWJsaW90aGVrDQpjb25zdCBheGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7DQogDQovLyBheGlvcyBzb2xsIGJlaSBrZWluZXIgQW50d29ydCBuYWNoIDMgU2VrdW5kZW4gZWluZW4gRmVobGVyIGF1c3dlcmZlbiB1bmQgbmljaHQgZXdpZyB3ZWl0ZXIgd2FydGVuIA0KYXhpb3MuZGVmYXVsdHMudGltZW91dCA9IDMwMDANCi8vIFVzZXJnYW50IGZ1ZXIgRGllIFdlYmFuZnJhZ2UgZmVzdGxlZ2VuDQpjb25zdCB1c2VyQWdlbnQgPSAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzU4LjAuMzAyOS4xMTAgU2FmYXJpLzUzNy4zNic7DQoNCmNvbnN0IGhlYWRlcnMgPSB7DQogICdVc2VyLUFnZW50JzogdXNlckFnZW50LA0KICAvLyBXZWl0ZXJlIGJlbnV0emVyZGVmaW5pZXJ0ZSBIZWFkZXIsIGZhbGxzIGVyZm9yZGVybGljaA0KfTsNCg0KIC8vIEVyZm9yZGVydCBkaWUgY2hlZXJpby1CaWJsaW90aGVrDQpjb25zdCBjaGVlcmlvID0gcmVxdWlyZSgnY2hlZXJpbycpOw0KIA0KbGV0IHJlc3VsdCA9ICcnDQovLyBVUkwgZGVyIFdlYnNlaXRlDQpjb25zdCBuciA9IFRlbGVmb25udW1tZXI7DQpjb25zdCBsaW5rcHJlZml4ID0gJ2h0dHBzOi8vd3d3LmRhc3RlbGVmb25idWNoLmRlL1IlQzMlQkNja3clQzMlQTRydHMtU3VjaGUvJw0KY29uc3QgdXJsID0gbGlua3ByZWZpeCArIG5yOw0KIA0KdHJ5IHsNCiAgICAvLyBIVFRQLUFuZnJhZ2UgYW4gZGllIFdlYnNlaXRlIHNlbmRlbg0KICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHVybCwgeyBoZWFkZXJzIH0pOw0KICAgIC8vIERlbiBIVE1MLUluaGFsdCBkZXIgQW50d29ydCBlcmhhbHRlbg0KICAgIGNvbnN0IGh0bWwgPSByZXNwb25zZS5kYXRhOw0KIA0KICAgIC8vIERpZSBIVE1MLUluaGFsdGUgbWl0IENoZWVyaW8gcGFyc2VuDQogICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTsNCiAgICAvLyBEYXMgZ2V3w7xuc2NodGUgRWxlbWVudCBtaXQgZGVyIEtsYXNzZSAnbmFtZScgYXVzd8OkaGxlbiB1bmQgZGVuIFRpdGVsd2VydCBhdXNsZXNlbg0KICAgIGNvbnN0IHRpdGxlID0gJCgnLm5hbWUnKS5hdHRyKCd0aXRsZScpOw0KIA0KICAgIC8vIERhcyBFcmdlYm5pcyBpbiBkZXIgVmFyaWFibGUgInJlc3VsdCIgc3BlaWNoZXJuDQogICAgcmVzdWx0ID0gdGl0bGU7DQogDQogICAgLy8gRGVuIFRpdGVsd2VydCBhdXNnZWJlbg0KICAgIGxvZyhyZXN1bHQpOw0KfSBjYXRjaChlcnJvcikgeyANCiAgICByZXN1bHQgPSBGZWhsZXI7DQoNCn07DQpyZXR1cm4gcmVzdWx0</field>
                                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                   </block>
                                   <block type="variables_set" id="qZeU/eSym,2V/}/GMR92" x="138" y="263">
                                     <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                     <value name="VALUE">
                                       <block type="text" id="E^/wPJqz@8M[44W;T/xj">
                                         <field name="TEXT">Nummer kann nicht aufgelöst werden.</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="on" id="Xv{H)%Nvl-_Nh-0IyYXp">
                                         <field name="OID">tr-064.0.callmonitor.inbound.timestamp</field>
                                         <field name="CONDITION">any</field>
                                         <field name="ACK_CONDITION"></field>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="Sv=zV=(9:j76J(S|xp_8">
                                             <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                             <value name="VALUE">
                                               <block type="get_value" id="|/2-uZV-eh}e[TnIRg@3">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">tr-064.0.callmonitor.inbound.caller</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="variables_set" id="aBYpOe/Y@0(w]ZkPv_ak">
                                                 <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                 <value name="VALUE">
                                                   <block type="procedures_callcustomreturn" id="HtzRs`HGBbed[dK6xkAv">
                                                     <mutation name="name_aufloesen">
                                                       <arg name="Telefonnummer"></arg>
                                                       <arg name="Fehler"></arg>
                                                     </mutation>
                                                     <value name="ARG0">
                                                       <block type="variables_get" id="`cR)?;mG~E4`Y.@.u:+b">
                                                         <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                                       </block>
                                                     </value>
                                                     <value name="ARG1">
                                                       <block type="variables_get" id="ZMK2e)}1UF7!3,D)d#!y">
                                                         <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="controls_if" id="uQ?Cv[pa9gp(Wb.ZjZXW">
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="$^lNV6zho8^Cf[j1W]]D">
                                                         <field name="OP">EQ</field>
                                                         <value name="A">
                                                           <block type="variables_get" id="d5+~3|PQ,PhdD?ihh!N]">
                                                             <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="variables_get" id="RR[4^U~Tw[(?YCevxupG">
                                                             <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="variables_set" id="vL0F+V)Qf8@qU[m-7Z_u">
                                                         <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                         <value name="VALUE">
                                                           <block type="procedures_callcustomreturn" id="+zGg22KeXxQ(e6!{E@(d">
                                                             <mutation name="name_aufloesen">
                                                               <arg name="Telefonnummer"></arg>
                                                               <arg name="Fehler"></arg>
                                                             </mutation>
                                                             <value name="ARG0">
                                                               <block type="text_join" id="OhK;TQs?tI2%+Sw09#-}">
                                                                 <mutation items="2"></mutation>
                                                                 <value name="ADD0">
                                                                   <block type="text_getSubstring" id="c~!Im%O-])HX$IvOKzK]">
                                                                     <mutation at1="true" at2="true"></mutation>
                                                                     <field name="WHERE1">FROM_START</field>
                                                                     <field name="WHERE2">FROM_START</field>
                                                                     <value name="STRING">
                                                                       <block type="variables_get" id="3:6Bhc}e=4wG5}D@5D#V">
                                                                         <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="AT1">
                                                                       <block type="math_number" id="Epnj`xb0Rv+!+!/8/91+">
                                                                         <field name="NUM">1</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="AT2">
                                                                       <block type="math_number" id="7I3K${1ERMPBG5)KYEzb">
                                                                         <field name="NUM">-2</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ADD1">
                                                                   <block type="math_number" id="z3@%HDR+|Gy=}qq.oalL">
                                                                     <field name="NUM">0</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="ARG1">
                                                               <block type="variables_get" id="QlffETF:^clJ*WI-2#n6">
                                                                 <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="controls_if" id="?TMWhGl@LTh=dmYUI0EG">
                                                             <value name="IF0">
                                                               <block type="logic_compare" id="SuK#j3s:f?r^|8@^t?yZ">
                                                                 <field name="OP">EQ</field>
                                                                 <value name="A">
                                                                   <block type="variables_get" id="[yEC{}4/d^qPR.+9HVlL">
                                                                     <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <block type="variables_get" id="wCdH5p|B1drd;%Xb6x1`">
                                                                     <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <statement name="DO0">
                                                               <block type="variables_set" id="DQ27B:|BSYLxCyPff-!X">
                                                                 <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                 <value name="VALUE">
                                                                   <block type="procedures_callcustomreturn" id=",Lv`sNVcP@rZ*opD3j:S">
                                                                     <mutation name="name_aufloesen">
                                                                       <arg name="Telefonnummer"></arg>
                                                                       <arg name="Fehler"></arg>
                                                                     </mutation>
                                                                     <value name="ARG0">
                                                                       <block type="text_join" id="*TbgmhdXJmEB*m^/z?6f">
                                                                         <mutation items="2"></mutation>
                                                                         <value name="ADD0">
                                                                           <block type="text_getSubstring" id="k*;MUVHM0s-dQg;2}4P7">
                                                                             <mutation at1="true" at2="true"></mutation>
                                                                             <field name="WHERE1">FROM_START</field>
                                                                             <field name="WHERE2">FROM_START</field>
                                                                             <value name="STRING">
                                                                               <block type="variables_get" id="s63aw=l;mAGYCB`(!.ct">
                                                                                 <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="AT1">
                                                                               <block type="math_number" id="m=2!e(?;/u0P^*0YGt35">
                                                                                 <field name="NUM">1</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="AT2">
                                                                               <block type="math_number" id="l-+uYj.(e/G+_gfHY_3E">
                                                                                 <field name="NUM">-3</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <value name="ADD1">
                                                                           <block type="math_number" id="me(uy)[;Jm|wO^fK*(j5">
                                                                             <field name="NUM">0</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ARG1">
                                                                       <block type="variables_get" id="ul?lfeh5e5gIbW6vRwL#">
                                                                         <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="controls_if" id="quQ}V}P)s9TYqml6q3dm">
                                                                     <value name="IF0">
                                                                       <block type="logic_compare" id="{ypl)IPiz`BQ3a,~sxw|">
                                                                         <field name="OP">EQ</field>
                                                                         <value name="A">
                                                                           <block type="variables_get" id="!N;VgE4=Q%P$zUC$Sb8|">
                                                                             <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                           </block>
                                                                         </value>
                                                                         <value name="B">
                                                                           <block type="variables_get" id="V/o;IqhJ0790dw]Uu~-P">
                                                                             <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                     <statement name="DO0">
                                                                       <block type="variables_set" id="S}gQ7.#$IIAq}P0mW]Au">
                                                                         <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                         <value name="VALUE">
                                                                           <block type="procedures_callcustomreturn" id="cV-{tf9laRJE4lBX--%j">
                                                                             <mutation name="name_aufloesen">
                                                                               <arg name="Telefonnummer"></arg>
                                                                               <arg name="Fehler"></arg>
                                                                             </mutation>
                                                                             <value name="ARG0">
                                                                               <block type="text_join" id="b|~G~wF+a(T[@;4ub[OJ">
                                                                                 <mutation items="2"></mutation>
                                                                                 <value name="ADD0">
                                                                                   <block type="text_getSubstring" id="Dck*W@:C+Cl{sb6{Qd5;">
                                                                                     <mutation at1="true" at2="true"></mutation>
                                                                                     <field name="WHERE1">FROM_START</field>
                                                                                     <field name="WHERE2">FROM_START</field>
                                                                                     <value name="STRING">
                                                                                       <block type="variables_get" id="~42rXq-_HwtO?HDctGY5">
                                                                                         <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="AT1">
                                                                                       <block type="math_number" id="$Sy^4GJVDg5@m764R*-#">
                                                                                         <field name="NUM">1</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="AT2">
                                                                                       <block type="math_number" id=";Na{jk%BYIWHWY,W8@K4">
                                                                                         <field name="NUM">-4</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="ADD1">
                                                                                   <block type="math_number" id="]v%B9ft%e#dq32#q`9)x">
                                                                                     <field name="NUM">0</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ARG1">
                                                                               <block type="variables_get" id="Y]%mr=$G1B1IzKB/9HXB">
                                                                                 <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <next>
                                                                           <block type="controls_if" id="DO?`ySv9-x!=QH`65ww*">
                                                                             <value name="IF0">
                                                                               <block type="logic_compare" id="PdJe:e+7MgL1oxHmec/6">
                                                                                 <field name="OP">EQ</field>
                                                                                 <value name="A">
                                                                                   <block type="variables_get" id="$Im#!]YW8ohnG[*7XY*z">
                                                                                     <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                                   </block>
                                                                                 </value>
                                                                                 <value name="B">
                                                                                   <block type="variables_get" id="]tPlcJQvW-:#_Xs[UTE@">
                                                                                     <field name="VAR" id="eS7Wy[nm^,,qh:kEi-*B">Fehlermeldung</field>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </value>
                                                                             <statement name="DO0">
                                                                               <block type="variables_set" id="#lPW;cMcS*PI~ykpr)3v">
                                                                                 <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                                 <value name="VALUE">
                                                                                   <block type="text_join" id="k)#Nfj-F7MIJ|`b~s^rt">
                                                                                     <mutation items="3"></mutation>
                                                                                     <value name="ADD0">
                                                                                       <block type="variables_get" id="C!z8D?i,w?z?$gbhmPqZ">
                                                                                         <field name="VAR" id="tP|LcMf-I@-TA@B5Bf^h">Ursprungsnummer</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ADD1">
                                                                                       <block type="text_newline" id="hmA7gnlC/jW@)i8_n:AP">
                                                                                         <field name="Type">\n</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ADD2">
                                                                                       <block type="variables_get" id="|/h[/pfy*PZ7a~3r*|em">
                                                                                         <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                               </block>
                                                                             </statement>
                                                                           </block>
                                                                         </next>
                                                                       </block>
                                                                     </statement>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                     <next>
                                                       <block type="telegram" id=",)m~a8ee(xmd$~Km3z8a">
                                                         <field name="INSTANCE">.0</field>
                                                         <field name="LOG"></field>
                                                         <field name="SILENT">FALSE</field>
                                                         <field name="PARSEMODE">default</field>
                                                         <field name="ESCAPING">FALSE</field>
                                                         <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
                                                         <value name="MESSAGE">
                                                           <shadow type="text" id="b}0y=T$uDzZ3%%Ru,.ZB">
                                                             <field name="TEXT">text</field>
                                                           </shadow>
                                                           <block type="variables_get" id="3?I/hwX?0N#Me8xY?efs">
                                                             <field name="VAR" id="b7]IRV?y6uyLj![kND(:">Ergebnis</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  

                                  Zeigt eure Lovelace-Visualisierung klick
                                  (Auch ideal um sich Anregungen zu holen)

                                  Meine Tabellen für eure Visualisierung klick

                                  1 Antwort Letzte Antwort
                                  0
                                  • David G.D David G.

                                    @oliverio
                                    Passt das? (kleine Handytastatur)

                                    @david-g sagte in Name zu Telefonnummer pharsen:

                                    Vom zusammengooglen würde ich sagen, dass ich das noch einbauen muss:

                                    const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '; const headers = { 'User-Agent': userAgent, // Weitere benutzerdefinierte Header, falls erforderlich };

                                    Passt das so?
                                    Nicht, dass das unplausibel ist und man noch schneller geblockt wird.

                                    EDIT
                                    Und hier muss wohl noch was angepasst werden:

                                    const response = await axios.get(url, { headers });
                                    
                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von
                                    #19

                                    @david-g
                                    Er sieht ein wenig kurz aus.
                                    Beim iPad sieht er so aus

                                    Mozilla/5.0 (iPad; CPU OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/116.0.5845.118 Mobile/15E148 Safari/604.1

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    David G.D 1 Antwort Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

                                      @david-g
                                      Er sieht ein wenig kurz aus.
                                      Beim iPad sieht er so aus

                                      Mozilla/5.0 (iPad; CPU OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/116.0.5845.118 Mobile/15E148 Safari/604.1

                                      David G.D Offline
                                      David G.D Offline
                                      David G.
                                      schrieb am zuletzt editiert von
                                      #20

                                      @oliverio

                                      Ja, hab ihn zwischenzeitlich korrigiert:

                                      const userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36';
                                      

                                      Ist aber ein Beispiel was ich so online gefunden habe.

                                      Zeigt eure Lovelace-Visualisierung klick
                                      (Auch ideal um sich Anregungen zu holen)

                                      Meine Tabellen für eure Visualisierung klick

                                      1 Antwort Letzte Antwort
                                      0

                                      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
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      464

                                      Online

                                      32.7k

                                      Benutzer

                                      82.6k

                                      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