Autor Thema: Abfrage Heizölpreis HTTPMOD  (Gelesen 16213 mal)

Offline docolli

  • New Member
  • *
  • Beiträge: 8
Antw:Abfrage Heizölpreis HTTPMOD
« Antwort #75 am: 02 September 2021, 14:10:37 »
Ich hatte Probleme mit der Abfrage bei Heizöl24 und bin jetzt drauf gekommen, dass es daran liegt, dass ich die Bedarfsmenge dynamisch aus meinem Tankinhaltssensor berechne und die Menge aktuell nur bei wenigen Litern liegt.

Die Mindestmenge liegt aber bei 500 Litern und geringere Menge erzeugen nur einen Fehlercode im XML

<result>
<error>LitreTooLow</error>
<errorMessage>Die Mindestabnahmemenge beträgt 500 Liter.</errorMessage>
</result>

Ich habe ein paar Werte nun so angepasst, dass die Mindestbestellmenge berücksichtigt wird

attr Heizoel_heizoel24 replacement02Value my $minvolume = 500;;\
if (ReadingsNum($name,"Tankmenge",0) > $minvolume) {ReadingsNum($name,"Tankmenge",0)} else {$minvolume};;\

attr Heizoel_heizoel24 stateFormat { my $price = 0.0;;\
my $volume = 500;;\
if (ReadingsNum($name,"Tankmenge",0) > $volume) {$volume = ReadingsNum($name,"Tankmenge",0)}\
my $index = 1;;\
my $oilgradecode;;\
my @oilgrade = ("standard","super","premiumecotherm","bio");;\
foreach my $i (@oilgrade){ if ($i eq AttrVal($name,"replacement04Value","")){ $oilgradecode=$index;; } $index++;; }\
$price = ReadingsNum($name,"Fuellkosten",0);;\
my $lastCheck = ReadingsTimestamp($name,"Heizoelpreis","");;\
my $ret = "<div style=\"text-align: left;;\">";;\
my $link = "https://www.heizoel24.de/heizoel/angebotsliste?";;\
$link .= "zipCode=".AttrVal($name,"replacement01Value","");;\
$link .= "&amount=".$volume;;\
$link .= "&stations=".AttrVal($name,"replacement03Value","");;\
$link .= "&product=".$oilgradecode;;\
$ret .= "&nbsp;;<a href=\"".$link."\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;;\">";;\
$ret .= ReadingsVal($name,"Heizoelpreis","-");;\
$ret .= "&euro;;</a>/100l";;\
$ret .= "&nbsp;;(".$volume."l = ";;\
$ret .= sprintf("%.2f",$price);;\
$ret .= "&euro;;) ";;\
        $ret .= " / ".ReadingsVal($name,"Heizoelsorte","-");;\
        $ret .= " - ".$lastCheck."</div>";;\
return $ret;;\
}\



Gefällt mir Gefällt mir x 1 Liste anzeigen