Hallo,
ich habe ein Logfile in dem Temperaturen mit Kommawerten stehen (z.B. 27,4 °C).
Aus diesen möchte ich gerne ein Plot erzeugen, aber mit Kommawerten scheint das nicht zu gehen. :-(
Jemand ´ne Idee für mich.
Gruß
Olly
das dezimaltrennzeichen in perl (zumindest intern für berechnungen) ist ein punkt. nicht ein komma.
gruss
andre
Zitat von: justme1968 am 28 Februar 2014, 22:52:30
das dezimaltrennzeichen in perl (zumindest intern für berechnungen) ist ein punkt. nicht ein komma.
gruss
andre
Hallo Andre,
ja, das ist mir mittlerweile klar.
Das Gerät, aus dem ich die Temperaturwerte auslese spuckt die Werte leider mit Komma aus. Gibt's ne Möglichkeit die Werte vor dem schreiben ins Log umzuwandeln?
Gruß
Olly
wenn du alles unter kontrolle hast einfach das komma gegen einen punkt austauschen:
$wert =~ s/,/\./;
gruss
andre
Wenn ich mich damit nur auskennen würde :-(
Ich lese die Werte mit HTTPMOD von einer Web-Seite aus.
define NETIO HTTPMOD http://192.168.140.20:80/index.htm 300
attr NETIO readingsName1 InnenTemp
attr NETIO readingsName2 AussenTemp
attr NETIO readingsRegex1 Innen</td><td align="right">([\d\,]+)
attr NETIO readingsRegex2 Aussen</td><td align="right">([\d\,]+)
attr NETIO room Gewächshaus
attr NETIO stateFormat {sprintf("IT: %s°C, AT: %s°C", ReadingsVal($name, "InnenTemp",0), ReadingsVal($name, "AussenTemp",0))}
attr NETIO userReadings GewHaus {sprintf("%s %s", ReadingsVal($name, "InnenTemp",0), ReadingsVal($name, "AussenTemp",0))}
define FileLog_GewHaus FileLog ./log/GewHaus-%Y-%m.log NETIO:InnenTemp:.*|NETIO:AussenTemp:.*
attr FileLog_GewHaus room Gewächshaus
define GewHausPlot SVG FileLog_GewHaus:SVG_FileLog_GewHaus:CURRENT
attr GewHausPlot room Gewächshaus
Gruß
Olly
versuch mal attr NETIO readingsExpr1 $val =~ s/,/\./;
attr NETIO readingsExpr2 $val =~ s/,/\./;
attr NETIO readingsExpr3 $val =~ s/,/\./;
gruss
andre
Hallo,
funktioniert leider nicht, dann kommt immer 1 raus :-(
Wird ich wohl ohne Plot auskommen müssen...
Gruß
Olly
häng an jede zeile noch ein
$val;
hinten an.
gruss
andre
Hallo Andre,
Wie muss die Zeile denn dann aussehen? Ich bekomme immer "invalid expression"
attr NETIO readingsExpr 1 $val =~ s/,/\./ $val;
Ich bin echt eine Perl-Niete :-(
Gruß
Olly
ich hab doch gesagt an die alte zeile anhängen. ohne etwas weg zu machen :)
attr NETIO readingsExpr1 $val =~ s/,/\./; $val;
gruss
andre
Das war das erste was ich ausprobiert habe. Ergebnis:
unknown command $val, try help :-(
Gruß
Olly
wo genau gibst du das ein ?
du solltest es im web frontend in die text box hinter attr eingeben. nicht selber ins config file schreiben.
gruss
andre
Zitat von: justme1968 am 01 März 2014, 10:38:56
wo genau gibst du das ein ?
du solltest es im web frontend in die text box hinter attr eingeben. nicht selber ins config file schreiben.
gruss
andre
Hi,
ich arbeite eigentlich sonst nur mit der fhem.cfg , daher hab ich versucht es dort einzutragen.
Im Web-Frontend finde ich keine Möglichkeit es enzutragen :-(
genau über dem ausschnitt aus deinem screenshot.
Da kann ich aber nur readingsExpr.* auswählen (siehe angehängtem Screenshot). Und wenn ich das mache, ändert sich leider auch nichts.
Wenn ich die eigentlichen readingsExpr1+2 entferne, dann bekomme ich Werte vor dem Komma. Das ist mir etwas ungenau ;-)
Weitere Vorschläge??
Gruß
Olly
fehler im modul.
wenn du es in die konfig schreibst musst sie die ; alle verdoppeln.
gruss
andre
Zitat von: justme1968 am 01 März 2014, 21:05:59
fehler im modul.
wenn du es in die konfig schreibst musst sie die ; alle verdoppeln.
gruss
andre
?????? :-(
sorry, Bahnhof
Gruß
Olly
Ahh...
wenn ich in die fhem.cfg
attr NETIO readingsExpr1 $val =~ s/,/\./;; $val;;
attr NETIO readingsExpr2 $val =~ s/,/\./;; $val;;
attr NETIO readingsName1 InnenTemp
attr NETIO readingsName2 AussenTemp
attr NETIO readingsRegex1 Innen</td><td align="right">([\d\,]+)
attr NETIO readingsRegex2 Aussen</td><td align="right">([\d\,]+)
eintrage, bekomme ich wenigstens die Vorkommawerte gescheit. Ein kleiner Schritt weiter.
Gruß
Olly
Bingo!!!!!!!!!!
Es geht. Zufällig waren die Werte gerade beide auf 26.0 daher dachte ich das die Nachkomma-Stellen noch nicht passen, aber sie tun es jetzt :-)
Danke noch mal an Andre für die Geduld mit mir!!!!!!!!!!
Gruß
Olly