Hallo Peter,
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmIch bin aber verwundert das das Telegramm bereits nach weniger als 20 ms nochmal gesendet wird. Sind die KNX-Timeouts nicht eher im Sekundenbereich?
Nein, bei KNX TP ist das ACK (oder NACK oder BUSY) binnen 1,51 - 1,61 ms auf den Bus zu senden.
KNX ist ein sehr einfaches Protokoll das für 8 Bit Microconteoller entworfen wurden, so wie diese vor 30 Jahren (!) zur Verfügung standen. Da gibt es keine Sequenznummern die sich die Prozessoren merken sollten und komplexe Software die dann spätere Wiederholungen anfordert.
==> Jedes Paket ist sofort zu Acknowledgen, ansosnten wird bis zu dreimal wiederholt.
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmWie sehe ich im KNX-Busmonitor des TWS ob ein Telegramm acknowleged wurde oder nicht? Ein Haken bei "Show ACK" hat nur Einfluss auf die r/a Telegramm-Paare aber nicht auf die w Telegramme.
Nicht in Deiner technischen Konstellation (soweit bekannt).
Diese Pakete wie ACK / NACK / BUSY werden NICHT im Stack hochgereicht und können daher von den Busmonitoren nicht gesehen werden, da diese i.d.R. im "virtuellen Busmonitor Mode" arbeiten, d.h. es ist in dieser Betriebsart kein echter Busmonitor, da nur verarbeitete "Digest" Pakete angezeigt werden.
Wenn Du im Timberwolf Busmonitor alles auf dem Bus sehen willst, musst Du eine weiteres Interface (Timberwolf USB TP-UART) anstecken und dieses nicht im Applikation-Mode benutzen, sondern als Logger. Dadurch wird der TP-UART Chip in den RAW-Mode geschaltet und der Busmontior in den "Real-Busmonitor-Mode". Dann sieht man auch die ACK / NACK / BUSY.
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmBei KNX handelt es sich doch um einen Bus. Ein Busteilnehmer generiert ein Telegramm (z.B. mit einem neuen Helligkeits- oder Temperaturwert). Alle Busteilnehmer sehen das Telegramm, können es auswerten oder auch ignorieren. Aber die Teilnehmer die das Telegramm nutzen senden demjenigen der das Telegramm generiert hat nach meinem Verständnis keine Bestätigung.
Doch, in der gleichen Linie schon.
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmEs spielt keine Rolle wie viele Busteilnehmer den neuen Sensorwert auswerten. Es können 0 oder 10 sein.
Nun, bei 0 gibt es kein Acknowledge, bei 10 wird einer mit dem ACK anfangen und die anderen 9 sehen das (daher auch das auf 100 us enge Zeitfenster) und senden selbst nichts.
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmDas sieht im Busmonitor immer gleich aus.
Da du sehr vermutlich keine KNX Interface im "Real Busmonitor Mode" laufen hast, werden Dir diese Telegramme auch nicht angezeigt.
Es gehört zu den Besonderheiten des Timberwolf Servers, dass man mehrere KNX-Interfaces anstecken kann. Eines kann im Applikationsmodus laufen und das andere im Real-Busmonitor-Mode. Mit dem Busmonitor klemmt man sich dann auf das im Real-Busmonitor-Mode und sieht alles auf dem Bus, jede Störung, jedes Problem.
peti69 hat geschrieben: ↑Sa Okt 26, 2019 3:15 pmAllerdings bestätigt der Bus dem Teilnehmer das erfolgreiche Absenden des Telegramms. Soweit mein Verständnis eines Bus. Ich dachte bisher das das auch auf KNX zutrifft.
Wer ist den der Bus? Der Bus besteht aus zwei Drähten, einer 29 V Spannungsversorgung und einer Drossel (welche die Kurzschlüsse beschränkt, mit denen die Devices kommunizieren). In diesem Grundaufbau gibt es NIX aktives, das etwas macht.
Die ACKs kommen entweder von den Teilnehmern, welche die GA mit einem ihrer Objekte (nach Programmierung durch die ETS) assoziiert haben oder von Linienkopplern / Bereichskopplern.
StefanW hat geschrieben: ↑Sa Okt 26, 2019 12:41 pmJa, die in den Screenshots sichtbaren GAs haben zum Zeitpunkt des Fehlers keinen Abnehmer, da OpenHAB nicht in der Lage ist den Tunnel zum TWS aufzubauen. Fahre ich allerdings OpenHAB zu einem Zeitpunkt herunter wenn wieder "alles läuft" (nach Neustart des TWS), dann habe ich diese Vervierfachung nicht obwohl "in die Luft" geschrieben wird.
Das ist der Punkt an dem wir ansetzen müssen. Dazu unten mehr.
StefanW hat geschrieben: ↑Sa Okt 26, 2019 12:41 pmNach meinem Kenntnisstand ist es in KNX nicht Pflicht dass für ein geschriebenes Telegramm mindestens ein Busteilnehmer vorhanden ist der das Telegramm auswertet.
Kein ACK / NACK / BUSY bedeutet eben dann die gesehenen Telegrammwiederholungen, weil das sendende Device (Spezifikationskonform) von einem Fehler auf dem Bus ausgeht und daher das Telegramm wiederholt.
StefanW hat geschrieben: ↑Sa Okt 26, 2019 12:41 pmOder stehe ich hier auf dem Schlauch? Wie gesagt, es handelt sich doch um einen Bus.
Ich weiß nicht was Du meinst. Ein Bus bedeutet nur, dass alle Teilnehmern an einer Leitung hängen.
Folgender Wunsch:
- OpenHAB herunterfahren und unten lassen
- Timberwolf Server durchstarten
- ETS im Tunnelmode mit dem Server verbinden
- Das längere Zeit so stellen lassen, ggfls. Verbindungstest mit der ETS ausführen
Wir wollen damit sehen, ob das beobachtete Verhalten - hier die Schnittstellenfehler mit der ETS - etwas mit OpenHAB zu tun haben.
Peter, wir nehmen die Sache sehr ernst und wir haben deswegen auch eine "Sondersitzung" der Entwickler gehabt. Bevor wir das näher untersuchen müssten wir aber wissen, in wie weit das OpenHAB eine Rolle spielt, daher machen wir hier einen Versuch und lassen es einfach aus und beobachten, ob sich am Verhalten der Tunnel etwas ändert. (Begründung: Es wurde die rein hypothetische Vermutung gehäußert, dass OpenHAB wegen der TunnelDisconnects immer wieder weitere Tunnel eröffnet und diese dann irgendwann ausgeschöpft sind und daher auch die ETS keinen freien Tunnel mehr bekommt). Wir diskutieren hierzu intern auch eine intensivere Protokollierung und auch Darstellung der Tunnelverbindungen auf der Oberfläche.
lg
Stefan