Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Anbindung über knxd

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

    KNX Anbindung über knxd

    Hallo,

    unter Verwendung der beiden plugins knx und network sende ich über UDP einige Messwerte an smarthome.py. Jedes item soll, entsprechend ihrem hörenden UDP-Port, den neuen Wert des items unter einer Gruppenadresse auf den KNX-Bus senden. Die Messwerte werden innerhalb von 3 sec alle 30 sec an smarthome.py über UDP gesendet. Im CLI-Monitor kann man sehen und auch im Debug-Modus, dass die items sofort nach Eintreffen der UDP-Telegramme aktualisiert sind und neue Werte besitzen. Auf KNX werden die Werte allerdings nur im Sekundentakt aktualisiert. Das bedeutet 30 Werte, empfangen über UDP, benötigen 30 sec bis sie auf dem KNX-Bus vorliegen. 1 sec pro Wert ist mir deutlich zu langsam. Gibt es eine Schraube, woran ich drehen kann, damit die Messwerte wesentlich schneller auf dem KNX-Bus zur Verfügung stehen? Zusätzliches Triggern einer eignen Logik?

    Gruß Markus

    #2
    Hallo Markus,

    meines Wissens nach müssten die Nachrichten sofort auf den Bus geschickt werden, sobald sich das Item ändert. Es gibt keine implementierten Puffer die für eine Verzögerung sorgen würden.
    Wie kommunzierst du mit dem Bus? Über welche Komponenten?

    Kommentar


      #3
      Das hatte ich auch so vermutet.
      Ich verwende aktuell knxd in Version 0.10.3 gestartet mit dem Parameter -no-tunneling-client. Der Zugriff auf den KNX-Bus läuft über einen IP-Router von Enertex. Dabei verwendet knxd einen Tunnel, der vom Router bereitgestellt wird. Es läuft nicht über Multicast. Ist die Parametrierung des knxd unpassend/falsch? Eine Telegrammratenbegrenzung dieser Art ist im IP-Router nicht eingestellt.

      Gruß Markus

      Kommentar


        #4
        Markus das ist einfach zuviel Overhead wenn das über SmartHomeNG geht, jedes Plugin wird beim UDP Telegramm vom Network Plugin gefragt ob was aktualisiert werden muß, das dauert einfach.

        Ich habe mir mal Spaßeshalber ein kleines Script (Logic) geschrieben:

        Code:
        for i in range(0,50):
            sh.knx.groupwrite( '1/0/21', float(i + i/100.0), '14')
        Damit bekomme ich innerhalb einer Sekunde 50 Telegramme von der ETS zurückgemeldet. Wie schnell die dann auf über den Bus flitzen weiß ich nicht, dazu müßte ich eine zusätzliche Schnittstelle zum Mithören haben. So ist es die gleiche KNX-IP Schnittstelle aber ein anderer Tunnel.

        Theoretisch wäre also der Weg ein Paket mit allen Werten zusammen zu bekommen, die KNX Telegramme zu feuern und anschließend die Werte der Items normal zu setzen. (Was für Hardware nutzt Du eigentlich?)

        Gruß,
        Bernd

        Kommentar


          #5
          Hallo Bernd,

          smarthome.py läuft auf einem RPi 3. Wobei dieser laut Anzeige zwischen 7 und 10 % ausgelastet ist.
          50 Telegramme in der Sekunde sind bei Weitem ausreichend.
          Danke für Dein Skript. Ein Sammeln der Werte dauert natürlich auch seine Zeit. Das Paket müsste auf verschiedene GAs aufgeteilt werden.....

          Gruß Markus

          Kommentar

          Lädt...
          X