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