Hallo ich würde gerne einen Plot erstellen der mit den Tank Daten von meinem Auto gefüttert wird.
Konkret heißt das
Bei welchem Kilometerstand (km), wieviel Liter (l), wieviel bezahlt (€) und wieviel Kilometer seid dem letzten tanken(kmT).
Jetzt habe ich das Problem das ich gerne alle 4 werte in dem plot sehen möchte das geht aber nicht bzw ich weiß nicht wie da der Kilometerstand um die 125000 liegt die Liter zahl so um die 55, der Preis um die 67 und Trip so um die 890
Ergeben sich für den Plot zum darstellen:
(km) 125000
(l) 55
(€) 67
(kmT) 890
Wie bekomme ich das in den Plot sodass ich alles sehen kann?
Zitat von: Tueftler1983 am 10 Oktober 2017, 01:36:04
Wie bekomme ich das in den Plot sodass ich alles sehen kann?
Musst du denn alles sehen? Hauptproblem werden ja scheinbar die gesamt KM machen. Entweder die nicht als 125000, sondern als 125tkm anzeigen, oder kmT, l, € auf eine Seite und km auf die andere Seite.
du musst dich halt entscheiden. km links und liter/ € rechts zb. wobei ich überlegen würde ob gesamtkilometer des fahrzeuges überhaupt ein sinnvoller wert in so einer auswertung bzw überhaupt ein sinnvoller wert sind. die werden in der regl nur steigen, außer du kaufst ein neues auto mit weniger km oder manipulierst den tacho ;)
da eigentlich nur die l/km interessant sind um evtl einen erhöhten verbrauch festzustellen (zb auf grund eines defektes) würde ich nur diese errechnen und darstelllen. auf grund von schwankenden getankten litern (zb bei 75% tank getankt weils in urlaub ging) oder den schwankenden preisen/l (mal an der autobahn getank zb) sind das eigentlich auch keine werte aus denen man wertvolle schlüsse per plot ziehen kann. evtl ist noch spritkosten/km interessant zu errechnen.
edit: ok mit den 125k für km als anzeige macht evtl eine anzeige verbrauch/km(100km) und gesamtkm sinn. so könnte man evtl sehen ob der motor mit steigender km-zahl mehr verbraucht
Danke schonmal für die Antworten
Versuche Grade aus dem Reading km das 3 stellige gerundete Reading km_rund zu bekommen,
Allerdings bekomme ich mit meinem versuch:
km_rund {sprintf("%.1f", ReadingsVal($name,"km",0)) / 1000}
Nur 124.678 aus dem Wert 124678
Wo mache ich den fehler?
Du teilst ein sprintf durch 1000...?
Ciao, -MN
Ziel soll es sein aus den 124678 125 zu bekommen also mathematisch auf 3 stellen runden bzw kürzen
Ja, schon verstanden.
Du teilst jedoch den Rückgabewert von sprintf durch 1000.
Ciao, -MN
So geht es akzeptabel
km_rund {int(0.5+(ReadingsVal($name,"km",0) / 1000))}
Aus 124678 wird 125
Aus 124490 wird 124 sollte zwar mathematisch auch 125 ergeben aber damit kann man leben
Esseidenn jemand kennt ne besseren genaueren weg
es gibt in per math::round. ob das modul durch fhem geladen wird weiss ich jedoch nicht
http://search.cpan.org/dist/Math-Round/Round.pm
FHEM stellt einen eigenen round Befehl zur Verfügung:
my $rounded = round($value,$num_of_decimal);