Abfrage Heizölpreis HTTPMOD

Begonnen von subseven, 09 Januar 2020, 16:51:01

Vorheriges Thema - Nächstes Thema

TomLee

Gerade mal getestet, fuel_oil_check_heizoel24_v2 funzt nach wie vor.

cotecmania

#106
Hmmm, gerade getestet, nur PLZ angepasst :
2023.03.04 18:13:11 5: Heizoel_esyoil: set called with reread
2023.03.04 18:13:11 4: Heizoel_esyoil: GetUpdate called (reread)
2023.03.04 18:13:11 5: Heizoel_esyoil: AddToQueue adds type update to URL Heizoel_esyoil, no data, no headers, retry 0, initial queue len: 0
2023.03.04 18:13:11 5: Heizoel_esyoil: HandleSendQueue called from AddToSendQueue, qlen = 1
2023.03.04 18:13:11 5: Heizoel_esyoil: HandleSendQueue is using Cookie cs_code with path / and Value deleted (key cs_code;/, destination path is )
2023.03.04 18:13:11 5: Heizoel_esyoil: HandleSendQueue is using Cookie nrg_session with path / and Value a9c755421be386a8d3c8c113be3584c1 (key nrg_session;/, destination path is )
2023.03.04 18:13:11 5: Heizoel_esyoil: HandleSendQueue is using Cookie ppset with path / and Value deleted (key ppset;/, destination path is )
2023.03.04 18:13:11 5: Heizoel_esyoil: DoCookies is adding Cookie header: cs_code=deleted; nrg_session=a9c755421be386a8d3c8c113be3584c1; ppset=deleted
2023.03.04 18:13:11 4: Heizoel_esyoil: HandleSendQueue sends update with timeout 2 to Heizoel_esyoil, No Data,
header: Cookie: cs_code=deleted; nrg_session=a9c755421be386a8d3c8c113be3584c1; ppset=deleted
2023.03.04 18:13:11 5: Heizoel_esyoil: ReadCallback called from HttpUtils_NonblockingGet
2023.03.04 18:13:11 5: Heizoel_esyoil: Read callback Error LogLvl set to 3, regex
2023.03.04 18:13:11 3: Heizoel_esyoil: Read callback: Error: Heizoel_esyoil: malformed or unsupported URL
2023.03.04 18:13:11 4: Heizoel_esyoil: Read callback: request type was update retry 0, no headers, no body
2023.03.04 18:13:11 5: Heizoel_esyoil: Read callback: body empty
2023.03.04 18:13:11 4: Heizoel_esyoil: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.03.04 18:13:11 5: Heizoel_esyoil: GetCookies is looking for Cookies
2023.03.04 18:13:11 5: Heizoel_esyoil: ExtractSid called, context reading, num unknown
2023.03.04 18:13:11 4: Heizoel_esyoil: no header to look for redirects
2023.03.04 18:13:11 5: Heizoel_esyoil: Read callback sets LAST_REQUEST to update
2023.03.04 18:13:11 5: Heizoel_esyoil: CheckAuth decided no authentication required
2023.03.04 18:14:29 5: Heizoel_esyoil: set called with start



Internals:
   BUSY       0
   CFGFN     
   DEF        Heizoel_esyoil HTTPMOD https://www.check24.de/heizoel/?c24_calculate=calculate&zipcode=%%PLZ%%&amount=%%MENGE%%&up=%%ENTLADESTELLEN%%&prod=%%OILGRADE%%&payment_type=%%PAYMENT%%&%%ANHANGER%%&%%SCHLAUCHLAENGE%%&%%EXPRESS%% 3600
attr Heizoel_esyoil userattr replacement03Value:1,2,3,4,5,6,7,8,9,10 replacement04Value:hose=,hose=hose_l,hose=hose_xl replacement05Value:short_vehicle=,short_vehicle=short_vehicle replacement06Value:8,4 replacement07Value:1,2,3,4,6 replacement08Value:express=,express=1
attr Heizoel_esyoil enableControlSet 1
attr Heizoel_esyoil reading010Name Heizoelpreis
attr Heizoel_esyoil reading010OExpr $val =~ s/,/\./;; $val;;
attr Heizoel_esyoil reading010Regex ([\d\,]+)\&nbsp\;;\&euro\;;
attr Heizoel_esyoil replacement01Mode text
attr Heizoel_esyoil replacement01Regex %%PLZ%%
attr Heizoel_esyoil replacement01Value 73568
attr Heizoel_esyoil replacement02Mode text
attr Heizoel_esyoil replacement02Regex %%MENGE%%
attr Heizoel_esyoil replacement02Value 3000
attr Heizoel_esyoil replacement03Mode text
attr Heizoel_esyoil replacement03Regex %%ENTLADESTELLEN%%
attr Heizoel_esyoil replacement03Value 1
attr Heizoel_esyoil replacement04Mode text
attr Heizoel_esyoil replacement04Regex %%SCHLAUCHLAENGE%%
attr Heizoel_esyoil replacement04Value hose=
attr Heizoel_esyoil replacement05Mode text
attr Heizoel_esyoil replacement05Regex %%ANHAENGER%%
attr Heizoel_esyoil replacement05Value short_vehicle=
attr Heizoel_esyoil replacement06Mode text
attr Heizoel_esyoil replacement06Regex %%OILGRADE%%
attr Heizoel_esyoil replacement06Value 8
attr Heizoel_esyoil replacement07Mode text
attr Heizoel_esyoil replacement07Regex %%PAYMENT%%
attr Heizoel_esyoil replacement07Value 2
attr Heizoel_esyoil replacement08Mode text
attr Heizoel_esyoil replacement08Regex %%EXPRESS%%
attr Heizoel_esyoil replacement08Value express=
attr Heizoel_esyoil stateFormat { my $price = 0.0;;
$price = (AttrNum($name,"replacement02Value",0)*ReadingsNum($name,"Heizoelpreis",0))/100;;
#my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"Heizoelpreis","2000-01-01 00:00:00"))));;
#my $lastCheck = FmtDateTime(InternalVal($name,".LastUpdate",0));;
my $lastCheck = ReadingsTimestamp($name,"Heizoelpreis","");;
my $ret = "<div style=\"text-align: left;;\">".$lastCheck.":";;
my $link = "https://www.check24.de/heizoel/?c24_calculate=calculate";;
$link .= "&zipcode=".AttrVal($name,"replacement01Value","");;
$link .= "&amount=".AttrVal($name,"replacement02Value","");;
$link .= "&up=".AttrVal($name,"replacement03Value","");;
$link .= "&".AttrVal($name,"replacement04Value","");; #hose length
$link .= "&".AttrVal($name,"replacement05Value","");; #short vehicle
$link .= "&prod=".AttrVal($name,"replacement06Value","");; # product 8 = normal schwefelarm 4 = premium schwefelarm
$link .= "&payment_type=".AttrVal($name,"replacement07Value","");; # 1 = Barzahlung, 2 = EC-Karte, 3 = Vorkasse, 4 = Lastschrift, 5 = Wärmekonto, 6 = Rechnung, 10 = Ratenkauf
$link .= "&".AttrVal($name,"replacement08Value","");; #express;;
$ret .= "&nbsp;;<a href=\"".$link."\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;;\">";;
$ret .= ReadingsVal($name,"Heizoelpreis","-");;
$ret .= "&euro;;</a>/100l";;
$ret .= "&nbsp;;(".AttrVal($name,"replacement02Value","0")."l = ";;
$ret .= sprintf("%.2f",$price);;
$ret .= "&euro;;)</div>";;
return $ret;;
}
attr Heizoel_esyoil timeout 10
attr Heizoel_esyoil webCmd reread
   FUUID      640377b2-f33f-623c-131e-9ab37823f0dbcc81
   Interval   0
   MainURL    Heizoel_esyoil
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       Heizoel_esyoil
   NOTIFYDEV  global
   NR         3213
   NTFY_ORDER 50-Heizoel_esyoil
   STATE      ???
   TYPE       HTTPMOD
   eventCount 3
   value     
   HTTPCookieHash:
     cs_code;/:
       Name       cs_code
       Options    expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.check24.de; HttpOnly; SameSite=lax
       Path       /
       Value      deleted
     nrg_session;/:
       Name       nrg_session
       Options    path=/; domain=.check24.de; secure; HttpOnly
       Path       /
       Value      a9c755421be386a8d3c8c113be3584c1
     ppset;/:
       Name       ppset
       Options    expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.check24.de; SameSite=lax
       Path       /
       Value      deleted
   HttpUtils:
     data       
     displayurl Heizoel_esyoil
     header     Cookie: cs_code=deleted; nrg_session=a9c755421be386a8d3c8c113be3584c1; ppset=deleted
     httpversion 1.0
     hu_blocking 0
     ignoreredirects 1
     loglevel   4
     redirects  0
     timeout    2
     url        Heizoel_esyoil
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        Heizoel_esyoil
Attributes:
   room       Heizung
   userattr   
   verbose    5

FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

TomLee


cotecmania

ok nochmals versucht, geht aber immer noch nicht.
Ich muss doch nur das Device anlegen und die PLZ anpassen ?

2023.03.04 18:40:49 5: Heizoel_esyoil: set called with reread
2023.03.04 18:40:49 4: Heizoel_esyoil: GetUpdate called (reread)
2023.03.04 18:40:49 5: Heizoel_esyoil: AddToQueue adds type update to URL HTTPMOD, no data, no headers, retry 0, initial queue len: 0
2023.03.04 18:40:49 5: Heizoel_esyoil: HandleSendQueue called from AddToSendQueue, qlen = 1
2023.03.04 18:40:49 5: Heizoel_esyoil: HandleSendQueue is using Cookie cs_code with path / and Value deleted (key cs_code;/, destination path is )
2023.03.04 18:40:49 5: Heizoel_esyoil: HandleSendQueue is using Cookie nrg_session with path / and Value 5dc3c05ead51a0c69c7b00d0130f5cf6 (key nrg_session;/, destination path is )
2023.03.04 18:40:49 5: Heizoel_esyoil: HandleSendQueue is using Cookie ppset with path / and Value deleted (key ppset;/, destination path is )
2023.03.04 18:40:49 5: Heizoel_esyoil: DoCookies is adding Cookie header: cs_code=deleted; nrg_session=5dc3c05ead51a0c69c7b00d0130f5cf6; ppset=deleted
2023.03.04 18:40:49 4: Heizoel_esyoil: HandleSendQueue sends update with timeout 2 to HTTPMOD, No Data,
header: Cookie: cs_code=deleted; nrg_session=5dc3c05ead51a0c69c7b00d0130f5cf6; ppset=deleted
2023.03.04 18:40:49 5: Heizoel_esyoil: ReadCallback called from HttpUtils_NonblockingGet
2023.03.04 18:40:49 5: Heizoel_esyoil: Read callback Error LogLvl set to 3, regex
2023.03.04 18:40:49 3: Heizoel_esyoil: Read callback: Error: HTTPMOD: malformed or unsupported URL
2023.03.04 18:40:49 4: Heizoel_esyoil: Read callback: request type was update retry 0, no headers, no body
2023.03.04 18:40:49 5: Heizoel_esyoil: Read callback: body empty
2023.03.04 18:40:49 4: Heizoel_esyoil: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2023.03.04 18:40:49 5: Heizoel_esyoil: GetCookies is looking for Cookies
2023.03.04 18:40:49 5: Heizoel_esyoil: ExtractSid called, context reading, num unknown
2023.03.04 18:40:49 4: Heizoel_esyoil: no header to look for redirects
2023.03.04 18:40:49 5: Heizoel_esyoil: Read callback sets LAST_REQUEST to update
2023.03.04 18:40:49 5: Heizoel_esyoil: CheckAuth decided no authentication required


Internals:
   BUSY       0
   CFGFN     
   DEF        HTTPMOD https://www.check24.de/heizoel/?c24_calculate=calculate&zipcode=%%PLZ%%&amount=%%MENGE%%&up=%%ENTLADESTELLEN%%&prod=%%OILGRADE%%&payment_type=%%PAYMENT%%&%%ANHANGER%%&%%SCHLAUCHLAENGE%%&%%EXPRESS%% 3600
attr Heizoel_esyoil userattr replacement03Value:1,2,3,4,5,6,7,8,9,10 replacement04Value:hose=,hose=hose_l,hose=hose_xl replacement05Value:short_vehicle=,short_vehicle=short_vehicle replacement06Value:8,4 replacement07Value:1,2,3,4,6 replacement08Value:express=,express=1
attr Heizoel_esyoil enableControlSet 1
attr Heizoel_esyoil reading010Name Heizoelpreis
attr Heizoel_esyoil reading010OExpr $val =~ s/,/\./;; $val;;
attr Heizoel_esyoil reading010Regex ([\d\,]+)\&nbsp\;;\&euro\;;
attr Heizoel_esyoil replacement01Mode text
attr Heizoel_esyoil replacement01Regex %%PLZ%%
attr Heizoel_esyoil replacement01Value 73568
attr Heizoel_esyoil replacement02Mode text
attr Heizoel_esyoil replacement02Regex %%MENGE%%
attr Heizoel_esyoil replacement02Value 5000
attr Heizoel_esyoil replacement03Mode text
attr Heizoel_esyoil replacement03Regex %%ENTLADESTELLEN%%
attr Heizoel_esyoil replacement03Value 1
attr Heizoel_esyoil replacement04Mode text
attr Heizoel_esyoil replacement04Regex %%SCHLAUCHLAENGE%%
attr Heizoel_esyoil replacement04Value hose=
attr Heizoel_esyoil replacement05Mode text
attr Heizoel_esyoil replacement05Regex %%ANHAENGER%%
attr Heizoel_esyoil replacement05Value short_vehicle=
attr Heizoel_esyoil replacement06Mode text
attr Heizoel_esyoil replacement06Regex %%OILGRADE%%
attr Heizoel_esyoil replacement06Value 8
attr Heizoel_esyoil replacement07Mode text
attr Heizoel_esyoil replacement07Regex %%PAYMENT%%
attr Heizoel_esyoil replacement07Value 2
attr Heizoel_esyoil replacement08Mode text
attr Heizoel_esyoil replacement08Regex %%EXPRESS%%
attr Heizoel_esyoil replacement08Value express=
attr Heizoel_esyoil stateFormat { my $price = 0.0;;
$price = (AttrNum($name,"replacement02Value",0)*ReadingsNum($name,"Heizoelpreis",0))/100;;
#my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"Heizoelpreis","2000-01-01 00:00:00"))));;
#my $lastCheck = FmtDateTime(InternalVal($name,".LastUpdate",0));;
my $lastCheck = ReadingsTimestamp($name,"Heizoelpreis","");;
my $ret = "<div style=\"text-align: left;;\">".$lastCheck.":";;
my $link = "https://www.check24.de/heizoel/?c24_calculate=calculate";;
$link .= "&zipcode=".AttrVal($name,"replacement01Value","");;
$link .= "&amount=".AttrVal($name,"replacement02Value","");;
$link .= "&up=".AttrVal($name,"replacement03Value","");;
$link .= "&".AttrVal($name,"replacement04Value","");; #hose length
$link .= "&".AttrVal($name,"replacement05Value","");; #short vehicle
$link .= "&prod=".AttrVal($name,"replacement06Value","");; # product 8 = normal schwefelarm 4 = premium schwefelarm
$link .= "&payment_type=".AttrVal($name,"replacement07Value","");; # 1 = Barzahlung, 2 = EC-Karte, 3 = Vorkasse, 4 = Lastschrift, 5 = Wärmekonto, 6 = Rechnung, 10 = Ratenkauf
$link .= "&".AttrVal($name,"replacement08Value","");; #express;;
$ret .= "&nbsp;;<a href=\"".$link."\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;;\">";;
$ret .= ReadingsVal($name,"Heizoelpreis","-");;
$ret .= "&euro;;</a>/100l";;
$ret .= "&nbsp;;(".AttrVal($name,"replacement02Value","0")."l = ";;
$ret .= sprintf("%.2f",$price);;
$ret .= "&euro;;)</div>";;
return $ret;;
}
attr Heizoel_esyoil timeout 10
attr Heizoel_esyoil webCmd reread
   FUUID      64038208-f33f-623c-8e79-e6e8826992b34840
   Interval   0
   MainURL    HTTPMOD
   ModuleVersion 4.1.15 - 17.12.2022
   NAME       Heizoel_esyoil
   NOTIFYDEV  global
   NR         3443
   NTFY_ORDER 50-Heizoel_esyoil
   STATE      ???
   TYPE       HTTPMOD
   eventCount 3
   value     
   HTTPCookieHash:
     cs_code;/:
       Name       cs_code
       Options    expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.check24.de; HttpOnly; SameSite=lax
       Path       /
       Value      deleted
     nrg_session;/:
       Name       nrg_session
       Options    path=/; domain=.check24.de; secure; HttpOnly
       Path       /
       Value      5dc3c05ead51a0c69c7b00d0130f5cf6
     ppset;/:
       Name       ppset
       Options    expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; domain=.check24.de; SameSite=lax
       Path       /
       Value      deleted
   HttpUtils:
     data       
     displayurl HTTPMOD
     header     Cookie: cs_code=deleted; nrg_session=5dc3c05ead51a0c69c7b00d0130f5cf6; ppset=deleted
     httpversion 1.0
     hu_blocking 0
     ignoreredirects 1
     loglevel   4
     redirects  0
     timeout    2
     url        HTTPMOD
     sslargs:
   QUEUE:
   READINGS:
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        HTTPMOD
Attributes:
   verbose    5
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

TomLee

Zitatund die PLZ anpassen ?

Habs mir nicht nochmal angeschaut, wie auch das Template aufgebaut ist, zusätzlich zur PLZ wurde bei mir die Menge mit abgefragt in dem Dialogfenster das erscheint wenn man das Template anwendet.

Zum weiteren Problem, nochmal, hilft der Link https://wiki.fhem.de/wiki/Erste_Schritte_in_FHEM#Device_anlegen_-_define ?

oder einmal ums Quadrat laufen ?