FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: neyzen am 04 Oktober 2019, 12:18:37

Titel: Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 04 Oktober 2019, 12:18:37
Hallo,

ich brauche etwas Hilfe für ein Regex.

Ich habe folgende Ausschnitt aus einem html code von einer Webseite. (Falls notwendig,kann ich auch den gesamten html code einfügen)

</div>
            <div class="w3-col m2 s4">
                <div class="tpt-cell" data-vakit-name="gunes">
                    <div class="tpt-title">Sonnenaufgang </div>
                    <div class="tpt-time">07:18</div>
                </div>
            </div>


Ich möchte mit dem HTTPMOD den Sonnenaufgang mit der Uhrzeit 7:18 abgreifen.

Folgendes hab ich schon


defmod Namaz HTTPMOD https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart 60
attr Namaz userattr reading01Name reading01Regex
attr Namaz enableControlSet 1
attr Namaz reading01Name Sonnenaufgang
attr Namaz reading01Regex tpt-time[^\d]+([\d\.]).*
attr Namaz room test


bekomme dan folgendes Reading
setstate Namaz 2019-10-04 12:13:08 Sonnenaufgang 3

Das reading01Regex scheint nicht zu passen. Kann mir hier jemand behilflich sein.

Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 12:24:53
tpt-time">([\d:]+)

https://regex101.com/ ist dein Freund
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: MadMax-FHEM am 04 Oktober 2019, 12:25:17
Mal das hier probieren:

tpt-time[^\d]+([\d\.]....)

Vorausgesetzt die Uhrzeit ist immer hh:mm

Hier kannst du testen: https://regex101.com/

EDIT: die Antwort von amenomade war schneller und ist besser/unabhängiger vom Format der Uhrzeit... Oh amenomann ;)

Gruß, Joachim
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 12:32:50
Zitat von: MadMax-FHEM am 04 Oktober 2019, 12:25:17
Oh amenomann ;)
1-1 ;)
oder sogar 10^x:10^x, ich weiss nicht mehr genau :D
Mannomann!
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: frank am 04 Oktober 2019, 12:35:54
was spricht zb gegen das astro modul?
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 12:42:52
Wusste nicht, dass das Astro Modul, die Gebetszeit der Muslime kalkulieren kann...
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: MadMax-FHEM am 04 Oktober 2019, 13:00:17
Zitat von: amenomade am 04 Oktober 2019, 12:42:52
Wusste nicht, dass das Astro Modul, die Gebetszeit der Muslime kalkulieren kann...

Stimmt, was du alles so siehst/liest... ;)

Allerdings kann man dann auch überlegen etwas weniger oft abzurufen (aktuell alle Minute), denn die Zeit ändert sich doch kaum alle paar Minuten...
...nicht dass der Server irgendwann mal "keine Lust" mehr hat... ;)

Gruß, Joachim
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: frank am 04 Oktober 2019, 13:06:24
bei mir ist der sonnenaufgang für jeden betrachter (noch?) identisch. sogar für nicht gläubige.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 13:16:34
Zitat von: frank am 04 Oktober 2019, 13:06:24
bei mir ist der sonnenaufgang für jeden betrachter (noch?) identisch. sogar für nicht gläubige.

Naja... bin kein Spezialist, aber anscheinend ist es ein bisschen komplizierter:
https://de.wikipedia.org/wiki/Fadschr_(Gebet)

ZitatDie verschiedenen Rechtsschulen setzen den Beginn der Morgendämmerung verschieden fest, so dass es zu einer unterschiedlichen langen Zeitspanne zur Verrichtung des Gebets kommt.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 04 Oktober 2019, 17:02:10
die beiden Vorschläge funktionieren nicht.
Auf https://regex101.com bekomme ich die Uhrzeit nicht angezeigt.

Ich hatte nur ein Teil des html code gepostet. Das problem ist das die tpt-time (Für Uhrzeit) und tpt-title (Sonnenaufgang,Mittagsgebet...usw) mehrfach auftauchen.

Ich hänge den gesamten html code hier rein.

[code]<!DOCTYPE html>

<html lang="de" dir="ltr">
<head>
   
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <link href="/Assets/Themes/Diyanet/Styles/libs/w3.css" type="text/css" rel="stylesheet" />
    <link href="/Assets/Themes/Diyanet/Styles/main.css" rel="stylesheet" type="text/css" />
    <link href="/Assets/Themes/Diyanet/Styles/libs/bootstrap-theme.min.css" rel="stylesheet" type="text/css" />
    <link href="/Assets/Themes/Diyanet/Styles/libs/font-awesome.css" rel="stylesheet" />

    <meta name="google-site-verification" content="Gh0121XGpB5cjCzV8WiEB2jb02MGdFlx0feLSUmyM00" />
   
    <script src="/Assets/Themes/Diyanet/Scripts/jquery-3.1.1.min.js"></script>
    <script src="/Assets/Themes/Diyanet/Scripts/bootstrap.min.js"></script>
    <script src="/Assets/Themes/Diyanet/Scripts/dibDropDown.js"></script>
   
    <script src="/Assets/Themes/Diyanet/Scripts/jquery.mobilemenu.js"></script>

   


   

    <meta name="viewport" content="width=device-width" />
    <title>Präsidium für Religionsangelegenheiten | Gebetszeit für Stuttgart </title>

    <meta name="Description" content="Präsidium für Religionsangelegenheiten | Monatliche Gebetszeiten für Stuttgart | Wöchentliche Gebetszeiten für Stuttgart " />
    <script src="https://maps.googleapis.com/maps/api/js?sensor=false&amp;key=AIzaSyA4CxuDcjX9KWfgyKPac8yXXOQxP-HYet4"></script>

    <script src="/Assets/Themes/Diyanet/Scripts/jquery.cookie.js"></script>

    <script src="/Assets/Themes/Diyanet/Scripts/select2/select2.min.js"></script>
    <link href="/Assets/Themes/Diyanet/Styles/libs/select2.css" type="text/css" rel="stylesheet" />

    <script src="/Assets/Themes/Diyanet/Scripts/nvHomeTabs.js"></script>
    <script src="/Assets/Themes/Diyanet/Scripts/common.js"></script>
    <script src="/Assets/Themes/Diyanet/Scripts/home.js"></script>







   
   
   


</head>
<body class="de">
   
<div class="mobile-menu-top-tab">

    <div class="mobilemenu-trigger">
        <button class="trigger">
            <span class="box">
                <span class="bar top"></span>
                <span class="bar middle"></span>
                <span class="bar bottom"></span>
            </span>
        </button>
    </div>
    <h4 class="top-tab-title">
        <a href="/de-DE">
           Gebetszeiten
        </a>
    </h4>
</div>
<nav class="nv-navbar">

    <div class="container">
        <div class="nb-left-holder">
            <div class="nb-logo-and-title-holder">
                <div class="nb-logo-holder">
                    <a href="/de-DE"><img src="/Assets/Themes/Diyanet/Images/NamazVakitLogo.png" /></a>
                   
                </div>
                <div class="nb-title-holder">
                   
                    <h1 class="">Gebetszeiten</h1>

                </div>

            </div>

        </div>
        <a href="http://www.diyanet.gov.tr" class="dib-header-logo-holder">
            <img src="/Assets/Themes/Diyanet/Images/logo_iyanet_beyaz.png" alt="" />
        </a>
        <div class="nb-nav-holder">
            <ul class="nb-nav-menu">
                <li class="" data-name="home"><a href="/de-DE">Startseite / Hauptseite</a></li>
                <li data-name="kible"><a href="/de-DE/kible">Gebetsrichtung</a></li>
                <li data-lang="tr"><a href="http://www2.diyanet.gov.tr/DinHizmetleriGenelMudurlugu/Sayfalar/2019DiniG%C3%BCnlerListesi.aspx">Religiöser Feiertage</a></li>
           
             
                <li data-lang="tr"><a href="https://mobiluygulama.diyanet.gov.tr/Home/Detail/5">Mobil Uygulama</a></li>
               
            </ul>
            <div class="dib-dropdown-wrapper">
                <div class="dip-dropdown-holder">
                    <a href="javascript:void(0);" data-dropdown="lang-dp" class="dib-dropdown-button"><span>Languages</span> <i class="glyphicon glyphicon-chevron-down"></i></a>
                    <div id="lang-dp" class="dib-dropdown">
                       
                        <ul class="dib-dropdown-menu">
                           
                            <li><a href="/tr-TR/Language/Change/tr-TR">Türkçe</a></li>
                            <li><a href="/ar-SA/Language/Change/ar-SA">العربية</a></li>
                            <li><a href="/en-US/Language/Change/en-US">English</a></li>
                            <li><a href="/de-DE/Language/Change/de-DE">Deutsch</a></li>
                            <li><a href="/fr-FR/Language/Change/fr-FR">Français</a></li>
                            <li><a href="/ru-RU/Language/Change/ru-RU">русский</a></li>
                            <li><a href="/es-ES/Language/Change/es-ES">Español</a></li>
                        </ul>
                    </div>
                </div>
            </div>           
        </div>
    </div>
</nav>
<div class="headline-wrapper hidden">
    <div class="container">
        <div class="headline">
            <div class="headline-img-text-holder">
                <div class="headline-img-holder">
                    <img src="/Assets/Themes/Diyanet/Images/NamazVakitLogo.png" alt="" />
                </div>
                <div class="headline-text-holder">
                    <h1>NAMAZ VAKİTLERİ</h1>
                </div>
            </div>
        </div>
    </div>

</div>
   
   
   

<div id="mobilemenu">
    <div class="mobilemenu-wrapper">
        <div class="mobilemenu-view">
            <div class="menu">
                <div class="mobilemenu-bottom-holder">
                    <a href="/de-DE">
                        <img class="mobile-menu-logo center-block" src="/Assets/Themes/Diyanet/Images/BaskanlikLogo.png" title="Diyanet İşleri Başkanlığı logo" />
                    </a>

                </div>

                <ul class="navaccordion">
                    <li class="sub-nav-holder">
                        <a href="#">
                            <span> Languages  <i class="glyphicon glyphicon-chevron-down"></i></span>
                        </a>
                        <ul class="sub-nav-ul">
                            <li><a href="/tr-TR/Language/Change/tr-TR">Türkçe</a></li>
                            <li><a href="/ar-SA/Language/Change/ar-SA">العربية</a></li>
                            <li><a href="/en-US/Language/Change/en-US">English</a></li>
                            <li><a href="/de-DE/Language/Change/de-DE">Deutsch</a></li>
                            <li><a href="/fr-FR/Language/Change/fr-FR">Français</a></li>
                            <li><a href="/ru-RU/Language/Change/ru-RU">русский</a></li>
                            <li><a href="/es-ES/Language/Change/es-ES">Español</a></li>

                        </ul>
                    </li>
                </ul>
                <div class="clearfix"></div>

                <ul data-type="root" data-id="0" id="HeaderMenu" title="Üst Menü" class="HeaderMenuContainer navaccordion">
                    <li data-type="child" data-id="1" parent-data-id="0" class="HeaderMenuChildNodes">
                        <a href="/de-DE" class="HeaderMenuLinks">Startseite / Hauptseite</a>
                    </li>

                    <li data-type="child" data-id="2" parent-data-id="0" class="HeaderMenuChildNodes">
                        <a href="/de-DE/kible" class="HeaderMenuLinks">Kıble Yönü</a>
                    </li>
                    <li data-lang="tr">
                        <a href="http://www2.diyanet.gov.tr/DinHizmetleriGenelMudurlugu/Sayfalar/2017DiniG%C3%BCnlerListesi.aspx">Religiöser Feiertage</a>
                    </li>

                    <li data-lang="tr" data-type="child" data-id="29" parent-data-id="0" class="HeaderMenuChildNodes">
                        <a href="https://mobiluygulama.diyanet.gov.tr/Home/Detail/5" target="_blank">Mobil Uygulama</a>
                    </li>


                </ul>

            </div>
        </div>
    </div>
</div>

    <div class="body-content">
       









<script>
    var langCode = "de";
    var prayerTimeForText = "Gebetszeit für {0}";
    var allowLocationRedirect = "False";
    var ilceId = 11027;
    var ilId = 850;
    var ulkeId = 13;


    var srIlceAdi = "ALMANYA";
    var srSehirAdi = "BADEN WURTTEMBERG";
    var srUlkeAdi = "ALMANYA";


    var _imsakTime = "05:37";
    var _gunesTime = "07:18";
    var _ogleTime = "13:18";
    var _ikindiTime = "16:25";
    var _aksamTime = "19:07";
    var _yatsiTime = "20:27";

    var vakitler = [
        { timeTxt: _imsakTime, key: "imsak", label: "Morgengebet (Fastenbeginn )" },
        { timeTxt: _gunesTime, key: "gunes", label: "Sonnenaufgang " },
        { timeTxt: _ogleTime, key: "ogle", label: "Mittagsgebet" },
        { timeTxt: _ikindiTime, key: "ikindi", label: "Nachmittagsgebet" },
        { timeTxt: _aksamTime, key: "aksam", label: "Abendgebet" },
        { timeTxt: _yatsiTime, key: "yatsi", label: "Nachtgebet" }
    ];
    var nextImsakTime = "05:39";

</script>




<div class="region-select-main-wrapper">
    <div class="container">
        <div class="rs-wrapper" id="region-selection-wrapper">
            <div class="rs-holder">

               
                <div class="rs-dp-info hidden">Bölge Seçiniz :</div>
<form action="/de-DE/11027/gebetszeit-fur-stuttgart" method="post">                    <div class="rs-row">
                        <div class="rs-col-3">
                            <div class="rs-dp-holder">
                                <select class="country-select region-select" name="country" aria-label="Ülke Seçimi">
                                            <option value="33">USA</option>
                                            <option value="166">AFGHANISTAN</option>
                                            <option value="13">GERMANY</option>
                                            <option value="17">ANDORRA</option>
                                            <option value="140">ANGOLA</option>
                                            <option value="125">ANGUILLA</option>
                                            <option value="90">ANTIGUA VE BARBUDA</option>
                                            <option value="199">ARGENTINA</option>
                                            <option value="25">ALBANIA</option>
                                            <option value="153">ARUBA</option>
                                            <option value="59">AUSTRALIA</option>
                                            <option value="35">AUSTRIA</option>
                                            <option value="5">AZERBAIJAN</option>
                                            <option value="54">BAHAMAS</option>
                                            <option value="132">BAHRAIN</option>
                                            <option value="177">BANGLADESH</option>
                                            <option value="188">BARBADOS</option>
                                            <option value="208">BELARUS</option>
                                            <option value="11">BELGIUM</option>
                                            <option value="182">BELIZE</option>
                                            <option value="181">BENIN</option>
                                            <option value="51">BERMUDA</option>
                                            <option value="93">UNITED ARAB EMIRATES</option>
                                            <option value="83">BOLIVYA</option>
                                            <option value="9">BOSNIA-HERZEGOVINA</option>
                                            <option value="167">BOTSWANA</option>
                                            <option value="146">BRAZIL</option>
                                            <option value="97">BRUNEI</option>
                                            <option value="44">BULGARIA</option>
                                            <option value="91">BURKINA FASO</option>
                                            <option value="154">BURMA (MYANMAR)</option>
                                            <option value="65">BURUNDI</option>
                                            <option value="155">BUTAN</option>
                                            <option value="156">CAD</option>
                                            <option value="43">CHECHENIA</option>
                                            <option value="16">CZECH REPUBLIC</option>
                                            <option value="86">ALGERIA</option>
                                            <option value="160">CIBUTI</option>
                                            <option value="61">CHINA</option>
                                            <option value="26">DENMARK</option>
                                            <option value="180">DEMOKRATIC REPUBLIC OF THE CONGO</option>
                                            <option value="176">DOGU TIMOR</option>
                                            <option value="123">DOMINIK</option>
                                            <option value="72">DOMINIK CUMHURIYETI</option>
                                            <option value="139">EKVATOR</option>
                                            <option value="63">EKVATOR GINESI</option>
                                            <option value="165">EL SALVADOR</option>
                                            <option value="117">INDONESIA</option>
                                            <option value="175">ERITRE</option>
                                            <option value="104">ARMENIA</option>
                                            <option value="6">ESTONYA</option>
                                            <option value="95">ETHIOPIA</option>
                                            <option value="145">MOROCCO</option>
                                            <option value="197">FIJI</option>
                                            <option value="120">FILDISI SAHILI</option>
                                            <option value="126">PHILIPPINES</option>
                                            <option value="204">FILISTIN</option>
                                            <option value="41">FINLAND</option>
                                            <option value="21">FRANCE</option>
                                            <option value="79">GABON</option>
                                            <option value="109">GAMBIYA</option>
                                            <option value="143">GHANA</option>
                                            <option value="111">GUINEA</option>
                                            <option value="58">GRENADA</option>
                                            <option value="48">GRONLAND</option>
                                            <option value="171">GUADELOPE</option>
                                            <option value="169">GUAM ISLAND</option>
                                            <option value="99">GUATEMALA</option>
                                            <option value="67">SOUTH AFRICA</option>
                                            <option value="128">SOUTH KOREA</option>
                                            <option value="62">GEORGIA</option>
                                            <option value="82">GUYANA</option>
                                            <option value="70">HAITI</option>
                                            <option value="187">INDIA</option>
                                            <option value="30">HIRVATISTAN</option>
                                            <option value="4">NETHERLANDS</option>
                                            <option value="66">HOLLANDA ANTILLERI</option>
                                            <option value="105">HONDURAS</option>
                                            <option value="113">HONG KONG</option>
                                            <option value="15">UNITED KINGDOM</option>
                                            <option value="124">IRAQ</option>
                                            <option value="202">IRAN</option>
                                            <option value="32">IRELAND</option>
                                            <option value="23">SPAIN</option>
                                            <option value="205">ISRAEL</option>
                                            <option value="12">SWEDEN</option>
                                            <option value="49">SWITZERLAND</option>
                                            <option value="8">ITALY</option>
                                            <option value="122">IZLANDA</option>
                                            <option value="119">JAMAIKA</option>
                                            <option value="116">JAPAN</option>
                                            <option value="161">KAMBOCYA</option>
                                            <option value="184">CAMEROON</option>
                                            <option value="52">CANADA</option>
                                            <option value="34">KARADAG</option>
                                            <option value="94">KATAR</option>
                                            <option value="92">KAZAKHSTAN</option>
                                            <option value="114">KENYA</option>
                                            <option value="168">KIRGIZHSTAN</option>
                                            <option value="57">KOLOMBIYA</option>
                                            <option value="88">KOMORLAR</option>
                                            <option value="18">KOSOVA</option>
                                            <option value="162">KOSTARIKA</option>
                                            <option value="209">CUBA</option>
                                            <option value="206">KUDUS</option>
                                            <option value="133">KUWAIT</option>
                                            <option value="1">NORTH CYPRUS</option>
                                            <option value="142">NORTH KOREA</option>
                                            <option value="134">LAOS</option>
                                            <option value="174">LESOTO</option>
                                            <option value="20">LATVIA</option>
                                            <option value="73">LIBERYA</option>
                                            <option value="203">LIBYA</option>
                                            <option value="38">LIECHTENSTEIN</option>
                                            <option value="47">LITHUANIA</option>
                                            <option value="42">LEBANON</option>
                                            <option value="31">LUXEMBOURG</option>
                                            <option value="7">HUNGARY</option>
                                            <option value="98">MADAGASKAR</option>
                                            <option value="100">MAKAO</option>
                                            <option value="28">MACEDONIA</option>
                                            <option value="55">MALAVI</option>
                                            <option value="103">MALDIVLER</option>
                                            <option value="107">MALAYSIA</option>
                                            <option value="152">MALI</option>
                                            <option value="24">MALTA</option>
                                            <option value="87">MARTINIK</option>
                                            <option value="164">MAURITIUS ADASI</option>
                                            <option value="157">MAYOTTE</option>
                                            <option value="53">MEXICO</option>
                                            <option value="85">MIKRONEZYA</option>
                                            <option value="189">EGYPT</option>
                                            <option value="60">MONGOLIA</option>
                                            <option value="46">MOLDAVYA</option>
                                            <option value="3">MONACO</option>
                                            <option value="147">MONTSERRAT (U.K.)</option>
                                            <option value="106">MORITANYA</option>
                                            <option value="151">MOZAMBIK</option>
                                            <option value="196">NAMIBYA</option>
                                            <option value="76">NEPAL</option>
                                            <option value="84">NIJER</option>
                                            <option value="127">NIGERIA</option>
                                            <option value="141">NIKARAGUA</option>
                                            <option value="178">NIUE</option>
                                            <option value="36">NORWAY</option>
                                            <option value="80">ORTA AFRIKA CUMHURIYETI</option>
                                            <option value="131">UZBEKISTAN</option>
                                            <option value="77">PAKISTAN</option>
                                            <option value="149">PALAU</option>
                                            <option value="89">PANAMA</option>
                                            <option value="185">PAPUA YENI GINE</option>
                                            <option value="194">PARAGUAY</option>
                                            <option value="69">PERU</option>
                                            <option value="183">PITCAIRN ADASI</option>
                                            <option value="39">POLAND</option>
                                            <option value="45">PORTUGAL</option>
                                            <option value="68">PUERTO RICO</option>
                                            <option value="112">REUNION</option>
                                            <option value="37">ROMANIA</option>
                                            <option value="81">RUANDA</option>
                                            <option value="207">RUSSIA</option>
                                            <option value="64">SAUDI ARABIA</option>
                                            <option value="198">SAMOA</option>
                                            <option value="102">SENEGAL</option>
                                            <option value="138">SEYSEL ADALARI</option>
                                            <option value="210">SIERRA LEONE</option>
                                            <option value="200">CHILE</option>
                                            <option value="179">SINGAPORE</option>
                                            <option value="27">SIRBISTAN</option>
                                            <option value="14">SLOVAKIA</option>
                                            <option value="19">SLOVENIA</option>
                                            <option value="150">SOMALIA</option>
                                            <option value="74">SRI LANKA</option>
                                            <option value="129">SUDAN</option>
                                            <option value="172">SURINAM</option>
                                            <option value="191">SYRIA</option>
                                            <option value="163">SVALBARD</option>
                                            <option value="170">SVAZILAND</option>
                                            <option value="101">TAJIKISTAN</option>
                                            <option value="110">TANZANYA</option>
                                            <option value="137">THAILAND</option>
                                            <option value="108">TAIWAN</option>
                                            <option value="71">TOGO</option>
                                            <option value="130">TONGA</option>
                                            <option value="96">TRINIDAT VE TOBAGO</option>
                                            <option value="118">TUNUSIA</option>
                                            <option value="2">TURKEY</option>
                                            <option value="159">TURKMENISTAN</option>
                                            <option value="75">UGANDA</option>
                                            <option value="40">UKRAINE</option>
                                            <option value="29">UKRAINE-KRYM</option>
                                            <option value="173">UMMAN</option>
                                            <option value="192">JORDAN</option>
                                            <option value="201">URUGUAY</option>
                                            <option value="56">VANUATU</option>
                                            <option value="10">VATIKAN</option>
                                            <option value="186">VENEZUELA</option>
                                            <option value="135">VIETNAM</option>
                                            <option value="148">YEMEN</option>
                                            <option value="115">YENI KALEDONYA</option>
                                            <option value="193">NEW ZEALAND</option>
                                            <option value="144">YESIL BURUN</option>
                                            <option value="22">GREECE</option>
                                            <option value="158">ZAMBIYA</option>
                                            <option value="136">ZIMBABVE</option>

                                </select>
                            </div>

      [code]           
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 17:09:02
Naja... in deinem unlesbaren Ausschnitt gibt es überhaupt kein "tpt-time".
Wenn ich auf der Webseite gehe, und dort den Quellcode kopiere und in regex101.com teste, bekomme ich mit meiner Regex doch alle "tpt-time" gefangen.

Poste mal ein "list" von deinem HTTPMOD bitte

Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 04 Oktober 2019, 17:47:30
Ach mist,der scheint das lange html code abzuschneiden.
Sorry dein Code funktioniert! Super. Er gibt mir die Zeit aus.

Aber jetzt habe ich für Sonnenaufgang,Mittagsgebet,Nachmittagsgebet,Abendgebet,Nachtgebet insgesamt 5 Zeiten. Wie kann ich die einzel abfragen. Bei allen heisen die Zeiten tpt-time. Ich denke ich müsste noch zusätzlich den tpt-title hinzufügen


Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: amenomade am 04 Oktober 2019, 18:04:02
Warum einzel abfragen? Gib den einfach eindeutige Namen und Schluss.

reading01Regex (?s)tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+)
reading01-1Name Sonnenaufgang
reading01-2Name Mittagsgebet
reading01-3Name Nachmittagsgebet
reading01-4Name Abendgebet
reading01-5Name Nachtgebet


Und bitte mach ein [/code] Tag am Ende deines langen Posts

EDIT: Regex ergänzt
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 05 Oktober 2019, 07:10:10
Es wäre sinnvoll, hier nicht den Zugriff über Reguläre Ausdrücke, sondern den über XPath zu verwenden. Der liefert z.B. alle <div> mit dem Attributwert tpt-time als Array.

LG

pah
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 05 Oktober 2019, 14:47:36
Vielen Dank amenomade
funktioniert. Super!

Prof.Dr.Peter Henning, danke wäre eine alternative
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 31 Oktober 2021, 17:06:34
Hallo,
die letzte Antwort von "amenomade" war damals meine Lösung. Seitdem hat mein Regex für das Abfragen der Zeiten immer sehr zuverlässig funktioniert.
Jetzt hatten wir heute die Zeitumstellung und dabei habe ich bemerkt das mein HTTPMOD das letzte mal vor 3 Tagen aktualisiert hatte obwohl ich ein Intervall von 14400sek (4Stunden) habe. Ein set reload bewirkt keine änderung. Der link zur webseite ist immer noch indentisch.
Wenn ich auf der seite https://regex101.com/ die html seite reinkopiere und meinen bisherigen regex
(?s)tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+)
test bekomme ich eine Meldung "catastrophic backtracking"

Könnte mir jemand hier behilflich sein

Mein Device sieht so aus
Internals:
   BUSY       0
   DEF        https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart 14400
   FUUID      5d988092-f33f-2b39-c917-64b07be0229c5630
   Interval   14400
   MainURL    https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
   ModuleVersion 4.0.16 - 5.12.2020
   NAME       Namaz
   NOTIFYDEV  global
   NR         113
   NTFY_ORDER 50-Namaz
   STATE      ???
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   HTTPCookieHash:
     TSe78d6aab029;:
       Name       TSe78d6aab029
       Options    Max-Age=30;Path=/
       Path       
       Value      083d721e09ab28000d2a855827412f673ae386e047889c09e4eadd89f043fe0a85d322c2bfa1a060a46849e20e8279aa
   HttpUtils:
     NAME       
     addr       https://namazvakitleri.diyanet.gov.tr:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
     header     Cookie: TSe78d6aab029=083d721e09ab2800289a80bc7c0a3e87fb65b92d17717aabc3bab99c465ba9739d21e82d97d2f66c54a7a915f7f095d3
     host       namazvakitleri.diyanet.gov.tr
     httpheader HTTP/1.1 200 OK
P3P: CP="{}"
Set-Cookie: TSe78d6aab029=083d721e09ab28000d2a855827412f673ae386e047889c09e4eadd89f043fe0a85d322c2bfa1a060a46849e20e8279aa; Max-Age=30;Path=/
P3P: CP="{}"
Cache-Control: no-store, must-revalidate, no-cache, max-age=0
Content-Type: text/html
Content-Length: 46625
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /de-DE/11027/gebetszeit-fur-stuttgart
     protocol   https
     redirects  0
     timeout    2
     url        https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
     sslargs:
   QUEUE:
   READINGS:
     2021-10-28 22:00:56   01_Morgengebet  06:17
     2021-10-28 22:00:56   02_Sonnenaufgang 07:56
     2021-10-28 22:00:56   03_Mittagsgebet 13:12
     2021-10-28 22:00:56   04_Nachmittagsgebet 15:47
     2021-10-28 22:00:56   05_Abendgebet   18:18
     2021-10-28 22:00:56   06_Nachtgebet   19:38
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        0
     retryCount 0
     type       update
     url        https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
Attributes:
   enableControlSet 1
   icon       3d_printer
   reading01-1Name 01_Morgengebet
   reading01-2Name 02_Sonnenaufgang
   reading01-3Name 03_Mittagsgebet
   reading01-4Name 04_Nachmittagsgebet
   reading01-5Name 05_Abendgebet
   reading01-6Name 06_Nachtgebet
   reading01Regex (?s)tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+)
   room       Namaz
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 21:44:59
Hi,
ich hab wieder einmal das selbe Problem wie oben beschrieben.
Komisch ist, das es eine ganze Zeit ganz gut gelaufen ist.
Jetzt habe ich gemerkt das es seit 1 Woche nicht mehr aktualisiert.
Kann mir jemand helfen?
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 21:51:51
Warum um alles in der Welt machst Du sowas über HTTPMOD?

define gebete Calendar ical url https://salati.de/ics/de/stuttgart_(baden-wurttemberg).ics

Damit hast Du den Kalender für das gesamte Jahr in FHEM verfügbar.


get gebete events limit:when=today

28.10.2022 06:17  Fadjr 2 Rabii(2) 1444
28.10.2022 07:58  Shuruk
28.10.2022 13:12  Zuhr
28.10.2022 15:45  Assr
28.10.2022 18:16  Magreb
28.10.2022 19:51  Ishaa


Was den Charme hat, dass Du zu jedem der genannten Zeitpunkte einen event in FHEM bekommst und sogar noch eine Vorlaufzeit (Hinweiszeit) z.B. 10 Minuten vorher konfigurieren kannst.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 21:59:20
Das Problem ist, das es verschiedene Zeiten gibt. Diese weichen teilweise um einige Minuten.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 22:05:14
Zitat von: neyzen am 28 Oktober 2022, 21:59:20
Das Problem ist

Muss man denn wirklich aus allem ein "Problem" machen?

Zitat von: neyzen am 28 Oktober 2022, 21:59:20
verschiedene Zeiten gibt. Diese weichen teilweise um einige Minuten.

Nein, ich möchte jetzt gar nicht wissen, wer festlegt, welche der Zeiten die "richtigen" sind.
Eigentlich wollte ich nur einen alternativen, m.E. einfacheren, Lösungsweg aufzeigen.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 22:10:01
Zitat von: neyzen am 28 Oktober 2022, 21:44:59
Jetzt habe ich gemerkt das es seit 1 Woche nicht mehr aktualisiert.
Kann mir jemand helfen?

Scheint so zu sein, dass der Webseitenbetreiber nun eine Prüfung auf "menschliche Besucher" eingebaut hat.
Im Seitenquellcode findet sich bei Abruf über FHEM folgendes:

<body>
This question is for testing whether you are a human visitor and to prevent automated spam submission.
<br>

(dann kommen Bilddaten)

<b>What code is in the image?</b>
<input type = "text" id="ans" name = "answer" value = "" />

<br>
<button id="jar" type="button">submit</button>

Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 22:12:54
Aktuell ist dieser link in mein HTTPMOD drin.
https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
Beim aufrufen dieser Seite mit einem Browser bekomme ich aber keine Abfrage, ob ich ein Mensch bin.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 22:25:23
Wenn ich in dem HTTPMOD ein reread mache,müsste er doch von der Seite die neuen Zeiten wieder rausfischen, so wie er das ja schon seit Jahren gemacht hat. Aber da tut sich nichts. Letzte Aktualisierung war am 2022-10-22 14:00:40
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 22:26:52
Zitat von: neyzen am 28 Oktober 2022, 22:12:54
Beim aufrufen dieser Seite mit einem Browser bekomme ich aber keine Abfrage, ob ich ein Mensch bin.

Ja, und weiter?  Was hat Dein Aufruf im Browser mit dem Aufruf einer URL aus FHEM zu tun?
Nix...

Wenn Du es nicht glaubst, schau in Deinem FHEM nach, was als Antwort von der URL kommt, wenn Du die Adresse über HTTPMOD aufrufst.
Und bevor Du jetzt nachfragst: Attribut showBody auf 1 setzen, dann siehst Du die Antwort in den Internals


<!DOCTYPE html>
<html><head>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta http-equiv="CacheControl" content="no-cache"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="data:;base64,iVBORw0KGgo="/>

<script type="text/javascript">
(function(){
window["bobcmn"] = "...";

window["failureConfig"] = "...";
})();

</script>

<script type="text/javascript" src="/TSPD/083d721e09ab2000781c0b0c220a4851695ca7cbd677464d574b8c84789971b6dc95c2d5ca7580d6?type=5"></script>
<noscript>Please enable JavaScript to view the page content.<br/>Your support ID is:  3279287756213845572.<link rel="stylesheet" href="/TSPD/?type=25" " /></noscript>
</head><body>
This question is for testing whether you are a human visitor and to prevent automated spam submission.
<br>
<img src="data:image/png;base64, ... /> <a href="#" id="bottle">
<img src="data:image/png;base64, ... /></a>

<br>
<b>What code is in the image?</b>
<input type = "text" id="ans" name = "answer" value = "" />

<br>
<button id="jar" type="button">submit</button>

<br>
<br>
Your support ID is:  3279287756213845572.</body></html>



---
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 22:33:26
Hmm.
Ok sehe es. D.h. somit kann mein HTTMOD nicht auf die Webseite zugreifen und mir meine Zeiten rausfischen.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 22:36:56
Vermutlich musst Du einen passenden Header für den http request mitgeben, damit die Webseite glaubt, der HTTPMOD Aufruf käme von einem richtigen Browser. Mit dem User-Agent würde ich da vielleicht mal anfangen.

Aber um das weiter erforschen zu wollen, fehlt mir tatsächlich das Interesse.
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: betateilchen am 28 Oktober 2022, 22:41:41
Deine regex funktioniert einwandfrei, es fehlt wirklich nur der User-Agent.


define gebete2 HTTPMOD https://namazvakitleri.diyanet.gov.tr/de-DE/11027/gebetszeit-fur-stuttgart
attr gebete2 reading01Regex (?s)tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+).*?tpt-time">([\d:]+)
attr gebete2 requestHeader1 User-Agent: Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1



setstate gebete2 2022-10-28 22:40:37 reading01-1 06:17
setstate gebete2 2022-10-28 22:40:37 reading01-2 07:56
setstate gebete2 2022-10-28 22:40:37 reading01-3 13:12
setstate gebete2 2022-10-28 22:40:37 reading01-4 15:47
setstate gebete2 2022-10-28 22:40:37 reading01-5 18:18
setstate gebete2 2022-10-28 22:40:37 reading01-6 19:38



---
Titel: Antw:Hilfe Regex für HTTPMOD
Beitrag von: neyzen am 28 Oktober 2022, 22:46:40
Ich liebe dich man 8)
Vielen Vielen Dank. Hat funktioniert ;D