Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugins auslagern - eBus/KNX Daemon

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JuMi2006
    antwortet
    Also ich hab gestern Abend mal das Response implementiert.
    Funktioniert ganz gut. Gleichzeit hat der knxd noch eine neue Funktion bekommen.

    In den Plugins kann man jetzt

    Code:
    $plugin_subscribe
    $plugin_subscribe_read
    $plugin_subscribe_write
    benutzen
    • $plugin_subscribe - abonniert das Plugin auf jede Art von Telegrammen
    • $plugin_subscribe_read - abonniert das Plugin nur bei Read-Telegrammen
    • $plugin_subscribe_write - abonniert das Plugin nur bei Write-Telegrammen


    Ich versuche da zum Wochenende mal ein sauberes Package zu erstellen und die Source-Files zu aktualisieren.

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Ja in dem Falle kann es sein dass die Daten nicht aktuell sind.
    Ein Response ist (noch) nicht implementiert.

    Beim set/get ist es schon etwas schlauer.
    Setze ich einen Wert via "set" wird in der knxd-ebusd.csv nach einem gleichnamigen "get" gesucht und dieses auch abgefragt.

    Beispiel aus der Praxis:

    8/6/100 = get cir2 mode
    8/7/100 = set cir2 mode

    Sende ich nun einen Wert auf die 8/7/100 so wird direkt danach auch auf die 8/6/100 der aktuelle Wert gesendet. In der Visu ist damit dann die 8/7/100 eine beschreibbare Adresse und 8/6/100 readonly. So hat man gleich die Kontrolle ob der Befehl erfolgreich ausgeführt wurde. Das Abfragen eines Befehles dauert i.d.R. 0,3-0,6 Sekunden.

    Grundsätzlich arbeitet der knxd bzw. das Plugin mit einer festen Zykluszeit. Diese teilt es durch die aktuelle Anzahl vorhandener get/cycle Befehle. Bei mir sind momentan 180 Sekunden eingestellt und es werden knapp unter 30 Werte abgefragt. Also alle 6 Sekunden bekommt der ebusd den Auftrag ein Telegramm zu senden. Die Werte auf dem Bus sind damit also auch immer maximal 180 Sekunden alt, nach einem "set" natürlich brandaktuell.

    Am Response habe ich schon gesessen und werde es sicherlich auch noch implementieren.

    Einen Kommentar schreiben:


  • XueSheng
    antwortet
    D.h., dass cycle Befehle durch knxd sofort auf den Bus geschrieben werden, wenn diese durch ebusd ausgelesen worden sind? Oder arbeitet knxd mit einer festen Zykluszeit?

    Wenn ich über eine Gruppenadresse eine Leseanfrage sende und bei knxd-ebusd.csv ein cycle Befehl hinterlegt ist, kann es dann passieren, dass der Rückgabewert veraltet ist?

    (Ich weiss, dass hierüber schon in dem Ursprungsthread diskutiert worden ist, aber mir ist unklar, wie nun die tatsächliche Umsetzung aussieht)

    Einen Kommentar schreiben:


  • Gast
    Ein Gast antwortete
    hi,

    ist zwar etwas Offtopic paßt aber gerade dazu.

    Der ebusd hält stets die letzte Nachricht für jedes als zyklischen definierte Telegramm vor.
    Ein cyc Klasse Befehl Unterbefehl bekommt somit diese Daten zugestellt.

    cu

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    AW: Plugins auslagern - eBus/KNX Daemon

    Ja. Die cycle werden intern wie ein get verarbeitet.

    Baustelle 2.0

    Einen Kommentar schreiben:


  • XueSheng
    antwortet
    Kann man mit knxd eigentlich auch die cycle Befehle des ebusd verwerten? Oder ist das Ganze auf set/get Befehle beschränkt?

    Einen Kommentar schreiben:


  • StefanW
    antwortet
    Darüber werden wir, wie bei so vielem, natürlich nachdenken.

    Hier und heute können wir das nicht sagen, aber jede Form von Modularisierung ist, sofern effizient, natürlich zu begrüßen.

    Danke für die schöne Arbeit, JuMi2006, ich hoffe die Community schätzt das auch, weil es ist im Detail sehr viel Arbeit.

    lg

    Stefan

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Wird das in den WG Code einziehen?
    Vorteil wäre schon, das essentielle Funktionen und Plugins sich nicht blockieren können...

    Einen Kommentar schreiben:


  • makki
    antwortet
    Auch wenns stellenweise 5J gedauert hat:
    Es ist ok, ja sogar gewollt, OSS selbst zu verbessern
    Will sagen: Man muss sich dafür nicht entschuldigen, das geht Ok..

    Makki

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Dann ist das ja ein netter Schritt hin zu einzelnen Komponenten.
    Das WG macht 1wire/KNX und die aufwändigeren, komplexen Sachen können auf anderen Kisten laufen.

    Einen Kommentar schreiben:


  • makki
    antwortet
    Nur ein paar Notizen:
    - Der wiregated(*) - und damit ebus/knxd - läuft wunderbar von Lenny bis Ubuntu 12.10, kritische Abhängigkeiten die in die CPAN-Hölle führen, wurden schon immer vermieden - oder im Zweifel ein Packerl gemacht
    - eibd-API (6720/tcp) ist ungleich KNXnet/IP (3671/udp), selber Inhalt, kann der eib auch, aber andere Baustelle..
    - die Plugin-Verzeichnisse (/etc/wiregate/plugin/generic/.. würden das durchaus hergeben, das es dort /ebusd/.. oder so gibt!

    Makki

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Läuft hier auf einem Pi mit Debian (squeeze oder wheezy) und ist auch in einer VM Ubuntu schon gelaufen.

    Die Abhängigkeiten halten sich bis auf eibd und ein paar Perl-Module ja in Grenzen. Wobei der eibd nichtmal lokal laufen muss sondern irgendwo im LAN (z.B. WireGate reicht)
    Ich muss mich da mal durchs packaging kämpfen dann gibts da evtl. nen Paket zu.

    Derzeit muss aber endlich mal das Treppenauge verkleidet werden ... der Estrich sieht Sch*** aus

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Ist der knxd auch auf neueren Debianten lauffähig? Also sind diese Abhängigkeiten auch aufgelöst?

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Der braucht einen eibd lokal oder im Netzwerk, also am besten auf das WireGate verlinken.

    Einen Kommentar schreiben:


  • Frank0207
    antwortet
    Ja das funktioniert bis...

    ...eben diese Meldung kommt.

    Code:
    ...
    2013-02-24 20:07:47.762 INFO - Cannot connect to eibd ip:192.168.0.101:6720
    2013-02-24 20:07:47.762 INFO - eibd connection lost - retrying
    Hier geb ich ja schon meinen KNX/IP Router an? (Ist ein Weinzierl 750).
    Die Multicast Adresse hab ich auch schon getestet. Das geht nicht.

    Grüße

    Frank

    Einen Kommentar schreiben:

Lädt...
X