Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. KNX Adapter überholt

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    KNX Adapter überholt

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      In.Meditation last edited by

      Hi Chefkoch,

      also ich habe jetzt alle neu gemacht, deinen Adapter benutzt… bekomme aber keine Daten auf den Bus... immer "false" angegeben

      lesen kann er, gibt jediglich die Fehlermeldung "warn: Not Ready" aus.

      2360_bildschirmfoto_2017-03-20_um_20.06.56.png

      Ich weiß nicht woran es noch hängen sollte 😕

      ETS habe ich nicht geöffnent, so das die schnittstelle belegt sein könnte.

      Aber nach wie vor… beim Schalten über die iobroker Visu wird es am Loxone angezeigt. Das macht mich so stutzig....

      Noch ideen?

      Danke

      Gruß

      1 Reply Last reply Reply Quote 0
      • chefkoch009
        chefkoch009 Developer last edited by

        Hallo In.Meditation,

        zunächst einmal ist es so, das er beim Starten alle GA's abfragt, die das Lesen Flag haben. Das kann in einigen Installationen eine Weile dauern. Kannst Du mal bitte diese Ansicht eines Deiner Objekte zeigen?

        Desweiteren die genaue Bezeichnung deiner Loxone Komponente.

        VG

        chefkoch009
        870_objektansicht.png

        1 Reply Last reply Reply Quote 0
        • I
          In.Meditation last edited by

          Guten Abend Chefkoch,

          anbei der Screenshot
          2360_bildschirmfoto_2017-03-20_um_21.39.33.png

          Ich habe einen Loxone Miniserver

          Dieser ist mit einer IP-Schnittstelle versehen, welche fürs KNX genutzt wird. Und über ETS wunderbar funktioniert.

          http://shop.loxone.com/dede/miniserver.html (Ich hoffe das es in ordnung ist, den Link zu posten.) Wenn nicht bitte bescheid geben und vergebt mir. 🙂

          Schönen Abend

          Gruß Chris

          <u><size size="200">EDIT</size></u>

          Mehrere Wege führen nach Rom. Es funktioniert endlich…. Allerdings auf eine ganz andere Art und Weise 🙂

          Das Paket von Github hat "alleine" bei mir leider nicht funktioniert.

          Was das Paket keinesfalls schlecht machen soll, oder es ins falsche Licht rücken. Die Arbeit die geleistet wird ist par ex­cel­lence! Und dafür bin ich sehr dankbar. Welche Energie und Zeit die in solche Projekte gesteckt wird und den Leuten ebenfalls support geboten wird. HUT AB!!

          Ich denke einfach, die Problematik liegt bei manchen IP Schnittstellen. Ich habe zum Beispiel in der Loxone Visu gesehen das Licht geschaltet wird, was es aber in wirklichkeit nicht wurde. 🙂 Also hing es irgendwie am Loxone. Die vermeintliche "Probelamtik" bin ich umgangen, mit der Erstellung eines IP-Tunnels. Welches ich hiermit kurz beschreiben möchte.

          Kurzer Overview meiner Ausstattung

          • Raspberry PI3 mit Jessie

          • Iobroker

          • KNX Adapter von Chefkoch009 (Thanks)

          • Loxone Miniserver (Fungiert als KNX/IP Schnitstelle)

          • Schaltaktoren, Jalousieaktoren, usw... alles von MDT

          • ETS5 zum programmieren

          Vorgehensweise zur Erstellung des IP-Tunnels

          • Pakete und Updates nachinstallieren
          apt-get install make libtool gcc g++
          apt-get update
          

          pthsem und bcusdk herunterladen

          wget http://sourceforge.net/projects/bcusdk/files/pthsem/pthsem_2.0.8.tar.gz
          wget http://sourceforge.net/projects/bcusdk/files/bcusdk/bcusdk_0.0.5.tar.gz
          

          Beides entpacken

          tar xvfz pthsem_2.0.8.tar.gz
          tar xvfz bcusdk_0.0.5.tar.gz
          

          pthsem installieren

          cd pthsem*
          ./configure
          make
          make install
          

          bcusdk installieren

          cd bcusdk*
          export LD_LIBRARY_PATH=/usr/local/lib
          ./configure --with-pth=yes --without-pth-test --enable-onlyeibd --enable-eibnetip --enable-eibnetiptunnel --enable-eibnetipserver
          make
          make install
          

          Library laden

          echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/bcusdk.conf
          ldconfig
          

          Anschließend ollte die BUS Kommunikation funktionieren. Das kann einfach über das Terminal getestet werden.

          Tunnel aufbauen als user angemeldet NICHT root (EIBD Lässt sich nicht als root starten)

          sudo route add 224.0.23.12 dev eth0
           sudo touch /var/log/eibd.log
           sudo chown $USER /var/log/eibd.log
           /usr/local/bin/eibd -D -S -T -i --eibaddr=0.0.1 --daemon=/var/log/eibd.log --no-tunnel-client-queuing ipt:192.168.xx.xx 
          

          192.168.xx.xx IP Adresse eures Gateways, Schnittstelle… what ever. 🙂

          Lesen des Bus über folgenden Befehl. (Nach dem Befehl einen Schalter drücken)

          /usr/local/bin/groupsocketlisten ip:127.0.0.1 
          

          Licht EIN Signal auf den BUS geben (1/0/4 durch gewünschte Adresse ersetzen)

          groupswrite ip:127.0.0.1 1/0/4 1
          

          Licht AUS Signal auf den BUS geben (1/0/4 durch gewünschte Adresse ersetzen)

          groupswrite ip:127.0.0.1 1/0/4 0
          

          Installation KNX Adapter

          im Menü auf "installieren aus eigener URL" klicken
          2360_bildschirmfoto_2017-03-20_um_22.49.51.png
          2360_bildschirmfoto_2017-03-20_um_22.50.23.png

          Beliebig wählen
          2360_bildschirmfoto_2017-03-20_um_22.57.47.png

          Folgende URL eintragen

          https://github.com/ioBroker/ioBroker.knx

          anschließend wie gewohnt über das + installieren.

          Mit dieser Installation erstellt man den zu Anfangs erwähnten "IP-Tunnel", deshalb müssen im iobroker knx Adapter folgende Daten eingetragen werden.
          2360_bildschirmfoto_2017-03-20_um_22.44.26.png

          KNX-Gateway: 127.0.0.1

          Port: 3671 (Standart KNX port, wenn er geändert wurde, bitte anpassen)

          Phy EIB Adr: "im Bereich des eigenen EIB Projektes"

          knxproj Datei: Exportdatei des Projektes aus ETS.

          Zum Beenden der EIBD Instanz bzw. des Tunnels folgenden Befehl eingeben.

          pkill eibd
          

          Dann ist eure KNX Schnittstelle wieder frei für ETS. Aber bedenkt bitte, dass der KNX Adapter im iobroker dann auch nicht funktioniert.

          Nach erneutem Tunnel "anfertigen" KNX Adapter neustarten.

          Es gibt noch Probleme bei einem Restart von Rapsberry, da muss der Tunnel erneut per Hand aufgebaut werden. und Anschließend der KNX Adapter gestartet werden. Dieser ließt erst die read Objekte aus und ist anschließend mit dem KNX verbunden.

          Bin an dem Problem dran.

          Ich hoffe jetzt gibt es den ein oder anderen dem es jetzt gelingt. 🙂

          Schönen abend und special thanks to Chefkoch für die unermüdliche Hilfe. 🙂

          Grüße Chris

          1 Reply Last reply Reply Quote 0
          • chefkoch009
            chefkoch009 Developer last edited by

            Hallo In.Meditation,

            RESPEKT für deine Doku !!! Das finde ich mal grundsolide. Klasse.

            Ich verstehe jedoch nicht, warum Du eine route hinzufügst. Versuche mal den eibd mit:

            /usr/local/bin/eibd -D -T -R -S -i --eibaddr=0.0.1 --daemon=/var/log/eibd.log --no-tunnel-client-queuing ipt:192.168.xx.xx
            

            zu starten. Die -R Option soll das Routing übernehmen.

            als eibd startup - script verwende ich folgende:

            (ich habe eine ROT und übergebe deshalb tpuarts:/dev/ttyKNX1)

            #!/bin/sh
            ### BEGIN INIT INFO
            # Provides:          eibd
            # Required-Start:    $local_fs $network $remote_fs $syslog
            # Required-Stop:     $local_fs $network $remote_fs $syslog
            # Default-Start:     2 3 4 5
            # Default-Stop:      0 1 6
            # Short-Description: <enter a/short/description/of/the/software=""># Description:       <enter a/long/description/of/the/software="">#                    <...>
            #                    <...>
            ### END INIT INFO
            
            # Author: Timo <knxd@timo-wingender.de># Do NOT "set -e"
            
            # PATH should only include /usr/* if it runs after the mountnfs.sh script
            PATH=/sbin:/usr/sbin:/bin:/usr/bin:usr/local/bin
            DESC="eibd"
            NAME=eibd
            DAEMON=/usr/local/bin/eibd
            DAEMON_ARGS="-c -D -T -R -S tpuarts:/dev/ttyKNX1"
            PIDFILE=/var/run/$NAME.pid
            SCRIPTNAME=/etc/init.d/$NAME
            
            # Exit if the package is not installed
            [ -x "$DAEMON" ] || exit 0
            
            # Read configuration variable file if it is present
            [ -r /etc/default/$NAME ] && . /etc/default/$NAME
            
            # Load the VERBOSE setting and other rcS variables
            . /lib/init/vars.sh
            
            # Define LSB log_* functions.
            # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
            # and status_of_proc is working.
            . /lib/lsb/init-functions
            
            #
            # Function that starts the daemon/service
            #
            do_start()
            {
                    # Return
                    #   0 if daemon has been started
                    #   1 if daemon was already running
                    #   2 if daemon could not be started
                    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                            || return 1
                    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
                            -d -p $PIDFILE $DAEMON_ARGS \
                            || return 2
                    # The above code will not work for interpreted scripts, use the next
                    # six lines below instead (Ref: #643337, start-stop-daemon(8) )
                    #start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
                    #       --name $NAME --test > /dev/null \
                    #       || return 1
                    #start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
                    #       --name $NAME -- $DAEMON_ARGS \
                    #       || return 2
            
                    # Add code here, if necessary, that waits for the process to be ready
                    # to handle requests from services started subsequently which depend
                    # on this one.  As a last resort, sleep for some time.
            }
            
            #
            # Function that stops the daemon/service
            #
            do_stop()
            {
                    # Return
                    #   0 if daemon has been stopped
                    #   1 if daemon was already stopped
                    #   2 if daemon could not be stopped
                    #   other if a failure occurred
                    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
                    RETVAL="$?"
                    [ "$RETVAL" = 2 ] && return 2
                    # Wait for children to finish too if this is a daemon that forks
                    # and if the daemon is only ever run from this initscript.
                    # If the above conditions are not satisfied then add some other code
                    # that waits for the process to drop all resources that could be
                    # needed by services started subsequently.  A last resort is to
                    # sleep for some time.
                    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
                    [ "$?" = 2 ] && return 2
                    # Many daemons don't delete their pidfiles when they exit.
                    rm -f $PIDFILE
                    return "$RETVAL"
            }
            
            #
            # Function that sends a SIGHUP to the daemon/service
            #
            do_reload() {
                    #
                    # If the daemon can reload its configuration without
                    # restarting (for example, when it is sent a SIGHUP),
                    # then implement that here.
                    #
                    start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
                    return 0
            }
            
            case "$1" in
              start)
                    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
                    do_start
                    case "$?" in
                            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                    esac
                    ;;
              stop)
                    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
                    do_stop
                    case "$?" in
                            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                    esac
                    ;;
              status)
                    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
                    ;;
              #reload|force-reload)
                    #
                    # If do_reload() is not implemented then leave this commented out
                    # and leave 'force-reload' as an alias for 'restart'.
                    #
                    #log_daemon_msg "Reloading $DESC" "$NAME"
                    #do_reload
                    #log_end_msg $?
                    #;;
              restart|force-reload)
                    #
                    # If the "reload" option is implemented then remove the
                    # 'force-reload' alias
                    #
                    log_daemon_msg "Restarting $DESC" "$NAME"
                    do_stop
                    case "$?" in
                      0|1)
                            do_start
                            case "$?" in
                                    0) log_end_msg 0 ;;
                                    1) log_end_msg 1 ;; # Old process is still running
                                    *) log_end_msg 1 ;; # Failed to start
                            esac
                            ;;
                      *)
                            # Failed to stop
                            log_end_msg 1
                            ;;
                    esac
                    ;;
              *)
                    #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
                    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
                    exit 3
                    ;;
            esac
            
            :</knxd@timo-wingender.de></enter></enter> 
            

            dann führe ich die Installation des Dienstes wie folgt durch:

            # systemctl enable eibd
            

            und damit startet mein eibd auch beim reboot mit.

            VG

            chefkoch009

            1 Reply Last reply Reply Quote 0
            • M
              my-knx-shop last edited by

              Mal eine grundsätzliche Frage. Angenommen ich habe einige Gruppenadressen in der ETS hinzugefügt, diese auch mit dem DPT versehen, aber kein Geräte in dieser Gruppen Adresse, da diese nur durch den Gira Homeserver verwendet wird.

              Wie kann ich diese in den KNX Adapter importieren, denn dieses macht dieser leider nur wenn auch ein Gerät in der Gruppenadresse ist.

              1 Reply Last reply Reply Quote 0
              • chefkoch009
                chefkoch009 Developer last edited by

                Hallo my-knx-shop,

                dies habe ich bewusst so implementiert, um "unnützen" overhead zu vermeiden.

                Der reguläre Weg ist das sogenannte Dummygerät. Hauptsächlich wird es benutzt wenn man mit KNX Linienkopplern arbeitet. Dieses fügst Du in der ETS ein und verknüpfst die Datenpunkte. Dann erscheint es auch im ioBroker.

                VG

                chefkoch009

                1 Reply Last reply Reply Quote 0
                • M
                  my-knx-shop last edited by

                  Hallo Chefkoch,

                  ich bin deinem Rat gefolgt und habe die GAs mit Dummygeräten bestückt 😉

                  Nach dem 3x dass ich den Import vorgenommen habe, ist nun etwas passiert was ich mir nciht erklären kann und kann aktuell nicht mal mehr auf den ioBroker zugreifen.

                  Das Gerät lässt sich über die 8081 nicht mehr ansprechen oder der ioBroker öffnen.

                  In der Fritzbox scheint es noch unter der IP zu sein, aber wenn ich es anpinge nicht mehr.

                  Ich habe schon den Stecker gezogen und versucht dass das Gerät sich neu auf die IP wiederfindet, doch leider auch hier nichts …

                  Hat jemand eine Idee ob ich dass was ich da an einstellungen hatte und konfigurioert habe nun wieder herstellen kann oder ob ich alles neu machen muss ?

                  Verdammt, ich kenne mich mit dem Raspberry einfach zu wenig aus.

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    @my-knx-shop:

                    Verdammt, ich kenne mich mit dem Raspberry einfach zu wenig aus. `
                    Erstmal keine Panik!

                    Wenn du NICHTS an ioBroker (Update usw.) oder auf dem RasPi (apt-get upgrade o.ä.) verändert hast sollte da auch nichts passiert sein.

                    Also nicht in operative Hektik verfallen und an allem schrauben!

                    Schlimmstenfalls hat es (zufällig zeitgleich) deine SD-Karte zerschossen.

                    Bestenfalls hat er sich nur aufgehängt.

                    Hier gibt es eine Anleitung das Ganze einzugrenzen:

                    http://www.iobroker.net/?page_id=3928&lang=de

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • M
                      my-knx-shop last edited by

                      Danke… ich schaue mal.

                      1 Reply Last reply Reply Quote 0
                      • M
                        my-knx-shop last edited by

                        So, ich habe zwar den Fehler gefunden, aber nicht zu 100% behoben.

                        Sobald ich den Stecker einmal ziehe ist dhcp ausgeschaltet und der raspberry hat kein Internet.

                        aktiviere ich es mit sudo service dhcpcd start läuft wieder alles und die IP legt die Fritzbox fest und wählt immer die gleiche.

                        Aber was muss ich tun um zu vermeinden dass sich das deaktiviert und ich beruhig auch mal den Stecker ziehen kann um den raspberry mal anderswo einzubauen.

                        Danke euch

                        1 Reply Last reply Reply Quote 0
                        • chefkoch009
                          chefkoch009 Developer last edited by

                          Wie sieht denn deine /etc/Network/interfaces aus? Hast du einen raspi oder einen banana Pi?

                          VG

                          Chefkoch009

                          1 Reply Last reply Reply Quote 0
                          • M
                            my-knx-shop last edited by

                            @chefkoch009:

                            Wie sieht denn deine /etc/Network/interfaces aus? Hast du einen raspi oder einen banana Pi?

                            VG

                            Chefkoch009 `
                            Ich habe einen raspberry.

                            Wie sollte die Datei denn aussehen um immer die IP 192.168.178.217 zu haben ?

                            1 Reply Last reply Reply Quote 0
                            • chefkoch009
                              chefkoch009 Developer last edited by

                              So ungefähr….Ausgehend von der Annahme das deine FB die 192.168.178.1 hat UND DNS Server UND deine Netzwerkkarte im raspi eth0 heisst:

                              # The loopback network interface
                              auto lo
                              iface lo inet loopback
                              
                              #the primary network interface
                              auto eth0
                              iface eth0 inet static
                                      address 192.168.178.217
                                      netmask 255.255.255.0
                                      network 192.168.178.0
                                      broadcast 192.168.178.255
                                      gateway 192.168.178.1
                                      dns-nameservers 192.168.178.1
                              
                              
                              1 Reply Last reply Reply Quote 0
                              • M
                                my-knx-shop last edited by

                                Danke, ich glaube da steht bei mir nicht so viel drin 😉

                                Jetzt ist das Gerät aber aktuell wieder im Keller und hat keinen Monitor.

                                Wie kann ich dass ggf. per putty abfragen und bei bedarf richtig machen ?

                                1 Reply Last reply Reply Quote 0
                                • chefkoch009
                                  chefkoch009 Developer last edited by

                                  ist zwar off-topic, aber trotzdem in aller kürze:

                                  putty mit ssh auf die aktuelle IP des raspi.

                                  dann:

                                  # sudo su
                                  # mv /etc/network/interfaces /etc/network/interfaces.orig     <= umbenennen der originaldatei, falls was schief läuft
                                  # nano /etc/network/interfaces
                                  
                                  

                                  nun wird mit dem editor "nano" die die datei "interfaces" geöffnet. Diese sollte nach dem "mv" leer sein. Nun die Konfiguration mit der Maus markieren und kopieren, in das putty-Fenster mit dem nano wechseln und die rechte Maustaste drücken. Es sollte nun der markierte Inhalt im nano erscheinen. Alles nochmal auf Richtigkeit prüfen und anschliessend mit STRG+X und J bestätigen und beenden.

                                  Nun die aktuelle konfiguration übernehmen durch Neustarten des Netzwerks:

                                  # /etc/init.d/networking restart
                                  
                                  

                                  Nun sollte der Raspi unter der o.A. IP antworten.

                                  VG

                                  chefkoch009

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    my-knx-shop last edited by

                                    Ich denke ich habe alles so gemacht wie du es geschrieben hast und hoffe dass es jetzt hält !

                                    Danke vielmals für die kleine Einführung

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      my-knx-shop last edited by

                                      Nachdem nun wieder alle släuft und ich nun schon mehrere Male versucht habe weitere GA dazuzubekommen ohne Erfolgt, wollte ich hier noch mal anknüpfen und fragen ob es denn auch manuell eine Möglichkeit gibt die ein oder andere GA anzulegen.

                                      Trotz der Tatsache dass die GA´s nun schon verbunden mit Taster under Aktor sind, kommen diese einfach nicht neu hinzu.

                                      Ich will auch nicht wieder alles löschen und dann neu importieren, da damit sicherlich die Einstellungen für die Alexa Steuerung weg sein dürfte.

                                      Hier jemand einen Tip für mich ?

                                      1 Reply Last reply Reply Quote 0
                                      • chefkoch009
                                        chefkoch009 Developer last edited by

                                        An und für sich sollten bei einem Reimport nur die Änderungen geschrieben werden. Sprich, wenn Du neue GA's hinzufügst, werden diese auch im ioBroker hinzugefügt. Somit sollten Deine bisherigen Änderungen erhalten bleiben.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          my-knx-shop last edited by

                                          @chefkoch009:

                                          An und für sich sollten bei einem Reimport nur die Änderungen geschrieben werden. Sprich, wenn Du neue GA's hinzufügst, werden diese auch im ioBroker hinzugefügt. Somit sollten Deine bisherigen Änderungen erhalten bleiben. `
                                          Ich habe es 3 - 4 mal versucht, aber auch das alte stehen lassen. Oder muss ich es löschen und dann neu importieren ?

                                          1 Reply Last reply Reply Quote 0
                                          • chefkoch009
                                            chefkoch009 Developer last edited by

                                            Das "alte" ist ja Deine Konfiguration mit Aleksa. Das belässt Du alles so wie es ist. Du importierst die knxproj Datei mit Deinen Dummygeräten erneut und es sollten die Änderungen anschliessend zu deiner Konfiguration hinzugefügt sein.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            816
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            123
                                            1043
                                            330881
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo