DevelopmentFHEMWEB-API: Unterschied zwischen den Versionen
Trelle (Diskussion | Beiträge) (neu) |
K (→FW_okDialog) |
||
(14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
== FHEMWEB-Server (pgm2) Perl-Funktionen == | == FHEMWEB-Server (pgm2) Perl-Funktionen == | ||
=== Globale Variablen === | |||
Globale Variablen: | |||
{| class="wikitable" | |||
|- | |||
! 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>''' | |||
|| Das Basisverzeichnis auf dem lokalen Filesystem des FHEMWEB-Servers. | |||
Bsp: <code>./www</code> | |||
|- | |||
| style="vertical-align:top" | '''<code>$FW_CSRF</code>''' | |||
|| 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>''' | |||
|| Enthält den Definitionsnamen der aktuell erzeugten Detailansicht. | |||
Bsp: <code>Licht_Wohnzimmer</code> | |||
|- | |||
| style="vertical-align:top" | '''<code>$FW_room</code>''' | |||
|| Enthält den Raumnamen der aktuell erzeugten Raumansicht. | |||
Bsp: <code>Wohnzimmer</code> | |||
|- | |||
| style="vertical-align:top" | '''<code>$FW_wname</code>''' | |||
|| 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> | |||
|} | |||
=== FW_makeImage === | === FW_makeImage === | ||
Zeile 89: | Zeile 145: | ||
== FHEMWEB-Client (pgm2) Javascript-Funktionen == | == FHEMWEB-Client (pgm2) Javascript-Funktionen == | ||
=== Globale Variablen === | |||
Globale Variablen: | |||
{| class="wikitable" | |||
|- | |||
! Variablenname!! Bedeutung | |||
|- | |||
| style="vertical-align:top" | '''<code>FW_root</code>''' | |||
|| FHEM-Ursprungsverzeichnis, steht auch im head-Element als Attribut <code>root</code> zur Verfügung. | |||
|- | |||
| style="vertical-align:top" | '''<code>FW_version</code>''' | |||
|| Ein assoziatives Array, das die Versionszeichenketten der geladenen Javascript-Dateien enthält. | |||
|} | |||
=== FW_cmd === | |||
:<syntaxhighlight lang="javascript">FW_cmd(arg, callback);</syntaxhighlight> | |||
FW_cmd führt einen Befehl auf dem FHEMWEB-Server aus. | |||
Parameter: | |||
{| class="wikitable" | |||
|- | |||
! Parameter!! Bedeutung | |||
|- | |||
| style="vertical-align:top" | '''<code>arg</code>''' | |||
''mandatory'' | |||
|| Eine Zeichenkette, die einem Befehl an den Server entspricht. | |||
|- | |||
| style="vertical-align:top" | '''<code>callback</code>''' | |||
''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: | |||
* <syntaxhighlight lang="javascript">FW_cmd(FW_root+'?cmd={FW_makeImage("fts_shutter_10")}&XHR=1', function(data){FW_okDialog(data)});</syntaxhighlight> 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 <syntaxhighlight lang="perl" inline>{FW_makeImage("fts_shutter_10")}</syntaxhighlight>. An die Callback-Funktion <syntaxhighlight lang="javascript" inline>function(data){FW_okDialog(data)}</syntaxhighlight> wird der Rückgabewert vom Server als Parameter übergeben und steht als Variable <code>data</code> zur Verfügung. | |||
=== FW_errmsg === | |||
:<syntaxhighlight lang="javascript">FW_errmsg(text, timeout);</syntaxhighlight> | |||
FW_errmsg zeigt eine Meldung im FHEMWEB-Client (Browser) an. | |||
Parameter: | |||
{| class="wikitable" | |||
|- | |||
! Parameter!! Bedeutung | |||
|- | |||
| style="vertical-align:top" | '''<code>text</code>''' | |||
''mandatory'' | |||
|| Eine Zeichenkette, die angezeigt wird. HTML-Code wird interpretiert. | |||
|- | |||
| style="vertical-align:top" | '''<code>timeout</code>''' | |||
''mandatory'' | |||
|| Anzeigedauer der Zeichenkette in Millisekunden. | |||
|} | |||
Beispiel: | |||
* <syntaxhighlight lang="javascript">FW_errmsg('Hello world!',10000);</syntaxhighlight> | |||
=== FW_okDialog === | === FW_okDialog === | ||
Zeile 104: | Zeile 229: | ||
''mandatory'' | ''mandatory'' | ||
|| Eine Zeichenkette, die im Popup-Fenster angezeigt wird. HTML-Code wird interpretiert. | || Eine Zeichenkette, die im Popup-Fenster angezeigt wird. HTML-Code wird interpretiert. | ||
|- | |- | ||
| style="vertical-align:top" | '''<code>parent</code>''' | | style="vertical-align:top" | '''<code>parent</code>''' | ||
''optional'' | ''optional'' | ||
|| Ein Objekt zur Verankerung des Popup-Fensters, default ist das body-Element. Eine FHEM-Widget-Schnittstelle wird interpretiert | || Ein Objekt zur Verankerung des Popup-Fensters, default ist das body-Element. Eine FHEM-Widget-Schnittstelle wird interpretiert. | ||
|- | |- | ||
Zeile 120: | Zeile 245: | ||
Beispiel: | Beispiel: | ||
* <syntaxhighlight lang="javascript">FW_okDialog('Hello world!');</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 === | |||
:<syntaxhighlight lang="javascript"> | :<syntaxhighlight lang="javascript">loadScript(scriptname, callback, force);</syntaxhighlight> | ||
loadScript läd im FHEMWEB-Client (Browser) ein Javascript nach. | |||
Parameter: | Parameter: | ||
Zeile 133: | Zeile 261: | ||
! Parameter!! Bedeutung | ! Parameter!! Bedeutung | ||
|- | |- | ||
| style="vertical-align:top" | '''<code> | | style="vertical-align:top" | '''<code>scriptname</code>''' | ||
''mandatory'' | ''mandatory'' | ||
|| Eine Zeichenkette, die | || Eine Zeichenkette, die den Sriptnamen enthält. | ||
|- | |- | ||
| style="vertical-align:top" | '''<code>callback</code>''' | | style="vertical-align:top" | '''<code>callback</code>''' | ||
''optional'' | ''optional'' | ||
|| Eine Javascript-Funktion, die | || Eine Javascript-Funktion, die ausgeführt wird, wenn das Script geladen wurde. | ||
|- | |||
| style="vertical-align:top" | '''<code>force</code>''' | |||
''optional'' | |||
|| Ein Flag, wenn gesetzt, wird das Laden erzwungen. | |||
|} | |} | ||
Beispiel: | Beispiel: | ||
* <syntaxhighlight lang="javascript"> | * <syntaxhighlight lang="javascript">loadScript("pgm2/jquery.knob.min.js", function(){<Javascript-Code>});</syntaxhighlight> | ||
=== log === | |||
:<syntaxhighlight lang="javascript">log(text);</syntaxhighlight> | |||
log zeigt einen Logeintrag in der Konsole des Browsers an. | |||
Parameter: | |||
{| class="wikitable" | |||
|- | |||
! Parameter!! Bedeutung | |||
|- | |||
| style="vertical-align:top" | '''<code>text</code>''' | |||
''mandatory'' | |||
|| Eine Zeichenkette, die angezeigt wird. | |||
|} | |||
Beispiel: | |||
* <syntaxhighlight lang="javascript">log('Hello world!');</syntaxhighlight> | |||
== Links == | == Links == | ||
[[DevelopmentFHEMWEB| | |||
* [[DevelopmentFHEMWEB|Development FHEMWEB (englischsprachig)]] | |||
* [[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!');