NEWS
[GELÖST] Amazon Dash Instanz Startet nicht ich komme nicht weiter
-
Moin zusammen ich komme mit dem Amazon Dash Instanz nicht mehr weiter. Auf einer alten Iobroker installation läuft es wie ein Schweizer Uhrwerk. Jetzt wollte ich Iobroker mal komplett neu aufsetzten da durch die anfänglichen testungen einiges im alten System zusammen geschustert ist .
Ich bekomme beim Starten folgende Meldungen aber ich werde nicht wirklich schlau dadraus
! host.IoBrokerServerRP3Plus 2019-01-28 17:22:22.271 error instance system.adapter.amazon-dash.0 terminated with code 0 (OK)
! Caught 2019-01-28 17:22:22.271 error by controller[0]: at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:787:25)
! Caught 2019-01-28 17:22:22.271 error by controller[0]: at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:748:13)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:788:29
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at initAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4990:18)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at Adapter.emit (events.js:208:7)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at emitNone (events.js:106:13)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:43:5)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at main (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:78:29)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at Object.exports.createSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:123:12)
! Caught 2019-01-28 17:22:22.270 error by controller[0]: at new PcapSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:49:39)
! Caught 2019-01-28 17:22:22.269 error by controller[0]: Error: socket: Operation not permitted
! amazon-dash.0 2019-01-28 17:22:22.253 info terminating
! amazon-dash.0 2019-01-28 17:22:22.215 info cleaned everything up…
! amazon-dash.0 2019-01-28 17:22:22.213 error at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:787:25)
! amazon-dash.0 2019-01-28 17:22:22.213 error at createInstancesObjects (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:748:13)
! amazon-dash.0 2019-01-28 17:22:22.213 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:788:29
! amazon-dash.0 2019-01-28 17:22:22.213 error at initAdapter (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4990:18)
! amazon-dash.0 2019-01-28 17:22:22.213 error at Adapter.emit (events.js:208:7)
! amazon-dash.0 2019-01-28 17:22:22.213 error at emitNone (events.js:106:13)
! amazon-dash.0 2019-01-28 17:22:22.213 error at Adapter. <anonymous>(/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:43:5)
! amazon-dash.0 2019-01-28 17:22:22.213 error at main (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:78:29)
! amazon-dash.0 2019-01-28 17:22:22.213 error at Object.exports.createSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:123:12)
! amazon-dash.0 2019-01-28 17:22:22.213 error at new PcapSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:49:39)
! amazon-dash.0 2019-01-28 17:22:22.213 error Error: socket: Operation not permitted
! amazon-dash.0 2019-01-28 17:22:22.213 error uncaught exception: socket: Operation not permitted
! amazon-dash.0 2019-01-28 17:22:22.201 info starting pcap session on default interface
! amazon-dash.0 2019-01-28 17:22:22.189 info starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.amazon-dash, node: v8.15.0
! host.IoBrokerServerRP3Plus 2019-01-28 17:22:21.016 info instance system.adapter.amazon-dash.0 started with pid 2436
! host.IoBrokerServerRP3Plus 2019-01-28 17:21:51.000 info Restart adapter system.adapter.amazon-dash.0 because enabled
! host.IoBrokerServerRP3Plus 2019-01-28 17:21:51.000 error instance system.adapter.amazon-dash.0 terminated with code 0 (OK)</anonymous></anonymous></anonymous></anonymous>Es ist als User admin installiert worden Node-v und Node JS sind 8.15.0 und die npm ist 6.4.1
apt-get install libpcap-dev ist auch installiert. das einzige ist das irgendwas mit de, js adapter nicht stimmt :?: :?: :?: :?:
ich habe sogar schon die ordner unter iobroker mit chmod auf 777 gesetzt testweise. Trotzdem kein erfolg
-
So ich habe es nach sehr langer Suche es endlich geschafft das er läuft. Ich habe folgendes gemacht.
Mal schauen ob ich es noch zusammenbekomme
als erstes
sudo apt-get install libpcap-dev
sudo apt-get install git
npm install pcap
npm install socketwatcher
anschließen habe ich das ausgeführt
http://www.iobroker.net/docu/?page_id=5510&lang=de
Linux:
sudo apt-get update
sudo apt-get install build-essential git
npm install –global --production windows-build-tools
Auch vorsichtshalber konnte man noch node-gyp installieren. Normalerweise hat man schon die richtige Version, aber falls node.js Version upgedatet wurde, kann es sein, dass node-gyp nicht passt.
npm install node-gyp -g
Und wenn immer noch nicht geht, dann fehlen vielleicht die Rechte für verschiedene Verzeichnisse.
An manchen Systemen muss man
chmod 777 /opt/iobroker
chmod 777 /opt/iobroker/* -R#
Danach habe ich diese Sache ausgeführt
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove && sudo apt-get autoclean
sudo apt-get remove libpcap0.8 -y
sudo apt-get install -y build-essential libpcap-dev git -y
sudo npm install node-gyp -g
Den Adapter über iobroker über das Plus installiert. Es ging ohne Fehler meldung von Staten nur wurde er nicht grün sonder haute diese Fehler meldung raus.
Dann habe ich das ausgeführt
Für unixartige Betriebssysteme stellt die Bibliothek „libpcap“ (packet capture library) Funktionen zur Verfügung, um den Datenverkehr, welcher über die Netzwerkschnittstellen läuft, mitzuschneiden und zu analysieren. Das JavaScript Modul „pcap“ stellt die entsprechenden Bindungen (engl. Bindings) für diese Bibliothek zur Verfügung. Diese können dann mit Node.js verwendet werden.
Problem
Diese Bibliothek wird gerne in Node.js Modulen, wie z. B. dem Amazon Dashbutton Adapter für ioBroker, verwendet.
Da die libpcap Bibliothek auf Funktionen des Betriebssystems zugreift, kann es zu folgender Fehlermeldung kommen, wenn der Code ausgeführt wird.
Error: socket: Operation not permitted
Der Benutzer, durch den der Code ausgeführt wurde, besitzt anscheinend nicht die notwendigen Rechte.
Am Beispiel des Amazon Dashbutton Adapters, würde dann folgende Fehlermeldung im Log auftauchen.
error at Adapter. (/opt/iobroker/node_modules/iobroker.amazon-dash/main.js:50:29)
error at Object.exports.createSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:123:12)
error at new PcapSession (/opt/iobroker/node_modules/iobroker.amazon-dash/node_modules/pcap/pcap.js:49:39)
error Error: socket: Operation not permitted
error uncaught exception: socket: Operation not permitted
Lösung
Um das Problem zu lösen, müssen die Dateisystem „Capabilities“ für das Programm „node“ angepasst werden. Dies kann durch das Kommandozeilen-Tool „setcap“ erreicht werden.
Hierzu muss folgender Befehl in der Kommandozeile ausgeführt werden.
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
Mit dem Tool „getcap“ kann geprüft werden, ob alles korrekt gesetzt wurde. Hierzu muss folgender Befehl in der Kommandozeile ausgeführt werden.
sudo getcap $(readlink -f $(which node))
Dies Ausgabe sollte dann z. B. so aussehen:
/usr/bin/nodejs = cap_net_admin,cap_net_raw+eip
Um zu prüfen, ob das pcap Module korrekt funktioniert, kann die im Module mitgelieferte Bespieldatei „network_grep.js“ über die Kommandozeile ausgeführt werden. Diese Datei befindet sich z. B. im Ordner „node_modules“ unter pcap/examples/network_grep.js
node /opt/iobroker/node_modules/pcap/examples/network_grep.js
Hier sollte dann folgender Fehler NICHT mehr auftreten:
/opt/iobroker/node_modules/pcap/pcap.js:49
this.link_type = this.session.open_live(this.device_name, this.filter, this.buffer_size, this.outfile, packet_ready, this.is_monitor);
Error: socket: Operation not permitted
at new PcapSession (/opt/iobroker/node_modules/pcap/pcap.js:49:39)
at Object.exports.createSession (/opt/iobroker/node_modules/pcap/pcap.js:123:12)
at Object. <anonymous>(/opt/iobroker/node_modules/pcap/examples/network_grep.js:2:25)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
at run (bootstrap_node.js:427:7)
dadurch lief mein Amazon Dash endlich vielleicht kann es ja einer gebrauchen. Es war ein ganzschönes Gewusel das ganze. Ist vielleicht nicht die schöne Art aber so lief es bei mir.</anonymous>
-
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
Danke danke!! Hatte schon einige Zeit daran rumgedoktort und heute einen neuen Anlauf gewagt. Dein Hinweis hat meine Dashbuttons endlich wieder zum Leben erweckt!
-
Nach langem suchen habe ich hier endlich die Lösung gefunden warum mein Dash Adapter nicht mehr gelaufen ist.
Um das Problem zu lösen, müssen die Dateisystem „Capabilities“ für das Programm „node“ angepasst werden. Dies kann durch das Kommandozeilen-Tool „setcap“ erreicht werden. Hierzu muss folgender Befehl in der Kommandozeile ausgeführt werden. sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which node))
Vielen Dank!!!