BenzinpreisMonitor

Begonnen von Phil__, 16 April 2014, 18:52:21

Vorheriges Thema - Nächstes Thema

ph1959de

Zitat von: Michi240281 am 10 August 2015, 18:27:54
Ich habe es für SuperE5 wieder hinbekommen mit folgendem Ausdruck:

readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)

Für Ultimate 102 bekomme ich es aber nicht hin.

readingsName_AralUltimate102 Ultimate_102

readingsRegex_AralUltimate102 <span>Ultimate 102</span>[^0-9]+([0-9\.]+)


tuts leider nicht!

Jmd ne Idee bzw. es auch für Ultimate wieder hinbekommen?
Schau in die Details der betreffenden Tankstelle/Sorte. Da gibt es ein Internal "buf" ... such darin nach Ultimate... und übernehme die genaue Formulierung in deine Regex.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Franz Tenbrock

Hallo
kannst du alle attr posten ?!

komme nicht weiter . Diesel ok aber was mit der Schreibweise von Super E10 ist wohl nicht ok
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Michi240281

#302
Hier mal ein Auszug aus dem buf:

src="/static/img/melder_icon_standard.png" class="report_price_symbol"/> <span class="report_price_label"> MTS-K Beschwerde </span> </button> </div> </div> <div
class="fuel-price-entry" ng-controller="SpritsortenController" ng-init="init('1,589')"> <div class="fuel-price-type"><span>ARAL Ultimate 102</div> <div class="price-box"> <div
class="price-input" ng-class="{'price-dirty': dirty}"> <span ng-click="minus()" class="decrease-price">-</span><span class="price-field"><span ng-bind=
"display_preis">1.58 </span> <sup ng-bind="suffix">9</sup></span><span ng-click="plus()" class="increase-price">+</span> </div> <button ng-cloak ng-click="melden('False','3880', 'ARAL Ultimate 102 (DE)',
'18')" ng-show="dirty" class="report-price" type="submit">
<img src="/static/img/melder_icon_standard.png" class="report_price_symbol"/> <span class="report_price_label">


Dementsprechend habe ich das regex folgendermaßen angepasst:

readingsRegex_AralUltimate102 <span>ARAL Ultimate 102</span>[^0-9]+([0-9\.]+)

Tuts leider nicht! :(

@Franz:

Hier meine kompletten attr:

Attributes:
   readingsName_AralUltimate102 ARAL_Ultimate_102
   readingsName_SuperE5 Super_E5
   readingsRegex_AralUltimate102 <span>ARAL Ultimate 102</span>[^0-9]+([0-9\.]+)
   readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

Sooooooooo, habs hinbekommen! :)

   readingsName_AralUltimate102 Ultimate_102
   readingsName_SuperE5 Super_E5
   readingsRegex_AralUltimate102 <span>ARAL Ultimate 102</div>[^0-9]+([0-9\.]+)
   readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

ph1959de

In deinem "buf" steht <span>ARAL Ultimate 102</div> und Deine Regex prüft auf <span>ARAL Ultimate 102</span> ... wie soll das funktionieren?
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Klinki

Ich möchte nur fein artig "Danke" sagen!
Die Anpassung
<div class="fuel-price-type"><span>Diesel[^0-9]+([0-9\.]+)
hat auch bei mir funktioniert.

Ich hab einen Systemwechsel durchgeführt und natürlich das Problem erst Mal bei mir gesucht.
Tja, hätte ich direkt hier geschaut... ::)


Sky

Hallo ,

weiß jemand warum mein Log folgendes anzeigt ??

2015.09.13 18:31:15 1: reload: Error:Modul 99_myUtils deactivated:

habe mein Fhem neu aufgesetzt und auch den Spritpreismonitor , aber nach anlegen der  99_myUtils.pm kommt diese Fehlermeldung .


Folgendes steht in der  99_myUtils.pm :

sub Werte($$) {
  my ($name, $wert) = @_;
# Log(3,"$name $wert");
  if ($name eq "Diesel") {
    return 'style="color:red"' if($wert >= 1.39);
    return 'style="color:blue"' if(($wert >= 1.33) && ($wert < 1.39));
    return 'style="color:green;;font-weight:bold"' if($wert <= 1.32);
  }elsif ($name eq "SuperE10") {
    return 'style="color:crimson"' if($wert >= 1.70);
    return 'style="color:yellow"' if(($wert >= 1.55) && ($wert < 1.70));
    return 'style="color:lightgreen;;font-weight:bold"' if($wert < 1.55);
  }elsif ($name eq "SuperE5") {
    return 'style="color:red"' if($wert >= 1.59);
    return 'style="color:blue"' if(($wert >= 1.49) && ($wert < 1.59));
    return 'style="color:green;;font-weight:bold"' if($wert <= 1.48);
  } 
}

PeMue

Hallo Sky,

was steht denn in deiner fhem Logdatei? Da meckert er meistens, was ihm nicht gefällt.
Vermutlich eine Klammer vergessen oder so ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Sky

Hallo PeMue ,

danke für die schnelle Antwort.
In meinem Logfile steht leider nicht mehr .
Habe die 99_myUtils.pm angelegt wie unter http://www.fhemwiki.de/wiki/Spritpreismonitor
Wollte dann die Werte ( € ) für mich ändern .


Hauswart

Was mich bisher immer etwas gestört hat, die fehlenden 0.009 :)

Lösung:

attr Shell readingsExpr_Diesel $val + 0.009
attr Shell readingsExpr_SuperE5 $val + 0.009


:)
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

ChHerrm

#310
Hallo! Der Spritpreismonitor läuft sehr gut und zuverlässig. Besten Dank für die Arbeit daran! :)
Ich habe jetzt zu der farblichen Darstellung eine hoffentlich nicht allzu schwer zu beantwortende Frage. Dafür zunächst der Code:

in der fhem.cfg:

define AralLuebz HTTPMOD http://www.clever-tanken.de/tankstelle_details/45508 600
attr AralLuebz userattr icon readingsName_Diesel readingsRegex_Diesel stateFormat timeout
attr AralLuebz readingsName_Diesel Diesel
attr AralLuebz readingsRegex_Diesel <span>Diesel</span>[^0-9]+([0-9\.]+)
attr AralLuebz stateFormat Diesel €/Liter
attr AralLuebz timeout 5

define LuebzT readingsGroup RaiffeisenLuebz:<%Raiffaisen_icon>,<Raiffeisen>,Diesel AralLuebz:<%Aral_icon>,<Aral>,Diesel ShellLuebz:<%shell_icon>,<Shell>,Diesel
attr LuebzT group Lübz
attr LuebzT noheading 1
attr LuebzT nostate 1
attr LuebzT notime 1
attr LuebzT room Tanken
attr LuebzT valueFormat { 'Diesel' => ': %.2f  €/Liter', 'Diesel' => ': %.2f  €/Liter', 'Diesel' => ': %.2f  €/Liter'}


Das läuft auch sehr gut. Alle in der Readingsgroup aufgeführten Tankstellen sind wie Aral aufgebaut.

In der 99_myUtils.pm dann folgenden Code an den Schluss vor der letzten 1 gesetzt:

sub FuelFormat($$$)
{
  my ($DEVICE, $READING, $VALUE) = @_;
  my @device_list = ("RaiffeisenLuebz","ShellLuebz","AralLuebz");
  my $lowprice1 = 9;
  my $highprice1 = -9;
  my $actprice1;
  my $lowprice2 = 9;
  my $highprice2 = -9;
  my $actprice2;
  my $lowprice3 = 9;
  my $highprice3 = -9;
  my $actprice3;

  if ($READING eq "Diesel")
  {
    foreach (@device_list)
    {
      $actprice1 = ReadingsVal($_,"Diesel",99);
      #Log 3, "In Schleife Diesel $_: $actprice1";
      if ($actprice1 > $highprice1) { $highprice1 = $actprice1; }
      if ($actprice1 < $lowprice1) { $lowprice1 = $actprice1;}
    }
    #Log 3, "Nach Schleife Diesel: $lowprice1 $highprice1";
    if ((ReadingsVal($DEVICE,"Diesel",99) == $lowprice1)) { return 'style="color:lightgreen;;font-weight:bold"'; }
    elsif ((ReadingsVal($DEVICE,"Diesel",99) == $highprice1)) { return 'style="color:red"'; }
    else { return 'style="color:yellow;;font-weight:bold"'; }
  }
}


Es passiert aber dadurch noch nichts :( Auch nach einem Neustart ist nichts farbig hervorgehoben.  Kann mir jemand bitte damit weiterhelfen, wie ich diese Funktion jetzt genau aufrufen oder umbauen muss? Im Anhang befindet sich ein Bild von meiner bisherigen Darstellung. Ich nutze also kein plot und zeige keine 9 hinter dem Preis an.


PS: Also, dass es ein attr <name> valueStyle {FuelFormat($DEVICE,$READING,$VALUE)} braucht, habe ich gelesen. Aber was bedeutet das jetzt bei mir? <name> geht für die gesamte Readingsgroup oder wie muss mein Aufruf aussehen?

---------------------------------------------------------
Habs doch noch gerade gefunden, unter die readingsgroup: attr LuebzT valueStyle {FuelFormat($DEVICE, $READING, $VALUE)}

Entschuldigt die Störung

raspklaus

#311
Zitat von: Hauswart am 29 September 2015, 13:04:41
Was mich bisher immer etwas gestört hat, die fehlenden 0.009 :)

Lösung:

attr Shell readingsExpr_Diesel $val + 0.009
attr Shell readingsExpr_SuperE5 $val + 0.009


:)

Wo kann dies eingefügt werden ?

define Esso HTTPMOD http://www.clever-tanken.de/tankstelle_details/2634 600
attr Esso userattr icon readingsName_Diesel readingsName_SuperE5 readingsRegex_Diesel readingsRegex_SuperE5 stateFormat timeout
attr Esso group Tanken
attr Esso readingsName_Diesel Diesel
attr Esso readingsName_SuperE5 SuperE5
attr Esso readingsRegex_Diesel <span>Diesel</span>[^0-9]+([0-9\.]+)
attr Esso readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)
attr Esso room Unsorted
attr Esso stateFormat Liter_Diesel: Diesel
attr Esso timeout 5


Natürlich dann mit Esso, aber ich habe schon die verschiedensten Varianten probiert. FHEM weigert sich konstant diese Erweiterung anzuzeigen

habl

Hi raspklaus

probier mal so:
attr Esso stateFormat { sprintf("Super: %.3f €", ReadingsVal ($name,"SuperE5",0)+0.009)}

Gruß
habl

Hauswart

Zitat von: habl am 17 Oktober 2015, 18:52:49
Hi raspklaus

probier mal so:
attr Esso stateFormat { sprintf("Super: %.3f €", ReadingsVal ($name,"SuperE5",0)+0.009)}

Das ist auch ein interessanter Ansatz, speichert dann aber weiterhin den Wert ohne 0.009.

Zitat von: raspklaus am 17 Oktober 2015, 13:55:31
define Esso HTTPMOD http://www.clever-tanken.de/tankstelle_details/2634 600
attr Esso userattr icon readingsName_Diesel readingsName_SuperE5 readingsRegex_Diesel readingsRegex_SuperE5 stateFormat timeout
attr Esso group Tanken
attr Esso readingsName_Diesel Diesel
attr Esso readingsName_SuperE5 SuperE5
attr Esso readingsRegex_Diesel <span>Diesel</span>[^0-9]+([0-9\.]+)
attr Esso readingsRegex_SuperE5 <span>Super E5</span>[^0-9]+([0-9\.]+)
attr Esso room Unsorted
attr Esso stateFormat Liter_Diesel: Diesel
attr Esso timeout 5
attr Esso readingsExpr_Diesel $val + 0.009
attr Esso readingsExpr_SuperE5 $val + 0.009


Sollte eigentlich problemlos gehen.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

raspklaus