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
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