[gelöst] Problem mit FileLog get. Wert aus Log vor 1 Stunde

Begonnen von Groej, 27 April 2017, 07:04:15

Vorheriges Thema - Nächstes Thema

Groej

Hallo an alle die dies hier lesen,

ich möchte für meine Luftdrucktendenz den Luftdruck vor eine Stunde aus dem Logfile holen und dann mit dem aktuellen Wert vergleichen. Das Vergleichen bekomme ich ja hin aber ich bekomme den Wert nicht aus meinen Logfile raus.

Ich habs mal so probiert:
define wh_luftdruck_vor_1h at +*00:01:00 {my $a=strftime "%Y-%m-%d_%H:%M:%S", localtime time-60*60;;my $b=strftime "%Y-%m-%d_%H:%M:%S", localtime time-60*60;; my $c = fhem("get log_wh3080_luftdruck - - $a $b 2:wh_luftdruck::");; fhem("set wh_luftdruck_tendenz $c")}

Im Moment noch mit einen at Befehl zum Testen danach wird es ein notify.

Im Event Monitor steht dazu folgendes:
2017.04.27 06:59:58 3 : get log_wh3080_luftdruck - - 2017-04-27_05:59:58 2017-04-27_05:59:58 2:wh_luftdruck:: : #2:wh_luftdruck::
2017-04-27 06:59:58 dummy wh_luftdruck_tendenz #2:wh_luftdruck::


Das Log dazu hat z.B. folgenden Inhalt:
2017-04-27_06:37:02 wh_luftdruck 1008.8
2017-04-27_06:38:01 wh_luftdruck 1008.8
2017-04-27_06:39:02 wh_luftdruck 1008.7
2017-04-27_06:40:02 wh_luftdruck 1008.8
2017-04-27_06:41:01 wh_luftdruck 1008.8
2017-04-27_06:42:03 wh_luftdruck 1008.8


Ich möchte ja nur den Zahlenwert haben und in einen Dummy schreiben. Ich hab da gestern schon den ganzen Tag dran gebastelt aber ich bekomms nicht hin. Hat jemand einen Tipp für mich?

Danke

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

rudolfkoenig

ZitatHat jemand einen Tipp für mich?
Kann gerade nicht zuordnen, wo das gezeigte Log herkommt, aber die Parameter fuer die 2. und 3. column_spec kommen mir komisch vor.
Im gezeigten Log gibt es keine Daten, die im gesuchten Zeitraum geschrieben worden, finde also richtig, wenn get nichts zureckliefert. Wenn die Daten einmal pro Minute gemeldet werden, dann wuerde ich einen entsprechenden Zeitfenster waehlen.

Groej

Hallo,

sorry das Log ist vom Device. Aus dem Log möchte ich halt den Wert haben der vor einer Stunde eingetragen wurde. Ja die Daten kommen jede Minute und werden in das Log geschrieben.
Welchen Zeitraum soll ich denn nehmen? Muß ich die Sekunden denn angeben oder reicht auch nur Datum Stunde und Minute?

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

Groej

Hallo,

niemand einen Tipp für mich wie ich den Wert aus dem Sensor Log bekomme der vor einer Stunde war?

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

rudolfkoenig

Ein "Tipp" ist offensichtlich (die get Parameter so zusammenbauen, dass sie den Bereich +-5 Minuten vor eine Stunde spezifizieren), eine getestete Loesung hinzuschreiben ist mir aber zu viel Arbeit.

Groej

Moin,

das is schon klar aber dann hätte ich bei +- 5 Minuten ca. 10 Werte. Ich brauch aber nur einen. Geht das nicht anders?

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

Groej

Hallo,

ich habs jetzt mal so probiert:
define wh_luftdruck_vor_1h at +*00:01:00 {my $c = fhem("get log_wh3080_luftdruck - - 2017-05-03_10:30:00 2017-05_03_10:33:59 3:::");; fhem("set wh_luftdruck_tendenz $c")}


Dann wir das ausgespuckt:
2017-05-03_10:30:02 1019.5
2017-05-03_10:31:02 1019.5
2017-05-03_10:32:03 1019.6
2017-05-03_10:33:01 1019.6
2017-05-03_10:34:02 1019.5
2017-05-03_10:35:01 1019.5
2017-05-03_10:36:01 1019.5
2017-05-03_10:37:02 1019.5
2017-05-03_10:38:01 1019.6
2017-05-03_10:39:01 1019.6
2017-05-03_10:40:01 1019.6
2017-05-03_10:41:02 1019.5
2017-05-03_10:42:02 1019.5
2017-05-03_10:43:01 1019.5
2017-05-03_10:44:01 1019.5
2017-05-03_10:45:03 1019.6
2017-05-03_10:46:02 1019.6
2017-05-03_10:47:02 1019.5
2017-05-03_10:48:02 1019.6
2017-05-03_10:49:04 1019.5
2017-05-03_10:50:02 1019.6
2017-05-03_10:51:02 1019.6
2017-05-03_10:52:02 1019.6
2017-05-03_10:53:02 1019.5
2017-05-03_10:54:02 1019.5
2017-05-03_10:55:01 1019.5
2017-05-03_10:56:02 1019.5
2017-05-03_10:57:02 1019.6
2017-05-03_10:58:02 1019.6
2017-05-03_10:59:02 1019.5
2017-05-03_11:00:03 1019.5
2017-05-03_11:01:02 1019.4
2017-05-03_11:02:02 1019.5
2017-05-03_11:03:01 1019.5
2017-05-03_11:04:01 1019.6
2017-05-03_11:05:02 1019.5
2017-05-03_11:06:02 1019.6
2017-05-03_11:07:02 1019.6
2017-05-03_11:08:01 1019.6
2017-05-03_11:09:01 1019.6
2017-05-03_11:10:02 1019.6
2017-05-03_11:11:03 1019.6
2017-05-03_11:12:02 1019.6
2017-05-03_11:13:01 1019.6
2017-05-03_11:14:03 1019.5
2017-05-03_11:15:01 1019.5
2017-05-03_11:16:02 1019.6
2017-05-03_11:17:02 1019.5
2017-05-03_11:18:03 1019.5
2017-05-03_11:19:02 1019.6
2017-05-03_11:20:01 1019.6
2017-05-03_11:21:02 1019.5
2017-05-03_11:22:04 1019.6
2017-05-03_11:23:02 1019.6
2017-05-03_11:24:01 1019.6
2017-05-03_11:25:02 1019.5
2017-05-03_11:26:02 1019.5
2017-05-03_11:27:01 1019.5
2017-05-03_11:28:02 1019.7
2017-05-03_11:29:01 1019.7
2017-05-03_11:30:02 1019.5
2017-05-03_11:31:02 1019.5
2017-05-03_11:32:01 1019.6
2017-05-03_11:33:03 1019.6
2017-05-03_11:34:01 1019.6
2017-05-03_11:35:02 1019.5
2017-05-03_11:36:03 1019.5
2017-05-03_11:37:01 1019.5
2017-05-03_11:38:05 1019.6
2017-05-03_11:39:02 1019.6
2017-05-03_11:40:01 1019.6
2017-05-03_11:41:02 1019.6
2017-05-03_11:43:02 1019.5
2017-05-03_11:44:02 1019.5
2017-05-03_11:45:01 1019.5
2017-05-03_11:46:01 1019.5
2017-05-03_11:47:02 1019.5
2017-05-03_11:48:01 1019.5
2017-05-03_11:49:01 1019.5
2017-05-03_11:50:03 1019.4
2017-05-03_11:51:02 1019.5
2017-05-03_11:52:01 1019.5
2017-05-03_11:53:01 1019.4
2017-05-03_11:54:02 1019.4
2017-05-03_11:55:01 1019.4
2017-05-03_11:56:01 1019.4
2017-05-03_11:57:07 1019.4
2017-05-03_11:59:02 1019.4
2017-05-03_12:00:01 1019.5
2017-05-03_12:01:03 1019.4
2017-05-03_12:02:01 1019.4
2017-05-03_12:03:02 1019.5
2017-05-03_12:04:06 1019.5
2017-05-03_12:05:01 1019.5
2017-05-03_12:06:01 1019.5
2017-05-03_12:07:05 1019.4
2017-05-03_12:08:02 1019.4
#3:::


Warum wird mir vom Datum/Uhrzeit bis zur aktuellen Uhrzeit ausgegeben und nicht wie definiert nur der 3 Minutenbereich?

Das Logfiles sieht so aus:
2017-05-03_10:28:02 wh_luftdruck 1019.5
2017-05-03_10:29:01 wh_luftdruck 1019.5
2017-05-03_10:30:02 wh_luftdruck 1019.5
2017-05-03_10:31:02 wh_luftdruck 1019.5
2017-05-03_10:32:03 wh_luftdruck 1019.6
2017-05-03_10:33:01 wh_luftdruck 1019.6
2017-05-03_10:34:02 wh_luftdruck 1019.5
2017-05-03_10:35:01 wh_luftdruck 1019.5
2017-05-03_10:36:01 wh_luftdruck 1019.5
2017-05-03_10:37:02 wh_luftdruck 1019.5
2017-05-03_10:38:01 wh_luftdruck 1019.6


Die nächste Frage ist wie ich den ersten Wert in einen Dummy bekomme. Also den reinen Wert ohne Datum Uhrzeit.

Danke

Gruß

Jörg


FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

Thorsten Pferdekaemper

Zitat von: Groej am 03 Mai 2017, 12:14:29Warum wird mir vom Datum/Uhrzeit bis zur aktuellen Uhrzeit ausgegeben und nicht wie definiert nur der 3 Minutenbereich?
Weil Du in der "bis-Zeit" 2017-05_03_10 geschrieben hast und nicht 2017-05-03_10.

Zitat
Die nächste Frage ist wie ich den ersten Wert in einen Dummy bekomme. Also den reinen Wert ohne Datum Uhrzeit.
In etwa so?

fhem("setreading myDummy tendenz ".$split(/ /, $c)[1]);

Gruß,
   Thorsten
FUIP

Groej

Ja manchmal sieht man nach Tagen den Wald vor lauter Bäumen nicht mehr  8) - peinlich.

So erstmal Danke und ich bin ein Stück weiter. Sieht jetzt so aus:
define wh_luftdruck_vor_1h at +*00:01:00 {my $a=strftime "%Y-%m-%d_%H:%M:00", localtime time-60*60;;my $b=strftime "%Y-%m-%d_%H:%M:59", localtime time-60*60;; my $c = fhem("get log_wh3080_luftdruck - - $a $b 3::0:");; fhem("setreading wh_luftdruck state_3h ".(split(/ /, $c))[1])}


Eine Sache stört jetzt noch. Im Reading steht jetzt folgendes: (siehe Datei Anhang)

Wie bekomm ich jetzt das 3::0: weg?

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

Thorsten Pferdekaemper

Zitat von: Groej am 03 Mai 2017, 17:28:00
Wie bekomm ich jetzt das 3::0: weg?
Keine Ahnung. War das nicht vorher 3::: ?
Gruß,
   Thorsten
FUIP

Groej

Doch war es. Steht im ausgelesen Log in der letzten Zeile in meinen Post etwas höher.

2017-05-03_12:02:01 1019.4
2017-05-03_12:03:02 1019.5
2017-05-03_12:04:06 1019.5
2017-05-03_12:05:01 1019.5
2017-05-03_12:06:01 1019.5
2017-05-03_12:07:05 1019.4
2017-05-03_12:08:02 1019.4
#3:::


Das ist der Wert den er auslesen soll. Steh im Get Filelog Befehl. Habs jetzt gerade umgestellt auf 3::0: aber das kommt dann auch immer als letzte Zeile mit beim Get Filelog.
define wh_luftdruck_3h_notify notify wh_luftdruck {my $a=strftime "%Y-%m-%d_%H:%M:00", localtime time-180*60;;my $b=strftime "%Y-%m-%d_%H:%M:59", localtime time-180*60;; my $c = fhem("get log_wh3080_luftdruck - - $a $b 3::0:");; fhem("setreading wh_luftdruck_3h state ".(split(/ /, $c))[1])}

FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

Thorsten Pferdekaemper

Hi,
probier mal das am Ende:

...".(split(/\s/, $c))[1])}

Gruß,
   Thorsten
FUIP

Groej

Hallo,

klappt so. Super Danke. Ich werd das nie lernen mit dem split usw.

Gruß

Jörg
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280