FHEMswitch - Android Widgets

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

Vorheriges Thema - Nächstes Thema

Tueftler1983

Also das ist auch die lösung.
Die Module socket.io mysql und forever müssen auch in den  selben Ordner wie die server.js installiert werden also in var/www/fhem.js

Weiterhin viel Spaß

Tueftler1983

Also manuell Starten geht aber wenn ich versuche es Automatich starten zu lassen bekomme ich folgende Nachricht:
update-rc.d: using dependency based boot sequencing
update-rc.d: error: unable to read /etc/init.d/fhemjs
root@raspberrypi:/var/www/fhem.js# update-rc.d fhem.js defaults
update-rc.d: using dependency based boot sequencing
insserv: script fhem.js is not an executable regular file, skipped!

Und mit forever kommt folgendes:
root@raspberrypi:~# cd /var/www/fhem.js
root@raspberrypi:/var/www/fhem.js# forever server.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
31.07.2015 07:49:11 listen for http requests disabled
31.07.2015 07:49:11 Server started: without SSL
31.07.2015 07:49:12 start connection to fhem server
31.07.2015 07:49:12 connected to fhem server for listen on changed values

Wie bekomme ich den Service jetzt dauerhaft ans laufen?

Tueftler1983

Noch immer kein Erfolg zum dauerhaften starten von fhem.js bzw server.js

root@raspberrypi:~# service fhem.js start
Starting fhem node instance:
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: /var/www/fhem.js/server.js
root@raspberrypi:~# update-rc.d fhem.js defaults
update-rc.d: using dependency based boot sequencing
insserv: Service mysql has to be enabled to start service fhem.js
insserv: Service fhem has to be enabled to start service fhem.js
insserv: exiting now!
update-rc.d: error: insserv rejected the script header

Tueftler1983

Habe leider wieder ein Problem

Ich schalte in FHEM ein ecmd Relais über einen simulierten FS20 Schalter dieses funktioniert auch super nur über dein widget bekomme ich den aktuellen Status nur angezeigt wenn ich das Handy kurz Sperre und wieder entsperren und sich dadurch das Widget neu lädt oder ich über die app "FHEM units einlesen" drücke.

Woran kann das liegen?

Werner Schäffer

Ich bin mir da nicht ganz sicher aber soweit ich weiß haben FS20-Einheiten keinen Rückkanal und die Steuereinheit und auch fhem bekommen keine Information über den Status des Gerätes und fhem.js und die App deshalb schon gar nicht.

(Gerät sendet keine Statusänderung -> fhem(pl) bekommt davon nichts mit -> fhem.js bekommt erst recht davon nichts mit -> die App hat nichts gehört)


Werner Schäffer

meine letzte Antwort war vielleicht etwas vorschnell - ich muss darüber noch etwas nachdenken - aber heute nicht mehr

Tueftler1983

Hmm schlecht da ich das ECMD Device " ein AVR NET IO mit ethersex Firmware" nicht direkt mit deinem Widget ansprechen kann.
In Fhem muss ich den Umweg über einen virtuellen FS20 gehen damit ich "at und DOIF und so nutzen kann.
Das ECMD Device gibt Rückmeldungen wie folgt: on ok, off OK


Okay kein Problem schönen abend noch

kpwg

Zitat von: Tueftler1983 am 05 September 2015, 22:20:39
In Fhem muss ich den Umweg über einen virtuellen FS20 gehen damit ich "at und DOIF und so nutzen kann.
Das ECMD Device gibt Rückmeldungen wie folgt: on ok, off OK

Die passende classdef sollte das aber beheben?  ::)
Gerad dort lässt sich die Rückmeldung so gestalten, das sich das ECMD device ähnlich FS20 verhält.

Werner Schäffer

Starte mal auf dem Server auf dem fhem läuft:

telnet localhost 7072

und gib dann die Befehle ein:

list
inform on

Taucht beim list die fragliche Device auf?
Werden Statusänderungen angezeigt? (inform on liefert normalerweise diese Infos - dadurch erhält auch fhem.js seine Informationen)

Falls ja bitte den Output posten.
Falls nein bekommt fhem.js nichts mit von der Device

Tueftler1983

Hallo ja das Device ist gelistet, es geht um Klingel_Sperre welche Relais3 schaltet.


FS20:
  HTuer                (off)
  Klingel_Sperre       (off)
  WTuer                (off)

pilight_ctrl:
  Funken               (connected)

pilight_switch:
  Brunnen              (on)
  FlurLicht            (off)
  Kugel                (off)
  MelderIN             (off)
  Stehlampe            (off)
  Vetriene             (off)

pilight_temp:
  Temperatur           (15.3)

ECMD:
  NETIO_01             (opened)

ECMDDevice:
  Relais1              (off ok)
  Relais2              (off ok)
  Relais3              (off ok)
  Relais4              (off ok)
  Relais5              (off ok)
  Relais6              (off ok)
  Relais7              (off ok)
  Relais8              (off ok)

Und die Ausgabe wenn ich in FHEM set Klingel_Sperre on / off eingebe

ECMDDevice Relais3 on: ok
ECMDDevice Relais3 on ok
DOIF di_KllingelSperre cmd_nr: 1
DOIF di_KllingelSperre cmd_event: Klingel_Sperre
DOIF di_KllingelSperre cmd_1
FS20 Klingel_Sperre on
ECMDDevice Relais3 off: ok
ECMDDevice Relais3 off ok
DOIF di_KllingelSperre cmd_nr: 2
DOIF di_KllingelSperre cmd_event: Klingel_Sperre
DOIF di_KllingelSperre cmd_2
FS20 Klingel_Sperre off
FS20 Klingel_Sperre off

Werner Schäffer

Ich konnte das Problem jetzt nachstellen und es liegt an dem "_" in Klingel_Sperre.
Irgendeine node.js-Funktion mag dieses Underline wohl nicht. Ich mach mich mal auf die Suche. Bis das Problem gelöst ist bleibt nur die Empfehlung auf Underlines in Device-Namen zu verzichten.

Werner Schäffer

Auf dem Server https://github.com/winne27/fhem.js gibt es eine neue Version von fhem.js (nur server.js muss neu geladen werden)

Diese Version kann jetzt mit Underlines in Device-Namen umgehen. Es handelt sich dabei aber nur um einen Workarround. Intern werden jetzt einfach "_" durch die Buchstaben "UNDERLINE" ersetzt. Das ist aber wie gesagt intern und deshalb nirgendwo sichtbar.

Das Problem ist dass das Modul socket.io mit sogenannten rooms arbeitet und die Bezeichnung für die Rooms gewisse Zeichen wohl nicht enthalten darf. Ich habe dazu keine Dokumentation oder Sonstiges gefunden und durch Tests die zwei Zeichen "_" und "%" als nicht verträglich erkannt. Weitere Zeichen habe ich nicht geprüft.

Tueftler1983


Tueftler1983

Hallo habe die server.js jetzt getauscht natürlich vorher den Server gestoppt. Aber jetzt bekommt die app keine Verbindung mehr der Server startet laut console normal.


pi@raspberrypi ~ $ sudo service fhem.js start
Starting fhem node instance:
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: /var/www/fhem.js/server.js
pi@raspberrypi ~ $

Aber bekomme in der App diese meldung.. screenshot

Werner Schäffer

gibt es eine /var/log/fhem/fhem.js
wenn ja -was steht da drin - die letzten Einträge

ansonsten einfach mal ins Verzeichnis fhem (dort wo server.js drin ist) wechseln und das Ganze mal mit

node server.js

starten. Was wird dabei ausgespuckt?