DevelopmentFHEMWEB-API: Unterschied zwischen den Versionen

Aus FHEMWiki
(→‎FW_makeImage: globale Variablen)
 
(8 dazwischenliegende Versionen von 3 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 Gerätenamen der aktuell erzeugten Detailansicht.
|| 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 Gerätenamen der aktuellen FHEMWEB-Instanz.
|| 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 136: Zeile 162:


|}
|}
=== 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 156: Zeile 234:


''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 167: 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>


=== FW_cmd ===
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">FW_cmd(arg, callback);</syntaxhighlight>
:<syntaxhighlight lang="javascript">loadScript(scriptname, callback, force);</syntaxhighlight>


FW_cmd führt einen Befehl auf dem FHEMWEB-Server aus.
loadScript läd im FHEMWEB-Client (Browser) ein Javascript nach.


Parameter:
Parameter:
Zeile 180: Zeile 261:
! Parameter!! Bedeutung
! Parameter!! Bedeutung
|-
|-
|  style="vertical-align:top" | '''<code>arg</code>'''
|  style="vertical-align:top" | '''<code>scriptname</code>'''


''mandatory''
''mandatory''
|| Eine Zeichenkette, die einem Befehl an den Server entspricht.
|| 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 ausgaführt wird, wenn der auf dem FHEM-Server ausgeführte Befehl einen Rückgabewert enthält, der weiter verarbeitet werden soll.
|| 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">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.
* <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|Developement FHEMWEB(englischsprachig)]]
* [[DevelopmentFHEMWEB|Development FHEMWEB (englischsprachig)]]
* [[DevelopmentModuleAPI]]
* [[DevelopmentModuleAPI]]


[[Kategorie:Development]]
[[Kategorie:Development]]

Aktuelle Version vom 19. April 2018, 20:42 Uhr

X mark.svgBitte beachten: Diese Auflistung von Funktionen wird nicht aktiv durch alle Entwickler gepflegt. Es kann daher keine Garantie auf Vollständigkeit und Korrektheit gegeben werden, entscheidend ist immer der aktuelle Programm-Code.
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: /fhem

$FW_dir Das Basisverzeichnis auf dem lokalen Filesystem des FHEMWEB-Servers.

Bsp: ./www

$FW_CSRF Enthält das aktuell gültige CSRF-Token als HTTP URL-Parameter für die aktuelle Verbindung oder bleibt leer.

Bsp: &fwcsrf=csrf_165435377333711

$FW_detail Enthält den Definitionsnamen der aktuell erzeugten Detailansicht.

Bsp: Licht_Wohnzimmer

$FW_room Enthält den Raumnamen der aktuell erzeugten Raumansicht.

Bsp: Wohnzimmer

$FW_wname Enthält den Definitionsnamen der aktuellen FHEMWEB-Instanz.

Bsp: WEB

$FW_cname Enthält den Definitionsnamen der aktuellen Verbindung (Connection-Name).

Bsp: WEB_192.168.179.65_54406

$FW_userAgent Enthält den User-Agent, welcher für den aktuellen Aufruf übermittelt wurde.

Bsp: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36

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 '<iconname@color>', wird das Icon entsprechend eingefärbt. Entspricht die Zeichenkette keinem Iconnamen, wird die Zeichenkette zurückgegeben.

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:

  • FW_cmd(FW_root+'?cmd={FW_makeImage("fts_shutter_10")}&XHR=1', function(data){FW_okDialog(data)});
    
    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_makeImage("fts_shutter_10")}. An die Callback-Funktion function(data){FW_okDialog(data)} wird der Rückgabewert vom Server als Parameter übergeben und steht als Variable data 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!');
    

Links