NEWS
[gelöst] NPM modul integrieren mit Javascript adapter
-
Hi,
Kurze hilfe gefragt, ich moechte eine sonne anlage auslesen mit VBUS dazu ist ein NPM pakket anwesend (resol-vbus).
Laut javascript adapter musst npm install resol-vus ausgefuehrt werden in
iobroker/adapter/javascript
benutzter javascript code:
//var vbus = require('resol-vbus'); var connection = new vbus.TcpConnection({ host: '192.168.1.19', viaTag: 'gerritvrij@gmail.com', // only necessary if connected using VBus.net password: '1Delta34', channel: 1, // only necessary if connected to a DL3 }); var connectPromise = connection.connect(); connectPromise.then(function() { console.log('Connected!'); }, function() { console.log('Connection failed'); });
1 - Dieser ordner gibt es bei mir nicht ? (/opt/iobroker/node_modules/iobroker.javascript wohl)
2 - installieren ich per NPM im root von iobroker oder de pfad oben kommt beim starten vom dazugehoerigen script "script.js.common.ResoBus_Test: ReferenceError: vbus is not defined"
da er vbus is not defined sagt gehe ich mal davon aus das dieses NPM pakket nicht richtig installiert ist ?
Habe probier resol-vbus im javascript adapter ein zu tragen und im script laut beschreibung, leider beides ohne erfolg
Help ?
~Dutch
-
Das NPM-Modul resol-vbus muss in der Konfiguration der Javascript-Instanz unter "Zusätzliche NPM-Module" eingetragen werden. Es wird dann automatisch installiert.
-
Das NPM-Modul resol-vbus muss in der Konfiguration der Javascript-Instanz unter "Zusätzliche NPM-Module" eingetragen werden. Es wird dann automatisch installiert. `
das habe ich gemacht (mehr aus zufall entdeckt 8-) :lol: ) leider dan immernoch selber fehler.
Also:
-
resol-vbus in javascript adapter einggetragen
-
start des adapters installiert auch das modul (sehe ich im log)
-
danach immernoch gleicher fehler "ReferenceError: vbus is not defined"
log der installation/fehler:
! ```
2017-06-06 18:38:36.657 - [31merror[39m: javascript.0 script.js.common.ResoBus_Test: ReferenceError: vbus is not defined at script.js.common.ResoBus_Test:2:22 2017-06-06 18:39:07.194 - [32minfo[39m: javascript.0 Stop script script.js.common.ResoBus_Test 2017-06-06 18:39:07.217 - [32minfo[39m: javascript.0 Start javascript script.js.common.ResoBus_Test 2017-06-06 18:39:16.771 - [32minfo[39m: javascript.0 script.js.common.ResoBus_Test: registered 0 subscriptions and 0 schedules 2017-06-06 18:39:16.868 - [32minfo[39m: javascript.0 script.js.common.ResoBus_Test: Connection failed 2017-06-06 18:39:30.826 - [32minfo[39m: javascript.0 Stop script script.js.common.ResoBus_Test 2017-06-06 18:39:32.005 - [32minfo[39m: javascript.0 Stop script script.js.common.ResoBus_Test 2017-06-06 18:39:40.935 - [32minfo[39m: host.iObroker_pi_Test object change system.adapter.javascript.0 2017-06-06 18:39:40.937 - [32minfo[39m: host.iObroker_pi_Test stopInstance system.adapter.javascript.0 2017-06-06 18:39:40.938 - [32minfo[39m: host.iObroker_pi_Test stopInstance system.adapter.javascript.0 killing pid 3599 2017-06-06 18:39:40.969 - [32minfo[39m: javascript.0 terminating 2017-06-06 18:39:41.046 - [32minfo[39m: host.iObroker_pi_Test instance system.adapter.javascript.0 terminated with code 0 (OK) 2017-06-06 18:39:43.478 - [32minfo[39m: host.iObroker_pi_Test instance system.adapter.javascript.0 started with pid 3680 2017-06-06 18:39:48.260 - [32minfo[39m: javascript.0 starting. Version 3.3.8 in /opt/iobroker/node_modules/iobroker.javascript, node: v4.2.1 2017-06-06 18:39:48.300 - [32minfo[39m: javascript.0 requesting all states 2017-06-06 18:39:48.307 - [32minfo[39m: javascript.0 requesting all objects 2017-06-06 18:39:48.896 - [32minfo[39m: javascript.0 received all states 2017-06-06 18:39:49.233 - [32minfo[39m: javascript.0 received all objects 2017-06-06 18:39:49.288 - [32minfo[39m: javascript.0 Start javascript script.js.common.ResoBus_Test 2017-06-06 18:39:49.623 - [31merror[39m: javascript.0 script.js.common.ResoBus_Test: ReferenceError: vbus is not defined at script.js.common.ResoBus_Test:2:22 2017-06-06 18:39:52.761 - [32minfo[39m: javascript.0 Stop script script.js.common.ResoBus_Test 2017-06-06 18:40:22.319 - [32minfo[39m: host.iObroker_pi_Test object change system.adapter.javascript.0 2017-06-06 18:40:22.321 - [32minfo[39m: host.iObroker_pi_Test stopInstance system.adapter.javascript.0 2017-06-06 18:40:22.322 - [32minfo[39m: host.iObroker_pi_Test stopInstance system.adapter.javascript.0 killing pid 3680 2017-06-06 18:40:22.351 - [32minfo[39m: javascript.0 terminating 2017-06-06 18:40:22.406 - [32minfo[39m: host.iObroker_pi_Test instance system.adapter.javascript.0 terminated with code 0 (OK) 2017-06-06 18:45:49.116 - [32minfo[39m: host.iObroker_pi_Test object change system.adapter.javascript.0 2017-06-06 18:45:49.144 - [32minfo[39m: host.iObroker_pi_Test instance system.adapter.javascript.0 started with pid 3915 2017-06-06 18:45:54.117 - [32minfo[39m: javascript.0 starting. Version 3.3.8 in /opt/iobroker/node_modules/iobroker.javascript, node: v4.2.1 2017-06-06 18:45:54.160 - [32minfo[39m: javascript.0 npm install resol-vbus --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call) 2017-06-06 18:46:23.737 - [32minfo[39m: javascript.0 serialport@4.0.7 install /opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport node-pre-gyp install --fallback-to-build ! 2017-06-06 18:46:30.464 - [31merror[39m: javascript.0 node-pre-gyp 2017-06-06 18:46:30.466 - [31merror[39m: javascript.0 ERR! Tried to download(404): https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v46-linux-arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for serialport@4.0.7 and node@4.2.1 (node-v46 ABI) (falling back to source compile with node-gyp) ! 2017-06-06 18:46:35.157 - [31merror[39m: javascript.0 gyp 2017-06-06 18:46:35.181 - [31merror[39m: javascript.0 WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.2.1" gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/.node-gyp" ! 2017-06-06 18:46:42.897 - [32minfo[39m: javascript.0 make: Entering directory '/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build' make: Leaving directory '/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build' ! 2017-06-06 18:46:42.899 - [31merror[39m: javascript.0 make: *** No rule to make target '../.node-gyp/4.2.1/include/node/common.gypi', needed by 'Makefile'. Stop. ! 2017-06-06 18:46:42.926 - [31merror[39m: javascript.0 gyp 2017-06-06 18:46:42.937 - [31merror[39m: javascript.0 ERR! build error ! 2017-06-06 18:46:42.956 - [31merror[39m: javascript.0 gyp 2017-06-06 18:46:42.957 - [31merror[39m: javascript.0 ERR! stack Error:
makefailed with exit code: 2 ! 2017-06-06 18:46:42.959 - [31merror[39m: javascript.0 gyp 2017-06-06 18:46:42.961 - [31merror[39m: javascript.0 ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) ! 2017-06-06 18:46:42.966 - [31merror[39m: javascript.0 gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp 2017-06-06 18:46:42.968 - [31merror[39m: javascript.0 ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) ! 2017-06-06 18:46:42.971 - [31merror[39m: javascript.0 gyp ERR! System Linux 4.9.24-v7+ ! 2017-06-06 18:46:42.990 - [31merror[39m: javascript.0 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release/serialport.node" "--module_name=serialport" "--module_path=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release" gyp ERR! cwd /opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport gyp ERR! node -v v4.2.1 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok ! 2017-06-06 18:46:43.002 - [31merror[39m: javascript.0 node-pre-gyp ERR! build error ! 2017-06-06 18:46:43.025 - [31merror[39m: javascript.0 node-pre-gyp 2017-06-06 18:46:43.028 - [31merror[39m: javascript.0 ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release/serialport.node --module_name=serialport --module_path=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release' (1) node-pre-gyp ERR! stack at ChildProcess. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/node_modules/node-pre-gyp/lib/util/compile.js:83:29) node-pre-gyp ERR! 2017-06-06 18:46:43.029 - [31merror[39m: javascript.0 stack at emitTwo (events.js:87:13) node-pre-gyp ERR! stack at ChildProcess.emit (events.js:172:7) node-pre-gyp 2017-06-06 18:46:43.031 - [31merror[39m: javascript.0 ERR! stack at maybeClose (internal/child_process.js:818:16) node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) ! 2017-06-06 18:46:43.033 - [31merror[39m: javascript.0 node-pre-gyp ERR! System Linux 4.9.24-v7+ ! 2017-06-06 18:46:43.046 - [31merror[39m: javascript.0 node-pre-gyp ERR! command "/usr/local/bin/node" "/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" node-pre-gyp ERR! cwd /opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport node-pre-gyp ERR! node -v v4.2.1 node-pre-gyp ERR! node-pre-gyp -v v0.6.32 node-pre-gyp ERR! not ok ! 2017-06-06 18:46:43.060 - [32minfo[39m: javascript.0 Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release/serialport.node --module_name=serialport --module_path=/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release' (1) ! 2017-06-06 18:46:43.105 - [31merror[39m: javascript.0 npm 2017-06-06 18:46:43.121 - [31merror[39m: javascript.0 2017-06-06 18:46:43.128 - [31merror[39m: javascript.0 WARN optional dep failed, continuing serialport@4.0.7 ! 2017-06-06 18:46:46.792 - [32minfo[39m: javascript.0 resol-vbus@0.16.0 iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus ├── sprintf@0.1.5 ├── buffer-more-ints@0.0.2 ├── q@1.5.0 ├── lodash@2.4.1 ├── moment-timezone@0.5.13 ├── numeral@1.5.6 └── moment@2.18.1 ! 2017-06-06 18:46:51.301 - [32minfo[39m: javascript.0 requesting all states 2017-06-06 18:46:51.310 - [32minfo[39m: javascript.0 requesting all objects 2017-06-06 18:46:51.860 - [32minfo[39m: javascript.0 received all states 2017-06-06 18:46:52.203 - [32minfo[39m: javascript.0 received all objects 2017-06-06 18:46:52.301 - [32minfo[39m: javascript.0 Start javascript script.js.common.ResoBus_Test[/code]</anonymous>
-
-
update:
erster fehler kam von installation auf rapsberry PI, auf meinem prod host gleiches probleme (aber keine installations fehler. Log:
! ````
javascript.1 2017-06-06 21:50:49.536 info Stop script script.js.Testing.vbus
javascript.1 2017-06-06 21:49:28.900 error at script.js.Testing.vbus:2:22
javascript.1 2017-06-06 21:49:28.900 error script.js.Testing.vbus: ReferenceError: vbus is not defined
javascript.1 2017-06-06 21:49:28.885 info Start javascript script.js.Testing.vbus
javascript.1 2017-06-06 21:49:14.756 info Stop script script.js.Testing.vbus
javascript.0 2017-06-06 21:49:14.745 info Stop script script.js.Testing.vbus
cloud.0 2017-06-06 21:49:09.652 warn State openhab.0.items.Doorbell_RingRing is invalid.
cloud.0 2017-06-06 21:49:09.652 warn State openhab.0.items.Doorbell_DingDong is invalid.
cloud.0 2017-06-06 21:49:09.652 warn State openhab.0.items.Doorbell is invalid.
cloud.0 2017-06-06 21:49:09.651 warn State openhab.0.items.Doorbel_Jazz is invalid.
cloud.0 2017-06-06 21:49:09.651 warn State openhab.0.items.Doorbel_Church is invalid.
cloud.0 2017-06-06 21:49:09.651 warn State openhab.0.items.Doorbel_Bird is invalid.
javascript.0 2017-06-06 21:49:08.343 info Stop script script.js.Testing.Script4
cloud.0 2017-06-06 21:49:01.587 warn State openhab.0.items.Doorbell_RingRing is invalid.
cloud.0 2017-06-06 21:49:01.587 warn State openhab.0.items.Doorbell_DingDong is invalid.
cloud.0 2017-06-06 21:49:01.587 warn State openhab.0.items.Doorbell is invalid.
cloud.0 2017-06-06 21:49:01.586 warn State openhab.0.items.Doorbel_Jazz is invalid.
cloud.0 2017-06-06 21:49:01.583 warn State openhab.0.items.Doorbel_Church is invalid.
cloud.0 2017-06-06 21:49:01.568 warn State openhab.0.items.Doorbel_Bird is invalid.
javascript.1 2017-06-06 21:48:28.129 info script.js.Testing.Script2: test_6
javascript.1 2017-06-06 21:48:26.128 info script.js.Testing.Script2: test_5
javascript.1 2017-06-06 21:48:25.124 info script.js.Testing.Script2: test_4
javascript.1 2017-06-06 21:48:23.117 info script.js.Testing.Script2: test_3
javascript.1 2017-06-06 21:48:21.115 info script.js.Testing.Script2: test_2
javascript.1 2017-06-06 21:48:20.119 info script.js.Testing.CountDown: registered 4 subscriptions and 0 schedules
javascript.1 2017-06-06 21:48:20.110 info Start javascript script.js.Testing.CountDown
javascript.1 2017-06-06 21:48:20.109 info script.js.Testing.Script2: registered 0 subscriptions and 0 schedules
javascript.1 2017-06-06 21:48:20.108 info script.js.Testing.Script2: test_1
javascript.1 2017-06-06 21:48:20.095 info Start javascript script.js.Testing.Script2
javascript.1 2017-06-06 21:48:19.922 info received all objects
javascript.1 2017-06-06 21:48:19.525 info received all states
javascript.1 2017-06-06 21:48:18.861 info requesting all objects
javascript.1 2017-06-06 21:48:18.855 info requesting all states
javascript.1 2017-06-06 21:48:18.824 info └── serialport@4.0.7 (bindings@1.2.1, commander@2.9.0, lie@3.1.1, debug@2.6.8, nan@2.6.2, object.assign@4.0.4)
javascript.1 2017-06-06 21:48:18.824 info ├── moment@2.18.1
javascript.1 2017-06-06 21:48:18.824 info ├── numeral@1.5.6
javascript.1 2017-06-06 21:48:18.824 info ├── moment-timezone@0.5.13
javascript.1 2017-06-06 21:48:18.824 info ├── lodash@2.4.1
javascript.1 2017-06-06 21:48:18.824 info ├── q@1.5.0
javascript.1 2017-06-06 21:48:18.824 info ├── sprintf@0.1.5
javascript.1 2017-06-06 21:48:18.824 info ├── buffer-more-ints@0.0.2
javascript.1 2017-06-06 21:48:18.824 info resol-vbus@0.16.0 opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus
javascript.1 2017-06-06 21:48:17.719 info [serialport] Success: "/opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport/build/Release/serialport.node" is installed via remote
javascript.1 2017-06-06 21:48:14.086 info > node-pre-gyp install --fallback-to-build
javascript.1 2017-06-06 21:48:14.086 info > serialport@4.0.7 install /opt/iobroker/node_modules/iobroker.javascript/node_modules/resol-vbus/node_modules/serialport
javascript.1 2017-06-06 21:48:14.086 info
javascript.1 2017-06-06 21:48:03.595 info npm install resol-vbus --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
javascript.1 2017-06-06 21:48:03.585 info starting. Version 3.3.8 in /opt/iobroker/node_modules/iobroker.javascript, node: v4.8.3
host.HomeControl 2017-06-06 21:48:02.241 info instance system.adapter.javascript.1 started with pid 97366
host.HomeControl 2017-06-06 21:47:59.281 info instance system.adapter.javascript.1 terminated with code 0 (OK)
javascript.1 2017-06-06 21:47:59.234 info terminating -
Den Kommentar hast Du wieder entfernt ?
//var vbus = require('resol-vbus');
–>
var vbus = require('resol-vbus');
-
Den Kommentar hast Du wieder entfernt ?
//var vbus = require('resol-vbus');
–>
var vbus = require('resol-vbus'); ```` `
jup, der sollte aber auch uerfluessig sein da das module bereits geladen ist. Wen ich den comment entferne she ich das kein wert vorhanden ist:
var vbus = require('resol-vbus'); log (vbus)
er gibt im log:
22:26:45.734 [info] javascript.1 Stop script script.js.Testing.vbus 22:26:45.764 [info] javascript.0 Start javascript script.js.Testing.vbus 22:26:45.768 [error] javascript.0 script.js.Testing.vbus: ReferenceError: vbus is not defined at script.js.Testing.vbus:2:22 22:27:09.998 [info] javascript.1 Stop script script.js.Testing.vbus 22:27:10.015 [info] javascript.0 Stop script script.js.Testing.vbus 22:27:12.078 [info] javascript.0 Start javascript script.js.Testing.vbus 22:27:12.078 [info] javascript.0 script.js.Testing.vbus: [object Object] 22:27:12.078 [info] javascript.0 script.js.Testing.vbus: registered 0 subscriptions and 0 schedules 22:27:15.050 [info] javascript.0 script.js.Testing.vbus: Connection failed 22:27:31.900 [info] javascript.0 Stop script script.js.Testing.vbus
-
Jedes NPM-Modul muss im Skript einer Variablen (oder Konstanten) per require('Modul-Name') zugeordnet werden, damit auf die Funktionen / Eigenschaften des Moduls zugegriffen werden kann. Wird das gleiche Modul in einem weiteren Skript benötigt, muss es dort wieder so erfolgen.
Es ist ein Objekt vorhanden, das im Log immer so dargestellt wird:
22:27:12.078 [info] javascript.0 script.js.Testing.vbus: [object Object]
-
Danke @Paul53, morgen weiter das wird wohl das Problem sein.
Kann man den Inhalt dieses objects auf wiedergeben lassen sodass man den Inhalt sieht?
~Dutch
–-----------------------
Send from mobile device
-
du kannst per JSON.stringify(objekt) den Inhalt eines Objekts auf der Konsole ausgeben… wird aber etwas unübersichtlich bei einem NPM-Modul. Dann lieber die Dokumentation bemühen.
Aber eigentlich sollte es wie in deinem ersten Post gehen, sofern du die erste Zeile nicht auskommentierst.
Wie Paul53 schon geschrieben hat, require brauchst du trotz Eintrag im Adapter. Woher soll JS sonst wissen, dass du auf das Modul über die Variable "vbus" zugreifen willst?