ich würde gerne wissen warum das Senden eines Befehls auf den KNX-Bus so langsam ist. Bei mir dauert es ca. 100ms pro Befehl. Ich habe test weise ein eigenes kleines C# Programm erstellt welches mittels des ETS Falcon auf dem KNX-Bus lesen und schreiben kann. Hier braucht jeder Befehl nur ca. 10ms. Habe ich bei IPS irgendetwas falsch konfiguriert?
ich kann die unendlich langsame Abarbeitung der Knx-Befehle leider bestätigen.
Mein System läuft auf einem Raspberry III mit einem MDT- IP-Interface
Beispiel:
Bei mir läuft ein Skript in dem es immer 18 EIB_Switch( … ) ausgeführt werden. Ausführungszeit 4580ms.
Einen Bereich ausmaskiert bleiben noch 12 EIB_Switch( … ). Ausführungszeit 3056ms.
Zwei Bereiche ausmaskiert bleiben noch 6 EIB_Switch( … ). Ausführungszeit 1546ms.
Das Skript ohne EIB_Switch( … ) - Befehle braucht dann nur noch 24ms.
Die Ausführungszeit von 10ms pro Nachricht von anderen Systemen kann ich bestätigen.
Ein Skript mit einem EIB Schaltbefehl dauert hier auch so lange, aber das ist nur der gemessene Wert für die Ausführung des Skriptes. Gefühlt entsteht hier keine Verzögerung. Wenn ich Ausführen klicke, ist die Lampe an.
Der Befehl wird sofort ausgeführt. (Es sei denn er muss noch warten, weil ein anderer Befehl abgearbeitet wird)
Da wir aber ein Limit haben wie viele Befehle pro Sekunde auf den Bus dürfen, entsteht genau diese „Wartezeit“. Falls somit jemand versucht eine Szene über viele EIB_* Befehle zu erstellen, geht dies nicht und ich rate davon auch dringend ab. Man blockiert sich den Bus.
Dafür hat KNX ja das Konzept der GAs, auf welche mehrere Geräte lauschen können
Um eine einfach Lampe zu schalten (oder vergleichbares) ist die Laufzeit absolut ausreichend. Problematisch wird es wenn man z.B. Status-LEDs blinken lassen möchte, oder komplexe Szenen abbilden werden sollen. Der Tipp mit den GA’s ist leider nicht immer praktikabel, da ich nicht sämtliche Kombinationen in den GA’s abbilden möchte.
Wieso hat IPS ein Limit? Denn der offizielle Treiber (FALCON) scheint dieses Limit nicht zu haben. Testweise habe ich eine Lampe blinken lassen, aber meiner Frau gefällt unser neues Stroboskop leider nicht
@paresy: ich kann die probleme mit der geschwindigkeit aber bestätigen.
wenn ich mit dem gira homeserver eine szene mit ca. 50 ga schalte, dauert das < 1s.
mit ips kann ich zuschauen, wie die lampen nacheinander angehen. es dauert mind. 5 sekunden, teilweise auch noch länger.
jemand einen tipp?
aktuell behelfe ich mir damit, dass ich die szenen im gira hs abbilde und die szenenschaltung im hs durch eine einzelne ga aus ips triggern lasse. aber so richtig geil ist das natürlich nicht. ich würde gerne den hs loswerden…
gilt das auch für die Modbus Anbindung?
Habe hier das gleiche gemüliche Abarbeiten der Daten und lasse
deshalb einen Großteil meiner Szenensteuerung in der SPS abarbeiten.
eine einstellbare Geschwindigkeit wäre auch mein Favorit.
Ganz ohne Limitierung müsste in jedem Skript darauf geachtet werden, dass das Gateway und der Bus nicht überfordert werden. Dabei sind dann die Laufzeiten der jeweiligen Skripte zu berücksichtigen um die optimale Wartezeit zu erreichen.
Das alles entfällt, wenn die Latenzzeit „zentral“ berücksichtigt wird.