[gelöst] Günstigsten Benzinpreis zeigen

Begonnen von Joesky, 07 Juni 2021, 16:41:00

Vorheriges Thema - Nächstes Thema

Joesky

Ich experimentiere gerade mit dem Tablet UI. Dort würde ich mir gerne den aktuell günstigsten Benzinpreis anzeigen. Dazu habe ich schon vor langer Zeit die Benzinpreisanzeige von Tankerkönig im FHEM integriert. Dort frage ich den Preis von 7 Tankstellen, die ich immer mal wieder anfahre. Auf dem FTUI würde ich nun den günstigsten Preis von den 7 Tankstellen herausfinden und den Preis und die Tankstelle anzeigen lassen. Ich hab aber leider so gar keine Idee, wie man das angehen könnte. Hat jemand vielleicht schon so etwas gemacht?
_______________
FREI STATT BAYERN

h002

Ich kenne die Benzinpreisanzeige nicht, aber für mich klingt es so, als ob du dir mal "readingsGroup" anschauen solltest. Dazu gibt es im Wiki einen informativen Eintrag zu Berechnungsmöglichkeiten https://wiki.fhem.de/wiki/ReadingsGroup#Berechnungen.

FHEM-User22

FHEM auf Raspberry Pi und Proxmox und... und.... und....

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Joesky

Zitat von: FHEM-User22 am 08 Juni 2021, 07:11:45
so was in der Art?
Im Prinzip ja, ich muss nur aus mehreren Tankstellen zuerst den niedrigsten Preis herausfinden und diese Tankstelle dann mit Namen und Preis ausgeben.

Zitat von: Damian am 08 Juni 2021, 10:01:09
Man kann das Minimum von Reading hiermit bestimmen: https://fhem.de/commandref_DE.html#DOIF_aggregation
Ich schaue es mir an. Kann ich damit auch das minimum aus mehreren Readings herausfinden? Ich hab pro Tankstelle jeweils ein Reading.

Eine Idee wäre die Readings alle in 99_myutils auszulesen, zu vergleichen und entsprechende Tankstelle mit dem Preis zurückzugeben. Aber wohin könnte ich das zurückgeben, um es im Tablet UI abzurufen?
_______________
FREI STATT BAYERN

Damian

Zitat von: Joesky am 08 Juni 2021, 10:38:39
Im Prinzip ja, ich muss nur aus mehreren Tankstellen zuerst den niedrigsten Preis herausfinden und diese Tankstelle dann mit Namen und Preis ausgeben.
Ich schaue es mir an. Kann ich damit auch das minimum aus mehreren Readings herausfinden? Ich hab pro Tankstelle jeweils ein Reading.

ja, es war ein Tippfehler es muss "von Readings" heißen, ein Minimum eines Readings macht nicht unbedingt Sinn ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Joesky

Jetzt komm ich schon wieder nicht weiter.

Ich habe mir ein DOIF gebastelt, dass im STATE den Device mit dem günstigsten Preis speichert (@min). Es steht folgendes drin:
ZitatReadings
cmd     0            2021-06-08 14:54:07
mode  enabled   2021-06-08 15:05:56
state  TS.Toom   2021-06-10 16:16:58

Ich habe nun versucht in einem anderen DOIF in das Attribut uiTable folgendes zu schreiben:
{package ui_Table;;}
card([[testdf:state]:Super_E10:col24],"Super E10","fuel","1.20","1.70",120,0,"Super E10 €",undef,"2",",,1")


Aber es passiert nichts. Schreibe ich dort TS.Toom statt [testdf:state] direkt rein, wird der Preis angezeigt.
_______________
FREI STATT BAYERN

Joesky

_______________
FREI STATT BAYERN

Damian

Zitat von: Joesky am 17 Juni 2021, 09:04:13
Kann mir niemand helfen?

card([testdf:state:col24],"Super E10","fuel","1.20","1.70",120,0,"Super E10 €",undef,"2",",,1")
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

jkriegl

#9
@Joesky
Im card-Beispiel ist die Farbe der Tanksäule (links oben) die billigste (hier ohne Tanke: V-M, bei mehreren gleichen die nächst gelegene).
Aber beachte den Verlauf der Änderungen. Die verändern den Preis sehr häufig und reagieren sehr schnell, wenn der Nachbar geschraubt hat.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Joesky

Wow, das sieht ja gut aus! Hast Du einen Beispielcode dafür?

@Damian: Danke! Das hat funktioniert.
_______________
FREI STATT BAYERN

jkriegl

in den userReadings T-min und C-min wird die billigste Tanke und deren Farbe ermittelt.
card([[Sprit:HEM-e10:col6], [Sprit:Allg-e10:col6], [Sprit:JET-e10:col6], [Sprit:V-M-e10:col6]],[$SELF:T-min].",fill:".[$SELF:C-min].";font-size:50%", "fuel"."\@".[$SELF:C-min], [Sprit:e10min],[Sprit:e10min]+.1,120,0,["HEM,white","Allg,#00FFFF","JET,Darkorange","V-M,#00FF00"],undef,"3","180,1,1,1,,1,215")
(Sprit:e10min ist der abgerundtete min-Preis aller Tankstellen, kannst Du auch card überlassen)
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly