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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    KNX Adapter überholt

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                          • M
                                            my-knx-shop last edited by

                                            @chefkoch009:

                                            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. `
                                            Und genau das habe ich mehrere Male versucht … kein Erfolg.

                                            Leider

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            826
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            123
                                            1043
                                            333674
                                            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