Ankündigung

Einklappen
Keine Ankündigung bisher.

knxtool groupreadresponse liefert teilweise falsche Werte zurück

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    knxtool groupreadresponse liefert teilweise falsche Werte zurück

    Hallo,

    ich bin bei meiner Umstellung von eibd auf knxd auf folgendes - in meinen Augen kritisches - Problem gestoßen:

    Wenn auf dem Bus mehrere Operationen über den knxd gleichzeitig ausgeführt werden, dann liefert groupreadresponse hin und wieder das Ergebnis einer anderen Operation zurück:

    In ca. 95% der Fälle:
    # knxtool groupreadresponse ip:192.168.120.28:6720 5/2/221
    Send request
    Response from 1.1.10: 00 00 <-- korrektes Ergebnis vom richigen Sender
    Ending groupreadresponse

    In ca. 5% der Fälle:
    # knxtool groupreadresponse ip:192.168.120.28:6720 5/2/221
    Send request
    Write from 1.1.120: 0C 71 <-- nur ein Beispiel, was eben gerade so auf dem Bus passiert
    Ending groupreadresponse

    Ich sehe mit einem parallel laufenden vbusmonitor1, dass der Request auf dem knxd ankommt und auch die richtige Antwort zur angefragten Gruppenadresse gesendet wird, allerding scheint groupreadresponse einfach die zeitlich nächste Antwort nach der Anfrage zurückzusenden, und nicht die passende Antwort zum vorausgegangenen Request. Das passiert aber wirklich nur, wenn viele parallele Operationen auf dem Bus sind - bei mir im Falle von zyklisch ausgeführten Cron-Jobs. Dieses Problem habe/hatte ich auf eibd nicht - die Umgebung ist komplett gleich.

    Ich habe schon nach Lösungen gesucht die Operationen auf dem knxd zeitlich auseinander zu ziehen (pace, queue und single Filter für knxd), aber ich komme da nicht auf eine Lösung.

    Vielleicht kann mir hier jemand weiterhelfen und mich in die richtige Richtung lenken.

    Vielen Dank im Voraus und viele Grüße
    Johannes

    #2
    Da wird anscheinend der Gruppenadressfilter nicht richtig gesetzt. Das Problem betrifft auch groupsocketlisten. Ich seh mir das demnächst genauer an.
    DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

    Kommentar


      #3
      Hallo Herr Urlichs,

      super, vielen Dank. :-)

      Ich habe mir den Code von groupreadresponse.c auf git angesehen, und ich vermute die Funktion EIBGetAPDU_Src(...) implementiert den Filter nicht. Ich kann mir das gerne weiter anschauen, aber ich weiß nicht in welcher Bibliothek die Funktion implementiert ist...

      Danke im Voraus und viele Grüße
      Johannes
      Zuletzt geändert von PerlJoe; 27.01.2018, 10:39.

      Kommentar

      Lädt...
      X