Abfrage Heizölpreis HTTPMOD

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

Vorheriges Thema - Nächstes Thema

Bartimaus

Ich habe mir mal erlaubt, mir die Abfrage in "stateFormat" durch ChatGPT erläutern zu lassen....

Dann hat mir ChatGPT angeboten, die Abfrage etwas umzustrukturieren. Das Ergebnis sieht so aus. Ist für mich als NichtInformatiker "leichter" zu lesen. Was hältst Du davon ?

{
  my $menge = ReadingsNum("CN.Blaubrenner","Bestellmenge",0);
  my $preis = ReadingsNum($name,"Heizoelpreis",0);
  my $zeit  = ReadingsTimestamp($name,"Heizoelpreis","");

  return '<span style="color:gray;">kein Preis</span>'
    if !$menge || !$preis;

  my $gesamt = sprintf("%.2f", ($menge * $preis) / 100);

  my $link = "https://www.heizoel24.de/heizoel/angebotsliste?"
           . "zipCode="  . AttrVal($name,"replacement01Value","")
           . "&amount="  . $menge
           . "&stations=". AttrVal($name,"replacement03Value","")
           . "&product=1";

  return
    qq(<span>$zeit: <a href="$link" target="_blank" rel="noopener noreferrer"><b>$preis&nbsp;&euro;</b></a>/100l ($menge&nbsp;l = $gesamt&nbsp;&euro;)</span>);
}

Aktuell wird mir aber kein Preis geliefert, weil die Tankmenge momentan unter dem Bestellminimum liegt, und/oder ich zu oft die Werte abgefragt habe
LG
B.


FHEM@AMD-Ryzen7-5825U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

TomLee

#121
Handarbeit, mit etwas FHEM-Erfahrung:

{
    my $oilprice = ReadingsNum($name,'Heizoelpreis',0);
    my $lastcheck = ReadingsTimestamp($name,'Heizoelpreis','');
    my $zip = AttrNum($name,'replacement01Value',0);
    my $amount = AttrNum($name,'replacement02Value',0);
    my $stations = AttrNum($name,'replacement03Value',0);
    my $price = $amount*$oilprice/100;

    my $link = qq(https://www.heizoel24.de/heizoel/angebotsliste?zipCode=$zip&amp;amount=$amount&amp;stations=$stations&amp;product=1);
   
    return sprintf(
    q(<div style="text-align: left;">%s: <a href="%s" rel="noopener noreferrer" target="_blank" style="font-weight:bold">%.2f€</a>/100l (%sL = %.2f€)</div>),$lastcheck,$link,$oilprice,$amount,$price);
}

Bartimaus

Deins habe ich mal getestet.... wenn ich auf den Link im State klicke, werde ich ordnungsgemäß zu Heizoel24 weitergeleitet, und bekomme einen Preis mit meinen Eingabeparametern, wird aber im State/Readings nicht angezeigt, stattdessen 0,0€.

LG
B.


FHEM@AMD-Ryzen7-5825U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly