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.
tpt-time">([\d:]+)
https://regex101.com/ ist dein Freund
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
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!
was spricht zb gegen das astro modul?
Wusste nicht, dass das Astro Modul, die Gebetszeit der Muslime kalkulieren kann...
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
bei mir ist der sonnenaufgang für jeden betrachter (noch?) identisch. sogar für nicht gläubige.
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.
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&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]
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
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
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
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
Vielen Dank amenomade
funktioniert. Super!
Prof.Dr.Peter Henning, danke wäre eine alternative
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
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?
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.
Das Problem ist, das es verschiedene Zeiten gibt. Diese weichen teilweise um einige Minuten.
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.
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>
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.
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
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>
---
Hmm.
Ok sehe es. D.h. somit kann mein HTTMOD nicht auf die Webseite zugreifen und mir meine Zeiten rausfischen.
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.
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
---
Ich liebe dich man 8)
Vielen Vielen Dank. Hat funktioniert ;D