FHEMswitch - Android Widgets

Begonnen von Werner Schäffer, 01 Mai 2015, 18:08:09

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo
Eine var/www/log/fhem/fhem.js gibt es nicht
Und die Ausgabe bei node fhem.js ist das nix kommt
pi@raspberrypi ~ $ cd /var/www/fhem.js
pi@raspberrypi /var/www/fhem.js $ node server.js
pi@raspberrypi /var/www/fhem.js $

Werner Schäffer

 /var/log/fhem/fhem.js

und nicht

/var/www/log/fhem/fhem.js

Tueftler1983

Sorry meinte ich ja
Die Datei habe ich Grade erst erstellt

Tueftler1983

#93
So läuft wieder habe die server.js neu geladen.
Der Status wird jetzt richtig und sofort angezeigt wenn ich ihn definiert auf on oder off schalte aber wenn ich ihn mit toggle schalte kommt nur ein fragezeichen.
Derzeit sende ich über das Widget den Befehl set KlingelSperre on oder set KlingelSperre off und bekomme dann in der nächsten Spalte den Status angezeigt das geht aber braucht halt 3 spalten

marty29ak

Hallo,
wollte die App auch gerne ausprobieren.
Allerdings hängt es bei mir schon direkt am zweiten Punkt und ich bekomme lediglich Fehlermeldungen.
Muss ich erst noch was zusätzlich installieren oder läuft das auf meinen System nicht?
Wäre nett wenn sich mal Jemand die Fehler anschauen würde.



login as: root
root@192.168.178.34's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Dec 18 13:43:08 2015 from buero.fritz.box
root@fhem:~# apt-get install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
nodejs is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@fhem:~# npm install -g socket.io
\
> utf-8-validate@1.2.1 install /usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

/bin/sh: 1: node: not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 3.18.0-trunk-rpi2
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian


> bufferutil@1.2.1 install /usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

/bin/sh: 1: node: not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 3.18.0-trunk-rpi2
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN optional dep failed, continuing utf-8-validate@1.2.1
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian


> utf-8-validate@1.2.1 install /usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

/bin/sh: 1: node: not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 3.18.0-trunk-rpi2
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN optional dep failed, continuing bufferutil@1.2.1
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian


> bufferutil@1.2.1 install /usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

/bin/sh: 1: node: not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:809:12)
gyp ERR! System Linux 3.18.0-trunk-rpi2
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil
gyp ERR! node -v v0.10.29
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN optional dep failed, continuing utf-8-validate@1.2.1
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm WARN optional dep failed, continuing bufferutil@1.2.1
socket.io@1.3.7 /usr/local/lib/node_modules/socket.io
├── debug@2.1.0 (ms@0.6.2)
├── has-binary-data@0.1.3 (isarray@0.0.1)
├── socket.io-adapter@0.3.1 (object-keys@1.0.1, debug@1.0.2, socket.io-parser@2.2.2)
├── socket.io-parser@2.2.4 (isarray@0.0.1, debug@0.7.4, component-emitter@1.1.2, benchmark@1.0.0, json3@3.2.6)
├── engine.io@1.5.4 (base64id@0.1.0, debug@1.0.3, engine.io-parser@1.2.2, ws@0.8.0)
└── socket.io-client@1.3.7 (to-array@0.1.3, indexof@0.0.1, component-bind@1.0.0, debug@0.7.4, backo2@1.0.2, object-component@0.0.3, component-emitter@1.1.2, has-binary@0.1.6, parseuri@0.0.2, engine.io-client@1.5.4)
root@fhem:~#
Gruß Martin

Werner Schäffer

#95
Da ist irgendetwas mit der nodejs Installation nicht in Ordnung. Dies kommt öfters vor, da es in den letzten zwei Jahren bezüglich node.js ein ziemliches Versions Chaos gab. Zum Einen hatte sich ein Fork genannt io.js gebildet und zum Anderen wurden die beiden Stränge dann wieder zusammengeführt. node.js machte dann auch einen Versionssprung von 0.12 auf 4.0

Deshalb würde ich vorschlagen erst mal node.js komplett zu deinstallieren mit

apt-get remove nodejs
apt-get remove npm
apt-get remove node

Am Besten alle drei Befehle ausführen damit es ganz sicher weg ist.


Jetzt node.js neu installieren mit:

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs


# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_4.x | bash -
apt-get install -y nodejs


Weitere Infos zur Installation von node.js siehe https://github.com/nodesource/distributions

Die Installation von fhem.js einschließlich aller Submodule geht nun ganz einfach:

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

(Die Option --unsafe-perm unterdrückt eine Menge Meldungenbei der Installation von socket.io)

Egal ob es klappt oder auch nicht freue ich mich über eine Rückmeldung

marty29ak

Vielen Dank für deine Hilfe.
Jetzt hat es sofort funktioniert. Vielleicht sollte man das in der Startpost einpflegen.
Gruß Martin

Werner Schäffer

Zitat von: marty29ak am 18 Dezember 2015, 16:05:13
...
Vielleicht sollte man das in der Startpost einpflegen.

Da bin ich gerade dabei.

Werner Schäffer

Zitat von: Tueftler1983 am 06 September 2015, 21:32:38
So läuft wieder habe die server.js neu geladen.
Der Status wird jetzt richtig und sofort angezeigt wenn ich ihn definiert auf on oder off schalte aber wenn ich ihn mit toggle schalte kommt nur ein fragezeichen.
Derzeit sende ich über das Widget den Befehl set KlingelSperre on oder set KlingelSperre off und bekomme dann in der nächsten Spalte den Status angezeigt das geht aber braucht halt 3 spalten
Eine späte Antwort ist auch eine Antwort:
In der Konfiguration kann man ja auch "untereinander" einstellen, dann hat man alles in einer Spalte.

Tueftler1983

Leider stürzt die App heufig ab oder zeigt garni an oder hängt sich auf .... leider sonst ne super sache

Werner Schäffer

Zitat von: Tueftler1983 am 18 Dezember 2015, 18:26:25
Leider stürzt die App heufig ab oder zeigt garni an oder hängt sich auf .... leider sonst ne super sache

Welche Android-Version hast du?

Ich kenne die Probleme, aber sie treten bei mir nicht häufig sondern eher selten auf. Manchmal hilft ein paar Sekunden zu warten, manchmal hilft es wenn man  die Config startet, auf Speichern klickt und es funzt wieder. Das ist natürlich nicht sehr schön und auch keine wirkliche Lösung.

Ich habe damit beim Programmieren lange gekämpft , aber  Android und die Websocket Bibliothek (Java socket.io) zicken einfach immer wieder miteinander. Hauptkonflikt: Android will Strom sparen und Anwendungen rausschmeißen - Websockets brauchen eine permanente Verbindung. Erschwerend kommt dazu dass es sich um ein Widget handelt und nicht um eine App, auf ersteren legt Android verschärfte Maßstäbe an. Nichtsdestotrotz: es hat Spaß gemacht in diese Welt einzutauschen und auf meinem Tablet (Nexus 10) funktioniert es mit 4 von 5 Sternen.   

Richtig funktionieren wird dies vermutlich erst wenn Android Websockets native integriert und dann das Ganze noch einige Zeit reift.


desteh1

Hi,

wenn ich den Befehl, npm install --unsafe-perm -g fhem.js eingebe, bekomme ich die Fehlermeldung
root@raspberrypi:/home/pi# npm install --unsafe-perm -g fhem.js
Illegal instruction

So wie ich das sehe wurde nodejs korrekt installiert, dazu habe ich die Zeile:
curl -sL https://deb.nodesource.com/setup_4.x | bash -
apt-get install -y nodejs

Ich habe es auch mit der Version 4 versucht aber da bekomme ich Segmentation fault.

Hat einer eine Idee für mich, ich würde schon gerne Fhemswitch verwenden, aber egal was ich mache es funktioniert nicht wirklich.
Ich verwende Fhem 5.7 auf einem Raspberrypi mit Debian Jessie.

Gruß
Stefan

Werner Schäffer


RockFan

#103
Hallo Werner,

seit Du FHEMswitch hier vorgestellt hast, versuche ich von Zeit zu Zeit es bei mir vergeblich zum Laufen zu bekommen. Leider bin ich in Linux nicht sonderlich fit und scheitere permanent an der Installation von nodejs. Jeden Tipp in diesem Thread habe ich ausprobiert und auch so einiges gegoogled, aber es will einfach nicht. Vielleicht kannst Du mir etwas weiter helfen.

Meine Basis ist FHEM in der aktuellsten Version auf einem Banana Pro mit Bananian (wheezy) als OS.
Ich habe auch versucht nodejs zu entfernen und von vorne zu beginnen. Zuletzt läuft es auf folgendes hinaus (Anmeldung als root):

curl -sL https://deb.nodesource.com/setup_4.x | bash -
scheint noch gut zu funktionieren. Es endet mit der Empfehlung nodejs zu installieren.

apt-get install -y nodejs
ist dann aber recht schnell nach folgender Ausgabe zu Ende:


Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
nodejs : Hängt ab von: libc6 (>= 2.16) aber 2.13-38+deb7u8 soll installiert werden
          Hängt ab von: libstdc++6 (>= 5.2) aber 4.7.2-5 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.


Damit komme ich als Leihe gar nicht klar. Hast Du eine Idee, was hier zu machen ist, damit es klappt?
Danke schon mal.

Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

Werner Schäffer

Mach erst mal folgendes:

apt-get update
apt-get upgrade


Damit werden alle Patches und Updates für deine aktuelle Linux-Distribution installiert.

Anschließend führe den folgenden Befehl aus:

apt-cache policy libc6

und poste das Ergebnis hier. Falls diese Abfrage eine Version >= 2.16 für libc6 liefert, kannst du auch gleich nochmals

apt-get install -y nodejs

probieren