NEWS
KNX Adapter überholt
-
Hallo
nutzt Du auf dem Raspi den EIBD oder den KNXD? Ich hatte massive Probleme den KNXD zum laufen zu bringen und habe es schliesslich aufgegeben. Mit dem EIBD funktioniert es. Der KNXD gibt die Rückmeldungen nicht weiter an iobroker-knx adapter. Mit loxone hatte ich noch nichts zu tun. Um Dir helfen zu können, wäre es schön, wenn Du Deine Anlage (Gateway's, Kombination KNX-Loxone) etwas genauer beschreiben könntest. `
Hi Chefkoch,
Danke für das Feedback. Hatte schon Angst
Ich habe jetzt mal das Ding neu aufgesetzt und eibd unter iobroker installiert. (Danke für den Tip) Habe hardcoded die IP und Port eingetragen. Die EIB IP braucht man nicht??? Das macht mich ein wenig stutzig. :shock:
Mein KNX System ist folgendermaßen aufgebaut
KNX Schnittstelle IP ist im Loxone verbaut (Wird auch als Schnittstelle für ETS verwendet)
Der Loxone ist mit einem 24er Switch verbunden, auf dem auch direkt der Raspberry hängt. (im Netzwerkschrank)
Loxone hat für mich eigentlich nur den Vorteil das ich auf die Schnelle Visus machen konnte und er nicht viel mehr als ein IP Schnittstelle kostet. Da ich beim Einzug noch nicht so ganz fertig war, musste ne kleine visu her
Die Beschreibung auf github für den Adapter finde ich so "lala". Das Readme sagt natürlich genaus so viel aus
Ich gehe mal davon aus, dass nur da der Fehler liegt. (Siehe Screen)
Wie muss die sh.xml genau aussehen? Eventuell stell mir jemand seine Datei mal zur Verfügung.
EDIT: Gemäß des Falles das ich es über eibd machen kann. Läuft es dann auch über den iobroker oder mache ich es gemäß der installation von Michelstechblog?! http://michlstechblog.info/blog/raspber … with-knxd/
Und installiere danach eibd unter iobroker damit die Visu eine Verbindung bekommt? Welche Daten muss ich dann Eintragen, die originalen (IP und EIB Adresse) oder die Simulierten gemäß Blog?
Fragen über Fragen…. die nach einer Antwort suchen. Sorry
Ich danke dir vielmals.
Schönen Abend noch
Gruß Chris
-
Hallo,
Auch der Entwickler des knxd ist "Einzelkämpfer". Respekt vor seiner Leistung! Ich denke das auf absehbare Zeit der knxd wie erwartet funktionieren wird. Ich teste hin und wieder, bleibe aber bis zur stable Version auf eine.
Du sagst das die Doku so "lala" ist. Was genau fehlt dir daran?
Zu deinem Screenshot: es ist NICHT möglich eine XML Datei einzulesen. Es MUSS eine knxproj sein.
Zum eibd nochmal: wenn du die Schalter DTRS verwendest dann macht er mcast.
VG
Chefkoch009
-
Hi,
sorry falls ich mich ein wenig unverständlich ausgedrückt habe. Und die geleistete Arbeit wollte ich nicht abwerten, entschuldigung falls das so rüber kam.
Du hattest angegeben, dass der knxd nicht läuft, da habe ich alles clean gemacht und eibd installiert.
laut Doku müssen da die die GAs aus ETS exportiert werden. Und Anschließend auf dem Rapsi im iobroker.eibd Pfad unter sh.xml gepeichert werden
https://github.com/ruhigundrelaxed/ioBroker.eibd
Oder bin ich da auf dem falschen weg? :?
Die Doku beschreibt nicht wirklich wie man die DPS in der xml umschlüsseln kann bzw. was ich für, z.B. Schalten angeben muss.
Ich glaube so langsam bin ich durcheinander
Danke
Grüße
-
Hallo In.Meditation,
Um kurz auf deine Frage zu antworten: ja.
Schau Mal hier nach: https://github.com/ioBroker/ioBroker.knx
VG
chefkoch009
-
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.
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ß
-
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 -
Guten Abend Chefkoch,
anbei der Screenshot
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 excellence! 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
Beliebig wählen
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.
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
-
-
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
-
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.
-
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
-
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.
-
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
-
Danke… ich schaue mal.
-
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
-
Wie sieht denn deine /etc/Network/interfaces aus? Hast du einen raspi oder einen banana Pi?
VG
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 ?
-
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
-
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 ?
-
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
-
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