Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Regex Experte gesucht

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Regex Experte gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fuchs1978 last edited by

      Hallo, ich benötige Mal Hilfe von einem Regex Experten. Ich habe folgende Webseite

      https://aqualaatzium.de/

      Dort sind zwei Ampeln mit einem kurzen Text zur aktuellen Belegung. Ich würde dies gerne als Sprachausgabe über Alexa Ansagen lassen. Wir kann ich die beiden Stellen in ein String extrahieren? Oder lieber etwas in Javascript basteln?

      Schöne Grüße
      Carsten

      Homoran OliverIO 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @fuchs1978 last edited by

        @fuchs1978 sagte in Regex Experte gesucht:

        ich benötige

        den echten Seitenquelltext

        1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @fuchs1978 last edited by OliverIO

          @fuchs1978

          bitte genauer spezifizieren welchen Text du meinst

          Willst du das komplett oder nur den 2. Satz

          Badespaß für die ganze Familie
          Die Auslastung liegt derzeit unter 50% und ist gering.

          Mit Regex kann das etwas schwierig werden, mit javascript und cheerio ist es einfacher

          $($(".ampel-sauna div")[1]).text()
          $($(".ampel-schwimmbad div")[1]).text()
          
          F 1 Reply Last reply Reply Quote 1
          • F
            fuchs1978 @OliverIO last edited by fuchs1978

            @oliverio
            Könntest du mir vielleicht nochmal eine Hilfestellung geben? Es handelt sich um eine https Seite, da komme ich mit meinem Request nicht weiter. Wie frage ich denn eine https Seite ab?

            Zeil wäre die Ausgabe auf Alexa: Die Auslastung liegt derzeit unter 50% und ist gering.

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @fuchs1978 last edited by OliverIO

              @fuchs1978

              axios und cheerio müssen als zusätzliche npm bibliotheken in der konfiguration des javascript-adapters hinzugefügt werden.

              const cheerio = require('cheerio');
              const axios = require('axios');
              const dp_Bad = "0_userdata.0.test1";
              const dp_Sauna = "0_userdata.0.test2";
              
              async function getData() {
                  const response = await axios.get('https://aqualaatzium.de/');
                  const $ = cheerio.load(response.data);
                  let bad = $($(".ampel-sauna div")[1]).text();
                  let sauna = $($(".ampel-schwimmbad div")[1]).text();
                  log(bad);
                  log(sauna);
                  setState(dp_Bad,bad);
                  setState(dp_Sauna,sauna);
              }
              getData();
              

              ob http oder https,
              ob bibliothek axios oder request ist relativ egal
              wenn es nicht ging hast du irgendwo ein fehler eingebaut.

              das skript liefert den inhalt in 2 datenpunkten ab.
              wie man den text auf alexa bringt weiß ich nicht,
              da muss jemand anders helfen

              F 1 Reply Last reply Reply Quote 1
              • F
                fuchs1978 @OliverIO last edited by

                @oliverio said in Regex Experte gesucht:

                                                                                                                                            const cheerio = require('cheerio');                                                                                                                                                                            const axios = require('axios');                                                                                                                                                                            const dp_Bad = "0_userdata.0.test1";                                                                                                                                                                            const dp_Sauna = "0_userdata.0.test2";                                                                                                                                                                                                                                                                                                                                                         async function getData() {                                                                                                                                                                                const response = await axios.get('https://aqualaatzium.de/');                                                                                                                                                                                const $ = cheerio.load(response.data);                                                                                                                                                                                let bad = $($(".ampel-sauna div")[1]).text();                                                                                                                                                                                let sauna = $($(".ampel-schwimmbad div")[1]).text();                                                                                                                                                                                log(bad);                                                                                                                                                                                log(sauna);                                                                                                                                                                                setState(dp_Bad,bad);                                                                                                                                                                                setState(dp_Sauna,sauna);                                                                                                                                                                            }                                                                                                                                                                            getData();                                            
                

                Hab ganz herzlichen Dank, läuft perfekt! Den Rest bekomme ich auch alleine hin, es scheiterte an den Web Abfrage. 😍

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                819
                Online

                31.7k
                Users

                79.8k
                Topics

                1.3m
                Posts

                3
                6
                246
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo