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

#210
Offensichtlich werden bestimmte readings nicht erkannt, warum auch immer, das muss ich noch analysieren. Wenn du die Meldung loshaben willst, dann kann ich dir folgenden Workarround anbieten:

gehe in das Verzeichnis, in dem fhem.js installiert ist (in der Regel: /usr/lib/node_modules/fhem.js) und bearbeite den File server.js und ändere Zeile 317 von

mylog('process error: ' + err + ' - retry in 10 secs', 0);

in

mylog('process error: ' + err + ' - retry in 10 secs', 1);

Also die 0 am Ende in eine 1 ändern.
Wenn du dann in der params.js debug = 0 hast, werden diese Meldungen nicht mehr angezeigt.

Axxl

ZitatAlso die 0 am Ende in eine 1 ändern.
Wenn du dann in der params.js debug = 0 hast, werden diese Meldungen nicht mehr angezeigt.

Funktioniert .. Danke für den Hinweis !

Werner Schäffer

Zitat von: Axxl am 05 Dezember 2018, 13:52:01
Funktioniert .. Danke für den Hinweis !

ich empfehle dann auch noch in Zeile 192 ebenfalls 0 auf 1 zu ändern

omnior

Hallo Werner, nach Installation von aktuellem node.js und fhem.js (ist auch gestartet) erhalte ich auf meinem Smartphone immer noch die Meldung "Es ist ein Fehler aufgetreten Keine Verbindung zum fhem.js Server möglich".
In meinem /var/log/fhem.js.log findet sich der Eintrag "error: telnet connection for getting values failed" den ich nicht wirklich verstehe, da telnet eigentlich auch eingerichtet ist (lässt sich jedenfalls auf der Konsole starten).
Kannst du mir eventuell einen Hinweis geben was ich noch prüfen sollte.
Gruß Robert

Tueftler1983

Zitaterror: telnet connection for getting values failed"
Heißt doch eig das die Verbindung zu FHEM nicht hergestellt werden kann, denn das ist ja die Telnet Verbindung.

omnior

Zitat von: Tueftler1983 am 10 Dezember 2018, 14:16:13
Heißt doch eig das die Verbindung zu FHEM nicht hergestellt werden kann, denn das ist ja die Telnet Verbindung.

Danke, naja, den Gedanken hatte ich auch schon, nur ich komm nicht drauf wie ich das behebe. Ich habe telnet installiert und kann auch eine telnet Sitzung in der Konsole starten. Was muss ich aber genau einstellen, damit FHEM diese Verbindung nutzen kann??

Werner Schäffer

Hast du das eigentliche FHEM auch gestartet?

Wenn ja, versuch mal Folgendes:

telnet localhost 7072
list

auf der Konsole eingeben. Es müsste dann eine Liste deiner FHEM-Devices angezeigt werden. Falls dies nicht der Fall ist, ist FHEM nicht richtig konfiguriert.

omnior

Zitat von: Werner Schäffer am 10 Dezember 2018, 14:58:23
Hast du das eigentliche FHEM auch gestartet?

Wenn ja, versuch mal Folgendes:

telnet localhost 7072
list

auf der Konsole eingeben. Es müsste dann eine Liste deiner FHEM-Devices angezeigt werden. Falls dies nicht der Fall ist, ist FHEM nicht richtig konfiguriert.

Der Port ist bei mir 23, es kommt dann
pi@raspberrypi:~ $ telnet localhost 23
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Raspbian GNU/Linux 8
raspberrypi login:

Werner Schäffer

Du musst in FHEM einen Port definieren. Standardmäßig ist dies 7072.

Öffne mal die normale FHEM-Seite zur Steuerung. Gehe dort in "Everything" und suche nach telnet. Dort steht dann der Port für FHEM telnet. Findest du das nicht, musst du FHEM (nicht fhem.js!) umkonfigurieren.

In FHEM geht das so:

define telnetPort telnet 7072

FHEM lauscht dann auf dem Port 7072 auf telnet. Es werden dann aber nur Verbindungen von localhost erlaubt. Es ist dann auch kein Passwort erforderlich.

omnior

#219
Ok hab das jetzt mal gemacht, dabei ist mir ein etwas merkwürdiger Eintrag "Telnetforblocking" aufgefallen, den hab ich aber nun gelöscht und den telnetPort jetzt auch wieder mit 7072 angelegt
Ein List zeigt jetzt:
Internals:
   CFGFN     
   CONNECTS   4
   DEF        7072
   FD         59
   NAME       telnetPort
   NR         375
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2018-12-10 17:51:19   state           Initialized
Attributes:


entsprechend hab ich auch in der  /etc/fhem.js/params.js den Port wieder auf 7072 gesetzt.
Leider ist die Fehlermeldung auf dem Smartphone aber immer noch dieselbe  >:(

-> Neustart tut gut  :), dies scheint also das Problem gelöst zu haben, danke Werner!

efyzz

#220
Nabend,

ich lese jetzt schon Weile hier im Thread, habe aber mein Problem noch nicht gefunden. Ich hoffe, ich habe es nicht übersehen ...

Mein Problem ist, dass ich fhem.js nicht automatisch als Service starten kann. Ich muss es also nach jedem Neustart des Raspberry manuell starten. Das klappt mit

/etc/init.d/fhem.js start

Dagegen funktioniert der manuelle Start als Service mit

sudo service fhem.js start

nur manchmal, aber komischerweise nicht immer  :o

Jedenfalls soll der Autostart angeblich bereits aktiviert sein:

sudo update-rc.d fhem.js enable
insserv: script fhem.js.dist: service fhem.js already provided!


Aber wie gesagt startet es eben nicht automatisch nach Reboot.

Wo muss ich ansetzen, um der Sache auf den Grund zu gehen?

Danke euch!

nodejs -v
v11.6.0
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

Werner Schäffer

hast du schon mal eine Blick in
/var/log/fhem.js.log
geschaut?

efyzz

#222
Dort steht wiederholt sowas:
Error: ENOENT: no such file or directory, open '/var/run/fhem/fhem.js.pid'
    at Object.openSync (fs.js:443:3)
    at Object.writeFileSync (fs.js:1170:35)
    at writePid (/usr/lib/node_modules/fhem.js/node_modules/forever/bin/monitor:13:6)
    at exports.Monitor.<anonymous> (/usr/lib/node_modules/fhem.js/node_modules/forever/bin/monitor:46:5)
    at exports.Monitor.EventEmitter.emit (/usr/lib/node_modules/fhem.js/node_modules/eventemitter2/lib/eventemi$
    at /usr/lib/node_modules/fhem.js/node_modules/forever-monitor/lib/forever-monitor/monitor.js:177:10
    at process._tickCallback (internal/process/next_tick.js:61:11)
fs.js:119
    throw err;
    ^


Was soll mir das sagen?
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

Werner Schäffer

Das Problem mit fhem.js.pid ist in diesem Thread schon mit Lösung beschrieben worden.

efyzz

Ah ja, danke für den Wink mit dem Zaunpfahl  ;D

Zitat von: Werner Schäffer am 25 Februar 2018, 18:46:44
Hast im Verzeichnis /usr/lib/tmpfiles.d# eine Datei fhem.conf die folgendes enthält:

d /run/fhem 0755 fhem root - -

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
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.