Autor Thema: fhem.js - websocket connection to fhem via node.js proxy  (Gelesen 44541 mal)

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #210 am: 05 Dezember 2018, 11:52:21 »
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.
« Letzte Änderung: 05 Dezember 2018, 17:53:59 von Werner Schäffer »

Offline Axxl

  • New Member
  • *
  • Beiträge: 14
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #211 am: 05 Dezember 2018, 13:52:01 »
Zitat
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.

Funktioniert .. Danke für den Hinweis !

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #212 am: 05 Dezember 2018, 18:46:16 »
Funktioniert .. Danke für den Hinweis !

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

Offline omnior

  • Jr. Member
  • **
  • Beiträge: 90
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #213 am: 10 Dezember 2018, 13:59:02 »
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

Offline Tueftler1983

  • Sr. Member
  • ****
  • Beiträge: 835
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #214 am: 10 Dezember 2018, 14:16:13 »
Zitat
error: 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.

Offline omnior

  • Jr. Member
  • **
  • Beiträge: 90
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #215 am: 10 Dezember 2018, 14:51:26 »
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??

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #216 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.

Offline omnior

  • Jr. Member
  • **
  • Beiträge: 90
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #217 am: 10 Dezember 2018, 15:26:19 »
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:

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #218 am: 10 Dezember 2018, 16:30:27 »
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.

Offline omnior

  • Jr. Member
  • **
  • Beiträge: 90
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #219 am: 10 Dezember 2018, 18:05:17 »
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!
« Letzte Änderung: 10 Dezember 2018, 18:25:13 von omnior »

Offline efyzz

  • Jr. Member
  • **
  • Beiträge: 50
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #220 am: 11 Januar 2019, 22:48:49 »
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
« Letzte Änderung: 11 Januar 2019, 22:50:43 von efyzz »
RaspberryPi3B, Jessie Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #221 am: 12 Januar 2019, 20:22:22 »
hast du schon mal eine Blick in
/var/log/fhem.js.log
geschaut?

Offline efyzz

  • Jr. Member
  • **
  • Beiträge: 50
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #222 am: 12 Januar 2019, 21:37:29 »
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?
« Letzte Änderung: 12 Januar 2019, 21:47:51 von efyzz »
RaspberryPi3B, Jessie Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 295
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #223 am: 13 Januar 2019, 10:50:51 »
Das Problem mit fhem.js.pid ist in diesem Thread schon mit Lösung beschrieben worden.

Offline efyzz

  • Jr. Member
  • **
  • Beiträge: 50
Antw:fhem.js - websocket connection to fhem via node.js proxy
« Antwort #224 am: 13 Januar 2019, 20:55:41 »
Ah ja, danke für den Wink mit dem Zaunpfahl  ;D

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