FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Olly am 28 Februar 2014, 22:41:13

Titel: Plot mit Kommawerten
Beitrag von: Olly am 28 Februar 2014, 22:41:13
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
Titel: Antw:Plot mit Kommawerten
Beitrag 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
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 28 Februar 2014, 22:57:21
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
Titel: Antw:Plot mit Kommawerten
Beitrag von: justme1968 am 28 Februar 2014, 22:58:59
wenn du alles unter kontrolle hast einfach das komma gegen einen punkt austauschen:

$wert =~ s/,/\./;

gruss
  andre
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 28 Februar 2014, 23:07:12
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
Titel: Antw:Plot mit Kommawerten
Beitrag von: justme1968 am 28 Februar 2014, 23:12:06
versuch mal attr NETIO readingsExpr1 $val =~ s/,/\./;
attr NETIO readingsExpr2 $val =~ s/,/\./;
attr NETIO readingsExpr3 $val =~ s/,/\./;


gruss
  andre
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 00:39:03
Hallo,

funktioniert leider nicht, dann kommt immer 1 raus :-(
Wird ich wohl ohne Plot auskommen müssen...

Gruß

     Olly
Titel: Antw:Plot mit Kommawerten
Beitrag von: justme1968 am 01 März 2014, 09:12:45
häng an jede zeile noch ein

$val;

hinten an.

gruss
  andre
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 10:05:26
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
Titel: Antw:Plot mit Kommawerten
Beitrag von: justme1968 am 01 März 2014, 10:10:17
ich hab doch gesagt an die alte zeile anhängen. ohne etwas weg zu machen :)

attr NETIO readingsExpr1 $val =~ s/,/\./; $val;

gruss
  andre
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 10:17:53
Das war das erste was ich ausprobiert habe. Ergebnis:
unknown command $val, try help    :-(

Gruß

   Olly
Titel: Antw:Plot mit Kommawerten
Beitrag 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
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 13:23:12
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 :-(
Titel: Plot mit Kommawerten
Beitrag von: justme1968 am 01 März 2014, 13:30:29
genau über dem ausschnitt aus deinem screenshot.
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 20:58:19
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
Titel: Antw:Plot mit Kommawerten
Beitrag 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
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 21:11:47
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
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 21:17:35
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
Titel: Antw:Plot mit Kommawerten
Beitrag von: Olly am 01 März 2014, 21:28:03
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