Donnerstag, 29. Dezember 2016
Haussteuerung - FHEM und instabiler Eltako Bus
Während die Heizungssteuerung sehr stabil läuft, hatte ich mit dem Eltako Bus immer mal wieder Probleme. Merkbar wurde das meistens erst, wenn man versucht hat im OG irgendwo das Licht ein- oder auszuschalten. In diesen Fällen war die schnellste Lösung der Gang zum Schaltschrank und kurz die Sicherung des Eltako Busses ausgeschaltet. Für den WAF (Woman Acceptance Factor) natürlich nicht unbedingt hilfreich.
Aber zum Glück gibt es mit dem FHEM Forum eine schier unendliche Quelle hilfreichen Wissens. Auf der Suche nach meinem Problem bin ich auf einen ähnlichen Fall gestoßen, der die Instabilitäten auf die fehlende Fehlerbehandlung im 00_TCM.pm Modul zurückführte. Da das alles plausibel klang habe ich die Änderungen ebenfalls implementiert:

Im Write-Teil ganz am Ende:

...
Log3 $name, 5, "TCM $name sent ESP: $bstring";
DevIo_SimpleWrite($hash, $bstring, 1);
# next commands will be sent with a delay
usleep(int(AttrVal($name, "sendInterval", 100)) * 1000);

my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
my $ClearedErrorFlags = $po->reset_error;
}


im Read-Teil ganz am Ende:

...
}
$hash->{PARTIAL} = $data;

my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
my $ClearedErrorFlags = $po->reset_error;
}

Langzeiterfahrungen poste ist später vielleicht nochmal. Vorerst hatte ich seit den Änderungen keinen Ausfall mehr, was schon sehr positiv ist. Offen ist, wo überhaupt die Fehler herkommen und wie man sie ggf. verhindern/reduzieren kann.

Für alle zukünftigen FHEM Updates müsst Ihr jetzt daran denken, die Änderungen immer wieder im 00_TCM.pm nachzuziehen, falls die nicht irgendwann standardmässig sowieso schon implementiert werden.

Nachtrag vom 02.01.2017: Seit der Umsetzung, die jetzt eine reichliche Woche zurückliegt, läuft das System erfreulicherweise äußerst stabil - Null Aussetzer - der Haussegen ist gerettet ;)