Fronthem Installation: Unterschied zwischen den Versionen

Aus FHEMWiki
(Änderung 13489 von Manuel-123 (Diskussion) rückgängig gemacht.)
(Komplette Überarbeitung im Rahmen des gesamten Themengebiets fronthem/smartVISU)
 
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{SEITENTITEL:fronthem Installation}}


Einen Überblick über Fronthem findet man auf der Seite zu [[Fronthem]]
Dieser Artikel befasst sich mit der Installation von "fronthem". Es stellt ein Interface zur Verfügung, um ein Webfrontends wie z.B. [[smartVISU]] an FHEM anzubinden. Die Konfiguration und das Interface selbst sind im [[fronthem|Hauptartikel von fronthem]] beschrieben.


== Allgemein ==
Alle Artikel zur Thematik fronthem/smartVISU sind [[:Kategorie:fronthem/smartVISU|hier]] kategorisiert.  
=== Fhem ===
Ein lauffähiges Fhem mit einem aktuellen Update sollte installiert sein.


=== Webserver ===
Für smartVISU muss ein Webserver (z.B. lighttpd oder Apache oder nginx) installiert sein.


==== lighttpd ====
----


    sudo apt-get update
    sudo apt-get install lighttpd
    sudo apt-get install php5-common php5-cgi php5
    cd /var/www
    sudo lighty-enable-mod fastcgi-php
    sudo service lighttpd force-reload
    sudo chown www-data:www-data /var/www
    sudo chmod 775 /var/www
    sudo usermod -a -G www-data pi
    sudo usermod -a -G www-data bananapi


==== nginx ====
__TOC__
Folgende Pakete werden benötigt:
$ apt-get install nginx php5-fpm


Die Konfiguration für nginx kann man unter
sudo nano /etc/nginx/sites-enabled/default
vornehmen.


Folgende Konfiguration sollte direkt funktionieren:
== Vorraussetzungen schaffen ==
server {
listen 80;
root /var/www;
index index.html index.php;
server_name localhost;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}


== Installation smartVISU ==
In Abhängigkeit der verwendeten Distribution gibt es mehrere Möglichkeiten, die einzelnen Pakete zu installieren {{Link2Forum|Topic=38639|Message=309479|LinkText=(Forum)}}. Für einige Installationsschritte ist das Paket build-essential, dass über diesen Befehlt installiert werden kann. Sonst können die make's während der folgenden Schritte nicht ausgeführt werden {{Link2Forum|Topic=30909|Message=235986|LinkText=(Forum)}}.
Die Installation stammt aus Jörg Herrmanns git-Repo: https://github.com/herrmannj/smartvisu-cleaninstall
sudo apt-get install build-essential


Folgende Pakete werden benötigt:
=== cpanmin ===
  $ apt-get install git
  curl -L https://cpanmin.us | perl - --sudo App::cpanminus


Hierbei handelt es sich um das original smartVISU inkl. diverser Anpassungen (fhem-Treiber, ...).
oder


'''Download:'''
  sudo apt-get install cpanminus
  $ mkdir ~/install
$ cd ~/install
$ git clone https://github.com/herrmannj/smartvisu-cleaninstall.git
'''Installation:'''
$ sudo cp -rp smartvisu-cleaninstall /var/www/smartvisu
$ cd /var/www
$ sudo chown -R www-data:www-data smartvisu


'''Installation überprüfen:'''
=== WebSocket ===


Beim Aufruf der Seite http://<IP-Adresse>/smartvisu sollte folgende Seite angezeigt werden: {{Randnotiz|RNTyp=y|RNText=Wenn ihr hier einen Fehler erhaltet und euch nicht die SmartVisu Seite angezeigt wird müsst ihr die Datei "config.ini.default" zu "config.ini" umbenennen, am besten erstellt ihr eine neue Kopie wie folgt:
sudo cpanm Net::WebSocket::Server
<code>$ sudo cp /var/www/smartvisu/config.ini.default /var/www/smartvisu/config.ini</code>
oder {{Link2Forum|Topic=47120|Message=388577|LinkText=(Forum)}}
Ebenso bitte ggf. in der php.ini (error_reporting) die Ausgabe von Warnings abschalten, wenn so was kommt wie "Notice: Undefined index..."
sudo cpan install Net::WebSocket::Server
}}


[[Datei:Installation_SmartVISU.png]]
=== JSON ===


== Installation Fronthem ==
Folgende Pakete werden benötigt:
curl -L https://cpanmin.us | perl - --sudo App::cpanminus
sudo cpanm Net::WebSocket::Server
  sudo cpanm JSON
  sudo cpanm JSON
oder
sudo cpan install JSON
oder falls es Probleme mit CPAN und Debian z.B. auf dem RPi gibt, kann man JSON auch über die normale Paketverwaltung installieren {{Link2Forum|Topic=30909|Message=237576|LinkText=(Forum)}}:
sudo apt-get install libjson-perl


Mit folgendem Befehl kann man Fronthem installieren / updaten:
== Module herunterladen ==
 
Mit folgendem Befehl kann man fronthem installieren / updaten (in Eingabezeile von FHEM eingeben):
  update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt
  update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt


Konfiguration von Fronthem in Fhem  (Eingabe in der Fhem Web Kommandozeile):
Durch die Option <code>force</code> werden bei erneutem Aufruf auch erneut alle Dateien heruntergeladen und das Update so erzwungen.
 
== Ersteinrichtung innerhalb von FHEM ==
 
Die Konfiguration von fronthem in FHEM (Eingabe in der Fhem Web Kommandozeile):
  define <Name Webservice> fronthem
  define <Name Webservice> fronthem
  define <Name Endgerät> fronthemDevice <IP Endgerät>
  define <Name Endgerät> fronthemDevice <IP Endgerät>


Beispiel:
Beispiel:
  define meinfronthem fronthem
  define meinfronthem fronthem
  define meiniphone fronthemDevice 192.168.178.25
  define meiniphone fronthemDevice 192.168.178.25


"Save" nicht vergessen!
Näheres zur Einrichtung und Konfiguration innerhalb von FHEM findet sich im [[fronthem|Hauptartikel]] von fronthem.
Näheres dazu findet man auch unter http://www.fhemwiki.de/wiki/Fronthem#Basic_Syntax
 
== Eigenes smartVISU Projekt anlegen ==
im Ordner "''/var/www/smartVISU/pages''" einen neuen Ordner "''MeinHaus"'' anlegen.
*  aus dem Ordner "''../pages/_template''" alles in den neuen Ordner ("''/var/www/smartVISU/pages/MeinHaus"'') kopieren.
*  "''rooms_menu.html''" an eigene Gegebenheiten anpassen hierzu dienen die "_template-Dateien" als Orientierung.
* alle rooms anlegen durch Kopien des Beispielraumes (''room_sleeping.html'') und passende icons und Überschriften verteilen. ([http://www.smartvisu.de/docu/2.7/index.php?page=design/design_icons SmartVisu Icons])
* SmartVISU nutzt [http://twig.sensiolabs.org/ Twig] als Template engine und die Seiten bestehen aus Blöcken und Widgets, die immer in doppelten geschweiften Klammern stehen <nowiki>{{ ... }}</nowiki>
* Widget Syntax auf [http://www.smartvisu.de/docu/2.7/index.php SmartVISU Doku] nachschlagen und kopieren.
* innerhalb eines Raums zwischen {% block content %} und {% endblock %} als Beispiel folgenden Abschnitt einfügen:
 
<pre><nowiki>
<h1><img class="icon" src='{{ icon0 }}scene_livingroom.png'/>Wohnzimmer</h1>
  <div class="preblock">
 </div>
 <div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      <div data-role="collapsible" data-collapsed="false" >
        <h3>Licht</h3>
          <table width="90%">
            <tr><td align="left" width="100px">&nbsp;{{ basic.switch('Leselampe', 'Leselampe.sw', icon1~'light_floor_lamp.png', icon0~'light_floor_lamp.png') }}</td>
              <td>Leselampe</td>
            </tr>
          </table>
        </div>
      </div>
   </div>
</nowiki></pre>


* Datei speichern und checken, dass die Rechte mindestens auf "755" stehen, ansonsten  mit "sudo chmod 755" korrigieren.
==Troubleshooting==
* smartVISU aufrufen, Zahnrad = configmenü, eigenes Haus auswählen (Ordnername!) und als Treiber DOMOTIGA (oder auch FHEM) mit Port 2121 mit der IP des FHEM-Servers
* speichern der Config nicht vergessen (Save ganz unten!)
* jetzt ist es wichtig, dass ihr einmal eure Seiten in Smartvisu aufruft damit im Hintergrund die GADs erstellt werden.
* In Fhem eure fronthemDevice Detailansicht öffnen
* Nun seht ihr eure GADs, aus der gadliste ein gad auswählen (hier: "Leselampe.sw" wie im obigen Code-Beispiel definiert.) und die Parameter vergeben:
<pre>
    device: <fhem-Name-des-fhem-devices> (in diesem Fall die Leselampe.sw)
    reading: state
    converter: OnOff
    cmd set: state
    write: ja (haken setzen)
    read: ja (haken setzen)
</pre>
: "state" immer klein schreiben und speichern nicht vergessen!
* Die Settings für das Device gelten für alle Endgeräte, aber die read/write Rechte müssen für jedes Endgerät separat gesetzt werden.


== Verbindung smartVISU mit Fhem ==
=== Fehler bei Installation von WebSocket ===
=== Konfiguration smartVISU-Treiber ===
==== Interface ====
TODO


==== I/O-Connection ====
Zum einen ist für die Installation das Paket build-essential notwendig, dass z.B. über folgenden Befehl installiert werden kann:
Unter smartVISU in die Konfigurationsoberfläche wechseln (http://<IP-Adresse>/smartvisu/index.php?page=config)
sudo apt-get install build-essential


Driver: ''Fhem''  (wird in Github von hermmanj bereitgestellt, falls smartvisu nicht von dort bezogen wird)
Darüber hinaus muss die Konfiguration des Netzwerk-Interfaces korrekt und vollständig sein {{Link2Forum|Topic=52694|Message=445277|LinkText=(Forum)}}.


Adresse: ''<IP-Adresse Fhem-Server>''
=== Port 2121 belegt ===


Port: ''2121''
Ist der Port 2121 bereits durch einen anderen Dienst belegt, z.B. ein OWS Server, gibt es beim Versuch den Websocketserver zu starten eine Fehlermeldung {{Link2Forum|Topic=38639|Message=313193|LinkText=(Forum)}}.


== Bekannte Probleme ==
[[Kategorie:fronthem/smartVISU]]
TODO

Aktuelle Version vom 26. Juni 2016, 15:22 Uhr


Dieser Artikel befasst sich mit der Installation von "fronthem". Es stellt ein Interface zur Verfügung, um ein Webfrontends wie z.B. smartVISU an FHEM anzubinden. Die Konfiguration und das Interface selbst sind im Hauptartikel von fronthem beschrieben.

Alle Artikel zur Thematik fronthem/smartVISU sind hier kategorisiert.





Vorraussetzungen schaffen

In Abhängigkeit der verwendeten Distribution gibt es mehrere Möglichkeiten, die einzelnen Pakete zu installieren (Forum). Für einige Installationsschritte ist das Paket build-essential, dass über diesen Befehlt installiert werden kann. Sonst können die make's während der folgenden Schritte nicht ausgeführt werden (Forum).

sudo apt-get install build-essential

cpanmin

curl -L https://cpanmin.us | perl - --sudo App::cpanminus

oder

sudo apt-get install cpanminus

WebSocket

sudo cpanm Net::WebSocket::Server

oder (Forum)

sudo cpan install Net::WebSocket::Server

JSON

sudo cpanm JSON

oder

sudo cpan install JSON

oder falls es Probleme mit CPAN und Debian z.B. auf dem RPi gibt, kann man JSON auch über die normale Paketverwaltung installieren (Forum):

sudo apt-get install libjson-perl

Module herunterladen

Mit folgendem Befehl kann man fronthem installieren / updaten (in Eingabezeile von FHEM eingeben):

update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt

Durch die Option force werden bei erneutem Aufruf auch erneut alle Dateien heruntergeladen und das Update so erzwungen.

Ersteinrichtung innerhalb von FHEM

Die Konfiguration von fronthem in FHEM (Eingabe in der Fhem Web Kommandozeile):

define <Name Webservice> fronthem
define <Name Endgerät> fronthemDevice <IP Endgerät>

Beispiel:

define meinfronthem fronthem
define meiniphone fronthemDevice 192.168.178.25

Näheres zur Einrichtung und Konfiguration innerhalb von FHEM findet sich im Hauptartikel von fronthem.

Troubleshooting

Fehler bei Installation von WebSocket

Zum einen ist für die Installation das Paket build-essential notwendig, dass z.B. über folgenden Befehl installiert werden kann:

sudo apt-get install build-essential

Darüber hinaus muss die Konfiguration des Netzwerk-Interfaces korrekt und vollständig sein (Forum).

Port 2121 belegt

Ist der Port 2121 bereits durch einen anderen Dienst belegt, z.B. ein OWS Server, gibt es beim Versuch den Websocketserver zu starten eine Fehlermeldung (Forum).