Modulvorstellung 98_FIFO.pm

Begonnen von Joe_D, 14 Dezember 2019, 21:25:01

Vorheriges Thema - Nächstes Thema

Joe_D

Hallo Zusammen,

zum Einstand möchte ich angehängtes Modul 98_FIFO.pm vorstellen, das ich geschrieben habe um Temperaturen, Drehzahlen, Ströme, Spannungen etc. pp. einfach bei Änderung in FHEM als Reading einzulesen - ohne telnet, web oder MQTT... Dazu hört das FIFO-Device an einer named pipe und legt empfangene Daten jeweils als Reading an.

Devicedefinition: define myFIFO FIFO /var/tmp/mypipe

Die named pipe muss zuvor mit mkfifo /var/tmp/mypipe angelegt werden. FHEM muss auf diese pipe lesend zugreifen können!

Mit anderen Programmen oder Skripten kann nun einfach in die pipe geschrieben werden. Das Format muss "ReadingName" [Tabulator] "ReadingWert" [linefeed] sein.

Also z.B. echo -e "Testwert\t66.2\n" > /var/tmp/mypipe

In FHEM sollte nun im Device myFIFO das Reading Testwert den Wert 66.2 haben.

FIFO unterstützt zudem die readingsFnAttributes - mit event-on-change-reading kann verhindert werden, das gleiche Werte Events erzeugen.

Gruß

  Jochen

Joe_D

Wenn in der named pipe noch keine Daten drin sind, blockiert perl (oder linux?) leider den open-Aufruf was dann zu einem Blockieren von FHEM führt.

Anbei die neue Version ohne Blockierung.

Gruß

   Jochen