DevelopmentFHEMWEB-API: Unterschied zwischen den Versionen
Trelle (Diskussion | Beiträge) K (→FW_cmd) |
K (→FW_okDialog) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 15: | Zeile 15: | ||
|- | |- | ||
! Variablenname!! Bedeutung | ! Variablenname!! Bedeutung | ||
|- | |||
| style="vertical-align:top" | '''<code>$FW_ME</code>''' | |||
|| URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist. | |||
Bsp: <code>/fhem</code> | |||
|- | |- | ||
| style="vertical-align:top" | '''<code>$FW_dir</code>''' | | style="vertical-align:top" | '''<code>$FW_dir</code>''' | ||
|| Basisverzeichnis des FHEMWEB-Servers. | || Das Basisverzeichnis auf dem lokalen Filesystem des FHEMWEB-Servers. | ||
Bsp: <code>./www</code> | |||
|- | |- | ||
| style="vertical-align:top" | '''<code>$FW_CSRF</code>''' | | style="vertical-align:top" | '''<code>$FW_CSRF</code>''' | ||
|| Enthält das CSRF-Token oder bleibt leer. | || Enthält das aktuell gültige CSRF-Token als HTTP URL-Parameter für die aktuelle Verbindung oder bleibt leer. | ||
Bsp: <code>&fwcsrf=csrf_165435377333711</code> | |||
|- | |- | ||
| style="vertical-align:top" | '''<code>$FW_detail</code>''' | | style="vertical-align:top" | '''<code>$FW_detail</code>''' | ||
|| Enthält den | || Enthält den Definitionsnamen der aktuell erzeugten Detailansicht. | ||
Bsp: <code>Licht_Wohnzimmer</code> | |||
|- | |- | ||
| style="vertical-align:top" | '''<code>$FW_room</code>''' | | style="vertical-align:top" | '''<code>$FW_room</code>''' | ||
Zeile 32: | Zeile 44: | ||
|| Enthält den Raumnamen der aktuell erzeugten Raumansicht. | || Enthält den Raumnamen der aktuell erzeugten Raumansicht. | ||
Bsp: <code>Wohnzimmer</code> | |||
|- | |- | ||
| style="vertical-align:top" | '''<code>$FW_wname</code>''' | | style="vertical-align:top" | '''<code>$FW_wname</code>''' | ||
|| Enthält den | || Enthält den Definitionsnamen der aktuellen FHEMWEB-Instanz. | ||
Bsp: <code>WEB</code> | |||
|- | |||
| style="vertical-align:top" | '''<code>$FW_cname</code>''' | |||
|| Enthält den Definitionsnamen der aktuellen Verbindung (Connection-Name). | |||
Bsp: <code>WEB_192.168.179.65_54406</code> | |||
|- | |||
| style="vertical-align:top" | '''<code>$FW_userAgent</code>''' | |||
|| Enthält den User-Agent, welcher für den aktuellen Aufruf übermittelt wurde. | |||
Bsp: <code>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36</code> | |||
|} | |} | ||
Zeile 220: | Zeile 246: | ||
Beispiel: | Beispiel: | ||
* <syntaxhighlight lang="javascript">FW_okDialog('Hello world!',10000);</syntaxhighlight> | * <syntaxhighlight lang="javascript">FW_okDialog('Hello world!',10000);</syntaxhighlight> | ||
* <syntaxhighlight lang="javascript"><a href="#!" onclick="FW_okDialog('Hello world!')">Hello</a></syntaxhighlight> | |||
Soll das Popup-Fenster aus einem Hyperlink heraus aufgerufen werden, dann ist darauf zu achten, dass ein ungültiger Anchor Tag verwendet wird. In diesem Beispiel "!". Dadurch wird ein unkontrolliertes Scrollen der Webseite effektiv verhindert und der Dialog erscheint genau dort wo man ihn haben möchte. | |||
=== loadScript === | === loadScript === | ||
Zeile 277: | Zeile 306: | ||
== Links == | == Links == | ||
* [[DevelopmentFHEMWEB| | * [[DevelopmentFHEMWEB|Development FHEMWEB (englischsprachig)]] | ||
* [[DevelopmentModuleAPI]] | * [[DevelopmentModuleAPI]] | ||
[[Kategorie:Development]] | [[Kategorie:Development]] |
Aktuelle Version vom 19. April 2018, 20:42 Uhr
Please note: This list of functions is not official maintained by all developers. So there is no guarantee for completeness and correctness, at least the program code itself is relevant.
Dieses Seite soll die verfügbaren Funktionen zugänglicher machen, um das Beisteuern von Funktionalität zu erleichtern.
Natürlich hat diese Seite keinen Anspruch auf Vollständigkeit und jeder ist aufgefordert mitzuarbeiten, sobald er beim Stöbern über eine Funktion stolpert, die auch andere interessieren könnte.
FHEMWEB-Server (pgm2) Perl-Funktionen
Globale Variablen
Globale Variablen:
Variablenname | Bedeutung |
---|---|
$FW_ME
|
URL-Pfad unter dem der FHEMWEB-Server via HTTP erreichbar ist.
Bsp: |
$FW_dir
|
Das Basisverzeichnis auf dem lokalen Filesystem des FHEMWEB-Servers.
Bsp: |
$FW_CSRF
|
Enthält das aktuell gültige CSRF-Token als HTTP URL-Parameter für die aktuelle Verbindung oder bleibt leer.
Bsp: |
$FW_detail
|
Enthält den Definitionsnamen der aktuell erzeugten Detailansicht.
Bsp: |
$FW_room
|
Enthält den Raumnamen der aktuell erzeugten Raumansicht.
Bsp: |
$FW_wname
|
Enthält den Definitionsnamen der aktuellen FHEMWEB-Instanz.
Bsp: |
$FW_cname
|
Enthält den Definitionsnamen der aktuellen Verbindung (Connection-Name).
Bsp: |
$FW_userAgent
|
Enthält den User-Agent, welcher für den aktuellen Aufruf übermittelt wurde.
Bsp: |
FW_makeImage
$html = FW_makeImage($icon, $text, $class);
FW_makeImage gibt HTML-Code zurück, der ein Icon aus dem dem FHEMWEB-Iconpool beschreibt.
Parameter:
Parameter | Bedeutung |
---|---|
$icon
mandatory |
Eine Zeichenkette, mit optionaler Farbangabe '<iconname>[@color>]'
|
$text
optional |
Eine Zeichenkette, die einen alternativen Text angibt. |
$class
optional |
Eine Zeichenkette, die eine CSS-Klasse angibt. |
Rückgabewerte:
Rückgabewert | Bedeutung |
---|---|
$html
|
Wenn $icon mit einem Iconnamen aus dem FHEMWEB-Iconpool übereinstimmt, wird der HTML-Code zum Einbinden des Icons zurückgegeben.
Mit nachgestellter Farbangabe |
Beispiel:
$html = FW_makeImage('fts_shutter_10@red');
FW_directNotify
FW_directNotify($filter, $fhemweb_instance, $javascript, "");
FW_directNotify führt Javascript auf einer longpoll FHEMWEB-Instanz aus, ohne Events zu erzeugen.
Parameter:
Parameter | Bedeutung |
---|---|
$filter
optional |
Eine Zeichenkette, die mit "FILTER=" beginnt "FILTER=<filter expression>" .
|
$fhemweb_instance
mandatory |
Eine Zeichenkette, die eine longpoll FHEMWEB-Instanz "#FHEMWEB:<FHEMWEB devicename>" angibt. |
$javascript
mandatory |
Eine Zeichenkette, die ein Javascript angibt. |
""
mandatory |
Eine Zeichenkette, leer oder (noch zu präzisieren). |
Beispiele:
FW_directNotify("FILTER=room=XXX", "#FHEMWEB:WEB", "FW_okDialog('Hello world!')", "");
FW_directNotify("FILTER=room=XXX", "#FHEMWEB:WEB", "location.reload('true')", "");
- siehe auch Forenthread
FHEMWEB-Client (pgm2) Javascript-Funktionen
Globale Variablen
Globale Variablen:
Variablenname | Bedeutung |
---|---|
FW_root
|
FHEM-Ursprungsverzeichnis, steht auch im head-Element als Attribut root zur Verfügung.
|
FW_version
|
Ein assoziatives Array, das die Versionszeichenketten der geladenen Javascript-Dateien enthält. |
FW_cmd
FW_cmd(arg, callback);
FW_cmd führt einen Befehl auf dem FHEMWEB-Server aus.
Parameter:
Parameter | Bedeutung |
---|---|
arg
mandatory |
Eine Zeichenkette, die einem Befehl an den Server entspricht. |
callback
optional |
Eine Javascript-Funktion, die ausgeführt wird, wenn der auf dem FHEM-Server ausgeführte Befehl einen Rückgabewert enthält, der weiter verarbeitet werden soll. |
Beispiel:
- Das Beispiel holt sich vom Server den HTML-Code des Icon "fts_shutter_10" und zeigt das Icon in einem Popup-Fenster an. Der vom Server auszuführende Befehl lautet
FW_cmd(FW_root+'?cmd={FW_makeImage("fts_shutter_10")}&XHR=1', function(data){FW_okDialog(data)});
{FW_makeImage("fts_shutter_10")}
. An die Callback-Funktionfunction(data){FW_okDialog(data)}
wird der Rückgabewert vom Server als Parameter übergeben und steht als Variabledata
zur Verfügung.
FW_errmsg
FW_errmsg(text, timeout);
FW_errmsg zeigt eine Meldung im FHEMWEB-Client (Browser) an.
Parameter:
Parameter | Bedeutung |
---|---|
text
mandatory |
Eine Zeichenkette, die angezeigt wird. HTML-Code wird interpretiert. |
timeout
mandatory |
Anzeigedauer der Zeichenkette in Millisekunden. |
Beispiel:
FW_errmsg('Hello world!',10000);
FW_okDialog
FW_okDialog(txt, parent, removeFn);
FW_okDialog öffnet im FHEMWEB-Client (Browser) ein modales Popup-Fenster.
Parameter:
Parameter | Bedeutung |
---|---|
text
mandatory |
Eine Zeichenkette, die im Popup-Fenster angezeigt wird. HTML-Code wird interpretiert. |
parent
optional |
Ein Objekt zur Verankerung des Popup-Fensters, default ist das body-Element. Eine FHEM-Widget-Schnittstelle wird interpretiert. |
returnFn
optional |
Eine Javascript-Funktion, die beim Schliessen des Popup-Fensters ausgeführt wird. |
Beispiel:
FW_okDialog('Hello world!',10000);
<a href="#!" onclick="FW_okDialog('Hello world!')">Hello</a>
Soll das Popup-Fenster aus einem Hyperlink heraus aufgerufen werden, dann ist darauf zu achten, dass ein ungültiger Anchor Tag verwendet wird. In diesem Beispiel "!". Dadurch wird ein unkontrolliertes Scrollen der Webseite effektiv verhindert und der Dialog erscheint genau dort wo man ihn haben möchte.
loadScript
loadScript(scriptname, callback, force);
loadScript läd im FHEMWEB-Client (Browser) ein Javascript nach.
Parameter:
Parameter | Bedeutung |
---|---|
scriptname
mandatory |
Eine Zeichenkette, die den Sriptnamen enthält. |
callback
optional |
Eine Javascript-Funktion, die ausgeführt wird, wenn das Script geladen wurde. |
force
optional |
Ein Flag, wenn gesetzt, wird das Laden erzwungen. |
Beispiel:
loadScript("pgm2/jquery.knob.min.js", function(){<Javascript-Code>});
log
log(text);
log zeigt einen Logeintrag in der Konsole des Browsers an.
Parameter:
Parameter | Bedeutung |
---|---|
text
mandatory |
Eine Zeichenkette, die angezeigt wird. |
Beispiel:
log('Hello world!');