Wechselkurs HTTPMOD IsBank

Begonnen von basi79, 12 Oktober 2017, 20:21:34

Vorheriges Thema - Nächstes Thema

basi79

Hallo Freunde,

ich versuche vergebens die Wechselkurse einer Türkischen Bank abzufragen..

die Website ist folgende  http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx

Folgendes Device habe ich zwar angelegt aber leider bekomme ich kein Content..

Internals:
   .getList
   .setList   interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue
   .updateRequestHash 1
   BUSY       0
   CFGFN
   DEF        http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx 120
   HTTPCookies
   Interval   120
   JSONEnabled 1
   LASTSEND   1507832241.19052
   MainURL    http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       IsBank
   NR         11243
   STATE      ???
   TRIGGERTIME 1507832361.18647
   TRIGGERTIME_FMT 2017-10-12 20:19:21
   TYPE       HTTPMOD
   addr       http://www.isbank.com.tr:80
   buf
   code       200
   conn
   data
   displayurl http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
   header     User-Agent: Mozilla/5.0 (Windows NT 6.0)
   host       www.isbank.com.tr
   httpheader HTTP/1.1 200 OK

Cache-Control: no-cache

Connection: close

Pragma: no-cache

Content-Type: text/html; charset=utf-8

Content-Length: 0
   httpversion 1.0
   hu_blocking 0
   hu_filecount 337
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
   protocol   http
   redirects  0
   timeout    5
   url        http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
   value      0
   .readingParseList:
     01
   HTTPCookieHash:
   Helper:
     DBLOG:
       CurEURYTL:
         LogDB_FHEM:
           TIME       1507797802.25129
           VALUE      1
       state:
         LogDB_FHEM:
           TIME       1507805275.83467
           VALUE      reread
   QUEUE:
   READINGS:
     2017-10-12 20:17:21   CurEURYTL       HTTP/1.1 200 OK

Cache-Control: no-cache

Connection: close

Pragma: no-cache

Content-Type: text/html; charset=utf-8

Content-Length: 0




   REQUEST:
     data
     header     User-Agent: Mozilla/5.0 (Windows NT 6.0)
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
     value      0
   defptr:
     readingBase:
       CurEURYTL  reading
     readingNum:
       CurEURYTL  01
     readingOutdated:
     requestReadings:
       update:
         CurEURYTL  reading 01
   sslargs:
     SSL_verify_mode SSL_VERIFY_NONE
Attributes:
   enableControlSet 1
   enableCookies 1
   extractAllJSON 1
   reading01Name CurEURYTL
   reading01RegOpt s
   reading01Regex ^(.*)$
   requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 6.0)
   room       DövizKurs
   timeout    5
   userattr   reading01Name reading01RegOpt reading01Regex
   verbose    5


Wer kann mir freundlicherweise weiterhelfen..??

Ergebniss soll z.B. wie folgt aussehen.. siehe Anhang

Gruß

Basi79

RaspberryPI, Homematic, FS20, Fritzbox7490

tarum

Hallo,

baue dir mit den Readings die rein kommen eine readingsGroup dann kannst es dir zusammenstellen wie du willst.


selamlar
Linux Server 22.04 CUL 868+433, CCU3, Homematic, Intertechno, FritzDect 200, JeeLink+LaCrosse, Duofern Stick+Rollotron Gurtwickler,smartVISU-3.0.0

basi79

Zitat von: tarum am 13 Oktober 2017, 09:44:06
Hallo,

baue dir mit den Readings die rein kommen eine readingsGroup dann kannst es dir zusammenstellen wie du willst.


selamlar

Hi tarum,

das Problem ist genau.. das keine Readings kommen.. der Response der Seite mit HTTPMOD bleibt leer.. Content Length=0..
und genau da benötige ich Hilfe.. wie Frage ich die Seite am besten ab..?? weitere Header Attribute oder JSON..??
Komme mit dem Entwicklertools von Chrome auch nicht so genau weiter.. :)

Das Beispiel im Bild.. habe ich als Bespiel hinzugefügt was ich am ende als Reading haben will wenn das ganze mit HTTPMOD funktioniert..

Gruß

basi79

RaspberryPI, Homematic, FS20, Fritzbox7490

viegener

Problem Nummer 1 - Auf dem von Dir angegebenen URL kommt einen Seite zurück die wohl die Werte gar nicht enthält (zumindest habe ich sie nicht gefunden). Was auch nicht verwunderlich ist, denn das Datum lässt sich ja eingeben und dann ändert sich der URL nichtm also wird es irgendwie im Hintergrund gezogen.

Du musst also die Seite (javascript / HTML5) analysieren um festzustellen wie die Werte gelesen werden.

Tipp: Suche nach einer Möglichkeit ob es eine Variante der Seite oder der Kurse für den Ausdruck ausgeben - Diese Seiten sind häufig statisch und lassen sich besser mit httpmod bearbeiten
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Ich habe mal ein wenig rumgespielt, der eigentliche URL hat wohl die Form:

http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-3&time=1507907035934

Da kommt dann JSON zurück, das müsste sich behandeln lassen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

basi79

hmm.. ok

ich habe nun mal folgendes Probiert:


Internals:
   .getList
   .setList   interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue
   .updateRequestHash 1
   BUSY       0
   CFGFN
   CHANGED
   DEF        http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute 120
   HTTPCookies
   Interval   120
   JSONEnabled 1
   LASTSEND   1507939330.65934
   MainURL    http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute
   ModuleVersion 3.4.0 - 9.9.2017
   NAME       IsBank3
   NR         9600
   ReplacementEnabled 1
   STATE      ???
   TRIGGERTIME 1507939450.65374
   TRIGGERTIME_FMT 2017-10-14 02:04:10
   TYPE       HTTPMOD
   addr       http://www.isbank.com.tr:80
   buf
   code       200
   conn
   data
   displayurl http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
   header     Content-Type: application/json

Attributes:
   enableControlSet 1
   enableCookies 1
   extractAllJSON 1
   replacement0Mode expression
   replacement0Regex (Heute)
   replacement0Value strftime "%Y-%m-%d", localtime
   requestHeader1 Content-Type: application/json
   requestHeader2 Accept: */*
   room       DövizKurs
   userattr   replacement0Mode:reading,internal,text,expression,key replacement0Regex replacement0Value requestHeader1 requestHeader2
   verbose    5



aber leider kommen keine Daten zurück.. noch etwas vergessen in den Attributen..??


2017.10.14 02:01:10 5: IsBank3: set called with reread
2017.10.14 02:01:10 4: IsBank3: GetUpdate called (reread)
2017.10.14 02:01:10 4: IsBank3: AddToQueue adds update, initial queue len: 0
2017.10.14 02:01:10 5: IsBank3: AddToQueue adds type update to URL http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute, no data, header Content-Type: application/json
Accept: */*, retry 0
2017.10.14 02:01:10 5: IsBank3: HandleSendQueue called, qlen = 1
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input: Content-Type: application/json
Accept: */*
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input:
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute
2017.10.14 02:01:10 4: IsBank3: Replace: match for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime, input: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute, result is http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
2017.10.14 02:01:10 4: IsBank3: HandleSendQueue sends request type update to URL http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14, No Data,
header: Content-Type: application/json
Accept: */*,
timeout 2
2017.10.14 02:01:10 4: HttpUtils url=http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
2017.10.14 02:01:11 5: HttpUtils request header:
GET /_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14 HTTP/1.0
Host: www.isbank.com.tr
User-Agent: fhem
Content-Type: application/json
Accept: */*
Content-Length: 0

2017.10.14 02:01:12 4: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14: HTTP response code 200
2017.10.14 02:01:12 4: HttpUtils http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14: Got data, length: 0
2017.10.14 02:01:12 5: HttpUtils response header:
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
2017.10.14 02:01:12 4: IsBank3: Read callback: request type was update retry 0,
Header: HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0, body empty
2017.10.14 02:01:12 5: IsBank3: looking for Cookies in HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
2017.10.14 02:01:12 5: IsBank3: ExtractSid called, context reading, num
2017.10.14 02:01:12 4: IsBank3: CheckAuth decided no authentication required
2017.10.14 02:01:12 3: IsBank3: no parsed JSON structure available
2017.10.14 02:01:12 5: IsBank3: Read starts parsing response to update with defined readings:
2017.10.14 02:01:12 3: IsBank3: Read response to update didn't match any Reading
2017.10.14 02:01:12 5: IsBank3: HandleSendQueue called, qlen = 0


RaspberryPI, Homematic, FS20, Fritzbox7490

amenomade

Ich hätte gerne geholfen, aber mein Bitdefender meckert permanent, dass diese Webseite schädlich wäre... Dann sorry, mache lieber nicht weiter.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

maddhin

Mir erscheint es einfacher Google zu bemühen und eine der Websites zu nutzen, die eine kostenlose Wechselkurs (JSON) API anbieten, als das von der türkischen Bank holen zu wollen... :)

basi79

Zitat von: amenomade am 14 Oktober 2017, 13:48:37
Ich hätte gerne geholfen, aber mein Bitdefender meckert permanent, dass diese Webseite schädlich wäre... Dann sorry, mache lieber nicht weiter.

:) vielleicht solltest du mal ein Professionelles Security Tool benutzen.. was auch wirklich Bedrohungen erkennt.. :)

IsBank ist eines der Renommiertesten Arbeiter Banken der Türkei... Hat nichts mit der wohl im Volkesmunde IS zu tun.. :)

Meckert dein Bitdefender auch bei der Postbank,Targobank,Commerzbank herum..?? :)

Naja ist auch nicht zu schlimm.. :)

trotzdem danke..

Gruß

Basi79
RaspberryPI, Homematic, FS20, Fritzbox7490

basi79

Zitat von: maddhin am 14 Oktober 2017, 15:00:41
Mir erscheint es einfacher Google zu bemühen und eine der Websites zu nutzen, die eine kostenlose Wechselkurs (JSON) API anbieten, als das von der türkischen Bank holen zu wollen... :)

ja ich frage bereits eine andere Quelle ab.. aber ich möchte es gern perfektionieren .. und möchte die Information aktuell direkt von der Bank haben..
Hat auch nichts mit der Quelle zu tun.. könnte auch genauso gut eine Wetterstation Seite sein.. :)

Es geht hier um die Möglichkeit sowie art uns weise der Funktion..


trotzdem danke..
..bin leider noch nicht am Ziel.. :)

Gruß

Basi79
RaspberryPI, Homematic, FS20, Fritzbox7490

viegener

Ich habe selber etwas rumgespielt und bin auch noch nicht weiter gekommen, auch beim nachbilden aller Header, die mein Browser schickt, kommt bei mir Content-length: 0 und text/html zurück. Also keine Daten und auch kein Zeichen für JSON.

Ich denke Du musst noch etwas mit den Headern arbeiten, die der Browser sendet, um das JSON zu erhalten - Der Cookie ist offensichtlich nicht nötig, denn den habe ich entfernen können im Browser.

Ich gebe hier erstmal auf, denn es scheint mir wirklich einfacher, dass von woanders zu holen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

amenomade

Bei den Tests, die ich gestern mit BurpSuite gemacht habe, habe ich gesehen, dass er eigentlich zwei Cookies holt/braucht. Ich weiss nicht, wie HTTPMOD damit umgehen kann.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus