Hi Zusammen,
ich lass mir 4 Tankstellen im Umkreis anzeigen.
Was ich jetzt gerne hätte wäre eine Auswertung welche der 4 Tankstellen denn aktuell die günstigste ist,
diese würde ich dann auch gerne in FTUI anzeigen.
Hat jemand ne Idee für mich?
Danke
Es gibt ein Modul: https://wiki.fhem.de/wiki/Spritpreismonitor
Und Beiträge: https://forum.fhem.de/index.php?topic=22554.0
Ob das passt musst du feststellen und ob da was mit Tablet-UI geht auch ;)
EDIT: und ob du das schon verwendest weiß ich nicht... ;)
Gruß, Joachim
Hi,
möglicherweise kannst du das mit minNum() umsetzen.
http://fhem.de/commandref_DE.html#Utils (http://fhem.de/commandref_DE.html#Utils)
Gruß
Thomas
Zitat von: MadMax-FHEM am 18 Februar 2018, 15:12:07
Es gibt ein Modul: https://wiki.fhem.de/wiki/Spritpreismonitor
Und Beiträge: https://forum.fhem.de/index.php?topic=22554.0
Ob das passt musst du feststellen und ob da was mit Tablet-UI geht auch ;)
EDIT: und ob du das schon verwendest weiß ich nicht... ;)
Gruß, Joachim
Ja das nutz ich um die 4 Tankstellen ab zu fragen aber vergleichen kann das nicht oder?
Gesendet von meinem ONEPLUS A5000 mit Tapatalk
Zitat von: TomLee am 18 Februar 2018, 15:31:05
Hi,
möglicherweise kannst du das mit minNum() umsetzen.
http://fhem.de/commandref_DE.html#Utils (http://fhem.de/commandref_DE.html#Utils)
Gruß
Thomas
MinNum sieht interessant aus, nur wie bekommt min num die Werte von den tanken?
Gesendet von meinem ONEPLUS A5000 mit Tapatalk
Die Werte der jeweiligen Tanken per ReadingsVal z.B.
Allerdings fraglich wie du dann nach dem Vergleich wieder zurück zur Tanke mit dem niedrigsten Preis kommst...
Evtl. selber in einer Sub in myUtils sortieren/vergleichen...
Kurz da nur Handy...
Gruß, Joachim
Hi nochmal,
hat mich jetzt auch interessiert und so würd ich's angehen:
In die 99_myUtils.pm kommt folgendes:
sub gtanke()
{
my $A = (ReadingsNum("Aral","SuperE5",'0'));
my $G = (ReadingsNum("Globus","SuperE5",'0'));
my $R = (ReadingsNum("Real","SuperE5",'0'));
my $J = (ReadingsNum("Jet","SuperE5",'0'));
my $gtanke = minNum($A,$G,$R,$J);
fhem ("setreading du_Test gtanke $gtanke")
}
Und mit einem at bspw. alle 10 Minuten die sub aufrufen:
define at_gtanke at +*00:10:00 { gtanke() }
Hab ich mir mit meinem Halbwissen zusammengeschustert und nur kurz getestet daher mit Vorsicht zu genießen.
Gruß
Thomas
danke das wäre cool :)
wo wird das denn ausgegeben?
Zitat von: holzfelix am 22 Februar 2018, 14:05:28
danke das wäre cool :)
wo wird das denn ausgegeben?
Du kannst es in irgendein Device schreiben und dir den Reading namen aussuchen.
Das macht diese Zeile:
fhem ("setreading <Device> <Reading> <Deine Variable aus der Sub um den Wert in das Reading zu schreiben>")
In dem Fall ist die Variable $gtanke
Hier im Beispiel testweise in dem Reading gtanke des Dummy du_test.
fhem ("setreading du_Test gtanke $gtanke")
Wohin du das setreading schreibst, bleibt aber dir überlassen.
Wenn du auch die Spritpreisübersicht (readingsgroup) angelegt hast, denk ich, passt das dort gut.
Gruß
Thomas
An meinem gezeigten Beispiel würd ich gerne Wissen weshalb der Code nicht direkt aus dem at funktioniert ?
So in der Art:
define at_gtanke at +*00:10:00 {
my $A = (ReadingsNum("Aral","SuperE5",'0'));
my $G = (ReadingsNum("Globus","SuperE5",'0'));
my $R = (ReadingsNum("Real","SuperE5",'0'));
my $J = (ReadingsNum("Jet","SuperE5",'0'));
my $gtanke = minNum($A,$G,$R,$J);
fhem ("setreading du_Test gtanke $gtanke")
}
Das sollte doch eigentlich auch gehen ?
Kann jemand mit etwas Erfahrung in Perl dazu was sagen ?
Gruß
Thomas
jetzt funzt ... tippfehler ;)
Aber das gibt ja nur den billigsten Preis zurück oder? Besser wäre ja wenn es den Name der Tanke zurück gibt oder? Geht das auch?
Das ist mir bereits zu Beginn aufgefallen: https://forum.fhem.de/index.php/topic,84577.msg768967.html#msg768967
Evtl. durch Rückwärtsvergleich, also welche Tanke diesen günstigsten Preis hat... ;)
Oder die ganzen Preise in ein Array und dann den Index zum günstigsten Preis merken beim Vergleich...
Kurz, da wieder nur Handy...
Gruß, Joachim
oh das hab ich überlesen ;)
kann ich da in der myUtils.pm normal mit pearl programmieren gibt es einschränkungen?
Ja, perl.
Einschränkungen kenne ich bislang keine bzw. was ich machen wollte scheiterte nicht an Einschränkungen... ;)
Allerdings: keine Schleifen etc. die lange laufen, da solange die Funktion/Sub ausgeführt wird eben fhem blockiert...
Das wäre so die einzige Einschränkung die mir jetzt so einfällt...
Wenn du fhem-Befehle absetzen willst, dann halt so:
fhem("Fhembefel")
Beispiel:
fhem("set Licht on")
Gruß, Joachim
falls es jemand braucht hier meine Lösung.
Definitiv nicht schön so entwickel ich ungern aber dafür tuts es
sub
gtanke()
{
my $A = (ReadingsNum("Hilzingen","SuperE10",'0'));
my $G = (ReadingsNum("Konstanz","SuperE10",'0'));
my $R = (ReadingsNum("MTBSingen","SuperE10",'0'));
my $J = (ReadingsNum("TotalGottmadingen","SuperE10",'0'));
my $gtanke = minNum($A,$G,$R,$J);
my $tanke = "";
if ($gtanke == $A){
$tanke = "Hilzingen";
}
if ($gtanke == $G){
$tanke = "Konstanz";
}
if ($gtanke == $R){
$tanke = "MTBSingen";
}
if ($gtanke == $J){
$tanke = "TotalGottmadingen";
}
fhem ("setreading billigsteTanke gtanke $tanke")
}