Grundriss

515 views
Skip to first unread message

zwiebel

unread,
Sep 28, 2011, 7:11:53 AM9/28/11
to FHEM users
Hallo,

ich habe wie in dem Wiki (http://fhemwiki.de/index.php/
Grundriss_mit_fhem-buttons) beschrieben eine webseite gebaut. Jetzt
würde ich aber auch gern die Temperatur mit anzeigen lassen.
Wie bekomme ich das hin ohne php zu verwenden. Bei mir läuft FHEM auf
der FritzBox.

vielen dank Gruß
Zwiebel

ha...@nendzig.net

unread,
Sep 28, 2011, 10:49:03 AM9/28/11
to fhem-...@googlegroups.com
Es gäbe eine Möglichkeit über einzelne, kleine Textdateien, die per <object>-Tag in die HTML Seite eingebunden werden...

Wenn z.B. eine Datei namens "Aussentemperatur.txt" besteht, deren Inhalt "21.3°C" lautet, kann man in der HTML-Seite folgendes Tag einfügen:
<object data="Aussentemperatur.txt">

Als kleiner Versuch:

Das ist die HTML-Datei:
<html>
<head>
<title>Embed-Test</title>
</head>
<body>
Jetzt kommts:<br>
<object data="test.txt">
<br>
</body>
</html>

Und in der Datei "test.txt" steht z.B. "dies ist die Testdatei".

Das Ergebnis sieht dann wie folgt aus:



Vielleicht hilft das...

Jetzt musst Du "nur noch" fhem dazu bekommen, Dir einzelne Textdateien anzulegen, in denen die letzten Messwerte stehen....
 



ha...@nendzig.net

unread,
Sep 28, 2011, 10:50:08 AM9/28/11
to fhem-...@googlegroups.com
Hab was vergessen:
Es muss aber zumindest irgendein Webserver auf dem Fritz laufen, damit der <object> - Tag funktioniert, wenn ich mich nicht irre...

zwiebel

unread,
Sep 28, 2011, 11:53:30 AM9/28/11
to FHEM users
Hallo Hans,

der Ansatz ist denk ich schon garnicht schlecht, aber ohne php ist das
eher nichts zu machen. Oder gibt es ein anderes html tag?

gruß
Zwiebel

Arno Willig

unread,
Sep 28, 2011, 12:18:33 PM9/28/11
to fhem-...@googlegroups.com
Hi,

ich habe mal ein Projekt gemacht ( http://fhzctrl.sourceforge.net/ ),
dass ein SVG als Grundriss darstellt.
Das SVG hat klickbare Elemente, die per Javascript Lampen ein und
ausschalten konnten. Das ganze wurde auch hübsch dargestellt.
Sowas läßt sich auch sicherlich für den FHEM-Server adaptieren.

Ciao, Arno

> --
> To unsubscribe from this group, send email to
> fhem-users+...@googlegroups.com
>

--
Arno Willig <a...@thinkwiki.org>

zwiebel

unread,
Sep 28, 2011, 12:32:23 PM9/28/11
to FHEM users
Hi,

das klingt wirklich sehr gut. Da hat es sich auch mit dem 5s refresh
auch erledigt.
Wie kann ich mir dein Projekt mal anschauen? Mit SVG und Javascript
hab ich nicht wirklich was bis jetzt gemacht,
aber mal sehen.
Wie komm ich zu den files? Auf der Projekt page sind keine hinterlegt.

gruß
Zwiebel

On 28 Sep., 18:18, Arno Willig <a...@thinkwiki.org> wrote:
> Hi,
>
> ich habe mal ein Projekt gemacht (http://fhzctrl.sourceforge.net/),
> dass ein SVG als Grundriss darstellt.
> Das SVG hat klickbare Elemente, die per Javascript Lampen ein und
> ausschalten konnten. Das ganze wurde auch hübsch dargestellt.
> Sowas läßt sich auch sicherlich für den FHEM-Server adaptieren.
>
> Ciao, Arno
>

ha...@nendzig.net

unread,
Sep 29, 2011, 12:13:33 AM9/29/11
to fhem-...@googlegroups.com
Ich denke eigentlich im Gegenteil, das müsste auch ohne PHP gehen.
Die Textfiles muss man quasi vom fhem erstellen lassen, sicher gibt es dafür irgendwelchen lustigen Perlbefehle, die sich in die fhem.cfg einbauen lassen, die sowas machen. Es genügt dann ein "gewöhnlicher" webserver, vielleicht sogar der fhem-eigene?
Bezüglich der Perl-Befehle sollte es hier im Forum schon enige Hinweise geben, ich hab leider noch nie was dergleichen gemacht, weil ich für meine Methode den xml-Export von fhem parse - das wiederum würde PHP oder was vergleichbares erfordern...
 
Gruß
Hans

Andy Fuchs

unread,
Sep 29, 2011, 4:00:58 AM9/29/11
to fhem-...@googlegroups.com
Hi Hans,

ich habe mir den FileLog so angepasst, dass der pro Tag und pro Device ein eigenes File erstellt und für den zuletzt erfassten Wert ebenfalls pro Gerät eine Datei. Mittlerweile bin ich zwar auf eine SQLite umgestiegen, aber das FileLog hat 2 Jahre lang ohne Mucken funktioniert. Vielleicht wäre das auch eine Idee für Dich.

a.

Rudolf Koenig

unread,
Sep 29, 2011, 4:25:46 AM9/29/11
to fhem-...@googlegroups.com
> Die Textfiles muss man quasi vom fhem erstellen lassen, sicher gibt es daf�r
> irgendwelchen lustigen Perlbefehle

Mit lustigen shell-Befehlen ist es diesmal einfacher:
define n_fhz notify lampe "echo % > lampe.status"
Meiner Ansicht nach sind in der bisherigen fhem-Wahrnemung die shell-Skripte
unterrepresentiert.

Falls die erstellte Datei im FHEM Verzeichnis liegt, und der Dateiname mit
example anfaengt, dann liefert der eingebaute Webserver sie als "text/plain"
aus. Wenn sie auf .html endet, dann als "text/html"

bernhard

unread,
Sep 29, 2011, 11:01:29 AM9/29/11
to FHEM users
Hallo,

> Mit lustigen shell-Befehlen ist es diesmal einfacher:
>   define n_fhz notify lampe "echo % > lampe.status"

habe einene entsprechende Anweisung eingegebn, das ergebnis steht dann
allerdings im Logfile, die angegebene Ausgabedatei ist aber leer
(Länge 0).

Warum?

Bernhard Weber

Rudolf Koenig

unread,
Sep 29, 2011, 11:43:38 AM9/29/11
to fhem-...@googlegroups.com
> Warum?

Gute Frage. Bei mir steht nichts in der Logdatei, dafuer ist die Datei
lampe.status korrekt gefuellt. Man kann es auch mit sowas wie
fhem> trigger lampe Hallo
testen.

bernhard

unread,
Sep 29, 2011, 12:16:54 PM9/29/11
to FHEM users
habe einfach spasseshalber den Befehl "ls -l >xxx.status"
eingetragen,
dann ist xxx.status immer noch leer und die Liste im log.

Vielleicht sollte ich noch dazu schreiben, dass ich es unter W2k mit
cygwin laufen habe, was diesbezüglich aber nichts ausmachen sollte.

schreibe ich in der Kommandozeile auch "echo test >test.txt" wird auch
eine leere Datei angelegt und "test" steht in der logdatei

Rudolf Koenig

unread,
Sep 29, 2011, 1:33:34 PM9/29/11
to fhem-...@googlegroups.com
> Vielleicht sollte ich noch dazu schreiben, dass ich es unter W2k mit
> cygwin laufen habe

Vielleicht. Ich kann mir vorstellen, dass windows/cygwin unter Umleitung was
anderes versteht wie Linux/Unix/OSX.

bernhard

unread,
Sep 29, 2011, 4:43:20 PM9/29/11
to FHEM users
auch hier wieder steckt die richtige Lösung in der Antwort.

Habe mich an meine ca. 10 Jahre alten Unix-Kenntnisse erinnert und wie
folgt Erfolg:

"(echo % > lampe.status)"

Warum?
das Klammerpaar erzeugt einen weiteren Shell-Aufruf

ha...@nendzig.net

unread,
Sep 30, 2011, 1:46:40 AM9/30/11
to fhem-...@googlegroups.com
Hallo.
Tut vielleicht nichts mehr zur Sache, weil die Shellbefehllösung von Rudolf das eh schön löst, aber folgendes bash-Script:
#/bin/bash
IFS=$'\n'
echo "list;quit" | nc localhost 7072 -q 5 > fhem.lst;
for i in $(awk '$2 { print $1,"|", $2, $3, $4, $5, $6 }' fhem.lst); do
 name=$(echo $i | cut -d "|" -f 1)
 text=$(echo $i | cut -d "|" -f 2)
 name=${name%% }
 name=${name## }
 text=${text%% }
 text=${text## }
 echo $text > $name.txt;
done
(quick and dirty) macht einen Haufen Files, in denen zu jedem fhem-Element der zustand als Text drinsteht...
Zum Beispiel Lampe1.txt hat den Inhalt (off) oder (on)...
 
Gruß
Hans

zwiebel

unread,
Sep 30, 2011, 5:19:39 AM9/30/11
to FHEM users
Hallo,

vielen dank für die Hilfe die informationen in ein text file zu
bekommen.
Mit einem:
define sensor1_notify notify sensor1 "(rm FHEM/sensor1.status ;;
touch FHEM/sensor1.status ;; echo % | grep temperature >> FHEM/
sensor1.status)"

bekomm ich jetzt verlässlich die "temperature: 22.4".

Aber wie bekomm ich jetzt die datei auf meiner Grundriss.html seite
angezeigt?

gruß
Zwiebel

UliM

unread,
Sep 30, 2011, 11:26:54 AM9/30/11
to FHEM users
Hi,


> Aber wie bekomm ich jetzt die datei auf meinerGrundriss.html seite
> angezeigt?

siehe oben 28. Sept 16:49 - damit sollte es gehen, oder?
Wenn z.B. eine Datei namens "Aussentemperatur.txt" besteht, deren
Inhalt
"21.3°C" lautet, kann man in der HTML-Seite folgendes Tag einfügen:
<object data="Aussentemperatur.txt">

Muesste dann also sowas sein wie
<div style="position:absolute; top:250px; left:340px">
<object data="FHEM/sensor1.status">
</div>

@zwiebel: Wenn Du die komplette Lösung für's Anzeigen der Temperatur
hast (sprich wenn das o.g. html-tag den Zweck erfüllt oder Du nen
anderen Weg gefunden hast, poste die Lösung doch bitte hier, dann
ergänze ich auch das im Wiki.


Ausserdem habe ich Verweise auf die Lösungs-Alternativen von Arno und
Hans in den fhem-wiki-Eintrag zum Grundriss mit aufgenommen:
http://fhemwiki.de/index.php/Grundriss_mit_fhem-buttons

Gruß aus München,
Uli


ha...@nendzig.net

unread,
Oct 2, 2011, 5:16:04 AM10/2/11
to fhem-...@googlegroups.com
Das <object>-Tag ist eigentlich ein richtiger Bringer für solche sagen.
Man könnte sich z.B. für die Schalter usw. kleine HTML-schnipsel schreiben, die das Layout definieren (z.B. mit einem Bild des aktuellen Zustands, Schaltflächen für ein/aus, etc. - so ähnlich wie ichs bei meiner Variante mit dem Popup-Fenster per Javascript gemacht hab), und diese Schnipsel per <div>-Tag auf der Seite verteilen. Ist dann allerdings eine seeeehr statische Angelegenheit, würde aber kein php, java, javascript o.ä. erfordern - ein "dummer" Webserver würde genügen.
Was nicht möglich ist, wo ich auch allgemein noch keinen schlauen Weg gefunden habe, vom Webserver aktiv ein Update einer Seite beim Client anzustossen... Kennt da jemand was? Damit könnte der Refresh per fhem-Event getriggert werden... Sonst muss man mit http-Refresh arbeiten, was dann wieder zu den bekannten Verzögerungen beim Bildaufbau führt.
 
.

zwiebel

unread,
Oct 4, 2011, 5:15:33 AM10/4/11
to FHEM users
Hallo Uli,

ich hab das mit dem "object data" versucht aber leider kommt nur eine
leere FHEM seite in einer box zum scrollen...
Meine anderen "div id" tags werden dann garnicht mehr angezeigt. Ich
kann mir vorstellen das mein css nicht sauber ist.
Hab aber eigendlich nur das aus dem wiki genommen und mit mehreren div
boxen erweitert.

Eine lösung ohne 5s refresh wäre natürlich noch schöner. :)

gruß
Zwiebel

Rudolf Koenig

unread,
Oct 4, 2011, 5:46:14 AM10/4/11
to fhem-...@googlegroups.com
> Eine l�sung ohne 5s refresh w�re nat�rlich noch sch�ner. :)

Evtl. kannst Du Dich von dem longpoll Modell aus FHEMWEB inspirieren lassen.
Da ruft eine Javascript Funktion "GET /fhem?room=Lampen&XHR=1&inform=1" auf,
und kriegt erst dann eine Antwort, wenn im Raum "Lampen" was passiert ist.
Siehe auch longpoll.js . room=all wird noch nicht unterstuetzt, aber ich kann
das gerne einbauen, falls Dir das hilft.

UliM

unread,
Oct 10, 2011, 12:15:21 PM10/10/11
to FHEM users
Hi,
ich hab's nun auf dem klassischen Weg gelöst.

### fhem.cfg ########
define ez_FHT_notify notify ez_FHT {
my $FHT = "%";;
if ($FHT =~ "actuator:") {
$FHT = (substr($FHT, 9, (length($FHT)-10)));;
fhem("set hzg_Actuator $FHT")
}
if ($FHT =~ "measured-temp") {
$FHT = substr($FHT, 15, 4);;
system("(echo $FHT > FHT-temperature.txt)")
}
}
#die Actuator-Auswertung tut hier nix zur Sache

### Grundriss.html ########
<div style="position:absolute; top:370px; left:540px; color:grey">
Temperatur:
</div>
<div style= "position:absolute; top:366px; left:615px">
<object data = "..\fhem\FHT-temperature.txt">
</div>


Text und object data im selben <div> haben nicht geklappt, dann
erscheint die Temperaturangabe *sonstwo* auf dem Bildschirm.
@Zwiebel: Funzt bestens :-)

=8-)

zwiebel

unread,
Oct 10, 2011, 2:44:20 PM10/10/11
to FHEM users
Hi UliM,

leider wird bei mir immer eine box aufgemacht mit einem FHEM Menü auf
der linken seite.
Meine anderen css boxen werden nicht weiter angezeigt. Meine Vermutung
ist das mit meinem html/css code etwas nicht stimmt.
Ich werd mal eine neue seite machen und von vorne beginnen.

gruß
Zwiebel

UliM

unread,
Oct 11, 2011, 2:56:25 AM10/11/11
to FHEM users
Hi,
bei meinem Beispiel oben fehlt noch das </object> - daran kann's
liegen, dass die anderen tags dann nicht mehr angezeigt werden. Hab
auch das wiki aktualisiert, da ist das </object> mit drin :-)
http://fhemwiki.de/index.php/Grundriss_mit_fhem-buttons

> leider wird bei mir immer eine box aufgemacht mit einem FHEM Menü
> auf der linken seite.
kleine box mit fhem-menü hatte ich anfangs auch, da hab ich aber statt
des Dateilinks eine http-URL verwendet, das hat nicht funktioniert.
Ein fhem-menü KANN ja nur dann erscheinen, wenn Dein <object> auf fhem
verweist. Prüf doch noch mal Deinen Link.
=8-)
Reply all
Reply to author
Forward
0 new messages