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
    Das Plugin müsste im Ordner /etc/knxd/plugin liegen ... bzw. dort wo Du es in der knxd.conf vorgegeben hast.

    Liegt der knxd in /usr/sbin ? Starte ihn mal mit:
    perl /usr/sbin/knxd.pl -d

    Einen Kommentar schreiben:


  • Frank0207
    antwortet
    Ich...

    ...hab das mal nach Deiner Anleitung durchgeführt aber es wird nichts auf die GA geschrieben noch meldet sich der knxd am ebusd an.
    Ab welcher Revision funktioniert der knxd mit dem ebusd?
    Sofern sich das Plugin jetzt im Plugin-Ordner befindet sollte das jetzt alles laufen.
    Welches Plugin und welchen Ordner meinst Du hier. Nur zur Sicherheit falls ich noch etwas anderes irgendwohin kopieren muss.
    Hab genau Deine config benutzt um es danach dann Stück für Stück auf meine Bedürfnisse anzupassen.


    Grüße

    Frank

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Lauscht dem eibd (lokal/ip) und bearbeitet WG-Plugins.
    Mehr ist es derzeit eigentlich nicht. Eigentlich sollte die eBus-Anbindung mit rein, aber das klappt momentan noch als Plugin.

    Einen Kommentar schreiben:


  • greentux
    antwortet
    Was macht der knxd funktional?

    Einen Kommentar schreiben:


  • JuMi2006
    antwortet
    Teil 2 – ebus_plugin.pl

    Der zweite Teil ist das ebus-Plugin. Theoretisch könnten die WireGate-Benutzer dies direkt ohne knxd nutzen. Die ist aber nur der aktuelle Stand der Entwicklung. Die Laufzeiten bewegen sich noch im erträglichen Bereich und bleiben selbst im Einzelfall noch unter 10 Sekunden.

    Im Plugin selbst ist der Pfad zu eBus_plugin.conf „hard“ in der sub readconf auf /etc/knxd/eBus_plugin.conf festgelegt. Wer diese woanders liegen haben will muss dort Hand anlegen. Das würde ich nach derzeitigem Entwicklungsstand allerdings nicht empfehlen da wir noch nicht genau wissen wohin die Reise geht.

    /etc/knxd/eBus_plugin.conf
    Code:
    #### Einstellungen
    $config = "/etc/knxd/knxd-ebusd.csv";
    $ip = '192.168.2.221';		#IP des ebusd
    $port = '8888';			#Port des ebusd
    $base_time = 120; 			#Abrufzyklus
    $debug = "";
    #### Ende Einstellungen
    Eigentlich ist das schon selbsterklärend. $ip und $port sind IP-Adresse und Port des ebusd. Mit der Variablen $base_time wird die festgelegt wie oft jeder abzurufende Wert gesendet wird. Fürs debuggen gibt es noch $debug.

    Die eigentliche Konfiguration der eBus-Befehle erfolgt in einer CSV-Datei. Der Pfad dazu wird in $config angegeben.

    /etc/knxd/knxd-ebus.csv
    Die CSV kann man sich automatisch aus einer ebusd-csv erstellen lassen. Dafür gibt es unter /etc/knxd/tools das Perl-Script make_config.pl. Der Aufruf erfolgt mit den Parametern -i und -o welche Input und Output angeben.
    Beispiel:
    perl /etc/knxd/tools/make_config.pl -i /etc/ebusd/vaillant.csv -o /etc/knxd/knxd-ebus.csv
    Damit erhalten wir eine csv mit sämtlichen Befehlen die die Datei vaillant.csv enthält. Diese kann nun mit einem Editor um GA,DPT,RRD_type und RRD_step erweitert werden.
    Bei SET Kommandos handelt es sich um GAs die vom Plugin abboniert werden und deren Inhalt dann an den ebusd übergeben werden. DPT sollte der passende Datentyp sein.
    RRD_type gibt an ob es sich um ein COUNTER oder GAUGE RRD handelt (c bzw. g). Mit RRD_step kann man bei einem COUNTER-RRD den Zeitraum in Stunden festlegen. I.d.R. Handelt es sich ja um Tagesverbräuch und damit „24“.
    Hier mal eine kleine fertige Test-Konfiguration. Nicht benötigte Elemente kann man mit # auskommentieren oder löschen. Sofern kein RRD_type oder eine GA eingetragen wurde werden diese auch ignoriert.

    Für das setzen von Werten (SET) kann/sollte eine Rückmeldeadresse beim entsprechenden GET-Befehl eingetragen werden. Diese wird dann automatisch zyklisch mit ausgelesen und nach jedem SET aktualisiert.

    Beispiel:
    Code:
    #GA;DPT;RRD_TYPE;RRD_STEP;TYPE;CMD;COMMENT
    0/5/120;1;;;set;hw mode;WW/ Betriebsmodus 
    0/5/121;9;;;set;hw temp;WW/ Solltemperatur 
    0/5/111;1;;;set;short cir2_party;Quick/ Party-Modus 
    0/5/110;1;;;set;short cir2_mode;Quick/ Heizkreis Betriebsmodus 
    0/5/123;1;;;set;short hw_load;Quick - WW Speicherladung 
    0/5/202;9;g;;get;ci cir2_set_temp;Heizkreis2-Solltemperatur 
    0/5/203;12;c;24;get;ci yield_transfer;Mitternacht Übertragswert Energieertrag 
    0/5/206;12;c;0.5;get;mv yield_sum;Energieertrag 
    0/5/204;9;g;;get;mv brine_in temp;Quellentemperatur 
    0/5/205;9;g;;get;mv brine_out temp;Austrittstemperatur 
    0/5/201;9;g;;get;mv VF2_temp temp;Vorlauftemperatur VF2 
    0/5/200;9;g;;get;mv at_temp temp;Aussentempertur 
    0/5/102;9;g;;get;cir2 rt_day;Heizkreis – Raumsolltemperatur 
    0/5/101;9;g;;set;cir2 rt_day;Heizkreis – Raumsolltemperatur
    Sofern sich das Plugin jetzt im Plugin-Ordner befindet sollte das jetzt alles laufen.

    RRDs werden automatisch erstellt und gefüllt.
    Die Werte werden auf die entsprechenden Gruppenadressen gesendet.

    Einen Kommentar schreiben:


  • JuMi2006
    hat ein Thema erstellt [wiregate] Plugins auslagern - eBus/KNX Daemon.

    Plugins auslagern - eBus/KNX Daemon

    Sollte es hier nicht passen dann verschiebt es einfach in das passende Forum.

    Basierend auf dem (mittlerweile sehr langen) Thread zum eBus Plugin ist eine Lösung entstanden. https://knx-user-forum.de/forum/supp...wiregate/20771
    Ich würde es eine Übergangslösung nennen ... die vielleicht auch einen gewissen Charme hat.

    [WICHTIG]Dies bezeichne ich mal als "Expertenfunktion". Man sollte also wissen was man tut .[/WICHTIG]

    Die Anbindung des ebusd efolgt über 2 Programmteile.

    Teil 1- knxd:

    Der knxd ist ein abgespeckter WiregateDaemon. Dieser wurde von sämtlichen Abhängigkeiten zum originalen wiregated.pl befreit und konfigurierbar gemacht. Dadurch kann dieser auch auf dem original WireGate neben dem wiregated.pl eingesetzt werden.

    Im Kern besteht dieser für ein Fremdsystem (non WireGate) aus der folgenden Dateistrutktur:
    Die Teile die schon bestandteil des WireGates sind markiere ich im folgenden mit einem *.

    /etc/init.d/knxd
    Hier sind i.d.R. Keine Änderungen erforderlich.
    Dies ist das init-script für den knxd. Dieser lässt sich später einfach mit /etc/init.d/knxd start starten. Ein Neustart oder stop wird durch /etc/init.d/knxd restart bzw. /etc/init.d/knxd stop erreicht.

    /etc/knxd/
    Das Hauptverzeichnis des knxd. Hier werden die Konfigurationsdateien, die Plugin-Datenbank und im Unterverzeichnis die Plugins abgelegt.

    /etc/knxd/plugin/
    Dies ist das Verzeichnis in dem die mehr oder weniger bekannten WireGate-Plugins abgelegt werden.

    /etc/logrotate.d/knxd
    Hier sind i.d.R. Keine Änderungen erforderlich.
    Diese Datei enthält die notwendigen infos für einen laufenden logrotate … Der logrotate wird dringend empfohlen. Auf dem WireGate und den meisten Systemen sicherlich schon installiert.

    /usr/sbin/knxd.pl
    Hier sind i.d.R. Keine Änderungen erforderlich.
    Das ist der eigentliche knxd.

    /usr/lib/perl5*
    Hier sind i.d.R. Keine Änderungen erforderlich.
    Lediglich die Datei EIBConnection.pm muss vorhanden sein.*

    K O N F I G U R A T I O N:
    Folgende Dateien müssen angepasst werden damit der knxd grundsätzlich funktioniert:

    /etc/knxd/knxd.conf
    Enthält die globale config für den knxd.
    Code:
    ### Global Settings ###
    # name of knxd – recommend not to change
    name = knxd
    
    # path to init-script  – recommend not to change
    init_script = /etc/init.d/knxd
    
    # max. Memory usage of knxd. If reached knxd restart through itself by init-script
    mem_max = 20
    
    
    
    ### RRD Settings ###
    # directory where rrds will be saved
    rrd_dir = /var/www/rrd/
    
    # global cycle of sending values to rrd  – recommend not to change
    cycle = 240
    
    # global rrd-heartbeat 300 is equal to rrd-tools default  – recommend not to change
    rrd_interval = 300
    
    # some settings for people who know wha they do
    rra1_row = 2160
    rra5_row = 2016
    rra15_row = 2880
    rra180_row= 8760
    
    
    ### KNX/EIB Settings ###
    # eib enables/disables EIB/KNX 
    eib = 1
    
    # URL of eibd, can be in network or local.
    eib_url = ip:192.168.2.220:6720
    #eib_url = local:/tmp/eib
    
    eib_mininterval = 10
    
    # eib_logging enables/disables EIB/KNX Logging
    eib_logging = 0
    
    # eiblogfile is path and name of the EIB/KNX Logfile
    eiblogfile = /var/log/knxd-eib.log
    
    
    ### Plugins ###
    #name of the plugin-Database
    plugin_db_name = plugin_database.db
    
    #path to plugin-Database
    plugin_db_path = /etc/knxd/
    
    #path of the plugin directory
    plugin_path = /etc/knxd/plugin/
    
    # path and name of the Plugin-Logfile
    plugin_logfile = /var/log/knxd-plugin.log
    
    
    ### Ramdisk/Temp ###
    #path to /tmp or ramdisk 
    ramdisk = /tmp/
    
    #creates a alive for use with monit
    alive = /tmp/knxd.alive
    
    
    #udp_port = 13001
    #udp_ip = 172.30.40.50
    /etc/knxd/eibga.conf
    Hier müssen die Gruppenadressen eingetragen werden auf die ein Plugin reagieren soll. Statt einer weiteren Datei wäre auch ein Symlink für Wiregate-Benutzer mit gleichem Namen denkbar.
    Die Gruppenadressen müssen in diesem Format gespeichert werden:

    Code:
    [0/5/0]
    DPTId = 6
    DPTSubId = 6.020
    name = WP-Betrieb
    
    [0/5/1]
    DPTId = 1
    DPTSubId = 1.001
    name = Status HZ-WW
    Der knxd lässt sich noch mit folgenden Optionen starten:
    perl /usr/sbin/knxd.pl -d #Debug-Modus
    perl /usr/sbin/knxd.pl -c /path/to/knxd.conf #separates config file
    perl /usr/sbin/knxd.pl -e /path/to/eibga.conf #separate eibga.conf

    Auf einem „Standard-Linux“ sollten sich sämtliche Abhängigkeiten (eibd ausgenommen) mit folgendem auflösen lassen.*

    Code:
    apt-get install libmath-round-perl libmath-basecalc-perl librrds-perl libproc-pid-file-perl libproc-daemon-perl
    Lediglich die EIBConnection.pm ist neben den knxd Dateien im System zu ergänzen, liegt aber im richtigen Ordner im SVN.*

    SVN-Link: SourceForge.net Repository - [openautomation] Index of /tools/ebus/knxd
Lädt...
X