NEWS
Gelöst - Fehler-Problem bei SQL.history Adapter
-
Hast du NACH dem node Upgrade den sql Adapter nochmals installiert?
mysql node Modul hat Teile die Kompiliert werden müssen.
Am besten vorher in node_modules das Verteichnis iobroker.sql und auch mysql und so und dann neu installieren
-
ich habe den sql adapter des öfteren installiert und ausprobiert - jetzt auch mit löschen der verzeichnisse - so wie du empfohlen hast.
ich habe mal versucht verschiedene nodejs versionen zu testen. alle versionen 4.x, 6.x, 8.x alle haben den selben fehler im log (siehe oben). nach jeder node versionsänderung ich habe jedesmal einen reboot gemacht und den sql adapter neu installiert. es gibt nur einen für mich sichtbaren unterschied - die fehlermeldung beim verbindungstest in der adapterkonfig ist eine andere
bei node 4.8.2
TypeError: SQL[clients[msg.message.config.dbtype].name] is not a function
bei node 6.x und 8.x
TypeError: SQL[clients[msg.message.config.dbtype].name] is not a constructor
-
Node versionen wechseln ist nichts was man mal eben so machen sollte. Blöde Idee!!
Bei mir und in den automatischen Tests läufts mit Node 4,6,8 … Versuchs mal wirklich an der kommandozeile mit „npm i iobroker.sql“ und schick mal diese Ausgaben. Am besten vorher die genannten Verzeichnisse nochmal löschen inkl sqlite
-
blöde idee - ich habe das alles von dem forum hier - hier wird oft über die version von node und npm diskutiert.
aber ich gebe dir recht - ich hatte schon sio ein blödes gefühl bei der installation von node-red. dabei wurde die node version geändert - aber ich wollts mal ausprobieren.
back to problem:
die installationen und neustarts dauern ewig - der banana pro ist ziemlich am limit!
momentan: node 6.12.2 npm 3.10.10 - alle verzeichnisse gelöscht :
npm install iobroker.sql npm WARN deprecated node-uuid@1.4.8: Use uuid module instead > sqlite3@3.1.7 install /opt/iobroker/node_modules/sqlite3 > node-pre-gyp install --fallback-to-build node-pre-gyp ERR! Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.7/node-v48-linux-arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for sqlite3@3.1.7 and node@6.12.2 (node-v48 ABI) (falling back to source compile with node-gyp) make: Entering directory '/opt/iobroker/node_modules/sqlite3/build' ACTION deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep Release/obj/gen/sqlite-autoconf-3150000/sqlite3.c TOUCH Release/obj.target/deps/action_before_build.stamp CC(target) Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o cc: internal compiler error: Getötet (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <file: usr/share/doc/gcc-4.9/readme.bugs="">for instructions. deps/sqlite3.target.mk:124: recipe for target 'Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o' failed make: *** [Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o] Error 4 make: Leaving directory '/opt/iobroker/node_modules/sqlite3/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/opt/iobroker/node_modules/npm/node_modules/node-gyp/lib/build.js:285:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:219:12) gyp ERR! System Linux 3.4.108-bananian gyp ERR! command "/usr/local/bin/node" "/opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm" gyp ERR! cwd /opt/iobroker/node_modules/sqlite3 gyp ERR! node -v v6.12.2 gyp ERR! node-gyp -v v3.6.0 gyp ERR! not ok node-pre-gyp ERR! build error node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm' (1) node-pre-gyp ERR! stack at ChildProcess. <anonymous>(/opt/iobroker/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29) node-pre-gyp ERR! stack at emitTwo (events.js:106:13) node-pre-gyp ERR! stack at ChildProcess.emit (events.js:191:7) node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:920:16) node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5) node-pre-gyp ERR! System Linux 3.4.108-bananian node-pre-gyp ERR! command "/usr/local/bin/node" "/opt/iobroker/node_modules/sqlite3/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" node-pre-gyp ERR! cwd /opt/iobroker/node_modules/sqlite3 node-pre-gyp ERR! node -v v6.12.2 node-pre-gyp ERR! node-pre-gyp -v v0.6.31 node-pre-gyp ERR! not ok Failed to execute '/usr/local/bin/node /opt/iobroker/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/opt/iobroker/node_modules/sqlite3/lib/binding/node-v48-linux-arm' (1) iobroker@1.0.0 /opt/iobroker └─┬ iobroker.sql@1.5.8 ├─┬ mssql@3.3.0 │ ├── generic-pool@2.5.4 │ ├─┬ promise@7.3.1 │ │ └── asap@2.0.6 │ └─┬ tedious@1.14.0 │ ├─┬ babel-runtime@5.8.38 │ │ └── core-js@1.2.7 │ ├── big-number@0.3.1 │ ├── bl@1.2.1 │ ├─┬ readable-stream@2.3.3 │ │ ├── isarray@1.0.0 │ │ └── string_decoder@1.0.3 │ └── sprintf@0.1.5 ├─┬ mysql@2.15.0 │ ├── bignumber.js@4.0.4 │ ├─┬ readable-stream@2.3.3 │ │ ├── isarray@1.0.0 │ │ └── string_decoder@1.0.3 │ └── sqlstring@2.3.0 ├─┬ pg@6.4.2 │ ├── buffer-writer@1.0.1 │ ├── js-string-escape@1.0.1 │ ├── packet-reader@0.3.1 │ ├── pg-connection-string@0.1.3 │ ├─┬ pg-pool@1.8.0 │ │ └── generic-pool@2.4.3 │ ├─┬ pg-types@1.13.0 │ │ ├── pg-int8@1.0.1 │ │ ├── postgres-array@1.0.2 │ │ ├── postgres-bytea@1.0.0 │ │ ├── postgres-date@1.0.3 │ │ └── postgres-interval@1.1.1 │ ├─┬ pgpass@1.0.2 │ │ └── split@1.0.1 │ └── semver@4.3.2 └─┬ sql-client@0.7.0 ├── argf@0.0.1 ├─┬ inote-util@0.8.1 │ ├─┬ nconf@0.7.2 │ │ ├── async@0.9.2 │ │ ├── ini@1.3.5 │ │ └─┬ yargs@3.15.0 │ │ ├── camelcase@1.2.1 │ │ ├─┬ cliui@2.1.0 │ │ │ ├─┬ center-align@0.1.3 │ │ │ │ ├─┬ align-text@0.1.4 │ │ │ │ │ ├─┬ kind-of@3.2.2 │ │ │ │ │ │ └── is-buffer@1.1.6 │ │ │ │ │ ├── longest@1.0.1 │ │ │ │ │ └── repeat-string@1.6.1 │ │ │ │ └── lazy-cache@1.0.4 │ │ │ └── right-align@0.1.3 │ │ └── window-size@0.1.4 │ ├── node-uuid@1.4.8 │ ├─┬ remove@0.1.5 │ │ └─┬ seq@0.3.5 │ │ ├─┬ chainsaw@0.0.9 │ │ │ └── traverse@0.3.9 │ │ └── hashish@0.0.4 │ └── seedrandom@2.4.3 └─┬ optimist@0.6.1 └── wordwrap@0.0.2 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: sqlite3@3.1.7 (node_modules/sqlite3): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: sqlite3@3.1.7 install: `node-pre-gyp install --fallback-to-build` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1</anonymous></file:>
-
Also in jedem Fall funktioniert das kompilieren von sqlite nicht … Mich wundert das er "cc1" nimmt. Komisch.
Mach bitte mal auf dem Linux System (ist doch eins?!) ein
apt-get install build-essential
und versuchs nochmal (falls das nicht schon drauf ist).
-
hallo schon gemacht - verändert nichts
-
was meinst du mit:
Mich wundert das er "cc1" nimmt
kannn man das ändern (was immer das auch bedeutet)
-
neuigkeiten
sql.0 2017-12-11 10:57:57.754 info Connected to mysql
es funktioniert wieder
node deinstall und install - node 4.8.7 npm 2.15.11
würdest du mir noch bitte eine frage beantworten:
ich würde gerne folgenden befehl über javascript senden: 'UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"'
wie mache ich soetwas - der iobroker-sql-user hat alle rechte in der datenbank
das funktioniert nicht(ich habe die iobroker datenbank in eine existierende mit eingefügt - dort gibt es coll!):
sendTo('sql.0', 'UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (result) {...........
wo bekomme ich node_modules/iobroker.javascript/node_modules/mysql' her - muss da etwas installiert werden oder ist meine voegehensweise voll daneben?
benutze ich :
var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : '###', password : '###', database : 'collection' }); connection.connect(); connection.query('UPDATE coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (error, results, fields) {...........
kommt folgende fehlermeldung
javascript.0 2017-12-11 11:15:10.054 error at script.js.common.SQLEnergiesparenphp:2:24 javascript.0 2017-12-11 11:15:10.052 error script.js.common.SQLEnergiesparenphp: TypeError: Cannot read property 'createConnection' of undefined javascript.0 2017-12-11 11:15:10.018 error at script.js.common.SQLEnergiesparenphp:1:18 javascript.0 2017-12-11 11:15:10.016 error script.js.common.SQLEnergiesparenphp: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/mysql'
wo ist mein denkfehler?
-
Da fehlt das "Kommando" für das sendTo …
https://github.com/ioBroker/ioBroker.sql#custom-queries
In dem Fall "query" als zweiten Parameter
-
vielen dank für deine hilf
richtiger befehl:
sendTo('sql.0', 'query' 'UPDATE iobroker.coll SET aufgabe2 = "1" WHERE name = "fx6300"', function (result) {...........
man muss wohl auch noch die datenbank angeben (iobroker.coll oder iobroker.datapoints) sonst geht bei mir nix