FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Otti am 29 Dezember 2014, 21:55:56

Titel: GELÖST FileLog erstellen
Beitrag von: Otti am 29 Dezember 2014, 21:55:56
Hallo!
Ich tieger seid Stunden im Forum und Netz herum um zu verstehen wie ich einen gezielten Filelog erstelle.
Die Anleitungen sind schwer verständlich.

Mein Ziel:
Von einem Wandthermostat Homematic (mit 6 Kanälen die aktuelle Temperatur und Feuchtigkeit, als auch die Soll-Temperatur in einem Log darzustellen.
Wie wähle ich diese Daten gezielt aus?

In der Referenz steht: define <name> FileLog <filename> <regexp>

Define ist klar.
Name ist klar.
Filelog ist klar.
Filename ist klar.
Regexp???

In den Beispielen der Referenz steht für Regexp lamp?
define lamplog FileLog %L/lamp.log lamp
Bei diesem Beispiel wz...
define wzlog FileLog ./log/wz-%Y-%U.log wz:(measured-temp|actuator).*
Was bedeutet wz? wofür steht der punkt am Ende und das Sternchen?

Ich durchschaue FHEM noch nicht.
Gibt es denn irgendwo eine vollständige Anleitung wo der Programmiercode detailliert erläutert wird?

Titel: Antw:FileLog erstellen
Beitrag von: Icinger am 29 Dezember 2014, 22:08:01
wz ist in dem Fall das Device, in deinem Fall wäre es also der Name der Thermostats.

.* ist nichts FHEM-spezifisches, sondern ein simpler RegEx, der auf (.=irgendein Zeichen) (*=beliebig oft) zielt.
Dazu findest du aber massenweise Infos im Netz, einfach nach "perl regex" suchen.

lg, Ici
Titel: Antw:FileLog erstellen
Beitrag von: Otti am 29 Dezember 2014, 22:15:25
Hi Icinger,
danke für die schnelle Antwort.
Wo kann ich denn erfahren wie ein bestimmter Parameter den ich aufzeichnen will heißt?
Ich habe von Homematic einen HM-TC-IT-WM-W-EU.
Von der Homepage Homematic habe ich ein gutes Manual gefunden wie das Ding definiert ist.
z.B.
Kanaltypen
Kanaltyp Kanalnummer
WEATHER_TRANSMIT 1
THERMALCONTROL_TRANSMIT 2
WINDOW_SWITCH_RECEIVER 3
REMOTECONTROL_RECEIVER 6
SWITCH_TRANSMIT 7

Alle möglichen Parameter z.B.
Actual_Temperature
Battery_State

Muss ich genau diese Bezeichnungen im Bereich Regexp angeben um sie dann aufzeichnen zu können?
Titel: Antw:FileLog erstellen
Beitrag von: franky08 am 29 Dezember 2014, 22:23:38
gib einfach das device an, dann wird alles geloggt was vom device kommt.

In der Art:
define Thermostat_Log FileLog ./log/Thermostat-%Y-%m.log Thermostat
Titel: Antw:FileLog erstellen
Beitrag von: Icinger am 29 Dezember 2014, 22:26:55
Naja, also.....

1) hast du ja beim Define (eigentlich sollte der ja per Autocreate angelegt werden) einen Namen angegeben, also heisst dein Thermostat zB "wz_Thermostat". --> Das ist der erste Teil des Regex (=wz_Thermostat)

2) Willst du ein oder mehrere Readings dieses Thermostats loggen. Wie die genau heissen, siehst du direkt im Thermostat-Device. --> Das ist der zweite Teil des Readings (=readingName)

3) Willst du alle Werte, die dieses Reading annehmen kann, loggen. --> Richtig geraten, das ist der dritte Teil. (.*)

Ergo:
wz_Themostat:readingName.*

lg, Ici
Titel: Antw:FileLog erstellen
Beitrag von: Otti am 29 Dezember 2014, 22:54:46
Hi!
Vielen Dank für Eure Unterstützung.
Jungs ihr seid klasse!

Jetzt hab ichs kapiert.
Den richtigen Kanal ausgewählt, Trennung der Parameter über |, Begriffe aus dem Readings....
und nun erhalte ich die gewünschte Tabelle.

Supi..
Titel: Antw:FileLog erstellen
Beitrag von: Icinger am 29 Dezember 2014, 22:56:18
Und jetzt noch ein "Gelöst" vor den Betreff, und alle sind glücklich  ;D
Titel: Antw:FileLog erstellen
Beitrag von: Otti am 29 Dezember 2014, 23:08:41
Wird gemacht!
Trotzdem noch eine Frage.
Kann man die Daten die man im Log aufzeichnet in Spalten schreiben?
Derzeit sieht der Log wie folgt aus:

2014-12-29_22:55:33 WC_WT_Climate_01 measured-temp: 21.2
2014-12-29_22:55:33 WC_WT_Climate_01 desired-temp: 17.0
2014-12-29_22:55:33 WC_WT_Climate_01 humidity: 49
2014-12-29_22:58:26 WC_WT_Climate_01 measured-temp: 21.2
2014-12-29_22:58:26 WC_WT_Climate_01 desired-temp: 17.0
2014-12-29_22:58:26 WC_WT_Climate_01 humidity: 49
2014-12-29_23:01:04 WC_WT_Climate_01 measured-temp: 21.2

Ist es möglich measured-temp / desired-temp / humidity in dieser Art in eine Reihe zu schreiben?
Titel: Antw:FileLog erstellen
Beitrag von: Icinger am 29 Dezember 2014, 23:22:16
Nur über den Umweg über ein Userreading, in dem dann alle drei Werte stehen.
Das kannst du dann loggen.
Titel: Antw:FileLog erstellen
Beitrag von: hexenmeister am 29 Dezember 2014, 23:30:53
Zitat von: Otti am 29 Dezember 2014, 23:08:41
Ist es möglich measured-temp / desired-temp / humidity in dieser Art in eine Reihe zu schreiben?
Jain. Die Readings werden so geschrieben, wie sie sind.
Aber Du kannst eigene Erstellen (mit dem Ihnalt von den anderen): Stichwort userReadings
Und unerwünschte vom Loggen ausschliessen (RegEx im FileLog, Attribute event-on-change-reading/event-on-update-reading)
Titel: GELÖST: FileLog erstellen
Beitrag von: Otti am 29 Dezember 2014, 23:33:13
Alles klar...
Für heute reicht es!
Immerhin ein kleines Erfolgserlebnis dank Eurer Hilfe.
Morgen geht's weiter!

Ciao