FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Matthias1912 am 06 Januar 2017, 18:30:32

Titel: Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 06 Januar 2017, 18:30:32
Hallo, bin neu hier und hoffe ihr könnt mir helfen.

Ich habe Fhem auf dem Pi3 laufen und wollte das Tablet UI auf dem php Server im Pi laufen lassen.
Das Demo UI wird schon soweit angezeigt, allerdings bekomme ich folgenden Fehler in einer roten Popup Box angezeigt:
Zitat
Error
ShortPoll Request Failed, will retry in 3s
parsererror, SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

Wie kann ich dieses Problem lösen und was löst es aus?

Meine Schritte:

Tablet UI in FHEM downloaden:
update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt
shutdown restart
update all https://raw.githubusercontent.com/nesges/Widgets-for-fhem-tablet-ui/master/controls_widgets-for-fhem-tablet-ui.txt
shutdown restart

Tablet UI per SSH auf den PHP Server kopieren:
sudo cp -avr /opt/fhem/www/tablet /var/www/html/fhem/ftui

pgm2 aus Fhem im PHP Verzeichnis linken
cd /var/www/html/fhem
sudo ln -s /opt/fhem/www/pgm2/ .
Muss ich hier noch ein anderes Verzeichnis aus fhem/www linken?

In FHEM Gerät anlegen:
define TABLETUI HTTPSRV ftui/ /var/www/html/fhem/ftui Tablet-UI

Tablet UI per Browser aufrufen:
http://IP_des_Pi/fhem/ftui/index-example.html


Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 07 Januar 2017, 18:01:58
So ich habe die Konfiguration noch einmal geändert.

Habe das Tablet UI jetzt wie empfohlen in /opt/fhem/www/tablet installiert und das device neu in fhem deklariert:

define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI


Für den Apache habe ich einfach das ganze www Verzeichnis von fhem verlinkt

sudo mkdir /var/www/html/fhem
cd /var/www/html/fhem
sudo ln -s /opt/fhem/www/ .


Somit kann ich ftui wie folgt aufrufen: http://Pi_IP/fhem/www/tablet/index.html

Ich bekomme allerdings immernoch nen Fehler: ShortPoll Request Failed (siehe Bild)

Wie bekomme ich diesen Fehler weg?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: setstate am 08 Januar 2017, 08:33:24
Du musst im HTML Header folgenden Tag einfügen und die URL entsprechend anpassen

<meta name="fhemweb_url" content="/fhem/">

Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 08 Januar 2017, 08:45:18
Was ich nicht verstehe. Wenn Du sowieso den Apache verwendest, wieso dann noch in FHEM eine HTTP Server Instanz definieren?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 09 Januar 2017, 14:07:17
Hi danke für die Antworten, es hat aber leider nicht funktioniert bzw. mache ich vielleicht was falsch?
Habe folgendes unter allen anderen meta daten in den html file eingefügt:
Zitat
<meta name="https://192.168.2.109:8083/fhem" content="/fhem/">
Wie sieht es eigentlich mit den basicAuth Daten aus? Muss ich auch noch user:pw@ zu beginn mit einfügen?

Zu der Frage wegen dem Apache. Ich lasse auf dem Apache/PHP Server (Raspberry Pi 3) auch noch andere Skripte laufen.
Ich persönlich würde es sogar bevorzugen, wenn ich FHEM und Tablet UI auf meinem Apache laufen lassen kann, da ich für das Tablet UI auch gern PHP zum programmieren verwenden möchte.
Wenn ihr mir sagen könntet wie ich FHEM und Tablet UI so modifizieren kann, das es komplett auf meinem Apache in /var/www/html/fhem laufen würde, so das ich für das Tablet UI PHP verwenden kann, wäre ich euch sehr dankbar.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: klausw am 09 Januar 2017, 14:26:57
Ich habe das wie folgt gelöst:

fhem läuft bei mir ohne tls und login auf Port 8082 und auf dem selben System wie der Apache
HTTPS macht dann der Apache

- Proxy für FHEM im Apache definieren (incl. login):
<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8082/fhem
  ProxyPassReverse http://localhost:8082/fhem
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
  ProxyHTMLURLMap /        /fhem/
  ProxyHTMLURLMap /fhem/     /fhem/
  AuthType Basic
  AuthName "Password Required"
  AuthUserFile /etc/fhem-htpasswd
  Require valid-user
  Order deny,allow
  Allow from all
</Location>


jetzt sollte schon einmal fhem unter http(s)://<deinserver>/fhem erreichbar sein.

- /opt/fhem/www/tablet (und auch die benötigten Dateien aus pgm2) nach /var/www/html/tablet (oder wie auch immer) kopieren bzw. einen link erstellen

- deine html Dateien anpassen
<meta name="fhemweb_url" content="/fhem">
(fhemweb_url nicht verändern)
alle links zu css und js Dateien anpassen (link sollte relativ zum speicherort deiner html Datei sein)
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 09 Januar 2017, 19:54:54
Hi, danke für die Antwort, leider funktioniert es immernoch nicht. :o
Bin langsam am verzweifeln.

Also ich schreib jetzt mal wie ich alles momentan habe:
Ich habe jetzt https von FHEM komplett deaktiviert und zu testzwecken FHEM basicAuth für WEB, WEBphone und WEBtablet jeweils auf User: fhem und PW: fhem gelegt
WEB läuft auf Port 8083
WEBphone auf 8084
WEBtablet auf 8085

Fhem läuft und funktioniert super mit meinen Homematic Teilen und kann local über http://192.168.2.109:8083/fhem erreicht werden.

Das Tablet UI ist auch installiert und läuft local über http://192.168.2.109:8083/fhem/tablet/index.html (allerdings hier ohne php Unterstützung)
Die html Dateien sowie mein php Testfile für das Tablet UI liegen in /opt/fhem/www/tablet/

Für den Apache habe das www Verzeichnis von FHEM komplett unter dem selben Namen ins Apache Verzeichnis verlinkt

sudo ln -s /opt/fhem/www/ /var/www/html/fhem

Somit erreiche ich das Tablet UI auch local über den Apache http://192.168.2.109/fhem/tablet/index.html (hier über den apache mit php Unterstützung), allerdings habe ich hier die JSON Fehler und es geht halt nix.

Dann habe ich in meine index.html folgendes eingefügt:

<meta name="fhemweb_url" content="/fhem">


per SSH habe ich dann die Module installiert und deinen Code eingefügt, allerdings mit der Änderung auf Port 8083

sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod proxy
sudo a2enmod proxy_http

sudo nano /etc/apache2/conf-available/fhem.conf
<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8083/fhem
  ProxyPassReverse http://localhost:8083/fhem
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
  ProxyHTMLURLMap / /fhem/
  ProxyHTMLURLMap /fhem/ /fhem/
  AuthType Basic
  AuthName "Password Required"
  AuthUserFile /etc/fhem-htpasswd
  Require valid-user
  Order deny,allow
  Allow from all
</Location>


dann noch den Benutzer fhem:fhem angelegt:

sudo htpasswd -c -s /etc/fhem-htpasswd fhem


Jetzt habe ich das ganze System einfach mal neu gestart und versucht FHEM über
http://192.168.2.109/fhem
bzw. das Tablet UI über
http://192.168.2.109/fhem/tablet/index.html
zu erreichen.

Also FHEM konnte ich damit nicht erreichen. Das Tablet UI ging ja schon unter der Adresse, allerdings kommt immernoch der JSON.parse Error und somit auch keine Werte.

Hui, is ganz schön viel Text geworden  ;D
Ich hoffe ihr könnt mir sagen wo mein Fehler liegt.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: redlav am 09 Januar 2017, 21:27:43
Hallo,

ich nutze auch einen lokalen Apache + PHP und habe folgendes in der Config eingetragen:
<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass http://localhost:8084/fhem
  ProxyPassReverse http://localhost:8084/fhem
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
  Allow from all
</Location>


Ich nutze deshalb die Webinstanz mit Port 8084, weil ich dort Cors=1 gesetzt habe.  Kann mich nicht mehr daran erinnern,
was der Fehler war es hat aber auf jeden Fall mit diesem Attribut dann funktioniert.

Meine php-Dateien liegen unter /var/www/tablet. Der Aufruf erfolgt mit http://<server>/tablet/index.php
Soweit die Info, dass es bei mir (nur http) läuft 8)

Was genau sagt den dein parse-Error? Kannst du mal in den Entwicklertools (F12) des Browsers in die Konsole gucken und die
Fehlermeldung posten?

Gruß Norbert
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 10 Januar 2017, 01:45:47
Moin,

so habe das auch probiert, funktioniert aber auch nicht.
Was macht dieses Cors eigentlich?

Müssen die Proxy Daten eigentlich in /etc/apache2/conf-available/fhem.conf eingetragen werden?
Muss diese conf dann noch irgendwo geladen werden, oder macht das der Apache von selbst.

In der Browser Console kommt folgendes

start shortpoll  fhem-tablet-ui.js:1288:13
get jsonlist2: Timer gestartetfhem-tablet-ui.js:515
start shortpoll in (ms):30000  fhem-tablet-ui.js:1288:13
shortPoll request failed: parsererror, SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data  fhem-tablet-ui.js:1288:13
start shortpoll in (ms):3000  fhem-tablet-ui.js:1288:13
start shortpoll  fhem-tablet-ui.js:1288:13
.....


Also langsam glaub ich das der Eintrag in der Tablet UI Wiki von wenig in nervig viel geändert werden sollte
Zitat... Mit wenigen Anpassungen ist es auch möglich das UI auf anderen Webservern (Apache, u.a.) zu betreiben ...

Hat noch jemand ne Idee wie ich das Tablet UI auf dem Apache/PHP Server zum laufen bekomme?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 10 Januar 2017, 07:57:01
Ich nicht, aber andere dessen Vorschläge man hier im Forum findet

https://forum.fhem.de/index.php/topic,55132.msg470924.html#msg470924
https://forum.fhem.de/index.php/topic,62483.msg539049.html#msg539049


Hier ist ein Beispiel für NGINX
https://forum.fhem.de/index.php/topic,51235.msg428936.html#msg428936
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: redlav am 10 Januar 2017, 08:01:06
Ich habe die genannten Zeilen in der /etc/apache2/conf-available/fhem.conf stehen.

Habe jetzt nochmal alles durchsucht und habe in der /etc/apache2/sites-available/000-default.conf
noch die folgenden Zeilen gefunden:

<VirtualHost *:80>
<Location /fhem>
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
  ProxyPass  http://192.168.1.59:8084/fhem
  ProxyPassReverse  http://192.168.1.59:8084/fhem
  # ProxyHTMLEnable On
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
  ProxyHTMLURLMap /        /fhem/
  ProxyHTMLURLMap /fhem/     /fhem/
  Require all granted
</Location>
</VirtualHost>


Ich muss zugeben, das ich damals das ganze per try & error solange probiert habe bis es ging.
Ein wirklicher Apachenhäuptling bin ich aber nicht  :-\

Cors: https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing (https://de.wikipedia.org/wiki/Cross-Origin_Resource_Sharing)
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 10 Januar 2017, 08:44:24
Und hast Du die available Seite auch aktiviert?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: redlav am 10 Januar 2017, 08:56:01
Zitat von: CoolTux am 10 Januar 2017, 08:44:24
Und hast Du die available Seite auch aktiviert?
Wenn ich die apache2.conf richtig verstehe passiert das automatisch:

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 10 Januar 2017, 10:30:05
Nein. Du musst das erst noch aktivieren.
Aber sowas sieht man ja auch ganz gut im Logfile von Apache
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 10 Januar 2017, 11:05:21
Und wie aktiviere ich jetzt die fhem.conf, einfach einen link im conf-enabled erstellen?

sudo ln -s /etc/apache2/conf-available/fhem.conf /etc/apache2/conf-enabled/fhem.conf

Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 10 Januar 2017, 11:16:07
Großer, Du sollst nicht FHEM aktivieren sondern erstmal Deine Apache Virtual Horst Configuration.

http://manpages.ubuntu.com/manpages/zesty/man8/a2ensite.8.html
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: der-Lolo am 10 Januar 2017, 11:18:12
OT:
Ey Alter - konfigurier mal den virtuellen Horst!
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 10 Januar 2017, 11:20:24
Zitat von: der-Lolo am 10 Januar 2017, 11:18:12
OT:
Ey Alter - konfigurier mal den virtuellen Horst!
Das ist Vorlaut und frech  :P

**Jungspund**
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: redlav am 10 Januar 2017, 12:39:02
Zitat von: CoolTux am 10 Januar 2017, 10:30:05
Nein. Du musst das erst noch aktivieren.
Aber sowas sieht man ja auch ganz gut im Logfile von Apache
Wollte nur anmerken, das es bei mir funktioniert ::)
Auch wenn ich mich nicht errinnern kann etwas aktiviert zu haben.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: klausw am 10 Januar 2017, 15:49:00
Seite in Apache2 Aktivieren:

sudo a2ensite fhem.conf

das legt dann eine link von sites-available auf sites-enabled
Apache neustarten und es sollte gehen.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 11 Januar 2017, 17:50:32
Hi,

so ich habe es jetzt geschaft FHEM über den Apache zu leiten, allerdings kann ich trotzdem keine PHP Files im Tablet UI ausführen (da kommt dann eine Downloadmöglichkeit)
Beispiel für den Aufruf:
1) FHEM -> http://192.168.2.109/fhem
2) Tablet UI -> http://192.168.2.109/fhem/tablet/index.html
3) Tablet UI -> http://192.168.2.109/fhem/tablet/phpinfo.php

1 und 2 funktionieren soweit, da dort kein php verwendet wird
bei 3. gehts es nicht (wie gesagt, dort kommt dann eine Downloadaufforderung)

Mein Ziel ist es, das ich mir das Tablet UI aus einem php file dynamisch erzeuge. Quasi für redundante Teile einfach ne for Schleife verwenden kann ohne den html code dutzende male zu kopieren. (das ist nur 1 Beispiel)

Folgendes habe ich jetzt gemacht:

sudo nano /etc/apache2/sites-available/fhem_proxy_80.conf

Inhalt:

<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName fhem
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/fhem-error.log
CustomLog ${APACHE_LOG_DIR}/fhem-access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Location /fhem>
ProxyPass http://localhost:8083/fhem
ProxyPassReverse http://localhost:8083/fhem
</Location>

<Directory />
# RedirectPermanent / /fhem
</Directory>

<Proxy *>
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/fhem-htpasswd
Require valid-user
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>


sudo a2dissite 000-default.conf
sudo a2ensite fhem_proxy_80.conf


So wie ich das jetzt verstanden habe, wird die Anfrage von extern über den Apache an den FHEM Server weiter geleitet, welcher ja kein php kann. Verstehe ich das soweit richtig?
Aber wie bekomme ich es denn jetzt hin, das ich für mein Tablet UI php verwenden kann?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 11 Januar 2017, 18:06:58
Hast du php-mode installiert und geladen?
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 11 Januar 2017, 19:54:40
Was meinst du damit? php5 ist installiert.

Wenn ich die phpinfo.php ins root Verzeichnis des Apache kopiere /var/www/html und wie folgt ausführe
http://192.168.2.109/phpinfo.php
dann funktioniert es.

Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: CoolTux am 11 Januar 2017, 19:58:48
Ok dann funktioniert php also. Bin gerade am überlegen ob man noch irgendwas anderes einstellen muß.
Ich glaube da muß jemand anderes helfen.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 11 Januar 2017, 20:51:53
Zitat von: Matthias1912 am 11 Januar 2017, 17:50:32
So wie ich das jetzt verstanden habe, wird die Anfrage von extern über den Apache an den FHEM Server weiter geleitet, welcher ja kein php kann. Verstehe ich das soweit richtig?
Ja, das denke ich.

Zitat
Aber wie bekomme ich es denn jetzt hin, das ich für mein Tablet UI php verwenden kann?
Wie Du das hinbekommst ist Deine Sache, aber ich habe es so gemacht:
TabletUI ist ganz normal installiert, also im /opt/fhem/www/tablet-Verzeichnis.
Meine PHP-Dateien liegen in /var/www/html. Dort liegt auch eine index.php.
Per PHP sorge ich dafür, dass das hier in jeder Datei unter <head> steht:

    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    <meta http-equiv="cache-control" content="no-store">

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="gridster_disable" content="1">
<meta name="widget_base_width" content="142">
<meta name="widget_base_height" content="108">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="longpoll" content="1">
<meta name="debug" content="0">

<link rel="stylesheet" href="/fhem/tablet/lib/jquery.gridster.min.css" />
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/openautomation.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/powerange.min.css" />
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui-wdtimer.css" />
<link rel="stylesheet" href="/fhem/tablet/style.css">

<script type="text/javascript" src="/fhem/pgm2/jquery.min.js"></script>
    <script type="text/javascript" src="/fhem/tablet/lib/jquery.knob.mod.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.toast.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.circlemenu.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/powerange.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.gridster.min.js"></script>
    <script type="text/javascript" src="/fhem/tablet/lib/fa-multi-button.min.js"></script>

<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js"></script>

D.h. Die Tablet-UI-Libs sind ganz normal in FHEM, aber die Einbindung des TabletUI wird vom PHP erzeugt. Natürlich würden die Pfade oben nicht ohne Weiteres funktionieren. D.h. so funktionieren die ganzen PHPs, aber halt nicht das TabletUI.
Dafür sorgt dann die folgende virtual Host Config für Apache:

<VirtualHost *:80>

DocumentRoot /var/www/html

<Location /fhem>
ProxyPass http://localhost:9046/fhem
ProxyPassReverse http://localhost:9046/fhem
</Location>

# Chrome is difficult to convince not to cache
<LocationMatch  "index.html">
Header always append cache-control no-store
    </LocationMatch>

</VirtualHost>

Ach ja, man braucht natürlich noch eine FHEMWEB-Instanz mit Port 9046. Die kann man dann ggf. noch "sicher" konfigurieren, aber das ist ein anderes Thema.

Dein UI solltest Du dann einfach mit http://192.168.2.109/ erreichen.

Gruß,
   Thorsten
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: klausw am 12 Januar 2017, 15:18:46
Zitat von: Matthias1912 am 11 Januar 2017, 17:50:32
so ich habe es jetzt geschaft FHEM über den Apache zu leiten, allerdings kann ich trotzdem keine PHP Files im Tablet UI ausführen (da kommt dann eine Downloadmöglichkeit)
Beispiel für den Aufruf:
1) FHEM -> http://192.168.2.109/fhem
2) Tablet UI -> http://192.168.2.109/fhem/tablet/index.html
3) Tablet UI -> http://192.168.2.109/fhem/tablet/phpinfo.php

So wie ich das jetzt verstanden habe, wird die Anfrage von extern über den Apache an den FHEM Server weiter geleitet, welcher ja kein php kann. Verstehe ich das soweit richtig?
Aber wie bekomme ich es denn jetzt hin, das ich für mein Tablet UI php verwenden kann?

Die Weiterleitung und php sind zwei verschiedene Dinge.

Das mit dem ReverseProxy hast du ja hinbekommen.
Das bedeutet aber auch, das alles unter
http://192.168.2.109/fhem
direkt an dein FHEM geleitet wird.
Daher wird php dort nicht funktionieren.

Die Daten aus /opt/fhem/www/tablet und die ...pgm2/jquery.min.js müssen über dein Apache root Verzeichnis (vermutlich /var/www/html ) erreichbar sein.
Also entweder dorthin kopieren oder einen link erstellen.
z.B. unter /var/www/html/tablet
Deine Tablet UI Oberfläche wäre dann über http://192.168.2.109/tablet erreichbar (links in den html/php Dateien musst du natürlich anpassen)

[Eine weitere Alternative wäre es, einen virtual Host anzulegen und  /opt/fhem/www/tablet direkt als Verzeichnis dafür anzugeben.]
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 12 Januar 2017, 18:10:52
Zitat von: klausw am 12 Januar 2017, 15:18:46Die Daten aus /opt/fhem/www/tablet und die ...pgm2/jquery.min.js müssen über dein Apache root Verzeichnis (vermutlich /var/www/html ) erreichbar sein.
Also entweder dorthin kopieren oder einen link erstellen.
z.B. unter /var/www/html/tablet
Deine Tablet UI Oberfläche wäre dann über http://192.168.2.109/tablet erreichbar (links in den html/php Dateien musst du natürlich anpassen)

[Eine weitere Alternative wäre es, einen virtual Host anzulegen und  /opt/fhem/www/tablet direkt als Verzeichnis dafür anzugeben.]
Das ist meiner Meinung nach beides verwirrender als meine Vorgehensweise.
Gruß,
   Thorsten
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 13 Januar 2017, 00:09:07
Super Thorsten, danke. jetzt läufts wie ichs will.
An die Includes im html/php file hatte ich nicht gedacht. Wollte alles umlenken, aber es reicht ja wenn nur die includes umgelenkt werden und das php im apache ausgeführt wird.

Muss jetzt nur noch die https Verbindung für den apache und für den VirtualHost zum laufen bekommen. Das werde ich gleich mal am Wochenende in Angriff nehmen.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 13 Januar 2017, 18:24:24
Zitat von: Matthias1912 am 13 Januar 2017, 00:09:07
Super Thorsten, danke. jetzt läufts wie ichs will.
An die Includes im html/php file hatte ich nicht gedacht. Wollte alles umlenken, aber es reicht ja wenn nur die includes umgelenkt werden und das php im apache ausgeführt wird.
Keine Ahnung, was Du mit Includes meinst...

Zitat
Muss jetzt nur noch die https Verbindung für den apache und für den VirtualHost zum laufen bekommen. Das werde ich gleich mal am Wochenende in Angriff nehmen.
Schau mal, ob Du mit der virtual Host Definition im Anhang klarkommst. Da ist auch noch Basic Auth. mit dabei.
Gruß,
   Thorsten
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Matthias1912 am 14 Januar 2017, 15:41:13
Hi

Zitat
Keine Ahnung, was Du mit Includes meinst...
Sowas aus dem Header

alt:
<link rel="stylesheet" href="css/fhem-tablet-ui.css" />
neu:
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" />


So das https funktioniert schonmal, allerdings habe ich noch ein Problem beim ProxyPassReverse.
Ich habe im Fhem alles per https laufen und wenn ich für ProxyPassReverse https://localhost:8084/fhem verwende funktioniert es nicht.
Wenn ich allerdings für WEBphone (Port 8084) das HTTPS Attribute entferne und für ProxyPassReverse http://localhost:8084/fhem verwende, dann gehts.

Ich möchte aber alles auf https laufen lassen (auch die ProxyPass und ProxyPassReverse). Was muss ich in der VirtualHost noch eintragen?

Meine VirtualHost Config:

<VirtualHost *:443>
ServerAdmin webmaster@example.com
ServerName ControlPi
DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/myPort_443_error.log
CustomLog ${APACHE_LOG_DIR}/myPort_443_error_access.log combined

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-6]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

<Location /fhem>
ProxyPass https://localhost:8084/fhem
ProxyPassReverse https://localhost:8084/fhem
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/htpasswd
# Diese Benutzer haben Zugriff
# Syntax: Require valid-user (alle in der htpasswd)
# Syntax: Require user user1 user2 ... (nur diese User aus der htpasswd)
Require user fhem
Order deny,allow
Allow from all
</Location>

<Location />
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/htpasswd
# Diese Benutzer haben Zugriff
# Syntax: Require valid-user (alle in der htpasswd)
# Syntax: Require user user1 user2 ... (nur diese User aus der htpasswd)
Require valid-user
Order deny,allow
Allow from all
</Location>
</VirtualHost>


Ich hatte an das hier gedacht, aber das funktioniert auch nicht.

<Proxy /fhem>
AuthType Basic
AuthName "Password Required"
AuthUserFile /etc/apache2/htpasswd
# Diese Benutzer haben Zugriff
# Syntax: Require valid-user (alle in der htpasswd)
# Syntax: Require user user1 user2 ... (nur diese User aus der htpasswd)
Require user fhem
Order deny,allow
Allow from all
</Proxy>
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 14 Januar 2017, 16:31:06
Hi,
da habe ich keine Ahnung. Warum sollte ich auf ein und demselben Server mit SSL arbeiten? Da wäre es vielleicht geschickter, die entsprechende FHEMWEB-Instanz für Zugriffe von außen dicht zu machen. Früher gab's da mal das global-Attribut, ich glaube aber, dass das jetzt anders geht.
Gruß,
    Thorsten
Titel: I-wX+7$t
Beitrag von: Matthias1912 am 14 Januar 2017, 18:41:42
Hi,
mit der Lösung die FHEMWEB-Instanz von außen zu schließen kõnnte ich auch leben.
Die FHEMWEB-Instanz muss/darf dann NUR über localhost des Pi erreichbar sein.
Habe aber nichts gefunden wie das bei fhem geht.
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 14 Januar 2017, 18:54:42
Hi,
schau Dir mal das Attribut allowfrom von FHEMWEB an.
Gruß,
    Thorsten
Titel: I-wX+7$t
Beitrag von: Matthias1912 am 14 Januar 2017, 22:34:08
danke, jetzt läuft alles wie es soll
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 14 Januar 2017, 22:45:16
Was hast Du bei allowfrom eingetragen?
Titel: I-wX+7$t
Beitrag von: Matthias1912 am 15 Januar 2017, 00:41:39
Zitat
Was hast Du bei allowfrom eingetragen?

attr WEBphone allowfrom 127.0.0.1
Titel: Antw:Tablet UI auf PHP-Server funktioniert nicht richtig
Beitrag von: Thorsten Pferdekaemper am 15 Januar 2017, 08:34:38
Danke. Das hatte ich nämlich noch nicht...