Abfrage Heizölpreis HTTPMOD

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

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: Beta-User am 29 Januar 2020, 11:33:57
oder habe ich was verpaßt?
nein nein alles gut :) klar da kommt kein Mensch drauf beim Grundthema Benzin nach Heizöl zu suchen - die SuFu findet es eh nur wenn man direkt nach esyoil sucht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Schotty

#16
Zitat von: subseven am 09 Januar 2020, 16:51:01
Für Interessierte anbei mein HTTPMOD
Zitat von: yersinia am 10 Januar 2020, 16:31:02
Ich hab mich dessen bedient und ... es etwas erweitert
Danke!
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

subseven

Esyoil hat die Seite umgebaut. Das Feld, welche ich abgefragt habe, existiert in der Form nicht mehr. Morgen werde ich mal schauen welches man stattdessen abfragen kann.
Falls jemand schneller als ich ist, kann er gerne seine Lösung zur Verfügung stellen.

Schotty

Hmm, also ich hatte yersinias Codebeispiel übernommen (was ja eigtl auf deinem beruht) und bis jetzt funktioniert noch alles!
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

yersinia

Bei mir funktioniert das HTTPMOD fehlerfrei, aber die RegEx zieht nicht mehr. Ich habe zurzeit kein FHEM zur Hand, aber einen regextester. Kann einer von euch diese RegEx bitte testen:
attr Heizoelpreis reading010Regex ([\d\,]+)[\s]*€
Ist leider nicht so schnell wie die Version vorher....
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Schotty

#20
Ich bin diesbzgl noch nicht so fit.. Ist es das hier (bei der Ausgabe von "list Heizoelpreis"):

   READINGS:
     2020-03-07 14:33:33   Heizoelpreis    54.50

Dann stimmt es in der Tat nicht mehr - war mir vorhin nicht aufgefallen, da der Preis zu dem Zeitpunkt noch passte. Momentan aber nicht mehr, der liegt für meine Abfrage (1000l + PLZ) gerade bei 55,57€.

Kurze Frage am Rande (ich hoffe, es ist hier erlaubt?): Wäre es möglich, zusätzlich die Preistendenzgrafik von der esyoil-Startseite mit abzurufen und quasi 1:1 darstellen zu lassen (bspw bei FPUI/FTUI)?

EDIT: Sorry, anscheinend ist mein RegEx aber leicht anders:

reading010Regex <span class="fw_b ">([\d\,]+)


Hier mal das komplette Listing falls es irgendwie hilft - PLZ habe ich durch XXXXX ersetzt:

Internals:
   BUSY       0
   CHANGED   
   DEF        https://www.esyoil.com/preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit= 1800
   FUUID      5e50f415-f33f-e3ee-29c5-4268f0198d30d1eb
   Interval   1800
   LASTSEND   1583835976.00684
   MainURL    https://www.esyoil.com/preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit=
   ModuleVersion 3.5.22 - 7.2.2020
   NAME       Heizoelpreis
   NOTIFYDEV  global
   NR         30
   NTFY_ORDER 50-Heizoelpreis
   ReplacementEnabled 1
   STATE      <div>2020-03-07 14:33:33  <b>54.50&euro;</b>/100l</div>
   TRIGGERTIME 1583837776.00568
   TRIGGERTIME_FMT 2020-03-10 11:56:16
   TYPE       HTTPMOD
   addr       https://www.esyoil.com:443
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl https://www.esyoil.com/preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=XXXXX&pr-amount=1000&submit=
   header     Cookie: calc_arguments=XXXXX%3B1000%3B1%3B8%3B2%3B0%3B%3B%3B%3B%242y%2410%243JEU7KQKYEwoIYPXuKyHWeFj%2FwfDkhCAyi%2FGGzm0aGdtBd4kZ%2Fleu; esyoil_com=mf642ujk9k74h90evsg36s0qg8
   host       www.esyoil.com
   httpheader HTTP/1.1 200 OK
Date: Tue, 10 Mar 2020 10:26:16 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Security-Policy: style-src 'unsafe-inline' 'self' https://stackpath.bootstrapcdn.com https://use.fontawesome.com https://fonts.googleapis.com https://cdnjs.cloudflare.com blob:; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com https://use.fontawesome.com data:; report-uri /api.php?sid=570
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: calc_arguments=XXXXX%3B1000%3B1%3B8%3B2%3B0%3B%3B%3B%3B%242y%2410%243JEU7KQKYEwoIYPXuKyHWeFj%2FwfDkhCAyi%2FGGzm0aGdtBd4kZ%2Fleu; expires=Tue, 24-Mar-2020 10:26:16 GMT; Max-Age=1209600; path=/; secure
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Upgrade: h2
Connection: Upgrade, close
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: no-cache
Content-Language: de
Content-Length: 36468
Content-Type: text/html; charset="utf-8"
   httpversion 1.0
   hu_blocking 0
   hu_filecount 4
   hu_port    443
   hu_portSfx
   ignoreredirects 1
   loglevel   4
   path       /preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=XXXXX&pr-amount=1000&submit=
   protocol   https
   redirects  0
   timeout    2
   url        https://www.esyoil.com/preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=XXXXX&pr-amount=1000&submit=
   value      0
   CompiledRegexes:
   HTTPCookieHash:
     calc_arguments;/:
       Name       calc_arguments
       Options    expires=Tue, 24-Mar-2020 10:26:16 GMT; Max-Age=1209600; path=/; secure
       Path       /
       Value      XXXXX%3B1000%3B1%3B8%3B2%3B0%3B%3B%3B%3B%242y%2410%243JEU7KQKYEwoIYPXuKyHWeFj%2FwfDkhCAyi%2FGGzm0aGdtBd4kZ%2Fleu
     esyoil_com;/:
       Name       esyoil_com
       Options    expires=Tue, 10-Mar-2020 09:06:17 GMT; Max-Age=600; path=/; secure; HttpOnly
       Path       /
       Value      mf642ujk9k74h90evsg36s0qg8
   QUEUE:
   READINGS:
     2020-03-07 14:33:33   Heizoelpreis    54.50
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        https://www.esyoil.com/preisausgabe.php?pr-unloading-points=1&pr-product=8&pr-payment-type=2&pr-truck-type=&pr-hose-length=&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit=
     value      0
   sslargs:
Attributes:
   DbLogExclude 1
   enableControlSet 1
   reading010Expr $val =~ s/,/\./; $val;
   reading010Name Heizoelpreis
   reading010OExpr $val =~ s/,/\./; $val;
   reading010Regex <span class="fw_b ">([\d\,]+)
   replacement01Mode text
   replacement01Regex %%PLZ%%
   replacement01Value XXXXX
   replacement02Mode text
   replacement02Regex %%MENGE%%
   replacement02Value 1000
   room       HEIZOEL,Unsorted
   stateFormat {"<div>".ReadingsTimestamp($name,"Heizoelpreis","-")." \ <b>".ReadingsVal($name,"Heizoelpreis","-")."&euro;</b>/100l</div>"}
   userattr   reading010Expr reading010Name reading010OExpr reading010Regex replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value
   webCmd     reread
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

yersinia

Dat hascht aber jelesen, oder?
Zitat von: yersinia am 10 März 2020, 11:42:46
Bei mir funktioniert das HTTPMOD fehlerfrei, aber die RegEx zieht nicht mehr. Ich habe zurzeit kein FHEM zur Hand, aber einen regextester. Kann einer von euch diese RegEx bitte testen:
attr Heizoelpreis reading010Regex ([\d\,]+)[\s]*€
Ist leider nicht so schnell wie die Version vorher....

Nach Sicherung könntest du testhalber das Attribut von
reading010Regex <span class="fw_b ">([\d\,]+)
auf
reading010Regex ([\d\,]+)[\s]*€
ändern.

Keine Garantie, das es sauber funktioniert, ist ein erster Schuß. Wie gesagt, hab derzeit kein FHEM zur Hand.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Schotty

#22
Ja hatte ich (EDIT: Zur Erklärung: Ich hatte den Code von dir auf S.1 so übernommen), hab's jetzt geändert und es scheint zu funktionieren:

Heizoelpreis  2020-03-10 12:45:35 55.57€/100l

Danke schonmal! :)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

yersinia

Danke Schotty. Ich hatte jetzt auch die Gelegenheit es zu testen und es sieht gut aus.

Schön wäre es, wenn noch mehr testen würden. Oder gar das RegEx optimieren würden.

Wenn es keine Einwände gibt, werde ich die Änderung in das httpmod.template einpflegen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

subseven


Jump2016

@Schotty: Habe es getestet. Kann bestätigen, es funktioniert :)

FHEM-User22

Moin,
auch bei mir, funzt.
Dankeschön
FHEM auf Raspberry Pi und Proxmox und... und.... und....

Beta-User

Zitat von: yersinia am 10 März 2020, 17:02:10
Wenn es keine Einwände gibt, werde ich die Änderung in das httpmod.template einpflegen.
:)
...das habe ich gehört und hoffe, es richtig interpretiert zu haben!
*freu*

Mit dem nächsten update zu diversen attrTemplate wird der Fix jedenfalls drin sein,  falls das die richtige Version ist:
attr DEVICE reading010Regex ([\d\,]+)[\s]*€
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

yersinia

Zitat von: Beta-User am 11 März 2020, 08:33:25
:)
...das habe ich gehört und hoffe, es richtig interpretiert zu haben!
*freu*
Höchstwahrscheinlich nicht. Ich hätte das angepasste Template dir kopierfertig in httpmod.template thread gekippt.... ;D

Zitat von: Beta-User am 11 März 2020, 08:33:25
Mit dem nächsten update zu diversen attrTemplate wird der Fix jedenfalls drin sein,  falls das die richtige Version ist:
attr DEVICE reading010Regex ([\d\,]+)[\s]*€
Ja, das ist mMn richtig. Verstehe _ich_ das richtig, dass du das direkt übernimmst? ;)
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Beta-User

Schade, aber du bist jederzeit weiter herzlich eingeladen...

Ja, update kommt, ich war nur etwas zu spät dran für den regulären update-Zyklus und habe noch ein paar andere Baustellen, von denen evtl. weitere Kleinigkeiten zurückkommen, die dann ggf. gleich auch noch mit rein können.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files