Hallo Thorsten,
mir ist beim programmieren und testen meines hbw_io Moduls aufgefallen, das wenn bei einem Kommando an das Modul ein ResponseTimeout auftritt, automatisch ein getconfig ausgelöst wird. Das getconfig wurde ausgelöst obwohl das Modul vollständig geladen war.
Wenn es am Anfang beim Laden der Config zu Response Timeout kommt, wäre es schön, wenn nach 3 erfolglosen Versuchen aufgehört wird und die erfolglosen Befehle aus der Queue gelöscht werden.
Eine Möglichkeit dies zu realisieren wäre an jedem Eintrag in der waitForConfig Queue einen Eintrag mit einem Zähler hinzufügen.
Und dann bei jedem Response Timeout bei dem entsprechenden Queue Eintrag den Zähler um eins zu erhöhen.
Wenn dann der Zähler bei 3 ist, den entsprechenden Queue Eintrag löschen.
Du kannst es ja mit z.B. einer Konstanten am Anfang der 10_HM485.pm konfigurierbar machen.
Wenn per Configvariable festgelegt wurde, daß nach 3 erfolglosen Versuchen das getconfig eines Moduls abgebrochen wird, stelle mir das Verhalten beim Start wie folgt vor.
- Am Anfang wird bei allen Modulen der Status auf "wait for config" gesetzt
- Wenn bei einem Modul der "Ping" erfolgreich war, wird der Status des Moduls auf "get config" gesetzt
- wenn das getconfig erfolgreich war, wird der Status des Moduls auf "ack" gesetzt
- wenn das getconfig eines Moduls nach 3 Versuchen abgebrochen wird, dann wird der Status des Moduls auf "Response Timeout" gesetzt.
- wenn bei allen Modulen "ack" oder "Response Timeout" steht, dann sollte das waitforconfig deaktiviert werden und auf nachfolgende "Response Timeout" sollte nicht mehr reagiert werden.
Der Status "wait for config" muß nicht unbedingt sein, ist nur "nice to have".
Wenn nach ein paar Minuten nicht bei allen Modulen "ack" oder "Response Timeout" steht, sehe ich dann, das es bei der Queue Abarbeitung probleme gibt und ich eingreifen muß. z.B. durch ein Neustart von fhem
Gruß Ralf
Hi,
ich habe schon im anderen Thread darauf geantwortet (http://forum.fhem.de/index.php/topic,39643.msg318818.html#msg318818 (http://forum.fhem.de/index.php/topic,39643.msg318818.html#msg318818)).
Gruß,
Thorsten