[gelöst] patch: channel von ignored devices zeigen unreachable fehler

Begonnen von frank, 07 Juni 2021, 16:59:36

Vorheriges Thema - Nächstes Thema

frank

hallo martin,

zeile 435 in hminfo
  my @tpu = devspec2array("TYPE=CUL_HM:FILTER=state=unreachable");

führt dazu, dass auch channel von ignored devices "eingesammelt" werden, wenn der state zufällig unreachable zeigt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

mit folgender änderung der zeile werden keine unreachable fehler angezeigt:

  #my @tpu = devspec2array("TYPE=CUL_HM:FILTER=state=unreachable");
  my @tpu;
  foreach my $e (devspec2array("TYPE=CUL_HM:FILTER=state=unreachable")) {
    my $p = InternalVal($e,"device",$e);
    next if(AttrVal($p,"ignore",0) == 1);
    push @tpu,$e;
  }
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

wird gelöst - heute in HMInfo.
Unreachable werden nur devices sein - wieso das Reading auch bei Channels gesetzt sein kann ist unklar. Evtl hattet du die Entities manuell gesplittet?

frank

ZitatUnreachable werden nur devices sein - wieso das Reading auch bei Channels gesetzt sein kann ist unklar
hm..., das verstehe ich nun nicht mehr.
letztens sagtest du noch folgendes:

Zitat von: martinp876 am 27 Februar 2021, 12:51:14
ok, verstanden. Guter Punkt.

"unreachable" wird nur bei "automatischen" StatusRequest bearbeitet - und wird nur auf einen Kanal angewendet. D.h. wenn ein Kanal eines Device unreachable anzeigt wird dies nicht auf die anderen angewendet.
Im Gegensatz zu "dead". Das wird auf das Device angewendet, kann über das Attribut readingsOnDead auf andere kanäle ausgeweitet werden. Siehe Doku.

Unterschied "unreachable" <> "dead".
Ein totes Device wird in der vorgesehenen Zeit nicht "gesehen".
Ein nicht erreichbares Device reagiert nicht. Evtl sendet es noch - aber FHEM bekommt auf Anfragen keine Antwort. Dies wird aktuell nur an statusRequest festgemacht - und auch nur teilweise.

Problematisch: Das unreachable eines Climate-Channels in den State aller Kanäle zu "buchen" überschreibt die Meldungen des Device - also bspw die Temperatur. Nicht gut.

Sinnvoll erscheint mir, "unreachable" an das Kommando "statusRequest" und damit an die Entites welche das Kommand unterstützen zu heften.
Im Device steht in diesem Fall ein Error - das sollte angemessen sein
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

Der Status unreachable wird nur dem Device assigned.
Es wird abgeleitet von einem Kanal.
Also: Ein "ping" zu einem Device gibt es nicht. Ich nutze ein StatusRequest also Ersatz. Minmalinvasiv. Und es reicht, bei einem Kanal zu prüfen,ob er wieder da ist.
=> wenn ein Device unreachable ist wird ein statusrequest an einen seiner Kanäle geschickt. Wird das beantwortet wird der Status des Kanals gesetzt und das Device ist nicht mehr unreachable. Die übrigen Kanäle erfahren keinen Update!

Unreachable kann bedeuten, dass das Device nicht empfängt. Es antwortet nicht. Evtl empfangen wir noch  - aber nicht die Antwort auf Fragen.
Dead heisst, dass fhem nichts hört. Vielleicht hört und reagiert das Device noch - aber fhem sicht garnichts.

Somit: Unreachable ist nur ein Device - erkannt und geprüft wird es über EINEN seiner Channel (falls möglich).



frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html