Autor Thema: FHEMswitch - Widgets für Android Startscreen  (Gelesen 20317 mal)

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
FHEMswitch - Widgets für Android Startscreen
« am: 01 Mai 2015, 18:08:09 »
FHEMswitch 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 auf dem Startscreen eines Android-Gerätes kompakt 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:

Voraussetzungen
Man 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

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 

  • 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

  • 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 Konfiguration
Nach 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 aus
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

Weitere Beispiele in dem Verzeichnis:
https://github.com/winne27/FHEMswitch/tree/HEAD/assets/sreenshots
« Letzte Änderung: 23 Dezember 2016, 12:40:09 von Werner Schäffer »

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4135
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #1 am: 02 Mai 2015, 06:20:10 »
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

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #2 am: 02 Mai 2015, 14:03:24 »
...
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 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.

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #3 am: 02 Mai 2015, 14:05:55 »
Kleiner Nachtrag:

der Sourcecode für FHEMswitch ist auf

https://github.com/winne27/FHEMSwitch

einsehbar.

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4135
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #4 am: 02 Mai 2015, 16:32:15 »
Zitat
"ziemliches Sicherheitsrisiko" ist doch sicher etwas übertrieben.
>:(
Sicher nicht.

pah

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #5 am: 02 Mai 2015, 17:37:24 »
...
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/

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/

Node at scale: What Google, Mozilla, & Yahoo are doing with Node.js
http://venturebeat.com/2012/01/24/node-at-google-mozilla-yahoo/

Nicht unbedingt Hinterhofklitschen und durchaus auch sicherheitsrelevante Anwendungen, oder Herr Professor?

Offline eberlrudi

  • Jr. Member
  • **
  • Beiträge: 76
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #6 am: 17 Mai 2015, 11:47:39 »
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.

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #7 am: 17 Mai 2015, 13:29:06 »
Achtung - diese Anleitung ist veraltet!

Für die Installation bitte die Anleitung auf

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 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 /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

« Letzte Änderung: 02 Februar 2016, 09:13:37 von Werner Schäffer »

Offline eberlrudi

  • Jr. Member
  • **
  • Beiträge: 76
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #8 am: 17 Mai 2015, 20:48:53 »
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.ioDa bekomme ich eine Fehlermeldung:  bash: npm: Kommando nicht gefunden.
Woran liegt denn das? Ich benutze den Root-Terminal

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4135
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #9 am: 18 Mai 2015, 07:17:12 »
Nun, daran, dass npm nicht installiert ist.

LG

pah

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #10 am: 18 Mai 2015, 14:20:37 »

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 -v


jeweils eine Versionsnummer liefern.


« Letzte Änderung: 18 Mai 2015, 14:26:28 von Werner Schäffer »

Offline jsloot

  • Full Member
  • ***
  • Beiträge: 175
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #11 am: 25 Mai 2015, 20:37:46 »
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
Ein FHEM-Raspi mit HM-CFG-USB-2. 9 HM Heizthermostate, 9 HM Temperatursensoren, 22 HM Fensterkontakte, 7 Rolloaktoren, 17 HM Unterputz-Aktoren

Offline Icinger

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 996
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #12 am: 25 Mai 2015, 20:48:21 »
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 >
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Offline Werner Schäffer

  • Full Member
  • ***
  • Beiträge: 189
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #13 am: 26 Mai 2015, 15:11:10 »
Auf 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.

Offline jsloot

  • Full Member
  • ***
  • Beiträge: 175
Antw:neu: FHEMswitch - ein Widget für Android Startscreen
« Antwort #14 am: 26 Mai 2015, 15:53:38 »
Auf 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
Ein FHEM-Raspi mit HM-CFG-USB-2. 9 HM Heizthermostate, 9 HM Temperatursensoren, 22 HM Fensterkontakte, 7 Rolloaktoren, 17 HM Unterputz-Aktoren

 

decade-submarginal