versuch mal, eigene Seiten in PHP zu erstellen. Hier ist es möglich, Bilder mit entsprechenden "exec" bzw. "system" Aufrufen zu versehen.
Z.B. system("IP_der_FB\:7072 \"set lampe toggle\"");
(die Backslashes sind nötig, um die Sonderzeichen zu maskieren)
Probier das doch mal.
Wie man einfach PHP-Seiten erstellt, findest Du hier: http://www.php-kurs.com/downloads.php
Gruss,
Arne
> --
> To unsubscribe from this group, send email to
> fhem-users+...@googlegroups.com
fhemweb liefert beliebige html Dateien aus dem FHEM Verzeichnis mit dem Aufruf
http://<ip>/fhem/<datei>.html aus, man braucht keinen extra Webserver.
Statt ON und OFF kann man wahlweise auch toggle nehmen.
Ich habe eine Weile gebraucht, bis ich das Prinzip verstanden habe. Ich meine
jetzt zu verstehen, dass die Erstellung eine Word Funktion ausnutzt, eine Datei
als HTML speichern zu koennen, wobei man an beliebigen Stellen HyperLinks
hinterlegen kann. Wenn die Links z.Bsp ueber fhemweb ein Schalter betaetigen,
dann hat man ein Bild mit fhem-aktivierten Schaltflaechen.
Die nicht vollstaendigen HTML "Zitate" verwirren mich, weil ich erst gedacht
hatte, dass man die Datei auch mit einem beliebigen Editor erstellen koennte.
Dafuer fehlen aber die Positionsangaben der Schalter.
Koenntest Du bitte eine komplette HTML Datei (ohne Bild) als Beispiel
einfuegen?
Der ist wirklich Kraut mit Rueben :) und nicht so recht fuer den einfachen
Editor. Wenn ich es recht sehe, hat es mit frames auch nichts zu tun, die
Rechtecke werden direkt positioniert. Ich habe nichts dagegen sich auf Word
oder sonstwas zu beschraenken, man sollte es nur deutlich sagen.
ich HOFFE, dass Shellbefehle von dem fhemweb.pl-Script sauber abgefangen
werden - aus Sicherheitssicht w�re alles andere eine Katastrophe (wer
will schon, das jeder aus dem Internet mittels "cp" eingegangene Anrufe
abh�ren oder das Telefonbuch auslesen kann?)!
Rudi, kannst Du dazu was sagen?
Versch�rft wird das ganze dadurch, dass fhem - zumindest bei uns
FritzBox-Nutzern - bei den meisten als "root" laufen d�rfte.
Letztendlich w�re, wenn ein Aufruf von Shellbefehlen mittels Interface
m�glich w�re, auch eine Formatierung der Fritzbox oder ein Zugriff auf
das interne Netzwerk m�glich. Und ob das "interne" WLAN in jedem Fall
als sicher gelten kann? Ich muss z.B. auf Grund einiger �lterer Ger�te
noch WPA1 einsetzen - und trotz MAC-Filter f�nde ich es nicht sch�n,
wenn fhem da so ein Sicherheitsloch aufreissen w�rde...
Gru�
marte
Am 04.07.2011 09:51, schrieb J�rg71:
> On 4 Jul., 09:01, "tobias.faust"<tobias.fa...@gmx.net> wrote:
>
>> Warum kann man in dem HTML keine Zustandsinformationen ausgeben?
>> zb. das folgender aufruf anstatt einer Webseite ein zu definierendes
>> Bild zur�ckgibt:http://IP_der_FB:8083/fhem/get_image.pl?name=lampe
>
> Da fhemweb nicht nur beliebige html Dateien aus dem FHEM Verzeichnis
> liefert, sondern auch gif/png Dateien, k�nnte folgendes fuktionieren:
> define Lichton notify Licht.*on "cp /var/usr/fhem/FHEM/FS20.on.gif
> Licht.gif"
> define Lichtoff notify Licht.*off "cp /var/usr/fhem/FHEM/FS20.on.gif
> Licht.gif"
> Es wird also je nach Zustand das passende Bild auf Licht.gif kopiert.
>
> Bei mir klappt es allerdings so nicht, weil meine Box (Speedport W920V
> neuerdings mit aktueller Firmware der FB7570 (mit der sie komplett
> baugleich ist)) mir f�r "cp" immer nur "Permission denied"
> zur�ckgibt... Aber das ist ein spezielles FB-Problem.
>
> Tsch�s,
>
> J�rg
>
Die Shellbefehle werden im Configfile als "notify" Event hinterlegt und
nicht �ber
das Webinterface beliebig aufgerufen.
Somit bestimmst Du, was ausgef�hrt werden soll, wenn im Webinterface
oder auch mittels eines Senders/Schalters ein Event ausgel�st wird.
Gruss
Sacha
Gru�
marte
Im FHEMWEB kann man sowohl Shell-Skripte als auch perl Befehle trivial starten,
man gibt im Eingabefeld "Shellkommando" oder {Perl-code} ein. Fuer Zweifler:
mit perl kann man mindestens so viel Unheil anrichten, wie mit Shellprogrammen.
Wer um die Sicherheit besorgt ist und trotzdem fhem verwenden will, der hat 2
Optionen:
1. das Intranet zu eine sichere Zone deklarieren (WPA usw), fhem vom internet
nicht erreichbar machen.
2. Fhem abschotten:
- statt
"attr global serverport 7072 global"
nur
"attr global serverport 7072"
verwenden. Damit funktioniert eine telnet Verbindung nur vom lokalen
Rechner, und der muss wiederum "sicher" gemacht werden.
- in fhemweb basicAuth mit HTTPS verwenden (HTTPS wird aber auf dem FB
mangels Module/Bibliotheken im Moment nicht funktionieren)
Es geht natuerlich auch die Kombination: Intranet ist sicher (telnet und eine
"offene" FHEMWEB Instanz sind verfuegbar), und vom Internet ist eine weitere,
mit basicAuth/HTTPS abgesicherte FHEMWEB Instanz erreichbar.
Sicherheit war (wahrscheinlich) der Grund, warum AVM die CHROOT Loesung
gewaehlt hatte. Dass man damit vieles nicht machen kann (mail versenden, wlan
abschalten, etc), ist eine Folge der Restriktion. Man kann aber auch in einem
CHROOT Umgebung alle FHEM-Geraete steuern. Was mehr schaden ausrichten kann,
darf jeder fuer sich selber ueberlegen. Und da war noch die Sache mit dem nicht
gesicherten FS20 etc. Und wer glaubt, dass HM besser ist, der moege die
Einleitung bei http://fhem.de/commandref.html#CUL_HM lesen.
Apropos Shell-Befehle: Da die Ausgabe der Shell-Skripte neuerdings im fhem-Log
landet (und frueher in /dev/null), sollte man im Frontend folgenden Syntax
verwenden:
{ `ps` }
Statt ps kann man natuerlich beliebige andere Kommandos verwenden, solange sie
nicht aktiven Gebrauch vom Terminal machen (wie vi, more, less)
Die Idee grundsaetzlich ist alt :), wir haben es frueher als "read-only"
bezeichnet, und schalten war auch nicht vorgesehen. Im Moment glaube ich aber
nicht es mit wenig Aufwand (sprich ohne kompletten Umbau) so sicher loesen zu
koennen, dass es keine Schluepfloecher gibt.
Und ich will dem Benutzer nicht eine Sicherheit vorgaukeln.
danke f�r die ausf�hrliche Antwort. "{ `ps` }" geht erschreckenderweise
wirklich. Ist der "direkte" Shellzugriff f�r das Webinterface notwendig?
Ich �berlege gerade, ob nicht die Einf�hrung einer Art "safe-mode" f�r
fhemweb sinnvoll w�re; so k�nnte z.B. wenn aktiviert
- der direkte Zugriff via Webinterface auf die Shell und Perl gesperrt,
- die Definition neuer notifies / Scripte etc. unterbunden (sonst w�re
erstes irgendwie sinnfrei),
- die �nderung bestehender notifies / Scripte gesperrt,
- die �nderung des safe-modes unterbunden werden.
Ich stelle mir das so vor, dass fhemweb wie jetzt ganz normal nutzbar
ist, man dann irgendwann z.B. ein "attr global safe_mode 1" setzt und
das System danach wie oben reagiert. R�cksetzbar k�nnte der safe-mode ja
weiterhin via telnet auf Port 7072 sein...
Was h�lst Du grunds�tzlich von der Idee?
Gru�
marte
Ich habe fhem/doc/linux.html nach /var/InternerSpeicher/fhem/FHEM/linux.html
kopiert, und dann http://<fb-ip>:8083/fhem/linux.html aufgerufen: es
funktioniert. Vorher war linux.html nicht da und es wurde mir eine leere Seite
zurueckgeliefert.
-> Ich behaupte es funktioniert.
Habs eingebaut, als
http://ip:8083/fhem/icons/lampe
Und wenn ich schon dabei war, habe ich zu den weblink Attributen iframes
hinzugefuegt. Und FHEMWEB etwas an die alternativen Mobilbrowser
(Opera/Firefox) angepasst. Update via updatefhem sollte moeglich sein.
Das geht nicht, die zweite Zeile ueberschreibt die Erste. Aber
attr Lampe1 screen Etage1_X 100 Etage1_Y 200
geht.
Ja. Dafuer gibts in fhem list und xmllist, in php kann man beides gut parsen.
Das sieht aber schräg aus...Folgende Grundbedingungen müssen erfüllt sein:- Webserver muss PHP5 können- GD2 muß aktiviert sein (Modul für PHP-Grafikbearbeitung)- eine eventuell vorhandene fhem.xml muß nach kopieren des Projekts gelöscht werden, da diese vom Webserver zur Laufzeit generiert wirdGegenfrage:Welche Webserver läuft auf deinem Dockstar?
Wenn Apache - wirf mal einen Blick in die logfiles desselben, vor allem die error.log. Da kann man einiges erkennen meistens. Häng einfach mal nen Auszug hier rein, dann kann ich einen Blick drauf werfen.
telnet localhost 7072
<NL>
(This newline switches into "prompt" mode)
<command>...
quit
fhem.pl 7072 "set lamp off"
---schnapp---
Also entweder verbindet man sich per telnet mit dem localhost (bzw. dem Rechner, auf dem fhem läuft) über port 7072 und setzt dann die Befehle über Telnet ab.
Oder man verwendet, wie ich das tue, die "single client command" - Variante. Letztere wird vermutlich nicht funktionieren, wenn fhem und Webserver auf verschiedenen Rechnern läuft, da muß ich nochmal in mich gehen.
Bei mir läuft beides am selben Rechner. Daher funkioniert der Aufruf "fhem.pl 7072 xmllist" auch Problemlos. Die Ausgabe wird dann per ">" in die Datei fhem.xml umgeleitet. Versuch mal, diesen Befehl in Deine Konsole einzutippen, ob da was rauskommt.
--
index.php
h: -q: not found
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): fhem.xml:1: parser error : Document is empty in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): ^ in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): fhem.xml:1: parser error : Start tag expected, '<' not found in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): ^ in /var/www/functions.php on line 164
[Thu Aug 04 15:13:32 2011] [error] [client 87.193.157.154] PHP Fatal error: Call to a member function children() on a non-object in /var/www/functions.php on line 166
ajax.php
sh: nc: not found
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): fhem.xml:1: parser error : Document is empty in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): ^ in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): fhem.xml:1: parser error : Start tag expected, '<' not found in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Warning: simplexml_load_file(): ^ in /var/www/functions.php on line 164
[Thu Aug 04 15:14:11 2011] [error] [client 87.193.157.154] PHP Fatal error: Call to a member function children() on a non-object in /var/www/functions.php on line 166
Wenn Ihr meint, dass es stabil ist, dann haette ich gerne ein Link mit
Downloadmoeglichkeit und Screenshots, damit ich es auf der fhem Seite verlinken
kann.
Hab nicht alle Wendungen der Diskussion mitverfolgt :)
Habs verlinkt. Damit haetten wir 10 (mehr oder weniger) aktiv gepflegte
frontends, davon 4 fuer das iPhone.