[98_ComfoAir.pm] Absturz von Fhem bei Nutzung mit Firmata

Begonnen von torsten8791, 31 August 2020, 11:26:17

Vorheriges Thema - Nächstes Thema

torsten8791

Hallo zusammen.

Ich habe bei mir ein Arduino als Com-Server mittels Firmata eingerichtet und möchte die serielle Schnittstelle des Arduino über das Firmata-Protokoll zusammen mit dem Modul ComfoAir nutzen. Dies führt zu einem Absturz von Fhem durch ein Exception.

Der Grund liegt darin, dass das ConfoAir Modul versucht über die (als offen gemeldete) Schnittstelle zu senden.

Der Fehler ist mit einer frischen Installation nachzustellen, wenn folgende Zeilen in die fhem.cfg angefügt werden:

define MyFirmataDevice FRM /dev/ttyUSB0
define Lueftung ComfoAir FHEM:DEVIO:MyFirmataDevice:3@9600 60


Behoben habe ich den Fehler, indem ich im Modul 98_ConfoAir.pm in der Funktion ComfoAir_HandleSendQueue die Zeile

DevIo_SimpleWrite($hash, $bstring, 0);

durch

eval{DevIo_SimpleWrite($hash, $bstring, 0)};

ersetzt habe.

Damit wird die Exception im Schreibfall gefangen und alles funktioniert wieder normal.

Kein Ahnung, ob das die richtige Stelle zur Anpassung ist. Vielleicht können hier die Experten was zu schreiben.

Viele Grüße,
Torsten