FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Edi77 am 04 September 2017, 01:10:12

Titel: [gelöst] Fakelog auslesen
Beitrag von: Edi77 am 04 September 2017, 01:10:12
Ich lese ein Strahlenmessgerät mit fakelog aus.
Jetzt möchte ich die Messwerte auslesen für die Tablet UI und zum Zweck der Benachrichtigung auswerten.

Mit "get GammaScoutFLog - - 2017-09-01 2017-09-02" kann ich die Werte anzeigen
Mit "{ ReadingsVal("GammaScoutFLog","state","0") }" bekomme ich nur aktiv.

Ich benötige den letzten Wert in dem Logfile


2017-09-02_19:30:00    2017-09-02_20:00:00       736     1800   24.5   0.409
2017-09-02_20:00:00    2017-09-02_20:30:00       702     1800   23.4   0.390
2017-09-02_20:30:00    2017-09-02_21:00:00       778     1800   25.9   0.432
2017-09-02_21:00:00    2017-09-02_21:30:00       734     1800   24.5   0.408
2017-09-02_21:30:00    2017-09-02_22:00:00       715     1800   23.8   0.397
2017-09-02_22:00:00    2017-09-02_22:30:00       836     1800   27.9   0.464
2017-09-02_22:30:00    2017-09-02_23:00:00       756     1800   25.2   0.420
2017-09-02_23:00:00    2017-09-02_23:30:00       751     1800   25.0   0.417
2017-09-02_23:30:00    2017-09-03_00:00:00       737     1800   24.6   0.409
2017-09-03_00:00:00    2017-09-03_00:30:00       779     1800   26.0   0.433
2017-09-03_00:30:00    2017-09-03_01:00:00       783     1800   26.1   0.435
2017-09-03_01:00:00    2017-09-03_01:30:00       777     1800   25.9   0.432
2017-09-03_01:30:00    2017-09-03_02:00:00       796     1800   26.5   0.442
2017-09-03_02:00:00    2017-09-03_02:30:00       804     1800   26.8   0.447
2017-09-03_02:30:00    2017-09-03_03:00:00       726     1800   24.2   0.403
2017-09-03_03:00:00    2017-09-03_03:30:00       779     1800   26.0   0.433
2017-09-03_03:30:00    2017-09-03_04:00:00       739     1800   24.6   0.411
2017-09-03_04:00:00    2017-09-03_04:30:00       830     1800   27.7   0.461
2017-09-03_04:30:00    2017-09-03_05:00:00       799     1800   26.6   0.444
2017-09-03_05:00:00    2017-09-03_05:30:00       751     1800   25.0   0.417
2017-09-03_05:30:00    2017-09-03_06:00:00       769     1800   25.6   0.427
2017-09-03_06:00:00    2017-09-03_06:30:00       790     1800   26.3   0.439
2017-09-03_06:30:00    2017-09-03_07:00:00       782     1800   26.1   0.434
2017-09-03_07:00:00    2017-09-03_07:30:00       747     1800   24.9   0.415
2017-09-03_07:30:00    2017-09-03_08:00:00       803     1800   26.8   0.446
2017-09-03_08:00:00    2017-09-03_08:30:00       744     1800   24.8   0.413
2017-09-03_08:30:00    2017-09-03_09:00:00       741     1800   24.7   0.412
2017-09-03_09:00:00    2017-09-03_09:30:00       715     1800   23.8   0.397
2017-09-03_09:30:00    2017-09-03_10:00:00       771     1800   25.7   0.428
2017-09-03_10:00:00    2017-09-03_10:30:00       786     1800   26.2   0.437
2017-09-03_10:30:00    2017-09-03_11:00:00       767     1800   25.6   0.426
2017-09-03_11:00:00    2017-09-03_11:30:00       748     1800   24.9   0.416
2017-09-03_11:30:00    2017-09-03_12:00:00       764     1800   25.5   0.424
2017-09-03_12:00:00    2017-09-03_12:30:00       761     1800   25.4   0.423
2017-09-03_12:30:00    2017-09-03_13:00:00       744     1800   24.8   0.413
2017-09-03_13:00:00    2017-09-03_13:30:00       729     1800   24.3   0.405
2017-09-03_13:30:00    2017-09-03_14:00:00       807     1800   26.9   0.448
2017-09-03_14:00:00    2017-09-03_14:30:00       761     1800   25.4   0.423
2017-09-03_14:30:00    2017-09-03_15:00:00       782     1800   26.1   0.434
2017-09-03_15:00:00    2017-09-03_15:30:00       760     1800   25.3   0.422
2017-09-03_15:30:00    2017-09-03_16:00:00       723     1800   24.1   0.402
2017-09-03_16:00:00    2017-09-03_16:30:00       762     1800   25.4   0.423
2017-09-03_16:30:00    2017-09-03_17:00:00       781     1800   26.0   0.434
2017-09-03_17:00:00    2017-09-03_17:30:00       767     1800   25.6   0.426
2017-09-03_17:30:00    2017-09-03_18:00:00       816     1800   27.2   0.453
2017-09-03_18:00:00    2017-09-03_18:30:00       805     1800   26.8   0.447
2017-09-03_18:30:00    2017-09-03_19:00:00       743     1800   24.8   0.413
2017-09-03_19:00:00    2017-09-03_19:30:00       724     1800   24.1   0.402
2017-09-03_19:30:00    2017-09-03_20:00:00       815     1800   27.2   0.453
2017-09-03_20:00:00    2017-09-03_20:30:00       759     1800   25.3   0.422
2017-09-03_20:30:00    2017-09-03_21:00:00       740     1800   24.7   0.411
2017-09-03_21:00:00    2017-09-03_21:30:00       786     1800   26.2   0.437

Titel: Antw:Fakelog auslesen
Beitrag von: amenomade am 04 September 2017, 12:44:12
Wäre es nicht einfacher (und prinzipiell mehr in der Fhem-Logik), das Gerät direkt ein dummy o.ä. setzen zu lassen, und dieses Dummy von FHEM loggen zu lassen, statt eine Log zu schreiben und auszulesen? Das Problem mit deiner Logik ist, dass die Änderung eines Wertes kein Event generiert. Wie wirst Du dann in Fhem die Aktualisierung steuern, falls Du es schafst den letzten Wert auzulesen? Mit einem AT ?

Evtl. könntest Du dein get mittels einer perl Funktion anpassen, damit er nur die letzte halbe Stunde abfragt. Aber nicht schön... siehe oben.
Titel: Antw:Fakelog auslesen
Beitrag von: Edi77 am 04 September 2017, 13:46:59
Leider gibt es keine Möglichkeit den GammaScout anzubinden.
https://www.gamma-scout.com/DE/Home.php (https://www.gamma-scout.com/DE/Home.php)

Ich habe es mal hin bekommen ein Logfile zu schreiben, und mir das in FHEM Anzeigen zu lassen.

Ja es ist nicht schön, es müsste dann wohl mit AT und GET gelöst werden, aber wie bringe ich es hin das mit GET nur den letzten Wert 0.xxx übergibt ohne Uhrzeit und Datum?
Titel: Antw:Fakelog auslesen
Beitrag von: Otto123 am 04 September 2017, 14:18:07
Hi Edi77,

vielleicht hilft Dir diese Diskussion in den letzten Tagen. Das war eigentlich das gleiche Problem
-> https://forum.fhem.de/index.php/topic,64627.msg678581.html#msg678581

Gruß Otto
Titel: Antw:Fakelog auslesen
Beitrag von: Edi77 am 04 September 2017, 17:48:32
Teilweise funktioniert es schon.

Ich bekomme jetzt schon mal die letzte Zeile, aber das mit dem letzten Wert klappt noch nicht


define GammascoutWert dummy
attr GammascoutWert room GammaScout
attr GammascoutWert userReadings Wert1 { return (split(" ",ReadingsVal("GammascoutWert", "state", 0)))[6]}
define GammascoutWert_at at +*00:05:00 { my @content = FileRead({FileName => "log/gammascout-2016.log", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set GammascoutWert $content[-1]"}
Titel: Antw:Fakelog auslesen
Beitrag von: Otto123 am 04 September 2017, 21:41:11
nicht blind kopieren sondern verstehendes Lesen ist gefragt.
Den Part $content[-1] =~ s/\;;/,/g;;  brauchst Du nicht, Du musst kein ; gegen ein Komma tauschen.

Du musst die letzte Zeile an den Leerzeichen aufteilen. So ähnlich wie hier
-> http://www.hidemail.de/blog/split-in-perl.shtml

Gruß Otto
Titel: Antw:Fakelog auslesen
Beitrag von: Edi77 am 04 September 2017, 23:17:15
Hat funktioniert

DANKE


define GammascoutWert dummy
attr GammascoutWert room GammaScout
attr GammascoutWert userReadings Wert { return (split(/ /,ReadingsVal("GammascoutWert", "state", 0)))[5]}
define GammascoutWert_at at +*00:05:00 { my @content = FileRead({FileName => "log/gammascout-2016.log", ForceType => "file"});; $content[-1] =~ s/\;;/,/g;; fhem "set GammascoutWert $content[-1]"}