FHEMWEB: Raumname oder nicht-neu-laden

Begonnen von UliM, 28 Mai 2013, 19:05:15

Vorheriges Thema - Nächstes Thema

UliM

Hallo,
gerade bastele ich an einem html-snippet, das als weblink htmlCode eingebunden werden soll - eine Fernbedienung, siehe Link
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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

>  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.

UliM

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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.