Auf der letzten Swite dieses Threads kannst du lesen warum dieses Widget nicht mehr weiterentwickelt wirdFHEMswitch ist ein werbefreies Android Widget für den Startscreen und ist im Google Store kostenlos verfügbar, auch in der Zukunft.
Beschreibung:Dieses Widget ermöglicht FHEM-Schalter, Werte-Anzeigen und selbstdefinierte FHEM-Befehle auf dem Startscreen eines Android-Gerätes kompakt in einem Widget zu platzieren.
Über eine Konfiguration, die automatisch beim Platzieren auf dem Homescreen aufgerufen wird oder auch manuell gestartet werden kann, lassen sich Devices und Lightscenes für die Anzeige auswählen, umbenennen und sortieren. Diese Widget holt sich die aktuellen Stati der ausgewählten Fhem-Devices über eine Websocket-Verbindung zum Server. Deshalb ist zu beachten:
VoraussetzungenMan braucht selbstverständlich eine Fhem-Server. Das reicht aber nicht.
Zusätzlich muss fhem.js installiert werden. Dies ist ein node.js Server und der erfordert wiederum eine funktionierende nodejs Installation.
Für die Installation von node.js und fhem.js gibt es schon einen Thread hier im Forum:
http://forum.fhem.de/index.php/topic,33755.0.html (http://forum.fhem.de/index.php/topic,33755.0.html)
Features
Schalter:
Alle FHEM Einheiten die On/Off geschaltet werden können, können mit einem Statussymbol (Lampe) das den aktuellen Schaltzustand anzeigt, aufgelistet werden. Ein Klick auf den Button führt ein "Toggle" durch.
Lightscenes:
Auch Lightscenes können abgebildet werden und mit einem Klick eine Scene aktiviert werden.
Werte anzeigen:
Es können die aktuellen Werte jeder FHEM Einheit angezeigt werden. Bei Bedarf und bei manchen Wertetypen kann der Wert auch durch ein Icon dargestellt werden. Dies geht für die Werte on, off, ok und low, sowie für alle numerischen Werte mit einem % am Ende (z.B. Ladezustand von Batterien, man kann da mit FHEM Dummy und Notify sehr viel abbilden).
Beispiel: https://forum.fhem.de/index.php/topic,62610.0.html (https://forum.fhem.de/index.php/topic,62610.0.html)
FHEM-Befehle:
Es können Buttons definiert werden die beliebige FHEM Befehle ausführen.
Numerische Werte:
Rein numerische Werte, wie Temperatur oder Lautstärke, können über Up/Down Buttons gesteuert werden.
Beispiel: https://forum.fhem.de/index.php/topic,62655.0.html (https://forum.fhem.de/index.php/topic,62655.0.html)
Sortierung:
Die Reihenfolge der Elemente innerhalb einer Gruppe kann in der Konfiguration durch Drag&Drop beliebig festgelegt werden.
Multi Widgets:
Bis zu vier Widgets, die sich in Inhalt, Form und Größe unterscheiden können, lassen sich definieren. Nach dem Start der Konfiguration von FHEMswitch können die Widgets durch einen Farbcode unterscheiden werden.
lokal und remote:
Man kann, muss aber nicht, für das eigene WLAN eine andere URL zum FHEM-Server definieren, wie für den Remotezugang. Man kann dann z.B. lokal unverschlüsselt sich direkt mit FHEM (js und pl) verbinden, während remote eine https-Verbindung aufgebaut wird.
Installation und KonfigurationNach der Installation im Store nicht auf Öffnen klicken, sondern das Widget suchen und auf einen freien Platz eines Startscreens ziehen. Die Konfiguration öffnet sich dann automatisch. Die Konfiguration kann später auch durch Starten der App FHEMswitch gestartet werden um Änderungen vorzunehmen.
So sieht es aushttps://github.com/winne27/FHEMswitch/tree/HEAD/assets/sreenshots/funktionsgrafik.jpg (https://github.com/winne27/FHEMswitch/tree/HEAD/assets/sreenshots/funktionsgrafik.jpg)
https://github.com/winne27/FHEMswitch/blob/HEAD/assets/sreenshots/Screenshot_2016-12-12-19-04-37.png (https://github.com/winne27/FHEMswitch/blob/HEAD/assets/sreenshots/Screenshot_2016-12-12-19-04-37.png)
Weitere Beispiele in dem Verzeichnis:https://github.com/winne27/FHEMswitch/tree/HEAD/assets/sreenshots (https://github.com/winne27/FHEMswitch/tree/HEAD/assets/sreenshots)
Das ist ja alles sehr nett.
Allerdings sei davor gewarnt, das ohne weiter gehende Sicherheitsmaßnahmen zu nutzen (etwa außerhalb des Hauses). Denn Node.js stellt derzeit noch ein ziemliches Sicherheitsrisiko dar., siehe z.B. https://nodesecurity.io/
LG
pah
Zitat von: Prof. Dr. Peter Henning am 02 Mai 2015, 06:20:10
...
Allerdings sei davor gewarnt, das ohne weiter gehende Sicherheitsmaßnahmen zu nutzen (etwa außerhalb des Hauses). Denn Node.js stellt derzeit noch ein ziemliches Sicherheitsrisiko dar., siehe z.B. https://nodesecurity.io/
...
"ziemliches Sicherheitsrisiko" ist doch sicher etwas übertrieben. Ähnliche Listen wie in dem angegeben Link findet man auch für PHP, Perl, Apache, ....
Vielleicht mag es ein paar mehr Probleme geben als in PHP, dafür sind aber wahrscheinlich weniger Exploits im Umlauf, da node.js noch nicht so verbreitet ist.
Außerdem ist node.js auf https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) so vorkonfiguriert dass es keine DB-Zugriffe macht, dass es keine HTTP-Requests erlaubt und auch von Client-Seite keinerlei User-Input verarbeitet. Erlaubt sind nur Websocket-Requests. Damit sind schon die allermeisten potentiellen Risiken ausgeschlossen.
node.js kann man umkonfigurieren, dass es auch dies alles macht, das ist aber nur notwendig wenn man eigene Anwendungen damit realisieren will. Zu Nutzung des Widgets FHEMswitch kann man die Standardkonfiguration benutzen und schließt damit die allermeisten Risiken aus.
Will man FHEMswitch außer Haus benutzen, sollte man allerdings die Konfiguration so ändern dass für die Verbindung ein Passwort benötigt wird. Zusätzlich sollte man dann auch noch die SSL-Verschlüsselung aktivieren.
Trotzdem Danke für den Hinweis auf den Security-Aspekt. Ich habe mir den Code daraufhin nochmals angeschaut und auch noch eine kleine Änderung vorgenommen.
Kleiner Nachtrag:
der Sourcecode für FHEMswitch ist auf
https://github.com/winne27/FHEMSwitch (https://github.com/winne27/FHEMSwitch)
einsehbar.
Zitat"ziemliches Sicherheitsrisiko" ist doch sicher etwas übertrieben.
>:(
Sicher nicht.
pah
Zitat von: Prof. Dr. Peter Henning am 02 Mai 2015, 06:20:10
...
Denn Node.js stellt derzeit noch ein ziemliches Sicherheitsrisiko dar., siehe z.B. https://nodesecurity.io/
...
Es gibt durchaus auch andere Ansichten:
Node.js at payPal
https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/ (https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/)
Why Walmart is using Node.js
http://venturebeat.com/2012/01/24/why-walmart-is-using-node-js/ (http://venturebeat.com/2012/01/24/why-walmart-is-using-node-js/)
How LinkedIn used Node.js and HTML5 to build a better, faster app
http://venturebeat.com/2011/08/16/linkedin-node/ (http://venturebeat.com/2011/08/16/linkedin-node/)
Node at scale: What Google, Mozilla, & Yahoo are doing with Node.js
http://venturebeat.com/2012/01/24/node-at-google-mozilla-yahoo/ (http://venturebeat.com/2012/01/24/node-at-google-mozilla-yahoo/)
Nicht unbedingt Hinterhofklitschen und durchaus auch sicherheitsrelevante Anwendungen, oder Herr Professor?
Hallo. Ich bin blutiger Anfänger und versuche nun seit Tagen fhem.js auf meinem Debian Server zu installieren. Ich schaffe es einfach nicht. Gibt es dafür eine Schritt für Schritt Anleitung? Ich würde FhemSwitch auch gerne benutzen.
Achtung - diese Anleitung ist veraltet!
Für die Installation bitte die Anleitung auf
https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js)
benutzen.
----------------------------------------------------
Step-by-Step Anleitung für die Installation von fhem.js unter Debian (Ubuntu, ...):
Prüfen ob in fhem telnet ohne Passwort aktiviert ist.
Auf welchem Port lauscht fhem - Standard ist 7072
Als user root folgende Kommandos ausführen:
apt-get install nodejs
npm install -g socket.io
npm install -g mysql
npm install -g forever (optional, aber sinnvoll um fhem.js als Service zu starten)
mkdir -p /var/www/fhem.js (es kann auch ein beliebiges anderes Verzeichnis benutzt werden)
alle Files *.js von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) in dieses Verzeichnis kopieren.
params.js prüfen ob alles richtig ist. (falls der telnet-Port 7072 ist, muss man erstmal nichts ändern dort)
mkdir -p /var/log/fhem
cd /var/www/fhem.js
node server.js
Damit wurde fhem.js gestartet und auf der Konsole müssten Meldungen erscheinen.
Beenden kann man fhem.js mit Strg+c
Will man fhem.js dauerhaft am Laufen halten empfiehlt es sich einen Service mit Hilfe von forever einzurichten. Dazu von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) /etc/init.d/fhem.js in das Verzeichnis /etc/init.d kopieren.
Mit
service fhem.js start
service fhem.js stop
kann man dann fhem.js steuern. Soll der Start von fhem.js noch automatisiert werden ist noch folgendes auszuführen:
update-rc.d fhem.js defaults
Danke für die schnelle Antwort.
Ich bin bereits wie in der Redme vorgegangen. Im Grunde scheitert es bei mir schon an dem Befehl npm install -g socket.io
Da bekomme ich eine Fehlermeldung: bash: npm: Kommando nicht gefunden.
Woran liegt denn das? Ich benutze den Root-Terminal
Nun, daran, dass npm nicht installiert ist.
LG
pah
Zitat von: eberlrudi am 17 Mai 2015, 20:48:53
Da bekomme ich eine Fehlermeldung: bash: npm: Kommando nicht gefunden.
Woran liegt denn das? Ich benutze den Root-Terminal
npm ist nicht installiert!
Hat die Installation von nodejs geklappt (apt-get install nodejs - einfach mal "node -v" in der Kommandozeile eingeben)?
Normalerweise wird mit node.js auch automatisch npm mitinstalliert.
Ansonsten kannst du mal
apt-get install npm versuchen.
Kurz zusammengefasst:
versuche erst mal eine node.js und npm Installation hinzubekommen. Da gibt es sowas das sich Google nennt und einem dabei sehr behilflich ist.
Die Installation war erfolgreich wenn die beiden Befehle
node -v
npm -vjeweils eine Versionsnummer liefern.
Guten Abend,
leider bekomm ich beim Starten von fhem.js die folgende Fehlermeldung:
nodejs server.js
25.05.2015 20:36:00 listen for http requests disabled
25.05.2015 20:36:00 Server started: without SSL
25.05.2015 20:36:00 start connection to fhem server
25.05.2015 20:36:00 connected to fhem server for listen on changed values
undefined:31
Bye...
^
SyntaxError: Unexpected token B
at Object.parse (native)
at Socket.<anonymous> (/var/www/fhem.js/server.js:420:29)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
Sagt das jemanden was?
Gruß Jörn
Das selbe Problem habe ich leider auch:
stefan@cubietruck:/var/www/fhem.js > node server.js
25.05.2015 20:47:01 listen for http requests disabled
25.05.2015 20:47:01 Server started: without SSL
25.05.2015 20:47:01 start connection to fhem server
25.05.2015 20:47:01 connected to fhem server for listen on changed values
undefined:41
Bye...
^
SyntaxError: Unexpected token B
at Object.parse (native)
at Socket.<anonymous> (/var/www/fhem.js/server.js:420:29)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
stefan@cubietruck:/var/www/fhem.js >
Auf https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) gibt es eine neue Version von fhem.js mit der dieser Abbruch hoffentlich nicht mehr auftritt.
Bitte hier wieder melden falls damit das Problem gelöst ist. Selbstverständlich auch wenn es nicht gelöst ist oder wenn andere Probleme auftreten.
Zitat von: Werner Schäffer am 26 Mai 2015, 15:11:10
Auf https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) gibt es eine neue Version von fhem.js mit der dieser Abbruch hoffentlich nicht mehr auftritt.
Bitte hier wieder melden falls damit das Problem gelöst ist. Selbstverständlich auch wenn es nicht gelöst ist oder wenn andere Probleme auftreten.
Hallo Werner, damit hats bei mir funktioniert. Vielen vielen Dank!!!
Gruß Jörn
Hallo Jörn, funktioniert auch die Android Anwendung? Ich habe da bisher keinerlei Rückkopplung ob das jemand schon ausprobiert hat und ob es funktioniert. Gerne auch eine Einschätzung wie nützlich das erachtet wird und auch Verbesserungsvorschläge sind erwünscht.
Hallo Werner,
ja, im Groben schon. Ein paar Kinderkrankheiten gibt es aber noch. Zum Beispiel wenn ich die App konfiguriert habe und erneut öffne, kann ich nichts mehr ändern. Ich muss erst im Anwendungsmanager alle Daten der App löschen und alle neu eingeben. Wenn ich das Widget auf mein Tablet bringen möchte, dann klappt das erst beim 3. Mal. Bei den ersten beiden schmiert die App immer ab.
Im Moment werden alle ausgewählten Devices untereinander angezeigt. Kann man die irgendwie in mehreren Spalten anzeigen?
Ich habe übrigens ein Samsung SM-P900
VG Jörn
Es gibt eine neue Version der App auf https://github.com/winne27/FHEMSwitch/blob/master/bin/FHEMSwitch-release.apk (https://github.com/winne27/FHEMSwitch/blob/master/bin/FHEMSwitch-release.apk). Diese Version steht noch nicht im Google-Play-Store zur Verfügung. Es wird in dieser Version versucht die folgenden Probleme in den Griff zu bekommen:
Zitat von: jsloot am 26 Mai 2015, 18:07:57
Zum Beispiel wenn ich die App konfiguriert habe und erneut öffne, kann ich nichts mehr ändern. Ich muss erst im Anwendungsmanager alle Daten der App löschen und alle neu eingeben.
Grübel - aber ich habe mal einen Versuch gemacht in der neuen Version. Zumindest wird hoffentlich eine Fehlermeldung angezeigt. Aber wer weiß schon ...
Zitat von: jsloot am 26 Mai 2015, 18:07:57
Wenn ich das Widget auf mein Tablet bringen möchte, dann klappt das erst beim 3. Mal. Bei den ersten beiden schmiert die App immer ab.
Ich habe da einige Probleme bei der Anmeldung ohne Passwort beseitigt, hoffe ich zumindest.
Zitat von: jsloot am 26 Mai 2015, 18:07:57
Im Moment werden alle ausgewählten Devices untereinander angezeigt. Kann man die irgendwie in mehreren Spalten anzeigen?
Diese Anfrage habe ich kommen sehen, aber bisher nicht daran gearbeitet, weil es nicht einfach ist dies zu realisieren in einem Widget.
... und wie immer:
jegliche Rückmeldung erfreut mein Herz!
Hallo Werner,
sieht echt gut aus. Bisher keinerlei Kinderkrankheiten entdeckt. Und die alten sind ausgemerzt. Super Arbeit! Danke!
Es gibt jetzt eine Version 1.1.0 auf https://github.com/winne27/FHEMSwitch/raw/master/bin/FHEMSwitch-release.apk (https://github.com/winne27/FHEMSwitch/raw/master/bin/FHEMSwitch-release.apk) zum herunterladen. Ab morgen (Mittwoch 3.6.) dürfte sie auch im Google Play Store verfügbar sein.
Neu an dieser Version ist, dass man jetzt die Einheiten pro Kategorie in bis zu drei Spalten anordnen kann.
Hallo Werner,
super, werd ich gleich testen!
Hallo.
Was ist der Vorteil gegenüber AndFhem ?
Es kostet nichts...
Zitat von: satprofi am 02 Juni 2015, 17:07:13
Hallo.
Was ist der Vorteil gegenüber AndFhem ?
Ich sehe dies eher als Ergänzung: andFhem ist ein App mit der man den gesamten FHEM Server steuern und konfigurieren kann, vergleichbat zur Website von FHEM.
FHEMswitch ist keine vollständige App sondern ein Widget für den Startscreen um ausgewählte Schalter zu definieren auf die man dann schnell zugreifen kann und auf dem Startscreen auch über den Status einzelner FHEM Devices auf einen Blick informiert ist.
Hmm, FHEMswitch läuft soweit mal (wenn ichs händisch mit "node server.js" starte).
Allerdings habe ich noch Probleme mit dem automatisierten starten.
1) fhem.js nach /etc/init.d kopiert
2) chmod +x fhem.js gemacht
3) service fhem.js start
bringt folgendes:
stefan@cubietruck:/etc/init.d > 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
stefan@cubietruck:/etc/init.d > service fhem.js status
info: No forever processes running
stefan@cubietruck:/etc/init.d >
Irgendeine Idee, warum das nicht startet?
lg, Ici
Versuch mal folgendes:
cd /var/www/fhem.js
forever server.js
Was passiert dabei?
So gehts komischerweise.......
stefan@cubietruck:/etc/init.d > cd /var/www/fhem.js/
stefan@cubietruck:/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
05.06.2015 12:53:39 listen for http requests disabled
05.06.2015 12:53:39 Server started: without SSL
05.06.2015 12:53:46 start connection to fhem server
05.06.2015 12:53:46 connected to fhem server for listen on changed values
Ach, noch ein Verbesserungsvorschlag:
Wenn die Displaygröße unter einem gewissen Wert ist, evtl. fix auf Queranzeige umstellen.
Am Handy (welches ja nochmalerweise auf portrait läuft), wird die Oberfläche nicht skaliert.
lg, Ici
Schau mal ob die beiden Verzeichnisse
/var/log/fhem
/var/run/fhem
existieren. Wenn nein leg sie an und starte den Service nochmals.
Strange......Einerseits liefert zwar ein
stefan@cubietruck:/var/www/fhem.js > service fhem.js status
info: No forever processes running
stefan@cubietruck:/var/www/fhem.js >
Andererseits läuft der service aber nun.....
Na gut, soll mir recht sein....Der status interessiert mich normalerweise eh nicht, solangs läuft...
Zitat von: Icinger am 05 Juni 2015, 12:58:42
Ach, noch ein Verbesserungsvorschlag:
Wenn die Displaygröße unter einem gewissen Wert ist, evtl. fix auf Queranzeige umstellen.
Am Handy (welches ja nochmalerweise auf portrait läuft), wird die Oberfläche nicht skaliert.
lg, Ici
Danke für den Hinweis. Ich habe nur ein Tablet und kann auf einem Handy gar nicht testen.
Nur das ganze ist nicht so einfach oder geht gar nicht. Der Hauptgrund: fhem.js ist ein Widget und keine App(lication)!
So ist es wahrscheinlich nicht möglich dass ein Widget die Orientation festlegt für den gesamten Homescreen.
Außerdem kann man bei einem Widget nur Minimalgrößen angeben und programmmäßig die nicht ändern. Der Benutzer muss die Größen immer selbst anpassen. (Antippen und halten bis das Widget sich bewegen lässt, dann loslassen und man hat vier Punkte zum Anpassen der Größe).
Realisierbar ist vermutlich dass ein unterschiedliches Layout für Portrait und Landscape definiert wird, z.B. im Portrait immer alles untereinander. Darüber mache ich mich mal noch schlau und überleg mir eine Lösung.
Es geht nicht ums widget, das ist mir klar, dass das nicht so einfach ist.....
Ich meinte die Oberfläche für die Einstellungen....
Siehe Screenshot:
Zitat von: Icinger am 05 Juni 2015, 13:35:01
Es geht nicht ums widget, das ist mir klar, dass das nicht so einfach ist.....
Ich meinte die Oberfläche für die Einstellungen....
ok - das geht glaube ich ziemlich einfach
Was noch toll wäre ist, wenn man Buttons mit eigenen FHEM-Befehlen anlegen könnte.
Würde zB gern ein "set device on-for-timer 1200" senden....
lg, Ici
Zitat von: Icinger am 06 Juni 2015, 11:04:55
Was noch toll wäre ist, wenn man Buttons mit eigenen FHEM-Befehlen anlegen könnte.
Würde zB gern ein "set device on-for-timer 1200" senden....
Das wäre toll, werde ich aber kurzfristig nicht realisieren.
Als Workarround kann man aber auch eine LightScene mit dieser einen Device und einer Scene mit diesem Befehl anlegen. Das ist zwar etwas umständlich würde aber funktionieren.
Schade......Muss ich mich wohl oder übel mal in das Lightscene einlesen
Hmm, leider ist Lightscene auch keine Alternative :(
Wenn ich nähmlich ein paar normale Devices, Lightscene und noch 2, 3 Werte im Widget haben will, sind das dann 3 Spalten. Am Handydisplay passen aber nur 2 Spalten, also sehe ich die Werte danach nicht mehr.
lg, Ici
Es gibt eine neue Version von FHEMswitch. Sie ist noch nicht auf Google Play Store verfügbar aber kann heruntergeladen werden.:
Download Version 1.3 FHEMswitch (http://"https://github.com/winne27/FHEMSwitch/blob/master/bin/FHEMSwitch-release.apk?raw=true")
Folgende Neuerungen sind dort enthalten:
- ist der Bildschirm zu schmal wird die Konfiguration automatisch im Querformat angezeigt
- kleinere Anpassungen im Ablauf und im Aussehen der Widget
konfigurierbares Layout - seperat für Landscape und Portrait stehen folgende Layouts zur Auswahl:
- nebeneinander
alle Blöcke werden nebeneinander angezeigt. Dabei kann man für Schalter und Werte bis zu drei Spalten definieren - untereinander
alles wird untereinander angezeigt - Spalten für Schalter und Werte werden ignoriert - gemischt
alle drei Blöcke (Schalter, Lightscenes, Werte) werden in 2 Spalten jeweils untereinander angezeigt. Der Block mit den meisten Einträgen steht in Spalte 1 und die beiden anderen Blöcke in Spalte 2
Morgen stell ich die Version dann in den Play Store, falls nicht ernsthafte Probleme gemeldet werden.
@icinger
Damit können auch alle drei Blöcke in 2 Spalten auf dem Handy im Hochformat angezeigt werden!
Super, danke, werd ich mir morgen dann ansehen
hallo,
ich versuche gerade nodejs zum laufen zu bekommen, jedoch will er nicht zum telnet server connecten:
09.06.2015 10:40:05 error: telnet connection for getting values failed - retry in 10 secs
ich habe in der params.js den port auf 7073 geändert, da ich noch einen zweiten telnet server mit passwort habe.
wenn ich zum port 7073 von der console aus connecte funktioniert alles:
pi@pi4 /var/www/fhem.js $ telnet 127.0.0.1 7073
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SecurityCheck:
telnetPort1 has no password/globalpassword attribute.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.
fhem>
Zitat von: wurststulle am 09 Juni 2015, 10:46:06
ich habe in der params.js den port auf 7073 geändert, da ich noch einen zweiten telnet server mit passwort habe.
fhem.js kann nur mit einem fhem Server
ohne telnet passwort kommunizieren.
der server auf 7073 läuft ohne passwort
define telnetPort1 telnet 7073 global
versuch mal
define telnetPort1 telnet 7073 localhost
Steht in der params.js tatsächlich 7073?
Wurde server.js nach der Änderung neu gestartet?
in der params.js steht wirklich 7073
exports.fhemPort = 7073;
ich lasse den server nur mit
sudo nodejs server.js
laufen
Hast das mal versucht in der fhem.cfg:
define telnetPort1 telnet 7073 localhost
localhost statt global : wenn ich mich richtig erinnere hat das bei mir einst geholfen.
Zitat
define telnetPort1 telnet 127.0.0.1:7073
hat nicht geholfen
Ich hatte geschrieben
define telnetPort1 telnet 7073 localhost
Mach das mal bitte genau so und nicht "define telnetPort1 telnet 127.0.0.1:7073"
Zusätzlich schalte mal die MOTD ab die da bei dir kommt.
die syntax für telnet ist anders
Usage: define telnet { [IPV6:] [global] | [IPV6:]serverName:port } Please define telnetPort1 first
das entfernen der MOTD hilft leider nicht
ok die Syntax ist anders, aber dort steht servername oder IPV6
also mach es mal mit localhost anstatt 127.0.0.1, denn letzters ist weder ein servername noch eine IPV6
das funktioniert noch weniger. nun kann ich nicht mehr per telnet connecten
define telnetPort1 telnet localhost:7073
Jetzt habe ich doch mal in meine fhem.cfg geschaut. Dort steht:
define telnetPort telnet 7072
attr telnetPort SSL 1
Damit funktioniert es auch schon immer. Vielleicht fehlt bei dir das SSL und es liegt daran.
mit
attr telnetPort SSL 1
scheint es besser zu funktionieren. jedoch hab ich natürlich die
key: '/etc/ssl/private/bundle/ssl.key',
cert: '/etc/ssl/private/bundle/allcert.pem',
nicht.
pi@pi4 /var/www/fhem.js $ sudo nodejs server.js
fs.js:240
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/etc/ssl/private/bundle/ssl.key'
at Object.openSync (fs.js:240:18)
at Object.readFileSync (fs.js:128:15)
at Object.<anonymous> (/var/www/fhem.js/server.js:21:15)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:32)
at Function._load (module.js:311:12)
at Array.0 (module.js:484:10)
at EventEmitter._tickCallback (node.js:190:39)
was muss ich da erstellen?
in params.js bitte
exports.useSSL = false
belassen. Diese Option bezieht sich nur auf die Websocket-Verbindung zum Client und nicht auf die Telnet-Verbindung!
attr telnetPort SSL 1
alleine ändert leider nichts. bekomme immernoch
pi@pi4 /var/www/fhem.js $ sudo nodejs server.js
09.06.2015 17:09:00 listen for http requests disabled
09.06.2015 17:09:00 Server started: without SSL
09.06.2015 17:09:00 error: telnet connection for getting values failed - retry in 10 secs
Zitat von: Werner Schäffer am 08 Juni 2015, 19:26:50
Es gibt eine neue Version von FHEMswitch. Sie ist noch nicht auf Google Play Store verfügbar aber kann heruntergeladen werden.:
Download Version 1.3 FHEMswitch (http://"https://github.com/winne27/FHEMSwitch/blob/master/bin/FHEMSwitch-release.apk?raw=true")
Folgende Neuerungen sind dort enthalten:
- ist der Bildschirm zu schmal wird die Konfiguration automatisch im Querformat angezeigt
- kleinere Anpassungen im Ablauf und im Aussehen der Widget
konfigurierbares Layout - seperat für Landscape und Portrait stehen folgende Layouts zur Auswahl:
- nebeneinander
alle Blöcke werden nebeneinander angezeigt. Dabei kann man für Schalter und Werte bis zu drei Spalten definieren - untereinander
alles wird untereinander angezeigt - Spalten für Schalter und Werte werden ignoriert - gemischt
alle drei Blöcke (Schalter, Lightscenes, Werte) werden in 2 Spalten jeweils untereinander angezeigt. Der Block mit den meisten Einträgen steht in Spalte 1 und die beiden anderen Blöcke in Spalte 2
Morgen stell ich die Version dann in den Play Store, falls nicht ernsthafte Probleme gemeldet werden.
Aus morgen wurde eine Woche, aber jetzt ist die neue Version im Play Store verfügbar.
Fuktioniert gut bei mir.
Was mir noch aufgefallen ist: Manchmal flackert das Widget am Anfang für 1 bis 2 sekunden ziemlich. Sieht aus, als ob die Daten mehrmals schnell hintereinander abgerufen werden würden.
Ansonsten super!
lg, Ici
Zitat von: Icinger am 13 Juni 2015, 06:17:48
Was mir noch aufgefallen ist: Manchmal flackert das Widget am Anfang für 1 bis 2 sekunden ziemlich. Sieht aus, als ob die Daten mehrmals schnell hintereinander abgerufen werden würden.
das hat mindestens zwei Ursachen:
1. es ist ein Default-Layout vorhanden, dass dann per Programm in das Gewünschte geändert wird (nebeneinander, untereinander, ...). Die einzelnen Blöcke im Layout sind durch sogenannte ListViews realisiert. Für jede ListView ist ein eigener Service notwendig für die Darstellung. Jegliche Änderung des Layouts und auch der Daten in einem Block muss diesem Service mitgeteilt werden. Wann der Service die Änderung dann anzeigt liegt im Ermessen des Betriebssystems. Dadurch kann es schon mal zu einem "Flackern" kommen, da ja unter Umständen meherer Blöcke durch die entsprechenden Services asynchron geändert werden..
2. Nach dem Start des Programms wird nach 2 Sekunden ein Update an die Services geschickt, was unter Umständen auch als Flackern wahrgenommen werden kann. Dies wurde so programmiert, da sonst manchmal gar nichts angezeigt wird.
Hi,
bei mir läuft FHEM unter Windows. Es gibt ja einen node.js Installer für Win.
Habe ich Chancen, FHEMswitch damit ans laufen zu bekommen?
Chris
Zitat von: cberl am 13 Juni 2015, 19:54:11
bei mir läuft FHEM unter Windows. Es gibt ja einen node.js Installer für Win.
Habe ich Chancen, FHEMswitch damit ans laufen zu bekommen?
Gute Frage - nächste Frage
bzw.
ich habe kein Ahnung - aber das klingt interessant
versuchen bitte! ich helfe gerne dabei!
wer die gleichen probleme hat wie ich und keine verbindung zum fhem via telnet herstellen kann, sollte eine andere version von nodejs versuchen.
bei mir funktioniert version 0.10.28.
viele grüße
Im Google Play Store ist jetzt die neue Version 2.0.0 verfügbar.
Es gibt jetzt eine neue Kategorie "Freie Befehle". Damit ist es möglich beliebige FHEM -Befehle einem Button zuzuweisen. In der Konfiguration findet man diese Möglichkeit ganz unten.
Darüberhinaus gibt es kleinere Anpassungen des Designs, sowie Verbesserung bei der Steuerung der Verbindung zum Server.
Irgendwie gehts seit neuestem bei mir nicht.
Jedes mal, wenn das Widget angezeigt wird oder ich in FHEMSwitch auf "FHEM units einlesen" klicke, stürtzt FHEMSwitch komplett ab.
Hab schon ned node.js-Server neu gestartet, hat aber auch keine Besserung gebracht.
Irgendeine Idee, was da schuld sein kann?
lg, Ici
Zitat von: Icinger am 26 Juni 2015, 19:37:26
Irgendwie gehts seit neuestem bei mir nicht.
Jedes mal, wenn das Widget angezeigt wird oder ich in FHEMSwitch auf "FHEM units einlesen" klicke, stürtzt FHEMSwitch komplett ab.
Hab schon ned node.js-Server neu gestartet, hat aber auch keine Besserung gebracht.
Irgendeine Idee, was da schuld sein kann?
lg, Ici
oh f....
ich glaube da hilft nur deinstallieren und neu installieren. Dann sind allerdings auch alle Einstellungen weg, leider!?
Es könnte daran liegen dass die neue Version eine anderer Struktur des Config-Files hat.
Bitte berichten !
Yep, daran lags.....
Allerdings werden mir die Lightscenes jetzt nicht angezeigt, obwohl
1) genug Platz und
2) auf "Gemischt" eingestellt ist.
Zitat von: Icinger am 26 Juni 2015, 20:36:41
Allerdings werden mir die Lightscenes jetzt nicht angezeigt, obwohl
1) genug Platz und
2) auf "Gemischt" eingestellt ist.
und was ist mit den Lightscenes wenn du auf nebeneinander oder untereinander einstellst?
Habs jetzt noch ein zweites mal de- und neuinstalliert, jetzt gehts wieder.....Keine Ahnung, was da vorher war.
Hallo zusammen,
ich bin Android-Neuling, sonst nur i-Devices. Ich habe aber seit Kurzem einen FireTV Stick. Macht es Sinn darauf FHEMSwitch zu installieren? Hat das jemand am Laufen?
Gruß
Veit
Zitat von: Werner Schäffer am 17 Mai 2015, 13:29:06
Step-by-Step Anleitung für die Installation von fhem.js unter Debian (Ubuntu, ...):
Prüfen ob in fhem telnet ohne Passwort aktiviert ist.
Auf welchem Port lauscht fhem - Standard ist 7072
Als user root folgende Kommandos ausführen:
apt-get install nodejs
npm install -g socket.io
npm install -g mysql
npm install -g forever (optional, aber sinnvoll um fhem.js als Service zu starten)
mkdir -p /var/www/fhem.js (es kann auch ein beliebiges anderes Verzeichnis benutzt werden)
alle Files *.js von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) in dieses Verzeichnis kopieren.
params.js prüfen ob alles richtig ist. (falls der telnet-Port 7072 ist, muss man erstmal nichts ändern dort)
mkdir -p /var/log/fhem
cd /var/www/fhem.js
node server.js
Damit wurde fhem.js gestartet und auf der Konsole müssten Meldungen erscheinen.
Beenden kann man fhem.js mit Strg+c
Will man fhem.js dauerhaft am Laufen halten empfiehlt es sich einen Service mit Hilfe von forever einzurichten. Dazu von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) /etc/init.d/fhem.js in das Verzeichnis /etc/init.d kopieren.
Mit
service fhem.js start
service fhem.js stop
kann man dann fhem.js steuern. Soll der Start von fhem.js noch automatisiert werden ist noch folgendes auszuführen:
update-rc.d fhem.js defaults
Ich habe alles so durchgeführt wie oben beschrieben. Beim Starten von node server.js bekomme ich folgende Fehlermeldung:
module.js:338
throw err;
^
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/var/www/fhem.js/server.js:3:15)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
Was läuft hier Falsch ?
Bitte um Hilfe. Danke
Na, steht doch eh in der ersten Zeile:
Cannot find module 'socket.io'
einfach ein cpan socket.io
sollte helfen.
Warum sollte ein Perl-Installer helfen, wenn der node.js Server ein Problem hat?
Upps, stimmt ja....
So sollts sein:
npm install -g socket.io
oder socket.io ist schon installiert, aber im falschen pfad....
Zitat von: Icinger am 05 Juli 2015, 16:21:07
Upps, stimmt ja....
So sollts sein:
npm install -g socket.io
oder socket.io ist schon installiert, aber im falschen pfad....
...hab ich natürlich schon wie beschrieben durchgeführt und öfters probiert, bevor ich hier anfrage. Er hat auch seine Installationsroutinen angezeigt und durchgeführt. Welcher ist den der richtige Pfad, also wo muß das socket.io denn hin ?
Erst mal sehen, wo sich socket.io hininstalliert hat...
Ok...er installiert das socket.io in flogenden Pfad :/usr/local/lib/node_modules/socket.io
Ist es da richtig ?
Habe mir das ganze mal angeschaut,
bei mir bleibt es direkt bei
apt-get install nodejs
E: Unable to locate package nodejs
hängen!
Zitat von: Werner Schäffer am 17 Mai 2015, 13:29:06
Step-by-Step Anleitung für die Installation von fhem.js unter Debian (Ubuntu, ...):
Prüfen ob in fhem telnet ohne Passwort aktiviert ist.
Auf welchem Port lauscht fhem - Standard ist 7072
Als user root folgende Kommandos ausführen:
apt-get install nodejs
npm install -g socket.io
npm install -g mysql
npm install -g forever (optional, aber sinnvoll um fhem.js als Service zu starten)
mkdir -p /var/www/fhem.js (es kann auch ein beliebiges anderes Verzeichnis benutzt werden)
alle Files *.js von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) in dieses Verzeichnis kopieren.
params.js prüfen ob alles richtig ist. (falls der telnet-Port 7072 ist, muss man erstmal nichts ändern dort)
mkdir -p /var/log/fhem
cd /var/www/fhem.js
node server.js
Damit wurde fhem.js gestartet und auf der Konsole müssten Meldungen erscheinen.
Beenden kann man fhem.js mit Strg+c
Will man fhem.js dauerhaft am Laufen halten empfiehlt es sich einen Service mit Hilfe von forever einzurichten. Dazu von https://github.com/winne27/fhem.js (https://github.com/winne27/fhem.js) /etc/init.d/fhem.js in das Verzeichnis /etc/init.d kopieren.
Mit
service fhem.js start
service fhem.js stop
kann man dann fhem.js steuern. Soll der Start von fhem.js noch automatisiert werden ist noch folgendes auszuführen:
update-rc.d fhem.js defaults
Hallo habe leider ein problem. Ich habe alles so installiert wie beschrieben aber wenn ich node server.js eingebe und mit Eingabe bestätige bekomme ich folgende meldung.
root@raspberrypi:~# cd /var/www/fhem.js
root@raspberrypi:/var/www/fhem.js# node server.js
module.js:340
throw err;
^
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/www/fhem.js/server.js:3:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
root@raspberrypi:/var/www/fhem
Wo könnte der Fehler liegen?
Zusatz Info bei der Installation von socket.io kamen diese meldungen:
> utf-8-validate@1.1.0 install /usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.24"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate/.node-gyp"
gyp http GET http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
Habe es dann so installiert:
sudo npm install --unsafe-perm --verbose -g socket.io
Um die Berechtigungen von nobody auf root zu bekommen
das gleiche bei forever und mysql
Aber kein Erfolg
Habe jetzt noch was gelesen das es an node liegt bzw an einem Bug der jetzt erst auftaucht.
Nächster versuch ist die Module auch in den var/www/fhem.js Ordner zu installieren
Bin mal gespannt
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ß
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?
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
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?
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)
meine letzte Antwort war vielleicht etwas vorschnell - ich muss darüber noch etwas nachdenken - aber heute nicht mehr
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
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.
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
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
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.
Auf dem Server https://github.com/winne27/fhem.js (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.
Okay werde ich versuchen Danke dir schonmal
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
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?
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 $
/var/log/fhem/fhem.js
und nicht
/var/www/log/fhem/fhem.js
Sorry meinte ich ja
Die Datei habe ich Grade erst erstellt
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
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:~#
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 (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
Vielen Dank für deine Hilfe.
Jetzt hat es sofort funktioniert. Vielleicht sollte man das in der Startpost einpflegen.
Zitat von: marty29ak am 18 Dezember 2015, 16:05:13
...
Vielleicht sollte man das in der Startpost einpflegen.
Da bin ich gerade dabei.
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.
Leider stürzt die App heufig ab oder zeigt garni an oder hängt sich auf .... leider sonst ne super sache
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.
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
Was liefern die beiden Befehle:
npm -v
node -v
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
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
Danke erstmal für die schnelle Rückmeldung.
Das Ergebnis der Abfrage ist:
root@bananapi ~ # apt-cache policy libc6
libc6:
Installiert: 2.13-38+deb7u8
Installationskandidat: 2.13-38+deb7u8
Versionstabelle:
*** 2.13-38+deb7u8 0
500 http://ftp.de.debian.org/debian/ wheezy/main armhf Packages
500 http://security.debian.org/ wheezy/updates/main armhf Packages
100 /var/lib/dpkg/status
Die Version ist dann wohl zu alt. Und nun?
Ich habe vorhin gesehen, dass es für Bananian mittlerweile eine 8er (Jessie) gibt. Soll ich das mal ausprobieren?
Zitat von: RockFan am 09 Januar 2016, 19:17:36
Die Version ist dann wohl zu alt. Und nun?
Ich habe vorhin gesehen, dass es für Bananian mittlerweile eine 8er (Jessie) gibt. Soll ich das mal ausprobieren?
Ja mach das, das wollte ich auch vorschlagen. Als Anleitung schau z.B. hier:
https://www.canox.net/2015/03/pi-debian-wheezy-auf-jessie-aktualisieren/ (https://www.canox.net/2015/03/pi-debian-wheezy-auf-jessie-aktualisieren/)
Ich habe das auch schon gemacht und meine Banane hatte keine Probleme nach dem dist-upgrade.
Aber:bei so einem dist-upgrade kann auch vieles schief gehen und manche Dinge funktionieren anschließend nicht mehr.
Du musst du selbst entscheiden ob du dieses Risiko eingehen willst.
Mein Empfehlung:Versuchs
Bin Deiner Empfehlung gefolgt. Das hat auch soweit ganz gut funktioniert. FHEM scheint auch wie vorher zu laufen. Das Versionsproblem mit libc6 hat sich auch gelöst.
Am Ziel bin ich aber noch nicht, denn es bleibt leider noch ein Versionsproblem mit libstdc++6:
root@bananapi ~ # apt-cache policy libc6
libc6:
Installiert: 2.19-18+deb8u1
Installationskandidat: 2.19-18+deb8u1
Versionstabelle:
*** 2.19-18+deb8u1 0
500 http://ftp.de.debian.org/debian/ jessie/main armhf Packages
100 /var/lib/dpkg/status
root@bananapi ~ # apt-get install -y nodejs
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: libstdc++6 (>= 5.2) aber 4.9.2-10 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Mit
apt-cache policy libstdc++6
komme ich zum Ergebnis
libstdc++6:
Installiert: 4.9.2-10
Installationskandidat: 4.9.2-10
Versionstabelle:
*** 4.9.2-10 0
500 http://ftp.de.debian.org/debian/ jessie/main armhf Packages
100 /var/lib/dpkg/status
Wie bekomme ich nun diese Bibliothek noch auf die benötigte Version?
Hallo nochmal ;)
Ich bin mittlerweile auf einen Post hier im Forum gestoßen (http://forum.fhem.de/index.php/topic,32652.msg382408.html#msg382408 (http://forum.fhem.de/index.php/topic,32652.msg382408.html#msg382408)), der mich tatsächlich über die grundlegende Installations- bzw. Versiondproblematik hinweggebracht hat :)
Seltsamerweise landen bei mir aber alle Installationen über npm im Verzeichnis /root/local/lib/node_modules/. Somit kann ich aber immerhin node server.js im Verzeichnis /root/local/lib/node_modules/fhem.js ausführen.
Mein erster Versuch mit FHEMSwitch (auf einem LG G3 mit Lollipop) läd immerhin alle FHEM Komponenten in die Übersicht. Versuchsweise habe ich dann mal 2 Schalter angehakt und als Widget auf die Oberfläche gebracht. Diese werden auch angezeigt. Aber machen kann ich damit leider nichts. Ich bekomme aber auch eine Fehlermeldung in der Shell-Ausgabe:
root@bananapi ~/local/lib/node_modules/fhem.js # node server.js
17.01.2016 16:29:13 listen for http requests disabled
17.01.2016 16:29:13 Server started: without SSL
17.01.2016 16:29:13 start connection to fhem server
17.01.2016 16:29:13 connected to fhem server for listen on changed values
17.01.2016 16:29:35 client connected
17.01.2016 16:30:46 disconnected: client namespace disconnect
17.01.2016 16:31:21 client connected
17.01.2016 16:31:29 disconnected: client namespace disconnect
17.01.2016 16:31:34 client connected
Missing error handler on `socket`.
TypeError: socket.rooms.indexOf is not a function
at Socket.<anonymous> (/root/local/lib/node_modules/fhem.js/server.js:138:23)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Socket.onevent (/root/local/lib/node_modules/fhem.js/node_modules/socket.io/lib/socket.js:335:8)
at Socket.onpacket (/root/local/lib/node_modules/fhem.js/node_modules/socket.io/lib/socket.js:295:12)
at Client.ondecoded (/root/local/lib/node_modules/fhem.js/node_modules/socket.io/lib/client.js:193:14)
at Decoder.Emitter.emit (/root/local/lib/node_modules/fhem.js/node_modules/component-emitter/index.js:134:20)
at Decoder.add (/root/local/lib/node_modules/fhem.js/node_modules/socket.io-parser/index.js:247:12)
at Client.ondata (/root/local/lib/node_modules/fhem.js/node_modules/socket.io/lib/client.js:175:18)
at emitOne (events.js:77:13)
17.01.2016 16:31:34 disconnected: client error
Parallel habe ich mich dann auch noch an der Geschichte mit forever versucht. Mit meinen bescheidenen Kenntnissen darüber habe ich mir nach ersten Fehlschlägen gedacht, dass es an den Verzeichnissen scheitert und habe in der /etc/init.d/fhem.js mal die Aufrufpfade für fhem.js und forever auf /root/local/lib/node_modules/fhem.js/bin bzw. /root/local/lib/node_modules/forever/bin angepasst. Das hat mich aber leider nicht wirklich weiter gebracht:
root@bananapi ~ # service fhem.js start
Job for fhem.js.service failed. See 'systemctl status fhem.js.service' and 'journalctl -xn' for details.
1 root@bananapi ~ # systemctl status fhem.js.service :(
● fhem.js.service - LSB: fhem.js init.d example
Loaded: loaded (/etc/init.d/fhem.js)
Active: failed (Result: exit-code) since So 2016-01-17 16:03:59 CET; 7s ago
Process: 823 ExecStart=/etc/init.d/fhem.js start (code=exited, status=127)
Jan 17 16:03:58 bananapi fhem.js[823]: /etc/init.d/fhem.js: Zeile 16: //export: Datei oder Verze...nden
Jan 17 16:03:58 bananapi fhem.js[823]: Starting fhem.js node instance:
Jan 17 16:03:58 bananapi fhem.js[823]: /root/local/lib/node_modules/fhem.js/bin/fhem.js: Zeile 3...den.
Jan 17 16:03:59 bananapi systemd[1]: fhem.js.service: control process exited, code=exited status=127
Jan 17 16:03:59 bananapi systemd[1]: Failed to start LSB: fhem.js init.d example.
Jan 17 16:03:59 bananapi systemd[1]: Unit fhem.js.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.
Für Tipps von den Linux-Experten wäre ich natürlich sehr dankbar. Aber bitte keine Hektik; ich habe oft auch tagelang keine Zeit zum rumprobieren ::)
Hi,
ich hab das Problem das mir die App alles auslesen kann aber sobald ich das widget speichere wird mir nur der Name des Gerätes auf dem Screen angezeigt.
(http://www2.pic-upload.de/thumb/29512907/Screenshot_20160122-215042.png) (http://www.pic-upload.de/view-29512907/Screenshot_20160122-215042.png.html)
(http://www2.pic-upload.de/thumb/29512876/Screenshot_20160122-215102.png) (http://www.pic-upload.de/view-29512876/Screenshot_20160122-215102.png.html)
Hat jemand eine Idee?
Hallo Phili,
habe app und fhem.js heute auch mal zum Ausprobieren installiert und habe das gleiche Problem.
Im log steht
Missing error handler on `socket`.
TypeError: socket.rooms.indexOf is not a function
at Socket.<anonymous> (/usr/lib/node_modules/fhem.js/server.js:138:23)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Socket.onevent (/usr/lib/node_modules/fhem.js/node_modules/socket.io/lib/socket.js:335:8)
at Socket.onpacket (/usr/lib/node_modules/fhem.js/node_modules/socket.io/lib/socket.js:295:12)
at Client.ondecoded (/usr/lib/node_modules/fhem.js/node_modules/socket.io/lib/client.js:193:14)
at Decoder.Emitter.emit (/usr/lib/node_modules/fhem.js/node_modules/socket.io/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)
at Decoder.add (/usr/lib/node_modules/fhem.js/node_modules/socket.io/node_modules/socket.io-parser/index.js:247:12)
at Client.ondata (/usr/lib/node_modules/fhem.js/node_modules/socket.io/lib/client.js:175:18)
at emitOne (events.js:77:13)
Bin auch etwas ratlos.
Grüße, gadget
Habe auch viele Probleme mit dem Widget.
Entweder es wird garni angezeigt oder ein Fenster das keine Verbindung zum Server besteht oder es wird alles angezeigt aber der Status stimmt nicht bzw ist grau und läßt sich nix schalten.
Anbei ein paar screenshots
Zitat von: RockFan am 17 Januar 2016, 16:58:31
...
Seltsamerweise landen bei mir aber alle Installationen über npm im Verzeichnis /root/local/lib/node_modules/. Somit kann ich aber immerhin node server.js im Verzeichnis /root/local/lib/node_modules/fhem.js ausführen.
...
npm installiert per default immer in das Home-Verzeichnis des angemeldeten Benutzers. Um eine globale Installation in /usr/lib/node_modules zu gewährleisten muss die Option -g angegeben werden.
npm install -g wasauchimmer
Es sind hier in letzter Zeit einige Fehler aufgelaufen. Ich arbeite zur Zeit an einer neuen Version der App. Es werden neuere Bibliotheken für die Kommunikation zum Server (websockets) benutzt, bereits bekannte Fehler ausgemerzt und alles was ich hier lese versuche ich zu berücksichtigen.
Eine neue Version kommt in wenigen Tagen.
Das hört sich super an Werner denn eigentlich bin ich ein Riesen Fan von deiner app/widget
Zitat von: Phili am 22 Januar 2016, 22:03:14
Hi,
ich hab das Problem das mir die App alles auslesen kann aber sobald ich das widget speichere wird mir nur der Name des Gerätes auf dem Screen angezeigt.
(http://www2.pic-upload.de/thumb/29512907/Screenshot_20160122-215042.png) (http://www.pic-upload.de/view-29512907/Screenshot_20160122-215042.png.html)
(http://www2.pic-upload.de/thumb/29512876/Screenshot_20160122-215102.png) (http://www.pic-upload.de/view-29512876/Screenshot_20160122-215102.png.html)
Hat jemand eine Idee?
Schon mal versucht das Widget zu vergrößern. Dazu so lange auf das Widget drücken bis es beweglich wird. Dann loslassen und es erscheinen vier weiße Kreise mit denen man die Größe verändern kann.
ja ;-)
Zitat von: Phili am 22 Januar 2016, 22:03:14
Hi,
ich hab das Problem das mir die App alles auslesen kann aber sobald ich das widget speichere wird mir nur der Name des Gerätes auf dem Screen angezeigt.
(http://www2.pic-upload.de/thumb/29512907/Screenshot_20160122-215042.png) (http://www.pic-upload.de/view-29512907/Screenshot_20160122-215042.png.html)
(http://www2.pic-upload.de/thumb/29512876/Screenshot_20160122-215102.png) (http://www.pic-upload.de/view-29512876/Screenshot_20160122-215102.png.html)ein
Du hast doch nur Messwerte ausgewählt, du müsstest unter Schalter auch etwas wählen können, ähnliches Problem habe ich auch, bei mir werden nicht alle Schalter angezeigt!
Hat jemand eine Idee?
Geht in Antwort #115 vielleicht etwas unter:
Falls das Widget irgendwie abgeschnitten erscheint:
Schon mal versucht das Widget zu vergrößern. Dazu so lange auf das Widget drücken bis es beweglich wird. Dann loslassen und es erscheinen vier weiße Kreise mit denen man die Größe verändern kann.
Es gibt eine neue Version 2.1.6 von fhem.js:
- kleinere Bugfixes
- übertrages Datenvolumen bei gewissen Abfragen etwas reduziert
Den Update kann man installieren mit dem Shell command
npm update -g fhem.js
Wer irgendwelche Bugs entdeckt bitte hier oder auf https://github.com/winne27/fhem.js/issues (https://github.com/winne27/fhem.js/issues) berichten.
Eine neue Version des Widgets erscheint diese Woche noch in GooglePlay.
Seit Kurzem gibt es im Google PlayStore die neue Version 2.1.1 von FHEMswitch.
Was ist neu:
- das Layout des Widgets ist etwas platzsparender
- die Konfiguration auf Smartphones mit kleinem Display wird nicht mehr abgeschnitten
- für die Kommunikation zum Server werden neuere Java-Bibliotheken eingesetzt
- die Verbindungsstabilität wurde erhöht
- die Reaktion auf Ereignisse wie Ein/Ausschalten, Drehen und Netzwerkstatus sind verbessert
Ist dem nicht so lass ich mich hier gerne (knirsch) eines besseren belehren.
Kurz gesagt:
gibt es Probleme:
einfach hier posten
Super sache das Widget läuft jetzt viel stabiler, keine Ausfälle mehr oder ein leeres Fenster.
Super sache
Habe da noch ne frage.
Ich muss nach jedem Neustart des Raspberrys
Service fhem.js start
In die telnet commando Zeile schreiben um es nutzen zu können geht das nicht auch automatisch?
Zitat von: Tueftler1983 am 27 März 2016, 22:06:36
Habe da noch ne frage.
Ich muss nach jedem Neustart des Raspberrys
Service fhem.js start
In die telnet commando Zeile schreiben um es nutzen zu können geht das nicht auch automatisch?
Dafür gibt es Suchmaschinen:
versuch es einfach mal mit den Suchbegriffen
Debian (oder Ubuntu oder ...) Service autostart
Hallo zusammen nachdem mein FhemServer komplett neu installiert werden mußte und keines der Backups funktionierte stehe ich jetzt bei der Installation von fhem.js auf dem schlauch. Bin nach Anleitung vorgegangen aber bekomme folgende Fehler.
root@fhemserver:~# service fhem.js start
fhem.js: unrecognized service
root@fhemserver:~# cd /var/www/fhem.js
root@fhemserver:/var/www/fhem.js# node server.js
module.js:338
throw err;
^
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:286:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/var/www/fhem.js/server.js:6:15)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:475:10)
root@fhemserver:/var/www/fhem.js#
Jemand ne Idee woran es liegt?
Ich bin komplett Schritt für schritt nach der Anleitung auf grid vorgegangen aber ohne Erfolg
Kann jemand mit der Meldung etwas anfangen?
pi@fhemserver ~ $ service fhem.js start
Starting fhem.js node instance:
/etc/init.d/fhem.js: /usr/bin/fhem.js: /bin/bash^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden
Frage von Tueftler1983:
Gibt es eine Möglichkeit Dummys in FhemShwitch zu schalten?
Habe einen Dummy für die rgb Beleuchtung mit dem ich sowohl die Farben als auch an und aus schalte der Dummy hat eine setlist.
Antwort:
Sollte dieses Dummy nicht auftauchen in der Liste wenn man FHEMswitch-Config aufruft, gibt es dort ganz unten die Möglichkeit beliebige fhem-Befehle anzulegen.
Ja die Funktion kenne ich aber dann muss ich pro Befehl (ON,OFF,RED,GREEN,BLUE,PURPEL.....)
Einen neuen Befehl in FhemShwitch anlegen.
Das schönste wäre wenn ich auf z.b. RGB_Licht klicken könnte und dann eine SetList aufgehen würde
Zitat von: Tueftler1983 am 20 April 2016, 15:23:44
Ja die Funktion kenne ich aber dann muss ich pro Befehl (ON,OFF,RED,GREEN,BLUE,PURPEL.....)
Einen neuen Befehl in FhemShwitch anlegen.
Das schönste wäre wenn ich auf z.b. RGB_Licht klicken könnte und dann eine SetList aufgehen würde
Vielleicht mal in einem Release in (ferner) Zukunft, wenn überhaupt da es sich bei der ganzen Anwendung um ein Widget handelt und es fraglich ist ob dies überhaupt möglich ist (ein Fenster geht auf). Vermutlich kann man dies mit einigen Tricks schon realisieren oder irgendwie simulieren, aber die Programmierung dafür ist sicher sehr aufwendig.
Okay nicht schlimm man darf ja noch Träumen
Hallo.
Wollte geade austesten, aber das passwort stimmt angeblich nicht.
wo trägt man eigentlich den user ein?
Zitat von: satprofi am 22 April 2016, 16:42:44
Hallo.
Wollte geade austesten, aber das passwort stimmt angeblich nicht.
wo trägt man eigentlich den user ein?
es gibt keinen User, sondern nur ein Passwort. Schau in params.js . Dort ist beschrieben wie das Passwort gespeichert wird.
Kann es sein das FhemSwitch zusammen mit andFHEM Probleme macht?
Habe nämlich das Problem das wenn ich über FhemSwitch schalte der Befehl nicht ausgeführt wird und nur ein ? Angezeigt wird wenn ich über andFHEM schalte wird der Befehl sofort ausgeführt und dann auch in FhemSwitch aktuallisiert
Wirkt FhemSwitch wann andFhem deinstalliert ist? Ich vermute nicht.
Zitat von: Tueftler1983 am 24 April 2016, 10:42:10
Kann es sein das FhemSwitch zusammen mit andFHEM Probleme macht?
Habe nämlich das Problem das wenn ich über FhemSwitch schalte der Befehl nicht ausgeführt wird und nur ein ? Angezeigt wird wenn ich über andFHEM schalte wird der Befehl sofort ausgeführt und dann auch in FhemSwitch aktuallisiert
Ich kann mir nicht vorstellen dass die sich in die Quere kommen.
FHEMswitch hat eine Verbindung zu fhem.js auf Port 8086
andFHEM hat eine Verbindung zu fhem auf Port 8082
So sind zumindest die Standardeinstellungen.
Gilt dieses Verhalten (mit ? und nicht ausführen des Befehls) für alle Schalter?
In der params.js mal exports.debug auf 1 oder 2 stellen (fhem.js neu starten!) und dann mal schauen was im Log-File steht nachdem man mit FHEMswitch einen Befehl abgesetzt hat.
Nein auch nicht mehr kann über FhemSwitch keine meiner Funk Steckdosen mehr schalten. ECMD Relais lassen sich schalten.
Komisch ist ja das es schonmal funktioniert hat
Melde dich auf dem Server an und gib ein:
telnet localhost 7072
Jetzt tippe ein:
set Name_der_FHEM_Einheit toggle
Wird die Einheit geschaltet?
Hast du das mit debug-Level und dem Logfile gemacht?
Habe ich noch nicht gemacht, habe ich Grade erst gelesen.
Wenn ich in FHEMswitch den Befehl nicht auf toggle sondern auf on oder off stelle gehts
und was ist mit telnet und dem toggle Befehl?
Also über telnet passiert bei toggle nix. Wenn ich es mit on oder off versuche geht es.
Scheint also eher an dem pilight nodul zu liegen.
Was mir noch aufgefallen ist ist das in Fhem das lampensymbol auch komisch aussieht: Lampe mit Aktualisierungskreis drübergelegt
Wenn das Gerät keinen toggle Befehl annimmt musst du woanders hier im Forum Fragen, ich kann dazu nicht all zuviel sagen.
Für FHEMswitch ist der toggle Befehl aber schon wichtig, weil man ja sonst zwei Butons bräuchte. Falls diese Hardware wirklich keinen toggle versteht gibt es sicher in fhem eine Möglichkeit einen Dummy anzulegen, dazu ein paar Perl Befehle, ... aber da gibt es sicher Andere die sich da besser auskennen.
Danke klappt jetzt habe das falsche pilight Modul genutzt mit pilight_Ctrl und dem zugehörigen pilight_switch geht es. Danke dir.
Hallo Werner und andere,
Nach ein reboot meines Servers ist Fhem.js nicht mehr aktiv.
sudo /etc/init.d/fhem.js start
gab zurück:
Starting fhem.js 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: /
Das ist OK, oder?
$ sudo update-rc.d fhem.js enable
gab zurück:
update-rc.d: error: no runlevel symlinks to modify, aborting!
Was muß ich tun, damit fhem.js wieder startet bei system boot?
Freundliche Gruße,
Paul
Hallo Werner und andere,
Ich habe schon die Lösung gefunden.
$ sudo update-rc.d fhem.js defaults
und dann
$ sudo update-rc.d fhem.js enable
macht fhem.js wieder startend bei system boot.
Freundliche Gruße,
Paul
Hallo Alle,
In der fhem.js.log heisst es:
29.06.2016 08:43:01 client connected
29.06.2016 08:43:05 disconnected: client namespace disconnect
29.06.2016 08:43:24 client connected
29.06.2016 08:43:26 disconnected: client namespace disconnect
29.06.2016 08:43:28 client connected
29.06.2016 08:43:57 disconnected: client namespace disconnect
29.06.2016 09:05:59 client connected
29.06.2016 09:06:27 disconnected: client namespace disconnect
29.06.2016 09:12:33 client connected
29.06.2016 09:14:50 disconnected: client namespace disconnect
29.06.2016 09:15:08 client connected
29.06.2016 09:15:14 disconnected: client namespace disconnect
29.06.2016 09:17:10 client connected
29.06.2016 09:17:16 disconnected: client namespace disconnect
29.06.2016 09:33:43 client connected
29.06.2016 09:33:49 disconnected: client namespace disconnect
29.06.2016 09:46:33 client connected
29.06.2016 09:46:36 disconnected: client namespace disconnect
Was sagt das? Und muss ich etwas reparieren?
Freundliche grüsse,
Paul
Dies ist nur eine Info-Meldung über das Anmelden und Abmelden einer Anwendung (z.B. fhemSwitsch). fhemSwitch beendet z.B. die Verbindung wenn das Gerät in den Sleep-Modus geht und beim Aufwachen wird wieder eine Verbindung hergestellt.
Es wurde mir berichtet, dass es zu vermehrten Abstürzen kommt mit Android 6. Kann das sonst noch jemand bestätigen. Ich bin gerade dabei die App zu überarbeiten und freue mich über Hinweise zu Problemen, da ich gerade in der Materie drin bin und so die Fehlersuche etwas leichter fällt.
Im Google Play Store ist die neue Version 2.2.1 von FHEMswitch verfügbar. Folgendes wurde dort realisiert:
- die Konfiguration wurde benutzerfreundlicher gestaltet (Tastatur wird ausgeblendet, der "Sichern" Button ist immer sichtbar, ...)
- im Widget passen sich die Spalten automatisch an den horizontal verfügbaren Platz an. Damit sind auch breitere Spalten für längere Texte möglich. Am Besten einfach mal ausprobieren: Widget antippen und halten bis es beweglich wird, dann loslassen und man kann jetzt die Größe verändern.
- diverse Bugs wurden gefixt. Es gibt dadurch deutlich weniger Abstürze.
Eine Bitte habe ich noch: wenn ein Abbruch auftritt, bitte auf "Bericht senden" klicken. Dadurch wird ein Absturzbericht an Google gesendet, den ich auf der Google Developer Console anschauen kann.
Hallo!
Kann leider keine Verbindung vom Handy zum Server aufbauen.
Meine Vorgangsweise bzw. Daten:
pi@RPi2BJessie:~ $ node -v
v7.1.0
pi@RPi2BJessie:~ $ npm -v
3.10.9
root@RPi2BJessie:/home/pi# /usr/bin/fhem.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
info: Forever processing file: /usr/lib/node_modules/fhem.js
Datei "/etc/fhem.js/params.js" nicht verändert?
App installiert:
http(s)://10.0.0.12:8086 und
http(s)://10.0.0.12:8082/fhem
sowohl mit http als auch mit https versucht - 10.0.0.12 ist die Adresse vom Raspi2B im Netzwerk.
Wo liegt mein Fehler, was muss ich noch tun?
LG
Was steht im Logfile von fhem.js? ( /var/log/fhem.js.log )
Hallo,
danke für die rasche Antwort:
Das file /var/log/fhem.js.log ist ellenlang und eigentlich steht immer dasselbe:
Error: Cannot find module 'mysql'
at Function.Module._resolveFilename (module.js:472:15)
at Function.Module._load (module.js:420:25)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/lib/node_modules/fhem.js/readdb.js:1:77)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
error: Forever detected script exited with code: 1
error: Script restart attempt #12609
module.js:474
throw err;
^
Error: Cannot find module 'mysql'
at Function.Module._resolveFilename (module.js:472:15)
at Function.Module._load (module.js:420:25)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/lib/node_modules/fhem.js/readdb.js:1:77)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
error: Forever detected script exited with code: 1
error: Script restart attempt #12835
LG
Leider habe ich da einen Bug in fhem.js feststellen müssen. Es gibt aber bereits einen Bugfix. Die neueste (2.4.6) Version von fhem.js installieren mit:
npm update -g fhem.js
Auch hier bitte Output des obigen Befehls beachten.( Es muss noch das Script postinstall ausgeführt werden.)
Bitte berichten ob es damit funktioniert.
Hallo!
Ja, danke - funktionierte damit auf Anhieb!!!
Bin jetzt am einrichten, wobei ich noch Probleme mit "autostart" habe:
pi@RPi2BJessie:~ $ sudo update-rc.d fhem.js enable
update-rc.d: error: no runlevel symlinks to modify, aborting!
pi@RPi2BJessie:~ $ sudo update-rc.d fhem.js defaults
insserv: script fhem.js is not an executable regular file, skipped!
LG
versuch mal folgendes:
cd /etc/init.d
ls -l fhem.js
schau ob fhem.js das Execute-Recht hat. Wenn, nein dann mit
chmod +x fhem.js
erteilen
Zitat von: Paul Guijt am 29 April 2016, 13:07:43
Hallo Werner und andere,
Ich habe schon die Lösung gefunden.
$ sudo update-rc.d fhem.js defaults
und dann
$ sudo update-rc.d fhem.js enable
macht fhem.js wieder startend bei system boot.
Freundliche Gruße,
Paul
Damit und executive Rechte funktioniert nun Autostart auch.
Danke nochmals, bis zur nächsten Frage!
LG
Hallo Werner,
kann man auch über DYNDNS zugreifen (natürlich entsprechende Portfreigabe: http://xxxx.dyndns.org:8086)?
Danke und LG
Ja das geht ohne Probleme nutze ich auch. Voraussetzung ist natürlich das man vom Provider eine echte IP4 Adresse hat und kein dual stack
Zitat von: raimundl am 24 November 2016, 10:45:46
kann man auch über DYNDNS zugreifen (natürlich entsprechende Portfreigabe: http://xxxx.dyndns.org:8086)?
Dem steht nichts entgegen, aber man sollte folgendes bedenken:
1. mit http bei dyndns werden Daten unverschlüsselt übertragen, auch
das Passwort bei der Anmeldung!
2. das Passwort steht auf dem Gerät in einer versteckten Datei, die normalerweise nur von der App selbst gelesen werden kann. Wobei es vermutlich genügend Hacks gibt um an diese Daten zu kommen.
Also:
1. Bei http Zugang kann eine "Man in the middle attac" ganz leicht dein Passwort lesen.
2. bei https hast du immer noch einen offenen Port auf dem der Zugang durch ein Passwort geschützt ist. Dieses Passwort kann aber durch Hacks unter Umständen verloren gehen.
3. https mit einem self-signed certificate funktioniert nicht, da socketio da nicht mitmacht. (socketio ist sowohl auf dem Client als auch auf dem Server für die Kommunikation zuständig.
4. Es ist wohl möglich mit einem Zertifikat von letsencrypt auch einen Dyndns Host zu schützen. Da muss man aber ein wenig frickeln.
5. Ich betreibe einen eigenen Webserver und habe mir dort ein eigenes dyndns installiert. Damit bekomme ich mit einem letsencrypt Zertifikat eine verschlüsselte Verbindung hin.
Hallo Werner,
Kannst du zu Punkt 5 nähere Infos geben?
Geht das auch direkt auf dem RPI auf dem FHEM und fhem.js läuft?
Wie richtet man es ein?
Denke damit wäre der Zugriff auf FHEM selber ja auch über https geschützt oder?
Für ein eigenes dyndns brauchst du einen eigenen Server der mit fester IP-Adresse im Internet erreichbar ist. Es geht nicht mit dem RPI der im Hausnetz hinter einer dynamischen IP hängt. Da beißt sich die Katze in den Schwanz.
Ich bin Business Kunde bei Unitymedia und kann anstelle meiner Dynamischen IP auch bis zu 3 Festen IPs haben das sollte also kein Hindernis darstellen.
Die Lösungen 4 und 5 unterscheiden sich was letsencrypt betrifft eigentlich nicht.
Bei einem eigenen dyndns-Server, wie in 5, braucht man nicht nur einen Server mit fester IP-Adresse, sondern auch noch eine Domain über die man die Kontrolle hat, d.h. einen authoritative DNS-Server für diese Domain auf den man Zugriff hat.
Für die Konfiguration eines Zertifikates von letsencrypt für eine Domain auf einem Server mit dynamischer IP mache ich demnächst mal ein kleines Howto. Versprechen kann ich das aber nicht 100%ig. Aber installier schon mal die Software von letsencrypt und auch den Webserver nginx. Es würde auch mit dem Apache funktionieren, aber ich kann es nur mit nginx beschreiben, weil ich es eben damit gemacht habe.
Demnächst gibt es eine neue Version von FHEMswitch. Eine Beta-Version davon gibt es bereits beim Google Store unter
https://play.google.com/apps/testing/de.fehngarten.fhemswitch (https://play.google.com/apps/testing/de.fehngarten.fhemswitch)
Ich freue mich über jede Rückmeldung an werner@schaeffer.net .
Was ist neu:
! bis zu vier Widgets können erzeugt und individuell konfiguriert werden.
Wo kann man sich als beta Tester anmelden?
Hallo Werner,
1. Die App meldet mir eine neue Version 2.4.7 - jedoch bei
"npm update -g fhem.js"
dreht sich das "/" Zeichen es dürfte aber kein download stattfinden (Zeile verschwindet wieder rasch und die "......." verändern sich nicht.
2. Für das DL der neuen AppVersion braucht man eine Berechtigung.
Danke und LG
Edit:
mit "sudo su"
"npm install -g fhem.js" und
"/usr/lib/node_modules/fhem.js/bin/postinstall"
hat die Aktualisierung geklappt!
Zitat von: Tueftler1983 am 25 November 2016, 21:44:14
Wo kann man sich als beta Tester anmelden?
Einfach den angegeben Link klicken und installieren:
https://play.google.com/apps/testing/de.fehngarten.fhemswitch (https://play.google.com/apps/testing/de.fehngarten.fhemswitch)
Dann kommt diese Meldung
App für dieses Konto nicht verfügbar
Dein Konto ist derzeit nicht zur Teilnahme am Testprogramm für diese App berechtigt.
Wenn du zur Teilnahme am Testprogramm eingeladen wurdest, solltest du darauf achten, dich mit dem richtigen Konto anzumelden. Falls du zu einer bestimmten Google-Gruppe oder Google+ Community eingeladen wurdest, solltest du außerdem nicht vergessen, zunächst dieser Gruppe bzw. Community beizutreten.
© 2016 Google - Google Play-Nutzungsbedingungen - Verkaufsbedingungen für Geräte - Datenschutzerklärung - Entwickler - Interpreten
Das war mein Fehler - da musste in der Developer Konsole noch ein "Save" gedrückt werden.
Du kannst es jetzt nochmals versuchen diese Seite aufzurufen und auf "Tester werden" klicken. Falls es immer noch nicht angezeigt wird, musst du noch ein paar Stunden warten bis es von Google freigegeben wurde.
Installation o.k. - jedoch fehlt der Button zum Abruf der Einstellungen (Scrollen nicht möglich).
Anmerkung: Hochformat am Handy wäre viel einfacher zum eingeben.
Jedoch vorerst danke und LG
Edit: Am Tablet funktioniert es. Das Handy schneidet ab
es gibt jetzt eine Beta2 im Store. Da lässt sich die Configseite nun scrollen und mann kann das Ganze ich im Porträtmodus nutzen, was aber nicht gerade der Bringer ist. Da muss ich noch etwas dran arbeiten.
Zitat von: Werner Schäffer am 26 November 2016, 16:39:10
Da lässt sich die Configseite nun scrollen und mann kann das Ganze ich im Porträtmodus nutzen, was aber nicht gerade der Bringer ist. Da muss ich noch etwas dran arbeiten.
Ja, schon viel besser - trotzdem sind Einstellungen links noch nicht möglich - schneidet ab.
LG
aber im Querformat müsste man jetzt Scrollen können
Ja, aber sicher nur eine Notlösung. Es kommt sich auch das Scrolen und das Verschieben der Zeilen in die Quere.
LG
nunja - bei Hochformat muss man quer scrollen und das ist ja auch nicht wirklich der Bringer. Aber ich versuch mal dass es in beiden Ansichten einigermaßen vernünftig ist und dann soll der User selber entscheiden was besser ist.
Zitat von: Werner Schäffer am 26 November 2016, 17:44:01
Aber ich versuch mal dass es in beiden Ansichten einigermaßen vernünftig ist und dann soll der User selber entscheiden was besser ist.
Das ist mit der neuen Version gelungen!
LG
Zitat von: raimundl am 27 November 2016, 20:41:04
Das ist mit der neuen Version gelungen!
LG
schön das zu hören - hast auch schon mal mehrere Widets installiert?
Hallo wollte ja auch die Beta testen leider war das Widget nur ein ganz schmaler Rand oben am bildschirm.
Nachdem ich es Täglich nutze und brauche, war ich als beta Tester wieder ausgestiegen aber ich kann im Store nicht die reguläre Version laden
war der schmale Rand nur grau oder gab es auch gequetschten Inhalt zu sehen?
Zwei Vorschläge:
1. Widget manuell vergrößern (touch bis es beweglich ist- dann loslassen und man kann die Größe ändern)
2. nochmals die Config starten und dort schauen ob Einheiten ausgewählt sind, ansonsten welche auswählen und abspeichern
Zum Problem mit dem Store - versuch doch einfach mal FHEMswitch zu deinstallieren
Du kannst es auch herunterladen:
https://werner-schaeffer.de/packages/ (https://werner-schaeffer.de/packages/)
Allerdings muss dazu in den Android Einstellungen "Programme aus unzuverlässigen Quellen installieren" aktiviert werden.
Der schmale Widget Rand war in der normalen gelb beige Hintergrund farbe.
Das Widget hatte ich auf ganze bildschirm Größe gezogen.
Deinstalliert habe ich es über den Playstore
Demnächst wird im Play Store die Version 3.0.0 verfügbar sein. Es gibt viel Neues und auch an der Stabilität wurde gearbeitet. Alle neuen Features sind auf Seite 1 dieses Threads dokumentiert.
Ein Beispiel mit zwei Widgets, Symbole statt Werten und Steuerelemente für Werte sieht man auf diesem Screenshot:
https://github.com/winne27/FHEMswitch/blob/HEAD/assets/sreenshots/Screenshot_2016-12-12-19-04-37.png (https://github.com/winne27/FHEMswitch/blob/HEAD/assets/sreenshots/Screenshot_2016-12-12-19-04-37.png)
Aber Achtung
Trotz großer Mühen ist es mir nicht gelungen den Update reibungslos zu realisieren. Nach dem Update erscheint das bisherige Widget nur noch als leerer grauer Streifen oder als ein schwarzes Feld mit einer Fehlermeldung. Diesen Zombie kann man einfach in den Papierkorb verschieben. Danach platziert man ein neues Widget auf dem Startscreen. Die bisherigen Konfigurationsdaten (URLs, Passwort, Layout, ...) werden dabei übernommen.
Sorry für diese Umstände, aber ich dachte mir wer fhem.js zu Laufen brachte wird auch an dieser kleinen Klippe nicht scheitern.
Hört sich gut an freue mich drauf
Hallo, guten Morgen!
Neue Version installiert, Widget aufgerufen, erscheint kurz und App stürzt ab - mehrmals versucht. Bericht gesendet!
LG
Danke für die vielen Crash-Dumps. So richtig komme ich damit aber auch nicht weiter. Ich konnte zumindest den Absturz jetzt bei mir nachstellen. Aber sobald ich den Debug-Modus einschalte tritt der Fehler nicht mehr auf. Ich bin dran ...
Fehler gefunden - neue Version 3.0.2 hochgeladen - sie müsste demnächst im Store verfügbar sein
die Version kann auch hier heruntergeladen werden:
https://wernerschaeffer.de/packages/ (https://wernerschaeffer.de/packages/)
Hallo Werner
**nach erneuter Konfiguration scheint es jetzt zu laufen***
Immernoch fehler! Nach dem Plazieren des Widget öffnen sich die einstellungen. Alles eingegeben kann man die units auswählen und bestätigt dann.
Danach wird kurz das Widget angezeigt mit den units und den richtigen Werten aber dann werden alle units grau oder es kommt die meldung" keine Verbindung zum Server, zum neuverbinden antippen."
Aber es wird nix angezeigt.
Gibt es ne Möglichkeit wieder auf Version 2.9 oder 3.0 zu wechseln
und noch eine neue Version: 3.0.3
Zurücksetzen auf alte Version:
habe versucht bei Google die alte Version wieder zu aktivieren, wurde aber aus technischen Gründen abgelehnt.
Die einzige Möglichkeit ist die alte Version wieder zu bekommen ist es sie hier https://werner-schaeffer.de/packages/ (https://werner-schaeffer.de/packages/) herunterzuladen. Erst mal würde ich darum bitten die Version 3.0.3 noch abzuwarten.
Beschreibung Fehler:
Der Event "Connectivity Change" hat den von Tueftler1983 beschrieben Effekt ausgelöst. Erstes ist mir nicht klar warum dieser Event da überhaupt ausgelöst wird und zweitens ist mir auch noch nicht klar warum das zu dem beschrieben Effekt führt. Vorerst (in 3.0.3) läßt die App diesen Event unberücksichtigt. Dies hat nur zur Folge dass es nach einem Wiederaufbau einer Verbindung (z.B. WLAN ist wieder in Reichweite) etwas länger dauern kann (bis zu 30 Sekunden) bis die App dies erkennt. Ich werde versuchen dies wieder fehlerfrei zum laufen zu bringen.
Hallo Werner
Nach geraumer Zeit ist das Widget ohne aktuelle zustände, schalten geht aber der Zustand ändert sich nicht. Siehe Screenshot.
Wenn ich kurz in die einstellungen gehe und die units neu einlese und Speicher ist wieder alles tip top
dieses Verhalten kann verhindert werden durch "automatisch drehen" auszuschalten. Dies ist natürlich keine Lösung, sondern nur ein Workarround. Demnächst (< 24h) versuche ich das Problem zu lösen.
Hallo Werner,
leider nein - 3.0.3:
Widget plazieren, Einstellungen speichern, Widget verschwunden (nur mehr kleiner Balken).
LG
Leider nicht.
Wenn ich die einstellungen öffne und speichere ist das Widget danach tob bis zu dem Moment wo ich den screen Wechsel oder eine App öffne danach ist das Widget im letzten Zustand eingefroren. Schalten möglich aber keine Zustands änderung
Ich hoffe ich habe das Problem gelöst und in der Version 3.0.4 die Lösung zur Verfügung gestellt.
Hallo Werner,
Mit der Version 3.0.3 funktionierte es schon wieder auf meinem Note 3 mit Android 5.
Ich war nicht bekannt mit die Einstellungen die zwei Widgets angaben, und es dauerte eine Weile bevor ich verstand das ich der zweite einrichten sollte.
Dank, ich bin sehr geholfen mit dein App.
Freundliche Grüße,
Paul
Lädst du Version 3.0.4 auch auf den Server? Google ist wieder langsam
3.0.4 ist bei mir im Shop schon seit Stunden verfügbar - nichtsdestotrotz - auf dem Server jetzt auch
Zitat von: raimundl am 24 November 2016, 10:45:46
Hallo Werner,
kann man auch über DYNDNS zugreifen (natürlich entsprechende Portfreigabe: http://xxxx.dyndns.org:8086)?
Danke und LG
Es gibt jetzt eine kleine Doku die beschreibt wie man mit Dyn-DNS und Letsencrypt-Zertifikaten verschlüsselt auf Fhem und auf fhem.js zugreifen kann:
https://forum.fhem.de/index.php/topic,62716.0.html (https://forum.fhem.de/index.php/topic,62716.0.html)
Hallo Werner!
Danke, ich werde berichten.
LG
Hallo Werner!
Zu 3.0.5:
Kein Widget am Schirm, Widget auswählen, Konfiguration erscheint mit Widget 2 ausgewählt, wähle Widget 1 zum Speichern aus - Absturz.
LG
Zitat von: raimundl am 18 Dezember 2016, 22:37:06
Hallo Werner!
Zu 3.0.5:
Kein Widget am Schirm, Widget auswählen, Konfiguration erscheint mit Widget 2 ausgewählt, wähle Widget 1 zum Speichern aus - Absturz.
LG
Da scheinen die Config-Daten nicht mehr in Ordnung sein. Versuch doch mal folgendes:
1. Geräte ganz ausschalten und neu starten und nochmals ein Widget erstellen
falls das nichts hilft bleibt nur
2. App komplett deinstallieren und neu aus dem Store installieren.
Zitat von: Werner Schäffer am 19 Dezember 2016, 18:01:11
Da scheinen die Config-Daten nicht mehr in Ordnung sein. Versuch doch mal folgendes:
1. Geräte ganz ausschalten und neu starten und nochmals ein Widget erstellen
falls das nichts hilft bleibt nur
2. App komplett deinstallieren und neu aus dem Store installieren.
Habe 1. und 2. auch bereits versucht:
Widgets lassen sich jetzt erstellen, trotzdem dann Absturz beim Umschalten der Widgets.
LG
Zitat von: raimundl am 19 Dezember 2016, 18:24:44
Habe 1. und 2. auch bereits versucht:
Widgets lassen sich jetzt erstellen, trotzdem dann Absturz beim Umschalten der Widgets.
LG
Hast du schon mal nach einem Absturz den Bericht gesendet - das hilft nämlich sehr
Sende ich laufend!
LG
ok danke - brauchst du jetzt nicht mehr senden - ich arbeite daran
Hallo Werner,
3.0.7: 4 Widgets mit umschalten funktionieren nun!
LG
Im Google Store ist demnächst Version 3.1.0 verfügbar.
Neben einigen wenigen Bugfixes gibt es eine Neuerung in der Konfiguration:
Die verscheidenen Rubrigen sind jetzt nicht mehr untereinander sondern nebeneinander angeordnet und man kann mit horizontalen Wischgesten oder einem Touch auf ein Tab navigieren.
Bitte Probleme, Fehler und auch Featurewünsche gerne hier kundtun.
Schön wäre es wenn man z.b. ein drop down menu die Farbe von RGB Lampen einstellen könnte.
Bei meinen habe ich in fhem eine Setlist mit on.off.dimmer.brighter.blue.red.green.orange.pink.....
Zitat von: Tueftler1983 am 22 Januar 2017, 20:32:35
Schön wäre es wenn man z.b. ein drop down menu die Farbe von RGB Lampen einstellen könnte.
Bei meinen habe ich in fhem eine Setlist mit on.off.dimmer.brighter.blue.red.green.orange.pink.....
Workaround:
definere eine Lightscene und verwurschte alle diese Zustände darin - das kann FHEMswitch
Meine Aufgabe:
ich schau mir mal "Setlist" an und denke drüber nach
PullDownMenü:
ob das in einem Widget überhaupt möglich ist muss ich noch schauen
Danke für die vielen Absturzberichte.
Es gibt jetzt im Shop Version 3.1.3, in der diese Abbrüche hoffentlich nicht mehr auftreten.
Gibt es weiterhin Abbrüche bitte wieder senden und gerne auch hier beschreiben.
Hallo,
ich habe folgendes Problem.
- Ich benutze Max-Thermostate
1. nach Server Refresh und FHEM units einlesen haben die Thermostate eine Temperaturanzeige. Nach dem ersten automatischen Refresh kommt die Anzeige "MAXLAN_isAnswer: 0"
2. Es werden nur 3 von 4 Thermostaten unter Messwerte angezeigt. - erledigt nach neustart von FHEM
Verbindung scheint aber zu funktionieren, da ich einen DummySchalter über die Befehle schalten kann.
Kann mir vielleicht jemand helfen?
Zitat von: Guenni1404 am 16 Februar 2017, 22:19:57
...
- Ich benutze Max-Thermostate
1. nach Server Refresh und FHEM units einlesen haben die Thermostate eine Temperaturanzeige. Nach dem ersten automatischen Refresh kommt die Anzeige "MAXLAN_isAnswer: 0"
...
Öffne die Datei /etc/fhem.js/params.js mit einem Editor.
Suche die Zeile mit "exports.filterOutTags" (fast am Ende der Datei)
Ändere diese Zeile folgendermaßen ab:
exports.filterOutTags = ['deviceMsg:', 'pct:', 'level:', 'timedOn:', 'desired-temp:', 'MAXLAN_isAnswer:']; Starte fhem.js neu.
Es gibt eine neue Version 3.1.5. Neu ist:
- die Buttons zur Änderung von Werten wurden verkleinert
- Services die die Widgets verwalten werden nach einem Kill durch Android, z.B. wegen Speicherknappheit, korrekt neu gestartet. Dies verhindert leere Widgets welche vereinzelt auftraten.
- Die Verbindung zum fhem.js wird jetzt, falls man in einem Wlan ist, alle 60 Sekunden geprüft, sonst alle 15 Minuten. Ein Freeze der Werte und Icons, welcher auch hin und wieder auftrat, dauert somit im Wlan maximal 60 Sekunden.
- Ein Touch auf eine frei Fläche in einem Widget oder auf den Rand eines Widgets (ist nicht einfach zu treffen, an einer Ecke geht es besser) sorgt für einen Neustart der Widget Services. Falls die zwei vorherigen Probleme wirklich gelöst sind, braucht man dies eigenrtlich nicht mehr.
- Die App ist nur noch 2MB groß statt 8MB vorher. Da waren diverse Icons und Screenshots drin, die da drin gar nichts zu suchen hatten.
Super sache dein PowerTester wird es testen ;-)
LG und schönen Abend noch
Zitat von: Werner Schäffer am 17 Februar 2017, 12:23:07
Öffne die Datei /etc/fhem.js/params.js mit einem Editor.
Suche die Zeile mit "exports.filterOutTags" (fast am Ende der Datei)
Ändere diese Zeile folgendermaßen ab:
exports.filterOutTags = ['deviceMsg:', 'pct:', 'level:', 'timedOn:', 'desired-temp:', 'MAXLAN_isAnswer:'];
Starte fhem.js neu.
Hat funktioniert. Besten Dank!
Bis jetzt läuft selbst bei mir alles spitze, teste morgen mal mit einem w. Widget...
bekommen die Sache nicht zum laufen.
Zitatroot@raspberrypi:/var/www/fhem.js# node server.js
/var/www/fhem.js/server.js:448
exec('npm view fhem.js version', (error, stdout, stderr) => {
^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
root@raspberrypi:/var/www/fhem.js#
Die neue Version 3.1.9 im Google Store hat kleinere Bugfixes und das Widget kann jetzt schmäler (1 Einheit) dargestellt werden..
Die neue Version 3.1.11 behebt einige Bugs die mit Android 7 auftraten.
Ankündigung: die nächste Version 3.2.0 enthält die Möglichkeit nicht nur numerische Werte über Pfeiltasten zu ändern, sondern auch eine Uhrzeit zu verändern. Coming soon!
Hey das ist super, danke dir Werner auf die Funktion freue ich mich schon.
Es gibt jetzt die Version 3.2.0:
- neu ist dass nun auch Einheiten die Werte im Format hh:mm enthalten über die Rauf-Runter-Buttons steuern lassen, wobei der Doppelpfeil die Stunde und der Einfachpfeil die Minute verändert.
- Bugfixes
- Sichtbarkeit aller Einheiten in der "Werte Liste" ist gewährleistet
Hallo Werner leider läuft die Version nicht, Widget konnte nicht geladen werden.
Und beim Versuch zu konfigurieren stürzt FhemSwitch ab.
bitte Absturzbericht senden - bekomme ich aber leider erst morgen!
Abhilfeversuche:
- Gerät neu starten
- in Konfiguration Cache und Daten löschen
- App deinstallieren und neu installieren
Die Bericht ist raus.
Gerät neu gestartet.
Konfiguration und Cache gelösch.
Nur Neuinstallation noch nicht versucht.
Ich konnte jetzt dies auf einem Gerät bei mir nachvollziehen.
Leider half nur eine Neuinstallation mit all dem Aufwand der da für die Neukonfiguration notwendig ist.
Job habe ich auch gemacht und bin jetzt fertig.
Lol auch 2 Widgets auf meinem S5 bieten noch nicht genug Platz.
Zitat von: Tueftler1983 am 17 Juni 2017, 01:12:48
Job habe ich auch gemacht und bin jetzt fertig.
Lol auch 2 Widgets auf meinem S5 bieten noch nicht genug Platz.
FHEM Einheiten dürfen ja glaube ich keine Umlaute enthalten. In FHEMswitch kannst du aber bei der Benennung Umlaute benutzen. Es ist also möglich statt HausTuer HausTür zu schreiben. In FHEM selbst kann man aber auch Aliase vergeben und dort sind auch Umlaute möglich.
Es gibt die Version 3.2.1 im Store. Sie behebt einen Bug der bei gewissen Konstellationen zum Absturz von 3.2.0 führte.
Okay danke dir für abermals schnellen support.
Machst das echt klasse und bin froh das es FhemSwitch gibt.
Eine neue Version 3.3 ist verfügbar:
1. Das Layout wurde überarbeitet. Es ist jetzt etwas kompakter, so dass mehr Platz für Inhalte da ist. (Weniger Rand, weniger Lücken)
2. Es gibt jetzt die Möglichkeit Überschriften und Leerräume zur Gruppierung einzubauen.
3. Die Reihenfolge der Blocks (Schalter, Werte, ...) kann geändert werden.
So siehts aus:
Es sind gleich noch Versionen 3.3.1 und 3.3.2 gefolgt.
Zum Ersten wurde ein Problem bei zweispaltiger Anzeige beseitigt und Zweitens kam es bei leeren Widgets zu einem Absturz. Dieses Problem wurde gelöst und gleichzeitig werden leere Widgets jetzt sichtbar und man kann sie dann auch entfernen falls man will.
Leider stürzt die neue Version bei mir immer ab schon 2 mal die Prozedur (Cache löschen, Daten löschen, app deinstallieren, app neu installieren,)
Spätestens sobald ich werteregler mit ins Widget nehmen will türtzt sie ab.
Auch bei 3.3.3 sieht es nicht besser aus 3.2.? Lief stabiel. Fehlerberichte sind gesendet
Fehler tritt nur in Zweispaltig er Ansicht auf, nebeneinander und untereinander geht.
Fehler sowohl auf meinem Smartphone Galagy S5 alsace auf dem Tablett Acer iconia Tab8
Hilfe Werner auf 3 Geräten funktioniert die 2 Spaltige Anzeige nicht, kann doch nicht sein das ich der einzige bin mit dem Problem
Mir wurden Probleme mit der zweispaltigen Anzeige gemeldet. Da ich dies selbst nicht nachvollziehen kann, frag ich ich mal ob sonst jemand dies bestätigen kann. Schön wäre auch wenn dies mit Screenshots gezeigt werden könnte:
1. Wie sieht die fehlerhafte Darstellung aus. Am Besten auf einem Tablet, wobei das Widget auf einem leeren Hochformat-Screen platziert ist und auf maximale Höhe und Breite gezoomt ist.
2. Einen Screenshot von jedem Konfigurationsfenster
Die Screenshots können mir gerne auch per persönlicher Mitteilung geschickt werden.
Hallo Werner,
Bei mir leider immer noch das selbe mit der Version 3.3.6
An alle anderen bitte helft den Fehler zu finden, ich habe Werner die Infos via e-Mail gesendet da die Dateien zugroß waren um sie hier als Anhang zu Posten
Es gibt ein neues Release 3.4.1:
Folgendes ist dort neu:
- Der erste Bildschirm in der Konfiguration wurde entschlackt. Es gibt nur noch die Buttons "abbrechen" und "FHEM einlesen". Alle anderen Aktionen können in einem Submenü, aufgerufen durch Touch auf die drei Punkte oben rechts, ausgeführt werden
- Neu ist aber vor allem die Möglichkeit die Konfirguration zu exportieren und auch wieder zu importieren, z.B. auch auf ein anderes Gerät. (drei Punkte oben rechts ...)
- Es ist nun möglich wirklich 4 Witgets zu installieren ohne die Konfiguration lahmzulegen (Android lässt wohl nur 4 Websocket-Verbindungen pro App zu.) Die Widgets werden nun vom Server getrennt solange die Konfiguration aktiv ist.
Bitte wofort hier berichten falls es Probleme gibt.
Hallo Werner,
FHEMswitch ist seit lange fast so wichtig für mich als mein Business Calendar widget. Beide Widgets stehen neben einander auf meine Startseite. Ich habe ein Samsung S8 Plus mit 2220x1080 Resolution und Android 7.0. Leider habe ich letzter Zeit einige Probleme.
Seit einige Wochen verliert FHEMswitch manchmal die Verbindung mit dem FHEM Server, wenn der Handy auf Always On Display geht. Nach aufwachen findet FHEMswich nicht wieder die Verbindung, auch nicht durch anklicken des Widgets. Oft muß ich der Widget aufs Neue installieren. Ich habe 'WLAN im Standbymodus eingeschaltet lassen' eingeschaltet.
Der App verbraucht viel Batterie, auch wenn er nicht aktiv ist. Der App-Energieüberwachung schlagt eindringlich vor FHEMswitch in Standby zu versetzen. Aber dann funktioniert FHEMswitch nicht mehr.
Manchmal crasht der App, meistens wenn der Wifi ändert.
Kannst du diese Probleme lösen?
Freundliche Grüße,
Paul
Hallo Werner,
Version 3.4.4 scheint derzeit flüssiger, sauberer zu laufen und ein 3. Widget läuft auch schon. Platzmangel habe ich derzeit nicht!!
Auch Zweispaltige Ansicht ist kein Problem!
Was ich mir noch wünschen würde ist das man mehrere WLAN Ssid als Heimnetzwerk definieren kann da ich insgesamt 3 Ssid bzw mit 5 GHz 5 Ssid habe.
Werde weiter Testen und mich melden wenn was ist.
LG Power Tester Holger
Ich habe wohl starke Probleme mit der Verbindung über Internet sprich DDNS.
Immerwieder: Keine Verbindung zum Fhem Server.
Wenn ich es anklicke sehe ich die werte und Zusätze meist 2 bis 3 sek und dann wieder keine Verbindung.
Komischerweise funktionieren die Einstellungen und refresh von fhem.js aber meistens und danach auch das Widget.
LG Power tester Holger
Alle anderen Anwendungen und auch die Fhem Web Oberfläche sind ohne Probleme erreichbar.
Kleines update.
Wenn ich in der Konfiguration für den fhem.js Server an beiden stellen meine ddns Adresse eintrage habe ich keine Verbindungsprobleme!
Und wenn ich an beiden stellen die LAN IP eintrage funktioniert nur das 1. Widget.
Hoffe das hilft weiter
LG Power Tester Holger
Zitat von: Paul Guijt am 27 Oktober 2017, 15:26:11
Seit einige Wochen verliert FHEMswitch manchmal die Verbindung mit dem FHEM Server, wenn der Handy auf Always On Display geht. Nach aufwachen findet FHEMswich nicht wieder die Verbindung, auch nicht durch anklicken des Widgets. Oft muß ich der Widget aufs Neue installieren. Ich habe 'WLAN im Standbymodus eingeschaltet lassen' eingeschaltet.
Der App verbraucht viel Batterie, auch wenn er nicht aktiv ist. Der App-Energieüberwachung schlagt eindringlich vor FHEMswitch in Standby zu versetzen. Aber dann funktioniert FHEMswitch nicht mehr.
Ich hatte in den letzten Versionen einige Debug-Hilfen eingebaut um einigen Problemen auf die Spur zu kommen. Das hat dann zu mehr Abbrüchen und auch zu erhöhtem Datenverkehr zum Bug-Server geführt. Daher kam dann von Android die Meldung mit dem hohen Akku-Verbrauch. (Die Meldung kam bei mir auch obwohl der Akkuverbrauch durch FHEMswitch bei 0,1% lag)
Ein großer Teil dieser Debug-Hilfen sind in der neuesten Version wieder abgeschaltet, so dass dieses Problem hoffentlich nicht mehr auftritt
Es gibt eine neue Version 3.5.0.
Um zu erklären was dort, außer ein paar Bugfixes neu ist, muss ich etwas ausholen:
Andoid Widgets, wie FHEMswitch, unterliegen diversen Restriktionen. Man hat bei Weitem nicht die Möglichkeiten wie in einer echten App (Activity). Insbesondere kann es sein dass Android einem Widget zugesicherten Speicher entzieht, Netzwerkverbindungen trennt oder gar den zur Steuerung des Widgets notwendigen Service beendet.
Ein zu einem Widget gehörender Service kann periodisch, über einen Parameter gesteuert, neu gestartet werden. Leider ist der Minimalwert dieser Zeitspanne 30 Minuten. Das ist natürlich inakzeptabel für FHEMswitch!
Ich habe versucht möglichst viele Events, die zu einem Stillstand führen, abzufangen und einen Neuanfang zu starten. Leider gelingt das nicht immer. Deshalb gibt es in Version 3.5 zwei Neuerungen:
- Hat man Header in der Konfiguration definiert (schwarze Überschriften), sind die jetzt anklickbar und starten die Services für alle Widgets neu.
- Es gibt ein neues App-Icon, es ist etwas abgesoftet und enthält den Schriftzug "Refresh". Nach einem Touch darauf werden alle Widget Services neu gestartet.
Die zweite Methode funktioniert auch dann wenn die Widget-Services wirklich tot sind.
Ein Wort noch zu einem Bugfix der hoffentlich auch wirkt:
Es gab des Öftern Widgets die zigmal neu aufgebaut wurden, was durch ein Flackern erkennbar war. Die Ursache für dieses Verhalten konnte leider noch nicht gefunden werden, aber der wiederholte Aufbau des Widgest wird jetzt verhindert.
Und wie immer gilt:
Jedes Problem bitte hier sofort melden!
Leider habe ich immernoch Verbindungsprobleme. Teilweise wenn ich die Konfiguration aufrufe und auf FHEM einlesen klicke im sekunden tackt die Meldung das keine Verbindung aufgebaut werden kann.....
Und die ersten 2. Widgets sind dann irgendwann verfügbar aber beim 3. Steht nur in grauer Schrift "lädt...."
Leider immer noch die selben Probleme und der Akku Verbrauch von FhemSwitch ist bei 21% früher waren es 1 bis 2 %
Zitat von: Tueftler1983 am 10 November 2017, 18:07:13
Leider immer noch die selben Probleme und der Akku Verbrauch von FhemSwitch ist bei 21% früher waren es 1 bis 2 %
Du hast ja mehrere Geräte soweit ich weiß. Tritt das Problem auf Allen auf oder nur auf Einem?
Tritt das Problem im WLAN oder im Funknetz oder in Beiden auf?
Hast du vielleicht irgendwelche Netzwerktools eingesetzt die irgendetwas optimieren?
FHEMswitch baut ja eine permanente Websocket-Verbindung zu fhem.js auf, wird diese Verbindung unterbrochen, versucht das Package socket.io, das ich sowohl in FHEMswitch als auch in fhem.js verwende, die Verbindung wieder herzustellen. Das was du schilderst sieht für mich so aus als ob, aus welchen Gründen auch immer, deine Netzverbindung immer wieder Aussetzer hat.
Problem tritt auf allen drei Geräten auf aber auf meinem Galaxy S5 ist es am särksten. Siehe das Video vom Huawei P9 lite.
Es laufen keine Optimierungs Apps
Die meisten Probleme gibt es im Mobilen Netzwerk.
Zitat von: Tueftler1983 am 10 November 2017, 18:51:49
...
Die meisten Probleme gibt es im Mobilen Netzwerk.
...
Ich brauche exakte Infos um Probleme zu lösen und bitte testen und nicht nach Gefühl antworten:
- tritt das Problem auch im WLan auf oder nur Mobil
- haben auch andere Apps Verbindungsprobleme
Das Problem tritt auch im WLAN auf, habe ein bildschirmvideo gemacht in dem man das Problem sehr gut sieht. Im WLAN funktioniert alles dann schalte ich WLAN aus und schon beginnt das Problem, widget 1 funktioniert nicht, widget 2 und 3 schon. Dann kurz ein aufbinden von widget 1 mit Werten und dann wieder keine Werte und keine Funktion wären widget 2 funktioniert. Auch beim wieder einschalten vom WLAN das selbe nach ein paar min funktioniert dann wieder alles.
Leider ist das Video 56 MB groß. Kann es auf Dropbox Hochadel und dir den link via email senden.
Hast ne email mit link zu dem video
Hallo Werner,
Version 3.5.2 scheint auf dem ersten blick super zu laufen, nach einem Netzwerk Wechsel ca 5 bis 10 sek läuft das Widget wieder!!!
😆😆
Teste weiter aber bis jetzt top
Neues Update liest die falschen Readings aus...
Hallo,
ist es irgendwie möglich ein Toggle Schalter für ein ESPeasy Device (sonoff s20) hinzu zufügen?
Meine Homematic Lichtschalter werden in Fhemswitch unter Schalter auf geführt und sind somit per Widget Schaltbar.
Meine ESPeasy Geräte werden nur unter dem Tab Werte angezeigt und zeigen nur den Relais Status (nicht Schaltbar)
Auf der Fhem Weboberflächle werden sie als Toggle Schalter angezeigt.
Meine ESP laufen alle mit toggle befehlen allerdings mit einem dummy und einem DOIF.
das Dummy hat eine Setlist on off toggle
Und das DOIF das toggle in on und off umsetzt
([d_Stelzenhaus_innen] eq "toggle" and $cmd =~ "2|0") (set d_Stelzenhaus_innen on) DOELSE (set d_Stelzenhaus_innen off)
Es gibt im Playtore eine neue Version 3.6.0
Außer einem kleinen Bugfix enthält diese Version keine Änderungen.
Für den Build wurden aber die neuesaten Android und Java Bibliotheken verwendet.
Auch wurde die Unterstützung für Android 8.1 aufgenommen.
Hallo zusammen, habe nach einem Neustart vom PI das Problem das ich FHEM.JS nicht mehr gestartet bekomme.
Welche infos braucht ihr?
Habe schon ein update und upgrade gemacht wobei auch node aktualisiert wurde.
Systemctl gibt das aus:
root@raspberrypi:~# systemctl -l status fhem.js.service
● fhem.js.service - LSB: fhem.js init.d example
Loaded: loaded (/etc/init.d/fhem.js)
Active: failed (Result: exit-code) since Mo 2018-08-27 22:35:23 CEST; 2min 7s ago
Process: 7965 ExecStart=/etc/init.d/fhem.js start (code=exited, status=1/FAILURE)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at Function.Module._resolveFilename (module.js:545:25)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at Function.Module._load (module.js:474:25)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at Module.require (module.js:596:17)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at require (internal/module.js:11:18)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at Object.<anonymous> (/usr/lib/node_modules/fhem.js/node_modules/fill-range/index.js:12:17)
Aug 27 22:35:23 raspberrypi fhem.js[7965]: at Module._compile (module.js:652:30)
Aug 27 22:35:23 raspberrypi sudo[7966]: pam_unix(sudo:session): session closed for user fhem
Aug 27 22:35:23 raspberrypi systemd[1]: fhem.js.service: control process exited, code=exited status=1
Aug 27 22:35:23 raspberrypi systemd[1]: Failed to start LSB: fhem.js init.d example.
Aug 27 22:35:23 raspberrypi systemd[1]: Unit fhem.js.service entered failed state.
root@raspberrypi:~#
Etwas spät die Antwort. Versuch doch mal fhem.js direkt zu starten:
nodejs /usr/lib/node_modules/fhem.js
Poste hier den Output.
Ging auch nicht, hatte ich versucht. Was geholfen hat war ne neu Installation von fhem.JS
Jetzt habe ich nur noch das Problem mit dem Status meiner ESP Relais.
In FHEM wird der status durch stateFormat richtig angezeigt und in FHEMswitch bekomme ich ihn nicht dargestellt.
Habe dir dazu auch ne E-Mail geschrieben.
LG Holger
Zitat von: Tueftler1983 am 23 September 2018, 14:14:31
...
Jetzt habe ich nur noch das Problem mit dem Status meiner ESP Relais.
In FHEM wird der status durch stateFormat richtig angezeigt und in FHEMswitch bekomme ich ihn nicht dargestellt.
...
Ich glaube dieses Thema hatten wir schon mal. In fhem gibt es
STATE in Internals und
state als Reading.
FHEMswitsch zeigt state und stateFormat geht auf STATE. Wenn FHEMswitch nicht das anzeigt was man gerne hätte, bleibt nur mit Dummies oder sonstigen Tricks zu arbeiten.
Android 8 verspricht eine schonendere Akkunutzung, was aber wohl öfters dazu führt dass aktive Widgets, so wie FHEMswitch, nur noch eingeschränkt funktionieren oder gar nach einer gewissen Zeit einfach einfrieren. Besonders kritisch ist die Lage wohl bei Huawei Geräten, was ich selbst bestätigen kann.
Hat jemand schon ähnliche Erfahrungen mit Android 8 und FHEMswitch gemacht oder gibt es auch positive Berichte zu dieser Konstellation?
Demnächst gibt es eine neue Version 4.0.0 von FHEMswitch
Neu ist erst mal das auch Android 9 (Pie) unterstützt wird, aber vermutlich viel wichtiger ist dass hoffentlich die Probleme mit dem Akkusparmodus, der seit Orio (Android 8) das Leben von interaktiven Widgets schwer gemacht hat, beseitigt werden.
In der neuen Version werden die Widgets im Vordergrund gestartet und unterliegen deshalb nicht dem neuen Akkusparwahn. Erkauft wird dies damit dass FHEMswitch eine Nachricht verschickt, bzw. verschicken muss, um die Widgets im Vordergrund zu starten. Ich empfehle in der Konfiguration einfach "darf Nachrichten versenden" für FHEMswitch zu deaktivieren.
Auch die Huawei-Geräte zicken nicht mehr mit der neuen Version, zumindest bei meinen Handy.
Hallo zusammen,
vielen Dank erst einmal für das tolle Wigdet. Genau so etwas habe ich gesucht! :-)
Soweit läuft alles sehr gut, allerdings habe ich Probleme mit FHEMswitch zu tooglen.
Ich habe einen Eltako FSR61 in FHEM eingelernt.
Dieser lässt sich über das Webinterface gezielt ON oder OFF schalten, oder über das Leuchtensymbol tooglen.
Wenn ich diesen Aktor nun in FHEMswitch hinzufüge, kann ich beim hinzufügen ja "toogle" auswählen.
Leider schickt FHEMswitch dann immer nur ON, also B0, und nicht im wechsel OFF bzw. BI.
Hat jemand vielleicht eine Idee?
Hab schon überlegt den Aktor zweimal anzulegen und diesen dann einmal als ON in FHEMswitch hinzuzufügen und einmal als OFF.
Vielen Danke vorab!
Hallo Credo
wenn ich deine Beschreibung richtig lese, dann hast du im Webinterface nur die Buttons "on" und "off", aber nicht "toogle". In FHEMswitch funktioniert toogle aber nur wenn die Fhem-Unit explizit einen Toogle-Befehl unterstützt.
Zitat von: Werner Schäffer am 19 November 2018, 17:14:12
Hallo Credo
wenn ich deine Beschreibung richtig lese, dann hast du im Webinterface nur die Buttons "on" und "off", aber nicht "toogle". In FHEMswitch funktioniert toogle aber nur wenn die Fhem-Unit explizit einen Toogle-Befehl unterstützt.
Vielen Dank! Habe es nun als toogle angelernt und es funktioniert! :-)
Zitat von: ONDevil am 23 November 2018, 11:33:48
Mir gefällt das Widget sehr, Steuer damit meine Beleuchtung und WiFi Steckdosen.
Jetzt habe ich noch mein Türöffner Smart gemacht.
Wäre es irgendwie möglich da eine Abfrage zu schalten?
Stell mir das so vor: klicke auf das Widget "Tür öffnen" Pop-up geht auf: Möchten Sie wirklich öffnen?
Das wäre echt genial, hab vom Programmieren gar keine Ahnung und weiss somit nicht ob das möglich ist?
Wäre auf jeden Fall eine Spitzen Funktion..
Hab auch schon ausversehen die WiFi Steckdose vom PC auf Off geschaltet, Windows fand das dann nicht so prickelnd :o
Gruß Alex
Ein Prompt für einen Schaltvorgang einzubauen in das Widget ist nicht auf die Schnelle realisierbar. Da ja zusättzlich auch in der Konfiguration dann eine Möglichkeit geschaffen werden müsste, den Prompt für einen beastimmten Schalter zu aktivieren oder zu deaktivieren. Zudem ist es, soweit ich weiß, auch nicht möglich in einem Widget einfach ein Popup-Fensterchen mit diesem Prompt zu öffnen. Irgendeine Möglichkeit gibt es aber sicher dies zu realisieren, aber der Aufwand wäre schon etwas größer. Im Augenblick sehe ich nicht, dass ich dies in Angriff nehmen werde.
Nachdem ich nochmals darüber geschlafen habe, finde ich die Idee gar nicht so schlecht mit dem Bestätigen von Befehlen. Mir ist das auch schon passiert, dass ich versehntlich den falschen Button getroffen habe, der dann statt ein Licht auszuschalten den PC stromlos gemacht hat. Deshalb plane ich jetzt folgendes:
man kann in der Konfiguration für jedes Widget angeben ob Befehle bestätigt werden sollen oder nicht. Da man ja bis zu 4 Widgets von FHEMswitch erzeugen kann, ist es dann möglich z.B. in einem Widget alle die kritischen Einheiten zusammenzufassen, bei denen man gerne eine Bestätigungsklick haben möchte.
Aber Geduld - die Realisierung kann noch dauern
Es gibt nun das Release 4.1.0 im Play Store. Es bietet die optionale Möglichkeit eine Bestätigung (Willst du wirklich?) für einen Klick einzurichten. Dies ist dies nur für ein Widget komplett möglich. Um das zu steuern gibt es in der Konfiguration auf dem ersten Schirm eines jeden Widgets eine Checkbox.
Ein Ziel für später ist dass diese Einstellung nicht nur für ein gesamtes Widget, sondern für jede Einheit seperat möglich ist, eventuell sogar Vorgangsabhängig, also Bestätigung bei off aber nicht bei on oder umgekehrt. (z.B. PC-Stromzufuhr - einschalten ohne Nachfrage - ausschalten nur mit Bestätigung). Später heißt übrigens kurz vor irgendwann Weihnachten.
es geht dann immer ganz schnell - die neue Version 4.1.1 ist im Play Store.
Sie enthält zwei Änderungen gegenüber 4.1.0
- in der Startseite der Konfiguration wird auch bei Android 8.1 wieder der Name der WLAN-Verbindung angezeigt (SSID)
- ab Android 9 wird die Permission START FOREGROUND SERVICE benötigt um das Widget zu nutzen
Hallo Werner, nach der nun erfolgreichen Installation, habe ich ein paar Fragen zu dem Widget.
Wenn ich versuche einen Schalter einzubinden, so habe ich das Gefühl dass mir manchmal nicht alle vorhandenen Schalter angezeigt werden. Im ersten Versuch waren viel mehr Schalter auswählbar, nachdem ich einen ausgewählt habe, ist die Auswahl nun auf 10 Schalter reduziert und ich finde nicht wie ich an die anderen rankomme.
Gibts da eine einfache Erklärung?
Irgendwie muss das mit den auf dem Smartphone eingestellten Schriftgrößen, aber auch dem Bilschirmzoom und der Bildschirmauflösung zusammenhängen. Jedenfalls entstehen hier merkwürdige Kombinationen, die dazu führen, dass nicht alle vorhandenen Elemente angezeigt werden...
ich habe FhemSwitch am WE auf meinem raspberry installiert. Nach unendlich mal deinstallieren/installieren bin ich nach 3 Tagen 🙄 auf die Idee gekommen den Fehler mal woanders zu suchen. Und siehe da mit einem alten Handy hat es sofort fkt.. So wie es aussieht hat die Android App ein Problem mit Android 9 auf einem Honor View 10 Gerät (Huawei Ableger). Die App findet kein WLAN und meldet immer WLAN (null).
Zitat von: casc@home am 22 Januar 2019, 18:38:11
ich habe FhemSwitch am WE auf meinem raspberry installiert. Nach unendlich mal deinstallieren/installieren bin ich nach 3 Tagen 🙄 auf die Idee gekommen den Fehler mal woanders zu suchen. Und siehe da mit einem alten Handy hat es sofort fkt.. So wie es aussieht hat die Android App ein Problem mit Android 9 auf einem Honor View 10 Gerät (Huawei Ableger). Die App findet kein WLAN und meldet immer WLAN (null).
Hast du die geforderten Berechtigungen erteilt?
gehe mal in Einstellungen -> Apps ... -> Apps
wähle dort FHEMswitch und wähle dann Zugriffsrechte
auf dieser Seite musst evtl. noch auf Config klicken (3-Punkte rechts oben) und dann "Alle Berechtigungen" auswählen.
Welche Berechtigungen werden angezeigt?
Hallo Werner,
Danke für die Prompte Antwort. Dort steht nur Speicher (aktiviert).
Über die drei Punkte werden mir nur noch Info's angezeigt, ändern kann ich nichts mehr. Siehe Anhang.
Danke,
Gruß,
Carsten
So wie ich sehe liegt es nicht an den Berechtigungen. Deshalb kann es nur Android 9 oder Huawei liegen.
Ich habe auch ein Huawei-Handy - das zickt auch, aber in anderem Zusammenhang.
Android 9 habe ich gerade keine Möglichkeit zu testen, mangels Gerät.
Außerdem:
- beruflich bin ich den nächsten Wochen etwas eingespannt (auch als Freiberufler hat man Verantwortung)
- in der Freizeit baue ich gerade eine Tardis mit Licht und Flackerlicht und Sound
Deshalb kann es noch dauern, bis es dafür eine Lösung gibt, sorry.
kein Problem, kenne ich. Wenn ich irgendetwas testen kann, einfach melden. Falls Du die Sourcen updaten magst kann ich auch mal reinschauen.
Gruß Carsten
Zitat von: casc@home am 23 Januar 2019, 20:23:25
kein Problem, kenne ich. Wenn ich irgendetwas testen kann, einfach melden. Falls Du die Sourcen updaten magst kann ich auch mal reinschauen.
Gruß Carsten
bei jedem neuen Release von Android werden die Zugriffe auf auf Resourcen immer mehr erschwert, aus gutem Grund sicherlich, aber auch wenn man keine bösen Absichten hat mit seiner App, muss man sich darum kümmern, weil gewisse Aufrufe nicht mehr funktionieren.
Hallo,
ich würde auch gerne FHEMswitch benutzen, habe aber ähnliche Probleme wie Tueftler1983 seinerzeit.
Zitat von: Tueftler1983 am 09 April 2016, 22:13:10
Hallo zusammen nachdem mein FhemServer komplett neu installiert werden mußte und keines der Backups funktionierte stehe ich jetzt bei der Installation von fhem.js auf dem schlauch. Bin nach Anleitung vorgegangen aber bekomme folgende Fehler.
root@fhemserver:~# service fhem.js start
fhem.js: unrecognized service
root@fhemserver:~# cd /var/www/fhem.js
root@fhemserver:/var/www/fhem.js# node server.js
module.js:338
throw err;
^
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:286:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/var/www/fhem.js/server.js:6:15)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:475:10)
root@fhemserver:/var/www/fhem.js#
Jemand ne Idee woran es liegt?
Ich habe auch alles Schritt für Schritt eingerichtet (einige Mühen, aber letztendlich hat es bis hier hin geklappt).
Nun hatte ich beim Start von server.js das gleiche Problem:
pi@raspberrypi:/var/www/fhem.js $ node server.js
internal/modules/cjs/loader.js:613
throw err;
^
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:611:15)
at Function.Module._load (internal/modules/cjs/loader.js:537:25)
at Module.require (internal/modules/cjs/loader.js:665:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/var/www/fhem.js/server.js:19:10)
at Module._compile (internal/modules/cjs/loader.js:736:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
at Function.Module._load (internal/modules/cjs/loader.js:560:3)
Nachdem ich hier im Thread gefunden hatte, daß "socket.io", "mysql", "forever" alle im gleichen Verzeichnis liegen müssen wie fhem.js habe ich alles in diesen Pfad verschoben.
Danach gab es die folgende Fehlermeldung:
pi@raspberrypi:/var/www/fhem.js $ node server.js
internal/modules/cjs/loader.js:613
throw err;
^
Error: Cannot find module './params'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:611:15)
at Function.Module._load (internal/modules/cjs/loader.js:537:25)
at Module.require (internal/modules/cjs/loader.js:665:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/var/www/fhem.js/server.js:23:14)
at Module._compile (internal/modules/cjs/loader.js:736:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
at Function.Module._load (internal/modules/cjs/loader.js:560:3)
Ich hab schon vieles versucht, komme aber jetzt nicht mehr weiter. Kann mich bitte Jemand unterstützen?
Gruß
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 (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.
Hallo,
sorry, ich bin beim Suchen über meine Fehlermeldungen in diesen Thread gerutscht.
Den anderen Thread kenne ich natürlich, habe den auch von vorne bis hinten durchgelesen und es nach der Anleitung dort installiert und bin all den Links zu Github mit Erklärungen gefolgt.
Aber trotzdem wurde offensichtlich alles an der falschen Stelle installiert. Wenn ich meine Installation mit den Pfaden im Thread vergleiche, dann gibt es da gewaltige Unterschiede. Ich verstehe das nicht. Ich bin leider absoluter Anfänger was diese Dinge betrifft. Tut mir Leid wenn ich hier vielleicht augenscheinlichen Blödsinn frage.
Dann werde ich halt alles wieder deinstallieren/löschen und nochmal gaaaanz von vorne anfangen.
Melde mich dann nochmal (dann im anderen Thread) wenn ich wieder soweit bin.
Gruß
Zitat von: Tueftler1983 am 16 Februar 2018, 07:10:14
Meine ESP laufen alle mit toggle befehlen allerdings mit einem dummy und einem DOIF.
das Dummy hat eine Setlist on off toggle
Und das DOIF das toggle in on und off umsetzt
([d_Stelzenhaus_innen] eq "toggle" and $cmd =~ "2|0") (set d_Stelzenhaus_innen on) DOELSE (set d_Stelzenhaus_innen off)
Kannst du das bitte für Dummies erklären?
Ich verstehe leider nur Bahnhof :-[
Folgende Befehle:
define Wohnlicht dummy
attr Wohnlicht setList on off toggle
weiter komme ich leider nicht.
Hallo,
das doif erklärt: wenn der dummy den zustand toggle annimmt und das doif entweder cmd0 oder cmd2 hat setze den dummy auf on, andernfalls setze den dummy auf off
In deinem Fall sollte das doif dann so aussehen:
define di_Wohnlicht DOIF ([Wohnlicht] eq "toggle" and $cmd =~ "2|0") (set Wohnlicht on) DOELSE (set Wohnlicht off)
Hallo Werner,
hast Du eine Idee, warum FHEMswitch bei mir nicht mehr läuft. Habe mein S8+ heute auf Android 9 geupdatetd. Jetzt bekommt die App keine Verbindung mehr zum Server.
Testweise mit anderem Handy (Android 8) getestet, läuft. Gibt es was bzgl. Android 9 zu beachten?
Danke schon mal für deine Zeit die du hier investierst, klappt ansonsten sehr gut.
Gruß
Michael
Hallo zusammen,
bekomme beim starten von fhem.js immer folgende Fehlermeldung.
Apr 22 09:59:49 raspberrypi systemd[1]: Starting LSB: fhem.js init.d example...
Apr 22 09:59:49 raspberrypi fhem.js[577]: Starting fhem.js node instance:
Apr 22 09:59:49 raspberrypi sudo[586]: root : TTY=unknown ; PWD=/ ; USER=fhem ; COMMAND=/usr/bin/fhem.js -n fhem.js -l /var/log/fhem.js.log -e /var/log/fhem.js.error -p /var/run/fhem/fhem.js.pid -f /usr/bin/forever
Apr 22 09:59:49 raspberrypi sudo[586]: pam_unix(sudo:session): session opened for user fhem by (uid=0)
Apr 22 09:59:55 raspberrypi fhem.js[577]: warn: --minUptime not set. Defaulting to: 1000ms
Apr 22 09:59:55 raspberrypi fhem.js[577]: warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Apr 22 09:59:55 raspberrypi fhem.js[577]: info: Forever processing file: /usr/lib/node_modules/fhem.js/server.js
Apr 22 09:59:55 raspberrypi sudo[586]: pam_unix(sudo:session): session closed for user fhem
Apr 22 09:59:55 raspberrypi systemd[1]: Started LSB: fhem.js init.d example.
Fhem.js scheint aber zu laufen, habe es zumindestens mit lsof -i :8086 überprüft.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 684 fhem 10u IPv6 10918 0t0 TCP *:8086 (LISTEN)
In der Log-Datei von Fhem.js bekomme ich immer die Fehlermeldung das die telnet-Verbindung beendet wurde. Ein genereller Zugriff via Telnet ist aber möglich.
22.04.2019 09:59:21 listen for http requests disabled
22.04.2019 09:59:21 listen for websocket requests on port 8086 without SSL
22.04.2019 09:59:21 start connection to fhem server
22.04.2019 09:59:21 connected to fhem server for listen on changed values
22.04.2019 09:59:37 error: telnet connection closed - try restart in 10 secs
error: Forever detected script was killed by signal: SIGKILL
Hat noch jemand eine Idee?
Vielen Dank vorab!
der folgende Befehl ausgeführt auf dem raspi
telnet localhost 7072
list
erzeugt eine Liste aller FHEM-Units.?
Ansonsten setze mal in /etc/fhem.js/params.js den Wert von exports.debug auf 1 oder 2 und schau dann mal was im Logfile steht.
wenn ich mich via "telnet localhost 7072" verbinde und "list" geben erscheint folgendes.
root@raspberrypi:/home/pi# telnet localhost 7072
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
list
Type list <name> for detailed info.
Global:
global (no definition)
TCM:
TCM_ESP3_0 (initialized)
FHEMWEB:
WEB (Initialized)
EnOcean:
FSR61 (B0)
eventTypes:
eventTypes (active)
notify:
initialUsbCheck (2019-04-22 14:27:35)
FileLog:
FileLog_FSR61 (active)
Logfile (active)
allowed:
allowed_WEB (validFor:WEB,tPort)
allowed_telnetPort (validFor:WEB,tPort)
autocreate:
autocreate (active)
telnet:
tPort (Initialized)
tPort_127.0.0.1_59188 (Connected)
tPort_127.0.0.1_59200 (Connected)
Wenn ich "export.debug" auf 1 setze kommt folgendes.
22.04.2019 19:39:05 error: telnet connection closed - try restart in 10 secs
error: Forever detected script was killed by signal: SIGKILL
22.04.2019 19:39:25 listen for http requests disabled
22.04.2019 19:39:26 initFinished
22.04.2019 19:39:26 initFinished
22.04.2019 19:39:26 listen for websocket requests on port 8086 without SSL
22.04.2019 19:39:26 start connection to fhem server
22.04.2019 19:39:26 versionCheck after 43200000
22.04.2019 19:39:26 connected to fhem server for listen on changed values
Es liegt auch bei mir an meinem Samsung S9 mit Android 9. (Wlan 0 )
Auf meinem Tablet läuft es ohne Probleme.
:-\
In deinem ersten Log wurde eine Abruch der telnet-Verbindung dokumentiert,
in deinem nächsten log war dies nicht mehr der Fall
verwuch mal dieser Diskrepanz auf den Grund zu gehen.
... und Android x.y spielt für fhem.js überhaupt keine Rolle
Ich habe nachher einfach eine alte Sicherung der fhem.cfg wiederhergestellt.
Danach ist mir dann der Beitrag bezüglich Android 9 ins Auge gefallen.
Daraufhin habe ich dann ein anderes Gerät ausprobiert und es funktionierte.
Leider kann ich das nicht mehr im Detail rekonstruieren. :-\
Bei mir war es auch so, Umstellung auf Android 9. Geht nicht mehr.
Gruß michael
es wäre schön wenn du beschreiben könntest was "es geht nicht mehr" im Detail bedeutet.
Ich habe kein Android 9 Gerät zur Hand und kann da nichts testen. Zudem habe ich gerade nicht die Muße mich mit diesem Problem zu beschäftigen, da ich anderweitig ziemlich eingespannt bin.
Zum Hintergrund:
fhemSwitch ist ja ein Widget, dass permanent aktiv ist, da es auf Befehle wartet und auf Statusänderungen reagieren muss. Mit jeder neuen Android Version werden die Möglichkeiten solcher interaktiven Widgets immer weiter eingeschränkt und man muss bei jeder Version immer wieder etwas drehen, damit sie noch funktionieren. Warum von Google dies gemacht wird hat meiner Ansicht nach zwei Gründe (es gibt sicher noch viel mehr):
- nachvollziehbar - es wurde damit Schindluder getrieben von dubiosen Apps
- Marketingsprech - "durch Optimierungen in blabla haben wir eine deutlich längere Akkulaufzeit erreicht" - eine Optimierung die teils auf Kosten interaktiver Apps geht, die eben permanent Strom verbrauchen, manche mehr, manche weniger, aber eben ständig. Also werden von Release zu Release immer mehr Hürden in den Weg gelegt um diese "Stromfresser" zu eliminieren
Bei mir wurde beim starten von fhemswitch unter WLan "Null" angezeigt. Ich konnte mich daraufhin nicht mit fhem verbinden. (Fehlermeldung, ist der Server online etc.)
Für alle die Probleme haben mit Android 9 und fhemSwitch:
kann jemand mal genauer beschreiben, was "geht nicht" bedeutet?
Hallo Werner,
ich versuche dir genauere infos zu geben. Melde mich am Donnerstag da ich aktuell unterwegs bin.
Habe ich debugausgaben im smartphone?
Bis dann
Michael
Hallo Werner,
kurze Rückmeldung:
Aktuell in Betrieb
- S7 Android 8.0.0
- S8 Android 9.0.0
Wenn ich mit dem S7 Verbindung aufbaue, funktioniert alles:
03.05.2019 09:44:07 client connected: Widget, SM-G930F, Android 8.0.0, App 4.1.1
03.05.2019 09:44:07 emit authenticated cause no auth needed
03.05.2019 09:44:08 get value for EG_KUE_LaSchr
03.05.2019 09:44:08 [object Object]
03.05.2019 09:44:08 request for getValueOnChange EG_KUE_LaSchr
Wenn ich mit dem S8 eine Verbindung aufbaue, sehe ich im Log keinerlei Ausgaben! FHEMswitch sagt sofort
Es ist ein Fehler aufgetreten
Keine Verbindung zum fehm.js Server möglich:
....
Die Verbindungseinstellungen sind bei beiden Geräten gleich.
Deshalb meine Frage, kann ich in FHEMswitch etwas debuggen?
Gruß
Michael
Danke für diese Beschreibung der Probleme. Aber da habe ich gleich noch Fragen dazu:
- das tritt auf wenn du die Konfiguration startest, deine Zugangsdaten eingibst und dann auf "FHEM einlesen" klickst?
- was steht da bei "augenblickliches WLAN ..." auf dem Konfigschirm?
- hast du in den Einstellungen "Standort" deaktiviert. Wenn ja, dann aktivier das mal und ruf FHEMswitch neu auf (also vorher beenden)
Zu deiner Frage wegen debugging:
- es gibt Abbruchmeldungen, die automatisch erzeugt werden und für den Owner der App einsehbar sind. Man sieht dort die Java-Fehlermeldung, die Version von Android und App und auch das Modell des Gerätes auf dem dies passiert ist. (Google Datenkrake gibt auch ausgewählte Infos an die App-Owner weiter). Nur das von dir beschriebene Problem ist kein Abbruch, sondern ... was auch immer. Deshalb steht da nichts.
- natürlich gibt es auch sehr professionelle Möglichkeiten des Debuggings. Dazu braucht man aber physischen Zugang zu einem Gerät, das mit Kabel an eine Rechner angeschlossen ist, auf dem Android Studio, die Entwicklungsumgebung für Android, installiert ist und man braucht den Sourcecode einschließlich der krypto-Signaturen für diese App. (Vermutlich gibt es auch noch irgendewelche Hackerlösungen oder was auch immer was mir nicht bekannt ist)
- es gibt in Android Studio auch Emulatoren für alle möglichen Geräte und Android Versionen mit denen man auch Android 9 testen könnte. Aber erstens ist das meist ein Performance-Alptraum und zweitens funktionieren die, zumindest nach meinem letzen Wissensstand, nur auf Intel-Prozessoren und nicht auf AMD-Prozessoren. Mein Arbeitsrechner hat nun mal AMD. Ich habe auch noch ein Notebook mit Intel, aber bis das Android-Debug fähig wäre, vergeht mindestens ein Tag. Zur Zeit gibt es diesen Tag nicht.
Zitat von: Werner Schäffer am 03 Mai 2019, 20:12:47
- das tritt auf wenn du die Konfiguration startest, deine Zugangsdaten eingibst und dann auf "FHEM einlesen" klickst?
- was steht da bei "augenblickliches WLAN ..." auf dem Konfigschirm?
- hast du in den Einstellungen "Standort" deaktiviert. Wenn ja, dann aktivier das mal und ruf FHEMswitch neu auf (also vorher beenden)
- Ja, es kommt sofort wenn ich ein Widget platzieren will und die Verbindung konfigurieren muss.
- Hier steht tatsächlich (null), ist mir nicht aufgefallen.
- Standort ist aktiv! Habe mal nach weiteren Berechtigungen geschaut, sind aber keine außer "Speicher" notwendig. Unter "Standort/App-Berechtigungen/Standort" sieht man kein FHEMswitch (ggf. weil es ein widget ist)
Mit dem Debugging meinte ich nicht so hochkompliziert, sondern ggf. ein Logfile ähnlich fhem.js mit debug=2.
Gruß und danke für die schnelle Reaktion
Michael
Danke für die Infos - es ist jetzt klar dass FHEMswitch keinen Zugang zu den WLAN-Infos bekommt. Diese Null wurde auch schon von Credo gemeldet, das bietet mir zumindest einen Ansatzpunkt für die Problemlösung.
Hallo,
Heute Nacht Update auf Android 9 erhalten seid dem mit dem Huawei mate 20 Lite keine Verbindung zum FHEM.switch Server mehr möglich.
Bei Android 9 muss für den Zugriff auf WLAN-Infos (fhemswitch benötigt die) das Rechte Standortabfrage aktiviert sein. Unter Einstellungen -> Sicherheit -> Standort muss dies generell aktiviert sein und unter Umständen auch nochmals unter Berechtigungen für fhemswitch direkt nochmals aktivieren.
Hallo Werner,
Der generelle Standort Zugriff ist aktiviert, in der Liste der Apps die darauf zugreifen ist FhemSwitch nicht aufgeführt.
Auch wenn ich in Einstellungen/Apps/Apps/FhemSwitch/Berechtigungen gucke wird da nichts angezeigt von Standortabfrage oder so auch wenn ich in weitere Berechtigungen gucke nicht. Siehe Screenshots.
Was kann ich noch tun?
Ich habe ja leider nur ein Android 8. Dort gibt es unter
Konfiguration -> Apps & Benschrichtigungen -> Berechtigungen
eine Liste in der auch Standort steht. Klickt man da drauf kann man einzelene Apss zuweisen.
Ich weiß wo du meinst aber in dieser Liste steht FHEMswitch nicht mit drin, siehe Screenshots.
Verstehe auch nicht warum FhemSwitch dann nicht über die ddns Adresse geht.
Alles was ich zu Android 9 gesagt habe ist gegoogelt. Von meiner Seite wird es vermutlich nicht so schnell eine Lösung geben, da erstens ohne Android 9 Gerät es schwierig ist dem Problem auf den Grund zu gehen (ich werde mir auch in absehbarer Zeit keines kaufen, da billig oder gebraucht es da nichts gibt) und zweitens bin ich zur Zeit beruflich mit einer Softwareentwicklung ausgelastet und habe in meiner Freizeit keine Energie mich mit Android Java zu beschäftigen. Sorry.
Ach ja auf
https://github.com/winne27/FHEMswitch (https://github.com/winne27/FHEMswitch)
steht der Sourcecode dieser App. Wer eine Lösung für das Problem kennt, bitte gern kommunzieren.
Hmm das ist natürlich schade für mich und alle anderen mit diesem Problem.
Kann dich verstehen aber muss jetzt echt überlegen was ich machen kann für mich ist FhemSwitch ein SEHR Wichtiger Bestandteil von FHEM.
Jetzt muss ich gucken ob ich das Huawei mate 20 Lite downgraden kann auf Android8
ich habe bei mir zentral im Haus ein Billigtablet für 70 Euro festgeschraubt um fhemswitch zu bedienen.
Ja aber nutze die Widgets um die Türe zu öffnen die TV ausschalt Zeit zu ändern, im Pool die PH Senkung oder Hebung und Chloorung zu aktivieren oder einfach die Temperaturen in der Wohnung zu sehen. Zudem steuere ich die Soundanlage komplett darüber.
Habe 3 Bildschirme komplett mit FhemSwitch belegt.
Ich habe mir jetzt ein Handy mit Android 9 zugelegt und ein erster Versuch zeigte genau die gleichen Probleme wie hier schon mehrfach beschrieben. Ich werde mich in den nächsten Tagen bis Wochen dann mal auf die Fehlersuche machen und hoffe dass ich bald eine Lösung anbieten kann.
Das wäre super Werner, ich hätte nicht gedacht daß man so bequem werden kann und verwöhnt. Für mich ist die ganze Hausautomation bzw smartHome nur halb so smart und im Alltag erleichternt ohne FhemSwitch.
Es gibt ein neues Release: 4.2.0
Damit funktioniert FHEMswitch auch wieder auf Android 9 Geräten. Es gibt noch kleinere Probleme mit der Bezeichnung der WLAN-Verbindung, das wird dann später mal gelöst.
--------
Falls es jemand interessiert wie das Problem gelöst hat wurde:
In das AndroidManifest von FHEMswitch musste die Zeile
android:usesCleartextTraffic="true"
aufgenommen werden, damit die App weiterhin Websocket-Verbindungen zu fhem.js aufnehmen kann.
Vielen Dank an Bilal Ahmed der auf https://stackoverflow.com/questions/53284903/socket-io-not-working-on-android-9-api-level-28/56018093#56018093 diese Lösung gepostet hat.
Okay das freut mich..... Suche Grade im Play Store.... Noch nix
Ab wann ist die .APK verfügbar im Store?
Update ist heute Nacht eingetrudelt, endlich kann ich FhemSwitch wieder nutzen. Besten Dank!!!!
Soweit läuft's ja wieder aber in den Einstellungen wird das Elan noch als "Null" angezeigt siehe Screenshot.
Zitat von: Tueftler1983 am 30 Juli 2019, 22:30:31
Soweit läuft's ja wieder aber in den Einstellungen wird das Elan noch als "Null" angezeigt siehe Screenshot.
Steht weiter oben... gibt noch kleinere Probleme mit der WLAN Anzeige die später bei Gelegenheit gefixt werden.
Hallo Werner,
bin gerade dabei auf ein neues Smartphone umzuziehen.
Daher wollte ich die Einstellungen exportieren.
Laut App funktioniert der Export einwandfrei, nur finde ich unter dem angegebenen Pfad "/storage/emulated/0/fhemswitch" keine Daten, bzw. der Ordner "fhemswitch" existiert nicht einmal.
Ich benutzte noch Android 6.
Kann ich die Daten auch anders sichern/kopieren?
Gruß und danke
Bernd
du must in den Android Einstellungen für die App fhemswitch die Berechtigung "Speicher" erteilen.
Bei Gelegenheit muss ich da mal das Programm anpassen, dass dies abgefragt wird.
Danke Werner, soweit habe ich nicht gedacht :(
Jetzt funktioniert es.
Gibt es schon Neuigkeiten zu Android 10? Das ist meine Zukunft... :)
Zitat von: frober am 20 November 2019, 16:08:10
Danke Werner, soweit habe ich nicht gedacht :(
Jetzt funktioniert es.
Gibt es schon Neuigkeiten zu Android 10? Das ist meine Zukunft... :)
Zu Android 10 habe ich noch nichts gehört. Du darfst gerne berichten ob es klappt oder wo es klemmt.
Gute Nachricht, auf Android 10 funktioniert es, bis auf die bekannte "0", problemlos.
Im Store gibt es jetzt die Version 4.3.0.
Das Problem mit dem WLAN-namen ist damit hoffentlich behoben.
Es tut schon etwas weh, aber ich habe mich von FHEM verabschiedet. Dies bedeutet auch dass fhemSwitch nicht mehr weiterentwickelt wird. Es wird, versprochen, weiterhin im Google Store in der augenblicklichen Version verfügbar bleiben. Falls notwendig wird auch die gegenwärtige Version neu kompeliert werden, um zukünftige Anforderungen seitens Google abzudecken.
Warum diese, auch für mich selbst überraschend schnelle Abkehr von fhem in allerkürzester Zeit:
- ich habe in meiner Hausautomation im wesentlichen nur Geräte von Homematic (Landkreis Leer - da wohne ich und da ist ELV und EQ3 angesiedelt und alles bleibt im Haus und nichts mit Cloud usw.)
- über Jahre habe ich mit einer HMLAN Zentrale für die Steuerung gearbeitet und die konnte nur wirklich sinnvoll mit FHEM betrieben werden
- jetzt habe ich mir aber eine CCU3, erst mal nur zur Sicherheit, falls die HMLAN mal den Geist aufgibt weil die es ja schon lange nicht mehr zu kaufen gibt, angeschafft
- dann ging es ratzfatz: mit der CCU3 war FHEM im Prinzip nicht mehr nötig in meiner Konstellation
Loblied auf FHEM
- ist ausgereift
- stabil durch jahrzehntelange Erfahrung
- man kann damit alles und wirklich fast alles realisieren,
- unterstütz wird gefühlt alles was eine IP-Adresse hat
- hat ein Forum was seinesgleichen sucht
mein persönlicher Abgesang auf FHEM
- ich mochte PERL noch nie wirklich und für die Syntax musste ich jedesmal, obwohl ich das eine oder andere PERL-Script schon erstellt hatte, immer wieder nachschauen bei Google
- die Standardwebseite von FHEM ist wirklich eine Zumuting und ein Paradebeispiel für "wie qäule ich meine Anwender, indem ich zwar alles zeige an Informationen was es überhaupt gibt, aber sie alleine lasse wenn es darum geht irgendetwas zu ändern. Beispiel: hat mein bei "set attribute" etwas ausgewählt, dann musste man aber nochmals links auf SET klicken , damit das überhaupt ausgeführt wurde und vergaß man danach links oben noch auf Config speichern zu klicken, wars beim nächsten Restart wieder weg ...
- die Vermischung von FHEM und perl Befehlen ist ein syntaktischer Albtraum, z.B. irgendwas funktioniert nur wenn man ein doppeltes Semikolon am Ende hat. Dies ist nur ein einfaches Beispiel: es gibt ellenlange Forumsdiskussion um endlich eine gültige Kombination von Klammern aller Art und Trennzeichen aller Art zu finden um irgendein Problem zu lösen - sorry das nervte mich zusehends weil es auch einfacher geht:
mein Umstieg
- ich habe die CCU3 konfiguriert und das war wie üblich nicht sofort verständlich, aber es hat nicht lange gedauert um damit wirklich gut zurecht zurechtzukommen
- beim ruminformieren fielen dann auch noch überraschend oft die Worte openHap und iobroker
- iobroker habe ich dann installiert und innerhalb von 3 Tagen hatte ich alle Einheiten an die CCU3 angelernt und alle meine mit vielen Mühen in fhem erstelltem doifs, dummys, notify_by, usw und was auch immer, in einfache Scripte in iobrocker überführt
meine neue Heimat ioBroker
- dieses Teil ist ein nodejs Konstrukt und alles und wirklich alles ist mit Javascript programmierrt und da fühle ich mich wohl
- man kann Event- und Zeit gesteuret mit Javascript-Syntax fast alles in iobroker lösen
- es gibt eine passable Weboberfläche (könnte noch besser werden)
- objektorientiert - was in den Scripten wunderbare Möglichkeiten schafft auf alle Werte irgendwelcher Art zuzugreifen.
- vis ist am Anfang echt ein Monster, aber man kann es zähmen
Perspektive
- iobroker bietet von Haus aus websocket.
- es ist daher denkbar ein Widget ioSwitsch anlog zu fhemSwitch zu entwickeln (ist aber sehr spekulativ)
Kann mir jemand sagen, wie man in einem Widget bei der Anzeige von Werten eines Sensors auswählen kann was angezeigt werden soll? Also ob Temperatur, Feuchtigkeit oder einfach nur open erscheint. Ich hatte merkwürdigerweise einmal die Temperatur angezeigt bekommen, dann nach Drücken auf Server refresh steht es jetzt auf Open und bleibt stur dabei.
Man da kann da leider gar nichts auswählen, es wird immer der Wert der in 'State' steht angezeigt. Als Workarround kann mit FHEM-Dummies gearbeitet werden und notify-by-change.
Hallo Mal wieder,
Ich habe immer wieder Probleme wenn ich eine neues Relais über EASYesp in FHEM einbinde, dieses gescheit im FHEMswitch zu bekommen.
Schalten geht ohne Probleme aber der Status wird nicht angezeigt.
Im Device, egal ob direkt ESP oder über Dummy wird nach einem toggle immer korrekt "on" oder "off" angezeigt nur in FHEM Switch ist das Symbol immer auf toggle.
Andere ESP Device die genau so angelegt sind Funktionieren auch in FHEMswitch.
Ich verstehe es einfach nicht.