FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: UliM am 28 Mai 2013, 19:05:15

Titel: FHEMWEB: Raumname oder nicht-neu-laden
Beitrag von: UliM am 28 Mai 2013, 19:05:15
Hallo,
gerade bastele ich an einem html-snippet, das als weblink htmlCode eingebunden werden soll - eine Fernbedienung, siehe Link (http://forum.fhem.de/index.php?topic=12988.msg79501#msg79501)
Jede Taste ist dabei als <a..><img..></a> angegeben.

Bei einem Tastendruck soll ein Befehl abgesetzt werden - das funktioniert auch, die URL ist in den anchor eingebettet.

1. Es ist unnötig, nach einem Tastendruck die Seite neu aufzubauen. Kann ich das mit irgendeinem Paramter in der URL erreichen?

2. Alternativ soll nach Tastendruck der aktuelle Raum nicht verlassen werden. Dazu müsste $FW_room in die URL eingebaut werden, diese Variable ist aber weder in der Datenumgebung des aufrufenden weblink htmlCode noch von der Routine in 99_mmyUtils.pm vorhanden. Kann ich den aktuellen Raum irgendwo auslesen bzw. liegt die bisherige URL in einer verfügbaren Variable vor, so dass ich den Raumnamen dort herausparsen könnte?

Oder gibt's vll. nen ganz anderen Weg zum Ziel?  ;-)

Gruß, Uli
Titel: Aw: FHEMWEB: Raumname oder nicht-neu-laden
Beitrag von: rudolfkoenig am 29 Mai 2013, 12:39:56
>  Es ist unnötig, nach einem Tastendruck die Seite neu aufzubauen. Kann ich das mit irgendeinem Paramter in der URL erreichen?

Wohl kaum, da man mit plain HTML immer eine neue Seite anfordert, das Schalten ist nur ein Nebeneffekt.
Die Loesung ist die Verwendung von Javascript mit z.Bsp. XMLHttpRequest(), wie es z.Bsp. in fhemweb.js mit FW_cmd() gemacht wird.

> Kann ich den aktuellen Raum irgendwo auslesen...

MWn (noch) nicht.
Titel: Aw: FHEMWEB: Raumname oder nicht-neu-laden
Beitrag von: UliM am 29 Mai 2013, 19:51:30
Hi Rudi,
ah, vielen Dank. Falls es noch mal jemand brauchen sollte:

Bei sowas wie


my $cmd   = "cmd.$dev=set $dev $onoff";
my $img   = "<img src=\"$FW_ME/icons/$filename\">";


wird die Seite neu aufgebaut nach klick auf

$html .=  "<a href=\"$FW_ME$FW_subdir?$cmd\">$img</a>";


Ohne Seiten-Neuaufbau geht's mit

$html .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmd')\">$img</a>";


Eine weitere Fallunterscheidung für smallscreen/touchpad kann man bei Bedarf nachsehen in FW_devState($$)

Fernbediente Grüße,
Uli