fhem.js - websocket connection to fhem via node.js proxy

Begonnen von Werner Schäffer, 13 Februar 2015, 21:53:55

Vorheriges Thema - Nächstes Thema

Werner Schäffer

#225
Zitat von: efyzz am 13 Januar 2019, 20:55:41

Interessanterweise gab es bei mir schon die fhem.conf, allerdings mit folgendem Inhalt:
d /run/fhem 0755 fhem fhem - -

Hab das hintere "fhem" in "root" geändert, nun funktioniert alles  ;)

Warum auch immer bei mir dort "fhem" eingetragen war ...  :o

Ich kann dir sagen warum das dort so eingetragen war - der Installationsvorgang(npm) hat das so gemacht. Dies hat mir aber jetzt viel weiter gebracht, da ich bisher nie verstanden hatte worin das Problem lag. Jetzt ist es klar geworden: auf meiner Umgebung gibt es die Unix Group fhem, was eher nicht Standard ist. Deshalb hat es bei mir immer geklappt und bei Anderen nicht. Ich werde das npm-Paket entsprechend umbauen, damit dies nicht mehr passiert.

Guzzi-Charlie

Zitat von: Werner Schäffer am 27 Januar 2019, 14:27:28
Du bist hier im falschen Thread. Hier geht es um FHEMswitch. Es gibt für fhem.js einen eigenen Thread

https://forum.fhem.de/index.php?topic=33755.0

Ich würde dir empfehlen alles zu deinstallieren was mit fhem.js zusammenhängt und dann neu installieren, so wie in diesem Thread im ersten Beitrag beschrieben wird.

(Kurz zusammengefasst:

sudo npm install --unsafe-perm -g fhem.js

danach steht alles am richtigen Platz und man muss nichts irgendwie verschieben)
Und bitte alles weitere zu diesem Thema in dem anderen Thread.

So, da bin ich wieder,

Hab nun alles, was "fhem.js" betrifft deinstalliert und bereinigt, aber leider komme ich jetzt noch weniger weit als vorher:
Beim Ersten Mal habe ich "socket.io", "mysql" und "forever" einzeln installiert. Daher vielleicht auch die falschen Pfade?

Diesmal wollte ich mit "pi@raspberrypi:/ $ sudo npm install --unsafe-perm -g fhem.js" installieren, gab aber nur eine Fehlermeldung:

sudo: npm: command not found

npm ist aber offensichtlich installiert:

pi@raspberrypi:/ $ npm -v
6.5.0


Installation ohne "sudo" brachte dann folgendes Ergebnis:

pi@raspberrypi:/ $ npm install --unsafe-perm -g fhem.js
/home/pi/.nvm/versions/node/v11.8.0/bin/fhem.js -> /home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js/bin/fhem.js
/home/pi/.nvm/versions/node/v11.8.0/bin/forever -> /home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js/node_modules/forever/bin/forever

> fhem.js@3.2.1 postinstall /home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js
> ./bin/postinstall.sh

sh: 1: ./bin/postinstall.sh: Permission denied
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fhem.js/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})

npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! fhem.js@3.2.1 postinstall: `./bin/postinstall.sh`
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the fhem.js@3.2.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2019-01-27T14_48_25_362Z-debug.log


Das "Permission denied" liegt ja wahrscheinlich daran, daß ich den Befehl NICHT als su ausgeführt habe, aber mit su nimmt er den Befehl ja gar nicht an.
Ich hab keine Ahnung warum das nicht funktioniert.

Es wäre schön, wenn mich Jemand unterstützen könnte. Allein bekomme ich es offensichtlich nicht hin. Wochen möchte ich mich damit nicht beschäftigen (ohne Ergebnisse). Dann lass ich es lieber ganz.

Gruß
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

du bist jetzt fast fertig:

du musst jetzt als root noch den Befehl

/home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js/bin/postinstall.sh

ausführen. Dann ist die Installation abgeschlossen. Anschließend müsste es ein /etc/fhemjs/params.js geben, in dem du deine Einstellungen vornehmen kannst.

Guzzi-Charlie

Danke für die schnelle Antwort.

Hört sich zwar vielversprechend an, funktioniert aber nicht.

root@raspberrypi:/home/pi# /home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js/bin/postinstall.sh
bash: /home/pi/.nvm/versions/node/v11.8.0/lib/node_modules/fhem.js/bin/postinstall.sh: No such file or directory


Fehlt da nicht was? Was soll dieser "Befehl" denn machen?

Bei mir gibt es Ordner bis: "/home/pi/.nvm/versions/node/v11.8.0/lib/node_modules", darin die Unterordner "forever" "mysql", "npm" und "socket.io", aber kein fhem.js.

Gruß
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

Schau mal in dem verzeichnis

/usr/local/lib/node_modules/fhem.js/bin

oder

/usr/lib/node_modules/fhem.js/bin

ob es dort das Script gibt

Guzzi-Charlie

Weder in "/usr/local/lib" noch in "/usr/lib" gibt es ein Verzeichnis "node_modules".
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

npm -g list fhem.js

zeigt dir das Basisverzeichnis an in dem node_modules abgelegt sind

Guzzi-Charlie

Ja, das ist ja die gleiche Stelle die ich schon vorher genannt hatte.

/home/pi/.nvm/versions/node/v11.8.0/lib

Da gibt es aber kein "fhem.js"
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

Wird fhem.js aufgelistet bei

npm -g list fhem.js

Wenn nein, dann ist es nicht installiert.

Guzzi-Charlie

Nein, ist nicht aufgelistet. Natürlich ist es nicht installiert.

Der Befehl:
pi@raspberrypi:/ $ sudo /usr/lib/node_modules/fhem.js/bin/postinstall.sh
sudo: /usr/lib/node_modules/fhem.js/bin/postinstall.sh: command not found

ließ sich ja nicht ausführen. Hatte ich weiter oben doch schon geschrieben.

Aber warum? Das ist ja die Frage.

Bei meinem ersten Versuch hatte ich die "*.js-Dateien" alle händisch von Github in den dort angegebenen Pfad kopiert, aber das hat ja offensichtlich auch nicht gestimmt.
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

ich kann jetzt nicht mehr weiter helfen - da ist irgendwas im Argen.

Ich kann nur folgemdes empfehlen (ohne Unterstützung hier - soviel Zeit habe ich nicht). Die Vorschläge beginnen von einfach bis radikal:

1) schau mal das du sudo npm zum laufen bringst (Google)
2) ist deine Software aktuell? (apt-get update, apt-get upgrade hilft dagegen fals du ein Ubuntu oder Debian System hast)
3) deinstalliere nodejs und npm und mach eine Neuinstallation
4) setz deinen Raspi neu auf und nehme das Paket Raspian und anschließend 2)

Sorry mehr kann ich dazu nicht sagen

Guzzi-Charlie

Schade. Ok, trotzdem Danke für die Unterstützung.

Aber dann verzichte ich lieber auf die App. Meine Software ist aktuell und alles Andere funktioniert einwandfrei. Das setzte ich nicht für ein bisschen Handy-Spielerei aufs Spiel.

Gruß und noch einen schönen Abend
- RaspPI 4+: (Cuno V2 -2x KS300, JeeLink -13x EC3000)
- Stromzähler (B+G E-Tech): 6x SDM120M, 9x XTM100A, 38x DRS110M
- LAN: IT LAN-Gateway mit 34x RMF-R1 (Rohrmotor24)
- WLAN: 85x Shelly, 12x Gosund SP111, 16x D1-Mini, 15x Sonoff Basic
- DECT: 6x DECT200, 8x DECT301, - HmIP: 3x FalmotC12, 16x WTH2

Werner Schäffer

ein letzter Versuch wäre noch:

npm -g install fhem.js

(ohne unsafe-Parameter)

wenn das klappt kommt am Schluss eine Meldung in der ein Befehl steht, den mal als root ausführen muss (postinstall.sh)

marcg

Wollte auch gerade mal FHEMSwitch ausprobieren. Hab also versucht fhem.js zu installieren, gleiche Fehlermeldung wie oben :
(Auszug aus dem Log-File)

.
.
.
8668 silly postinstall socketio-auth@0.1.1
8669 info lifecycle socketio-auth@0.1.1~postinstall: socketio-auth@0.1.1
8670 silly postinstall fhem.js@3.2.1
8671 info lifecycle fhem.js@3.2.1~postinstall: fhem.js@3.2.1
8672 verbose lifecycle fhem.js@3.2.1~postinstall: unsafe-perm in lifecycle true
8673 verbose lifecycle fhem.js@3.2.1~postinstall: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/usr/lib/node_modules/fhem.js/node_modules/.bin:/usr/lib/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
8674 verbose lifecycle fhem.js@3.2.1~postinstall: CWD: /usr/lib/node_modules/fhem.js
8675 silly lifecycle fhem.js@3.2.1~postinstall: Args: [ '-c', './bin/postinstall.sh' ]
8676 silly lifecycle fhem.js@3.2.1~postinstall: Returned: code: 126  signal: null
8677 info lifecycle fhem.js@3.2.1~postinstall: Failed to exec postinstall script
8678 timing action:postinstall Completed in 372ms
8679 verbose unlock done using /root/.npm/_locks/staging-a072192f34a17023.lock for /usr/lib/node_modules/.staging
8680 timing stage:rollbackFailedOptional Completed in 2391ms
8681 timing stage:runTopLevelLifecycles Completed in 37473ms
8682 warn optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fhem.js/node_modules/fsevents):
8683 warn notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm64"})
8684 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS:    darwin
8684 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch:  any
8684 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS:   linux
8684 verbose notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: arm64
8685 verbose stack Error: fhem.js@3.2.1 postinstall: `./bin/postinstall.sh`
8685 verbose stack Exit status 126
8685 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
8685 verbose stack     at EventEmitter.emit (events.js:193:13)
8685 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
8685 verbose stack     at ChildProcess.emit (events.js:193:13)
8685 verbose stack     at maybeClose (internal/child_process.js:1001:16)
8685 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:266:5)
8686 verbose pkgid fhem.js@3.2.1
8687 verbose cwd /root
8688 verbose Linux 3.14.29
8689 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "--unsafe-perm" "-g" "fhem.js"
8690 verbose node v11.13.0
8691 verbose npm  v6.7.0
8692 error code ELIFECYCLE
8693 error errno 126
8694 error fhem.js@3.2.1 postinstall: `./bin/postinstall.sh`
8694 error Exit status 126
8695 error Failed at the fhem.js@3.2.1 postinstall script.
8695 error This is probably not a problem with npm. There is likely additional logging output above.
8696 verbose exit [ 126, true ]


Es liegt aber eben kein fhem.js in /usr/lib/node_modules, deswegen wohl die Meldung.

Ich hab hier auch keinen Raspberry, sondern einen umgeflashten AndroidTV mit Armbian als OS. Und ich führe alle Befehle aus der Anleitung als root aus und nicht mit su/sudo...

Any Hints ? Ich hab auch schon NodeJS Version 8 wie in der Anleitung Seite 1 probiert, gleiche Meldung....

Marc


Werner Schäffer

Poste bitte mal das Ergbnis von

node -v
npm -v


Dann als root

npm -g install --unsafe-perm fhem.js

davon dann bitte den gesamten Response schicken.