Wie kann man den Log Output von DevIo_Expect unterdrücken?

Begonnen von Markus Bloch, 17 August 2014, 11:42:21

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

ich habe mir ein Modul für meinen Fernseher gebastelt, das eine Steuerung via RS232 ermöglicht. Nun ist es vom Hersteller des Fernsehers nicht gewollt, dass die RS232 Schnittstelle auch im Standby des Fernsehers aktiv bleibt.

Daher habe ich als einzige Möglichkeit zu ermitteln, ob der Fernseher an ist, ein Kommando mit DevIo_Expect zu schicken und schauen ob der Fernseher reagiert. Dementsprechend entscheide ich dann, ob der Fernseher an ist, oder nicht und falls er an ist, frage ich alle Informationen ab.

Nun ist es so, dass mir aber DevIo_Expect immer Logmeldungen produziert, sobald der Fernseher aus ist:


2014.08.17 11:35:43.750 2: TV2: first attempt to read timed out, trying to close and open the device.
2014.08.17 11:35:43.752 3: Opening TV2 device /dev/ttyUSB0
2014.08.17 11:35:43.755 3: Setting TV2 baudrate to 9600
2014.08.17 11:35:43.767 3: TV2 device opened
2014.08.17 11:35:44.780 2: TV2: second attempt to read timed out, this is an unrecoverable error.


Da der zugrunde liegende USB/RS232 Adapter ja immer am FHEM präsent ist, wird das Device also nicht "disconnected" sondern es empfängt halt nur nichts mehr.

Da dieses Verhalten aber so richtig ist, möchte ich gerne diese dauernden Log-Ausgaben vermeiden.

Wie könnte man das am besten angehen? Evtl. einen weiteren Parameter Loglevel für DevIo_Expect, aber das halte ich irgendwie nicht für die beste Lösung.

Daher hier die Frage in die Runde.

Vielen Dank

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig

DevIo_Expect blockiert FHEM fuer $timeout falls die andere Seite nicht sofort antwortet, meiner Ansicht nach sollte man es gar nicht benutzen, da es an anderen Stellen fuer Aerger sorgt.

Um solche Faelle abzudecken sollte man die Daten per ReadFn erwarten (wie das normale Module auch tun), und mit vorher gesetzten InternalTimer auf das Ausbleiben reagieren, auch wenn das aufwendiger zu programmieren ist, als DevIo_Expect.


Markus Bloch

OK, dann werde ich das auch so machen. Ich hatte mir das schon gedacht, aber evtl. gäbe es ja eine einfachere Lösung.

Vielen Dank
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)