NEWS
KNX adapter?
-
Hallo,
Die npm bereitgestellten Pakete funktionieren auch nicht. Die Entwicklung des Adapters lag bis dato auf Eis.
Zur Zeit wird ein neu designeter Adapter entwickelt. Dieser ist aber noch nicht per npm verfügbar.
-
Hi, falls noch Interesse an einem funktionsfähigen KNX Adapter besteht:
https://github.com/ruhigundrelaxed/ioBroker.eibd
Er ist noch nicht ganz fertig, aber zum testen geeignet. Es fehlt u.A. noch die Adminseite.
Ich würde mich bereit erklären bei der Installation zu helfen, da ich dringend Tester suche.
Gruß
Martin
-
Hallo alle zusammen.
Bin ein absoluter Neuling betreffend ioBroker.
Ich sitze jetzt seit ca. 1 Woche und versuche krampfhaft eine Verbindung zu meinem KNX IP Interface aufzubauen. Ich schaffe es einfach nicht. Mein ganzes Haus ist KNX verkabelt. Zusätzlich habe ich noch ein paar Homematic Komponenten die schon einwandfrei funktionieren.
Könnte da eure Hilfe brauchen.
Habe mir den Adapter ioBroker.knx installiert und mit ip Adresse, Port und xml gefüttert aber er bekommt keine Verbindung.
Dann habe ich mir deinen Adapter angesehen aber da stehe ich komplett an. Ich kann nichtmal installieren.
Könntest du mir da etwas unter die Arme greifen.
Wenn ich ihn über CMD ( achja derzeit läuft ioBroker noch auf Windows, wenn alles funktioniert stelle ich auf einen Raspi um) installiere taucht er in meinen Adaptern garnicht auf.
Welch infos brauchst du von mir?
Danke
MFG Tom
-
Hallo Tom,
das ist nahezu die gleiche Konfiguration die ich auch habe. KNX + Homematic + noch ein paar andere Sachen…
Wir bekommen das ganz sicher hin....
Das erste Problem, welches ich sehe ist leider auch jenes bei dem ich dir am wenigsten weiterhelfen kann.
Du versuchst die Verbindung direkt über ein KNX IP interface aufzubauen. Das geht imho nicht. Du brauchst noch einen Dienst, welches die Daten des KNX/IP interface für dich übersetzt. Das ist der eibd Dienst. Den für Linux zu installieren ist kein größeres Problem, bei Windows sieht die Sache leider wieder anders aus... Das geht zwar irgendwie, ist jedoch nicht unbedingt "komfortable".
Wenn das läuft, ist der Rest easypeasy....
Das der Adapter nicht direkt aus Git heraus läuft war zu erwarten. Es hat ihn bisher niemand direkt aus git installiert. Vermutlich fehlen noch module im package oder so. Aber kein Problem, dass kann man einfach lösen.
Ich denke, das der praktikable Ansatz folgender ist:
1.)
Du kaufst dir einen RPi und installierst (z.B. via noob) raspbian. (Ein auf den pi angepasstes Debian).
Das ist mit wenigen Klicks durchgeführt und erfordert wenig bis garkein Fachwissen. Total simple.
Kosten mit Gehäuse, Netzteil und MicroSD ~60 Euro.
2.)
Du installierst, mit Forums- oder meiner Hilfe iobroker auf dem RPi. Auch kein Hexenwerk. Schnell gemacht.
3.)
Du installierst eibd auf dem PI. Das ist ein wenig schwerer, da du evt. eibd kompilieren musst. (Keine Ahnung ob es fertige ARM Pakete dafür gibt.)
Falls du kompilieren muss, wird das ein wenig heftiger. Aber dennoch kein wirklicher Grund Kopfschmerzen zu bekommen. Eibd futtert dann u.A. als Argument die IP von deinem KNX/IP Adapter....
4.)
Wir installieren gemeinsam den eibd Adapter auf deiner Kiste. Dabei kann ich direkt Fehler, die sich bei meiner Installation nicht manifestieren, debuggen. (Mein Mehrwert...)
5.)
Du ziehst dir die Ga´s aus ETS. (Der XML File...) Den sollte man, um auch vernüftige Interpretationen der Datenpunkte in iobroker zu bekommen leicht anpassen. Habe ich in der Readme beschrieben, können wir aber auch gemeinsam machen. (Die Interpretation der Datenpunkte fehlt übrigens bei dem originalen iobroker.knx. Da war alles int...)
6.)
Adapter starten... (Ich implementiere dann noch das Admininterface zuende, sodass du die ip des eibd Adapters (aktuell hardkodiert auf 127.0.0.1, was bei o.g. vorgehen auch korrekt ist.) selber ändern kannst. (Eibd muss ja nicht auf dem Rechner laufen, auf welchem auch iobroker läuft.)
7.)
Glücklich sein! (ganz wichtig)
Du kannst, solltest du die Investition in den PI scheuen, auch ein Debian in einer virtuellen maschine aufsetzen und dort rumspielen.
Also wie möchtest du beginnen?
Gruß
Martin
-
HI!!
Also den Raspi hab ich seit heute neben mir liegen.
Werde mal OS und IOBroker draufschmeißen. Bin Gott sei dank morgen daheim.
Dann schau ich mir mal Eibd an,… dann sehen wir weiter.
Melde mich morgen wieder wie es läuft.
Danke für deine Hilfe und bis morgen.
MFG Tom
-
Schau mal hier:
http://michlstechblog.info/blog/raspber … interface/
(@Forumsadmin: ist es ok externe links zu posten?)
Der hat zwar n usb backend, aber der Weg ist der selbe. Es werden nur andere Startparameter gesetzt. Alies weitere sehen wir dann.
Saluti da colonia.
-
Morgeeeen!!
So hab mal das OS und IOBroker installiert.
Danach die Beschreibung in deinem Link (Danke dafür) durchgeackert bis zum ende.
Hab jetzt nur EIBD installiert, das Update " EIB/KNX Router with knxd" hab ich nicht gemacht.
IOBroker erreiche ich auch. Setzte mal die Homematic wieder in gang und warte auf die nächsten schritte.
Danke
MFG Tom
-
Das ist doch mal super!
Der nächste Schritt ist:
Du öffnest deine ETS Software und exportierst die Gruppenadressen.
Anschließend schaust du dir an welche dpts die Ga´s benötigen und ob die Ga´s lesend, schreibend oder beides sind.
Das musst du dann in das xml einpflegen.
Was hast du denn an knx geräten?
Hier mal ein auszug aus meinem xml:
<grouprange name="messen" rangestart="2560" rangeend="2815" dpt="9.021" access="r"><groupaddress name="A1 - A (WZ - LSR 1)" address="1/2/1"><groupaddress name="A1 - B (WZ - LSR 2)" address="1/2/2"><groupaddress name="A1 - C (WZ - SD 3)" address="1/2/3"><groupaddress name="A1 - D (WZ - SD 4)" address="1/2/4"><groupaddress name="A1 - E (WZ - SD 5)" address="1/2/5"><groupaddress name="A1 - F (WZ - SD 6)" address="1/2/6"><groupaddress name="A1 - G (SZ - LSR)" address="1/2/7"><groupaddress name="A1 - H (SZ - NTL L)" address="1/2/8"></groupaddress></groupaddress></groupaddress></groupaddress></groupaddress></groupaddress></groupaddress></groupaddress></grouprange>
Wie du siehst habe ich in das Feld der Mittelgruppe "messen" die Attribute: 'dpt="9.021" access="r"' eingepflegt. Das bedeutet soviel wie:
Interpretiere die eingehenden Werte als "float" und setze die Unit auf "mA". Ausserdem sind die werte nur lesend.
Da es sich bei diesen ga´s um die Strommessung meiner Schalaktoren handelt passt das auch so.
Sag bescheid, wenn du soweit bist bzw. Schwierigkeiten hast.
Kurze Erklärung, warum dies nötig ist:
KNX überträgt, ich glaube immer entweder 1 oder 2 oder 4 oder 16 bytes auf einmal. (Glaube ich, ist aber auch nicht wichtig.)
Der Punkt ist: Es werden immer nur Bytes übertragen, keine Information was diese Bytes überhaubt darstellen.
Es gibt auch keine "introspection" oder der gleichen. Die Busteilnehmer müssen die verwendeten Datentypen einfach kennen.
Man kann zwar anhand der größe des Payloads bestimmte Rückschlüsse auf die verwendeten Datentypen tätigen, dies ist jedoch nicht genau.
Z.B.: kann ein 1byte wert folgendes sein: boolean (die restlichen 7 bits sind dann einfach 0), unsigned int (0 - 255) oder signed int (-128 - 127) und viele mehr.
Damit kann man zwar arbeiten, ist aber total unkomforatble. (iobroker.knx arbeitet so. zumindest die 0.0.1 die ich jahrelang getestet habe).
Durch das Einpflegen der DPTs in den Ga´s bzw. deren Mittelgruppen kann man in iobroker die states vernüftig setzen. (min- max- unit- role usw.)
!!!! Wichtige Info:
Wenn du nun feststellst, dass dein ETS Software nicht mehr mit dem BUS sprechen will, dann deaktiviere kurz eibd. Eibd sowie ETS grabben sich das knx/ip Interface exclusiv. (Zumindest bei mir…)
Gruß
Martin
-
Hi!
Gut werde mich mal dahinter klemmen.
Als KNX hab ich nicht viel
4 Universal Schlataktoren
6 Binäreingenge
1 Wetterstation
1 Schalter + Erweiterung
1 Bewegungsmelder
1 IP Interface
MFG
-
Keine Ahnung was so eine Wetterstation liefert. Das könnte spannend werden.
Folgende Vermutung:
Regen: 9.026
Temp: 9.001
Windgesch: 9.005
Licht: 9.004
Alles natürlich readonly. (hoffentlich)
Die restlichen Sachen sind alle: 1.001 (rw) bzw. (r) bei den binaereingaengen.
Viel Erfolg
-
Melde gehorsamst…
Auftrag ausgeführt, habe die XML nach deiner Vorlage Erweitert.
mal schaun obs so stimmt
-
Na prima! Das läuft ja wie am Schnürchen….
Ich gehe mal davon aus, dass du iobroker unter /opt/iobroker installiert hast.
Nun lädst du dir: https://github.com/ruhigundrelaxed/ioBr ... master.zip das hier runter.
dann entpackst du es. (unzip master.zip) (evt. musst du unzip installieren: apt-get install unzip)
du erhälst einen Ordner, der "ioBroker.eibd-master" heist. Den kopierst du nach: "/opt/iobroker/node_module/iobroker.eibd"
Also: ("cp ioBroker.eibd-master/ /opt/iobroker/node_modules/iobroker.eibd -r")
Dannach wechselst du in dieses Verzeichnis:
Also: ("cd /opt/iobroker/node_modules/iobroker.eibd") und installierst die Abhängigkeiten: ("npm install")
Hier könnte es zu Fehlern kommen, die ich wissen muss.
Dannach kopierst du deine ga Datei nach: /opt/iobroker/node_module/iobroker.eibd/sh.xml
Also: (cp mein_ga_dateiname.xml /opt/iobroker/node_module/iobroker.eibd/sh.xml)
Dann iobroker neu starten.
cd /opt/iobroker
iobroker restart
Anschließend sollter der eibd Adapter unter Adapter auftauchen sodass du eine instanz wie gewohnt mit + erstellen kannst.
Unter Instanzen den Adapter aktivieren: Fertig.
-
Hi!!
Also hab alles nach deiner Anleitung durchgeführt!
Hier mal was er mir dann am schluss alles geschrieben hat:
root@raspberrypi:/opt/iobroker/node_modules/ioBroker.eibd# npm install npm ERR! install Couldn't read dependencies npm ERR! Linux 4.4.13-v7+ npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" npm ERR! node v4.5.0 npm ERR! npm v2.15.9 npm ERR! file /opt/iobroker/node_modules/ioBroker.eibd/package.json npm ERR! code EJSONPARSE npm ERR! Failed to parse json npm ERR! Unexpected token 'a' at 5:4 npm ERR! "author": "ruhigundrelaxed<martin@qvadrat.de>", npm ERR! ^ npm ERR! File: /opt/iobroker/node_modules/ioBroker.eibd/package.json npm ERR! Failed to parse package.json data. npm ERR! package.json must be actual JSON, not just JavaScript. npm ERR! npm ERR! This is not a bug in npm. npm ERR! Tell the package author to fix their package.json file. JSON.parse npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/node_modules/ioBroker.eibd/npm-debug.log root@raspberrypi:/opt/iobroker/node_modules/ioBroker.eibd# npm install npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue > cson@1.6.2 preinstall /opt/iobroker/node_modules/ioBroker.eibd/node_modules/grunt-replace/node_modules/applause/node_modules/cson > node ./cyclic.js npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0\. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree. npm WARN deprecated minimatch@1.0.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated deflate-crc32-stream@0.1.2: module has been merged into crc32-stream \ > typechecker@2.0.8 preinstall /opt/iobroker/node_modules/ioBroker.eibd/node_modules/grunt-replace/node_modules/applause/node_modules/cson/node_modules/extract-opts/node_modules/typechecker > node ./cyclic.js > js2coffee@0.3.5 preinstall /opt/iobroker/node_modules/ioBroker.eibd/node_modules/grunt-replace/node_modules/applause/node_modules/cson/node_modules/js2coffee > node ./cyclic.js npm WARN deprecated lodash@2.1.0: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0. npm WARN deprecated minimatch@0.4.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN engine xmlbuilder@2.3.0: wanted: {"node":"0.8.x || 0.10.x || 0.11.x"} (current: {"node":"4.5.0","npm":"2.15.9"}) fs@0.0.2 node_modules/fs grunt-contrib-copy@0.5.0 node_modules/grunt-contrib-copy grunt-exec@0.4.7 node_modules/grunt-exec traverse@0.6.6 node_modules/traverse eibd@0.3.5 node_modules/eibd grunt-contrib-clean@0.5.0 node_modules/grunt-contrib-clean └── rimraf@2.2.8 grunt-http@1.4.2 node_modules/grunt-http ├── tunnel-agent@0.4.3 ├── aws-sign2@0.5.0 ├── oauth-sign@0.4.0 ├── async@0.9.2 ├── tough-cookie@2.3.1 ├── http-signature@0.10.1 (assert-plus@0.1.5, ctype@0.5.3, asn1@0.1.11) ├── form-data@0.1.4 (mime@1.2.11, combined-stream@0.0.7) ├── hawk@2.3.1 (cryptiles@2.0.5, boom@2.10.1, sntp@1.0.9, hoek@2.16.3) └── request@2.47.0 (forever-agent@0.5.2, caseless@0.6.0, stringstream@0.0.5, json-stringify-safe@5.0.1, mime-types@1.0.2, node-uuid@1.4.7, qs@2.3.3, combined-stream@0.0.7, bl@0.9.5, hawk@1.1.1) grunt@0.4.5 node_modules/grunt ├── eventemitter2@0.4.14 ├── dateformat@1.0.2-1.2.3 ├── which@1.0.9 ├── async@0.1.22 ├── getobject@0.1.0 ├── colors@0.6.2 ├── lodash@0.9.2 ├── hooker@0.2.3 ├── rimraf@2.2.8 ├── grunt-legacy-util@0.2.0 ├── exit@0.1.2 ├── nopt@1.0.10 (abbrev@1.0.9) ├── coffee-script@1.3.3 ├── iconv-lite@0.2.11 ├── underscore.string@2.2.1 ├── minimatch@0.2.14 (sigmund@1.0.1, lru-cache@2.7.3) ├── glob@3.1.21 (inherits@1.0.2, graceful-fs@1.2.3) ├── grunt-legacy-log@0.1.3 (grunt-legacy-log-utils@0.1.1, lodash@2.4.2, underscore.string@2.3.3) ├── findup-sync@0.1.3 (lodash@2.4.2, glob@3.2.11) └── js-yaml@2.0.5 (esprima@1.0.4, argparse@0.1.16) grunt-replace@0.7.9 node_modules/grunt-replace ├── chalk@0.4.0 (ansi-styles@1.0.0, has-color@0.1.7, strip-ansi@0.1.1) └── applause@0.3.3 (lodash@2.4.2, js-yaml@3.6.1, cson@1.6.2) grunt-contrib-compress@0.8.0 node_modules/grunt-contrib-compress ├── prettysize@0.0.3 └── archiver@0.8.1 (buffer-crc32@0.2.5, lazystream@0.1.0, lodash@2.4.2, readable-stream@1.0.34, zip-stream@0.3.7, file-utils@0.1.5) grunt-contrib-jshint@0.10.0 node_modules/grunt-contrib-jshint ├── hooker@0.2.3 └── jshint@2.5.11 (underscore@1.6.0, strip-json-comments@1.0.4, exit@0.1.2, minimatch@1.0.0, console-browserify@1.1.0, shelljs@0.3.0, cli@0.6.6, htmlparser2@3.8.3) grunt-jscs@0.6.2 node_modules/grunt-jscs ├── vow@0.4.12 ├── hooker@0.2.3 ├── lodash@2.4.2 └── jscs@1.5.9 (commander@2.3.0, supports-color@0.2.0, strip-json-comments@0.1.3, colors@0.6.2, esprima@1.2.5, minimatch@0.4.0, vow-fs@0.3.6, glob@4.0.6, xmlbuilder@2.3.0) xml2js@0.4.17 node_modules/xml2js ├── sax@1.2.1 └── xmlbuilder@4.2.1 (lodash@4.15.0)</martin@qvadrat.de>
Den einen fehler im package.json hab ich selber behoben, da fehlt am ende der Zeile 5 ein Beistrich.
Danach alles weitere ausgeführt.
Nach dem neustart hab ich jetzt einen adapter der da heißt: "IO Broker Motion Adapter" ohne icon im Reiter Allgemein.
Stimmt das soweit?
MFG
-
Nachtrag…
Wenn ich jetzt den Adapter installieren will bekomme ich die Fehlermeldung:
$ ./iobroker add eibd ERROR: host.raspberrypi Unknown packetName eibd ERROR: process exited with code 5
So jetzt hab ichs…
und warte auf deine Anwort
MFG
-
Hoppla, da scheint was schief gelaufen zu sein. Motion ist ein anderer Adapter, den ich gebaut habe. Gib mir ne Sekunde, ich schau mal nach.
-
Ok, ich hab da was korrigiert. Ich hoffe das war der Fehler.
https://github.com/ruhigundrelaxed/ioBroker.eibd
Dort bitte io-package.json runterladen und ersetzen…
-
Neu Installieren auch?
-
Wenn ich von dem adapter eine Instanz erstellen will bekomme ich die fehlermeldung:
$ ./iobroker add eibd ERROR: host.raspberrypi Unknown packetName eibd ERROR: process exited with code 5
-
Hmm nö. Also, soltest du eine Motion Instanz haben, kannst du die aus iobroker entfernen. Nur die besagte Datei (io-package.json) tauschen, iobroker neu starten, dann solltest du unter adapter den eibd finden….
Das fehlende "," habe ich in die package.json eingepflegt. Danke dafür...
-
Pekommst du o.g. Fehlermeldung noch nach tauschen von io-package.json?
Bei mir sieht das so aus:
root@zuhause:/opt/iobroker# iobroker add eibd host.zuhause create instance eibd host.zuhause object system.adapter.eibd.upload created host.zuhause object system.adapter.eibd.1.uptime created host.zuhause object system.adapter.eibd.1.memRss created host.zuhause object system.adapter.eibd.1.memHeapTotal created host.zuhause object system.adapter.eibd.1.memHeapUsed created host.zuhause object system.adapter.eibd.1.connected created host.zuhause object system.adapter.eibd.1.alive created host.zuhause object system.adapter.eibd.1 created