log-Datei mit eigenem Format

Begonnen von mw_fhem, 14 August 2013, 17:07:48

Vorheriges Thema - Nächstes Thema

mw_fhem

Hallo zusammen!

Ich plane, neben diverser Sensoren und Aktoren zwecks Haussteuerung, Wettersensoren über FHEM zu betreiben. Da ich die gesammelten Daten mit einer Software außerhalb von FHEM auswerten möchte, müssten die Daten in einem bestimmten Format in einer (log-)Datei landen. Ich habe leider noch kein Modul gefunden, was dies tut. Oder gibt es andere Tricks?

Vielen Dank!
RasPi mit FHEM, Wettersensoren über WDE1, UP-Schalter und Thermostate über CUL

rudolfkoenig

Fuer Anfaenger: per notify und Shellskript die Datei fuellen.
Fuer Fortgeschrittene: Eigenes Modul (analog zu FileLog) schreiben

betateilchen

Oder in eine Datenbank loggen, dann kann ich die Daten aus dieser Datenbank darstellen, wie ich möchte.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mw_fhem

Danke für die schnellen Antworten!
Ich leider noch ziemlich am Anfang mit FHEM. Die geplante Auswertung soll mit der Software LogView geschehen. Diese erwartet eine Textdatei mit ASCII-text in folgendem Format:
$1;1;0;1133;318;0;0;0;0;0;20;21;0;16<cr><lf>
$1;1;0;1133;318;0;0;0;0;0;20;21;0;16<cr><lf>
....

Ist das mit den Standard-Lösungen für einen Anfänger zu realisieren ?

Nochmals vielen Dank!
RasPi mit FHEM, Wettersensoren über WDE1, UP-Schalter und Thermostate über CUL

betateilchen

Offensichtlich geht es doch nur um eine Text-Umformatierung nach einem bestimmten Schema. Das sollte kein Problem sein.

Mach doch mal ein konkretes Beispiel:

1.) Welche Werte hast Du in fhem?
2.) Wie müssen die an Deine Logging-Software übergeben werden?

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mw_fhem

Das stimmt, eigentlich ist es eine Textformatierung!
Ich empfange die Daten von einem KS300 und anderen ELV-Funksensoren. Alternativ über den ELV-USB-WDE. Später sollen weitere (I2C-)Sensoren hinzukommen. LogView arbeitet mit einem Format, das aus ASCII-Zeichen besteht. Jedes Datentelegramm beginnt mit $ und Ziffern zur Steuerung. Es folgen die Messwerte mit Semikolon getrennt. Pro Zeile wird ein Telegramm erwartet:

$1;1;0;1133;318;0;0;0;0;0;26;21;0;16
$1;1;0;1135;318;0;0;0;0;0;24;21;0;16
$1;1;0;1138;318;0;0;0;0;0;23;20;0;16
usw...

Es müsste also möglich sein, eine Datei anzulegen, in die die jeweils vom Sensor gelieferten Werte geschrieben werden. Semikola und Steuerziffern müssten entsprechend dazwischen gesetzt werden.
RasPi mit FHEM, Wettersensoren über WDE1, UP-Schalter und Thermostate über CUL

betateilchen

Nochmal:

Zitat von: betateilchen schrieb am Do, 15 August 2013 13:06Mach doch mal ein konkretes Beispiel:

1.) Welche Werte hast Du in fhem?
2.) Wie müssen die an Deine Logging-Software übergeben werden?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mw_fhem

Ich weiß nicht, ob ich mich zu undeutlich ausgedrückt habe. Bei den zu übergebenden Werten handelt es sich um Temperatur-, Feuchte-, Windwerte etc. Sprich um dezimale Zahlen (die in FHEM auch angezeigt werden), die für LogView mit Semikolon getrennt und in einem ASCII-String zeilenweise in der log-Datei abgelegt werden müssen.

Beispiel:
Temperatur Kombisensor: 25,5°C
Feuchte Kombisensor: 62%
Wind: 8,2 m/s
Temperatur Sensor1: 20,1°C

Ergäbe etwa folgende Zeile:
$1;1;0;25,2;62,8,2;20,1;0

Bei "$1;1;0" zu Beginn und ";0" am Ende handelt es sich um Steuerzeichen für die Software.



Vielen Dank für die Hilfe!
RasPi mit FHEM, Wettersensoren über WDE1, UP-Schalter und Thermostate über CUL

betateilchen

Ich weiß nicht, ob ich mich zu undeutlich ausgedrückt habe.

nein, aber Du hattest schlichtweg meine Frage nicht beantwortet. Deshalb habe ich einfach nochmal nachgefragt.


sub transformString() {
   my $bla = "$1;1;0;";
   $bla .= ReadingsVal("Kombisenosr", "Temperatur", "").";";
   $bla .= ReadingsVal("Kombisensor","Feuchte", "").";";
   $bla .= ReadingsVal("Windsensor", "Wind", "").";";
   $bla .= ReadingsVal("Sensor1", "Temperatur", "").";";
   $bla .= "0";
   return $bla;
}


das Ganze kannst Du z.B. in stateFormat einbauen, dann kommt genau das raus, was Du brauchst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Garry

Hat sich in die Richtung (Auswertung mit Logview oder ähnlich) noch etwas getan?
ich suche noch nach einem Tool/Importfilter mit dem man die log-Dateien von FHEM direkt einlesen kann.

Garry
Raspberry Pi COC
HM_LAN

Prof. Dr. Peter Henning

"Hat sich was getan"  ===> Selbst schreiben, dauert ca. 1 Stunde.

LG

pah