FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: Stefan M. am 10 Oktober 2013, 12:27:52

Titel: CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: Stefan M. am 10 Oktober 2013, 12:27:52
Hallo zusammen
ich möchte gerne ein einfaches Modul schreiben, das mir über  GetHttpFile einen CSV String holt und dann in den Readings anzeigt.

Den Rumpf des Modules habe ich mir schon zusammen gesucht.

Gibt es schon so ein ähnliches Modul ?
Gibt es ein WIKI über die Modul Entwicklung ?

Was muss alles dringend in einem Modul vorhanden sein damit es sauber arbeitet?

Wie mache ich es, dass das Modul selbständig jede Minute die Abfrage und Verarbeitung startet. Irgendwie mit dem InternalTimer aber den Aufruf habe ich noch nicht ganz verstanden.

Könnt Ihr mir bitte ein Paar Tipps geben.

lg
Stefan
Titel: Aw: CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: betateilchen am 10 Oktober 2013, 12:56:02
Zitat von: Stefan M. schrieb am Do, 10 Oktober 2013 12:27über  GetHttpFile einen CSV String holt und dann in den Readings anzeigt.
...
Gibt es schon so ein ähnliches Modul ?

Als einzelnes Modul in fhem wüsste ich das nicht, aber es gibt das Perl-Modul Text::CSV das Dir schon recht viel weiterhelfen kann.
Eine praktische Anwendung einer solchen Verarbeitung findest Du z.B. im fhem-Modul 55_GDS.pm

Der InternalTimer ist eigentlich relativ simpel erklärt:
Er generiert quasi ein "internes at" mit einer einmaligen Ausführungszeit und erwartet u.a. den Namen einer Funktion, die zum festgelegten Zeitpunkt gestartet werden soll.
Wichtig: Der Timer wiederholt sich nicht automatisch! Das bedeutet, in der aufgerufenen Funktion musst Du den Timer dann wieder neu setzen.

Schau Dir am besten mal die Funktion InternalTimer() in der fhem.pl an, und dann vielleicht noch die praktische Anwendung in verschiedenen Modulen, die ihn verwenden.


Titel: Aw: CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: Stefan M. am 10 Oktober 2013, 14:19:25
Hallo Betateilchen

welche Möglichkeit gibt es noch in einem Modul die Daten Regelmäßig abzufragen.

Ich habe die Abfrage und Auswertung im _Get drin, bei jedem Refresh der Seite bzw. Neuaufruf des Devices werden die Daten geholt, ausgewertet und ins Logfile geschrieben bzw. der CSV String als Reading angezeigt.
Ich möchte nun das die Aktualisierung automatisch durchgeführt wird.

LG
Stefan

 
Titel: Aw: CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: betateilchen am 10 Oktober 2013, 15:05:58
Zitat von: Stefan M. schrieb am Do, 10 Oktober 2013 14:19welche Möglichkeit gibt es noch in einem Modul die Daten Regelmäßig abzufragen.

Die einzig sinnvolle ist der InternalTimer.
Titel: Aw: CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: Stefan M. am 10 Oktober 2013, 15:32:16
Hallo Betateilchen
OK.
Etwa so ?
1. Ich definiere ein Attribut mit der Timerzeit (x sec)
2. Ich setze den InternalTimer in der Initialize und oder Define (wie muss ich erst noch suchen)
3. in der aufgerufenen Fuktion muss der InternalTimer neu gesetzt werden

Hab ich das richtig verstanden ?


LG
Stefan
Titel: Antw:CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: AbeamStart am 21 Oktober 2013, 19:43:31
Hallo Stefan,
könntest Du mir auch damit weiterhelfen:
http://forum.fhem.de/index.php/topic,15230.msg98863.html#msg98863 (http://forum.fhem.de/index.php/topic,15230.msg98863.html#msg98863)
Vielen Dank
Titel: Antw:CSV File über GetHttpFile abholen und verarbeiten
Beitrag von: betateilchen am 21 Oktober 2013, 19:44:53
Zitat von: Stefan M. am 10 Oktober 2013, 15:32:161. Ich definiere ein Attribut mit der Timerzeit (x sec)
2. Ich setze den InternalTimer in der Initialize und oder Define (wie muss ich erst noch suchen)
3. in der aufgerufenen Fuktion muss der InternalTimer neu gesetzt werden

Hab ich das richtig verstanden ?

Ja. Und zu 2: im Define (wobei ich immer das globale INITIALIZED abwarten würde.