Ankündigung

Einklappen
Keine Ankündigung bisher.

Test: v0.14 ist so weit

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

    Test: v0.14 ist so weit

    Größere Änderungen:
    • Es gibt jetzt eine Konfigurationsdatei. Wenn man statt "knxd" das Programm "knxd_args" aufruft, werden die alten Optionen als INI-Datei ausgegeben. Den knxd kann man dann mit der so produzierten Datei (als einziges Argument) aufrufen.

      Mit den bisherigen Optionen kann man den knxd weiterhin aufrufen.
    • Das Mitloggen von KNX-Paketen (üblicherweise mit -t 4 [Bit 2] aktiviert) habe ich aus den einzelnen Treibern entfernt. Stattdessen gibt es jetzt einen "log"-Filter. Der wird nicht automatisch eingefügt, wenn man -t 4 oder -t 1020 oder … verwendet.
    • Man kann jetzt globale Paketfilter verwenden (insbesondere den "log"-Filter), indem man "-B log" (oder sonst einen Filter) vor dem -e angibt.
    • Der USB/[c]EMI[12]/FT12-Code wurde umstrukturiert. Jetzt kann man sogar verstehen, wie das Ganze funktioniert … und es ist leichter, Unterstützung für "spezielle" Geräte einzubauen.
    • Beim Start werden erst dann Pakete geroutet / dem systemd Bereitschaft signalisiert, wenn alle Schnittstellen aktiv sind. Das vermeidet Datenverlust beim Start, insbesondere via systemd-Socketaktivierung.
    • Wenn eine Schnittstelle nicht startet, kann knxd ihre Aktivierung wiederholen.
    • knxd meckert jetzt aktiv(er), wenn die -E-Option fehlt.
    • Die Sende-Warteschlangen wurden aus den einzelnen Treibern entfernt. Stattdessen taktet sich das Senden nach der langsamsten Schnittstelle, so dass alles überall gleichzeitig passiert (wenn auch möglicherweise verzögert). Wer das nicht will: es gibt einen "queue"-Filter.
    • Für Schnittstellen, die sich trotz Taktung überrannt fühlen, gibt es einen "pace"-Filter. Der ist insbesondere vor der Multicast-Schnittstelle empfehlenswert, wenn das eigentliche Bus-Interface ein KNX-Router mit wenig Speicherkapazität ist, weil die per Definition keine Empfangsbestätigung kennt.
      Der Code zur Verzögerung in diversen Schnittstellen wurden entfernt, aber die Optionen in der Befehlszeile funktionieren weiterhin.



    Struktur und Inhalt der Konfigdatei ist in "doc/inifile.rst" beschrieben.

    Als nächstes werde ich – abgesehen von den üblichen und wohl unvermeidbaren Bugs – ein paar Filter schreiben, die tatsächlich filtern. Dann kann man Nachrichten, die das Licht im Keller ausschalten, endlich vom Bus im Dachgeschoss fernhalten.

    Außerdem mag ich darauf hinweisen, dass ich die Arbeit zwar gratis, aber nicht umsonst mache, und mich über finanzielle Anerkennung derselben grundsätzlich freue …das Geld fließt eh in neue Test-Hardware …
    DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

    #2
    Hallo Smurf
    Leider baut es immer noch nicht.
    Fehler nach vie vor beim Install:

    Code:
    dh_install
    
        install -d debian/knxd///usr/bin
    
        cp -a debian/tmp//usr/bin/knxd debian/knxd///usr/bin/
    
        install -d debian/knxd///lib
    
        cp -a debian/tmp//lib/systemd debian/knxd///lib/
    
        install -d debian/knxd///etc
    
        cp -a debian/tmp//etc/knxd.conf debian/knxd///etc/
    
        install -d debian/knxd///usr/lib
    
        cp -a debian/tmp//usr/lib/sysusers.d debian/knxd///usr/lib/
    
        install -d debian/knxd-tools///usr/bin
    
        cp -a debian/tmp//usr/bin/eibnetdescribe debian/knxd-tools///usr/bin/
    
    cp: der Aufruf von stat für „debian/tmp//usr/bin/eibnetdescribe“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
    
    dh_install: cp -a debian/tmp//usr/bin/eibnetdescribe debian/knxd-tools///usr/bin/ returned exit code 1
    
    debian/rules:27: recipe for target 'override_dh_install' failed
    
    make[1]: *** [override_dh_install] Error 2
    
    make[1]: Leaving directory '/home/michi/knxd'
    
    debian/rules:14: recipe for target 'binary' failed
    
    make: *** [binary] Error 2
    
    dpkg-buildpackage: Fehler: Fehler-Exitstatus von fakeroot debian/rules binary war 2

    Kommentar


      #3
      Danke!

      Kommentar


        #4
        misa Sollte aber. Bitte aktualisiere mal deine Sourcen.
        DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

        Kommentar


          #5
          Perfekt, jetzt baut es. Besten Dank. Ich melde mich dann zurück, wenn ich erste Tests gemacht habe.

          Kommentar


            #6
            Hallo
            Leider klappt es noch nicht ganz bei mir. Folgenden Fehler bekomme ich:
            Code:
            michi@bridge:~$ sudo knxd -e 0.0.1 -E 0.0.2:8 -t1023 -u /tmp/eib -b usb:
            could not exec knxd_args helper: No such file or directory
            [ 1:main] E00000055: There is no KNX addr= in section 'main'.
            [ 1:main] F00000000: Error setting up the KNX router.
            knxd_args finde ich auch nicht als Programm.
            Ich baue mal ein INI File, wenn ich die Anleitung finde. Ggf. läuft es damit.

            Kommentar


              #7
              Supi, es klappt!

              Habe knxd_arg dann in ~/knxd/debian/tmp/usr/sbin gefunden. Anscheinend kopiert das install Skript die Datei noch nicht. Habe dann ein INI-File gebaut und dann mal lokal gestartet.

              Sieht gut aus. Signale vom Bus kommen jetzt an :-) Mache dann morgen mal Experimente.

              Vielen Dank an Sumpf und alle, die mitgeholfen haben. Tolle Leistung!

              Grüsse Michi

              Kommentar


                #8
                *Gnarf* Das kommt davon, wenn man testet, ohne Pakete zu bauen.

                Sollte jetzt tun.
                DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                Kommentar


                  #9
                  misa Wer ist "Sumpf"?
                  DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                  Kommentar


                    #10
                    Haha, blöde Autokorrektur. Meinte natürlich Smurf :-)

                    Kommentar


                      #11
                      So, das Debian-Paket funktioniert jetzt auch endlich …
                      DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben

                      Kommentar


                        #12
                        Hallo Smurf,

                        habe gerade das neue 0.14er Debian-Paket gebaut und über die 0.12 installiert. Wie bringt man jetzt systemd bei, dass der knxd-Service mit meiner aus knxd_args gebauten ini-Datei starten soll?

                        sudo systemctl cat knxd.service bringt noch die alten Startparameter:

                        # /lib/systemd/system/knxd.service
                        [Unit]
                        Description=KNX Daemon
                        After=network.target

                        [Service]
                        EnvironmentFile=/etc/knxd.conf
                        ExecStart=/usr/bin/knxd $KNXD_OPTS
                        User=knxd
                        Group=knxd
                        Type=notify

                        Restart=on-failure
                        RestartSec=10

                        [Install]
                        WantedBy=multi-user.target
                        Also=knxd.socket


                        Danke im voraus!

                        Frank

                        Kommentar


                          #13
                          ... vielleicht hilft Dir dies

                          Kommentar


                            #14
                            Hi zusammen!

                            Hab den aktuellsten Master gezogen, mittels knxd_args ein ini-File erstellen lassen /etc/knxd.ini und in /etc/knxd.conf den Eintrag:
                            Code:
                            /etc/knxd.ini
                            Hier die Ini-Datei:
                            Code:
                            [A.ipt]
                            driver = ipt
                            ip-address = 10.0.0.101
                            [main]
                            addr = 1.1.65
                            connections = A.ipt
                            systemd = systemd
                            Rufe ich jetzt knxd /etc/knxd.ini auf, passiert scheinbar nichts. Okay, Programm scheint laut top zu laufen, allerdings hängt ein groupswrite oder busmonitor bis in die Ewigkeit - kein Befehl, nix. Schreibe ich in die service-Datei statt $KNXD_OPTS direkt den Pfad zur ini-Datei rein, kommt folgender Fehler:

                            Code:
                            Mär 24 19:38:42 smarthome knxd[3509]: knxd: inifile.cpp:75: std::string& IniSection::operator[](const char*): Assertion `v != values.end()' failed.
                            Mär 24 19:38:42 smarthome systemd[1]: knxd.service: main process exited, code=killed, status=6/ABRT
                            Mär 24 19:38:42 smarthome systemd[1]: Failed to start KNX Daemon.
                            Siehe auch hier: https://github.com/knxd/knxd/issues/238

                            Was kann ich tun?

                            Kommentar


                              #15
                              aehnliches hier, laeuft aber stelt sich fuer die ETS tot:
                              https://github.com/knxd/knxd/issues/259

                              Kommentar

                              Lädt...
                              X