kann man FHEM per HTTP steuern ?
Ich weiss es geht prinzipiell, setzte das auch schon lange ein.
Aber bei HTTP-Requests wird immer die komplette Webseite geöffnet?
Ich suche was in der Richtung:
- schalten - http://192.168.178.1:8083/fhem?cmd.Test=set%20Lampe%20on -als Antwort kommt dann einfach z.B. ok
- abfragen - http://192.168.178.1:8083/fhem?cmd.Test=get%20Lampe%20status -als Antwort kommt dann einfach z.B. on, wegen mir auch noch mit Zeitstempel,
aber nicht die ganze Webseite
Es gibt meines Wissens nur die Ports 8083, 8084 und 8085 für PC, Handy und Tablet ?
Hänge mal &XHR=1 an die URLs
und statt get Lampe status wie per telnet list Lampe state.
gruss
andre
Dafür ist eigentlich der Parameter XHR=1 im URL zuständig.
Also wenn Du ein Kommando an FHEMWeb schickst und an den URL für das Kommando noch
&XHR=1 anhängst sollte als Ergebnis kein HTML sondern nur die Daten zurückgeliefert werden.
Also z.B.:
http://<fhem>:8083/fhem?cmd.dummy=set%20dummy%20on&XHR=1
sorry, das mit get / list war mein Fehler, zu schnell geschrieben
ich probiere es gerade aus, schalten geht problemlos,
aber wenn ich abfragen schicke mit
http://192.168.178.47:8083/fhem?cmd.dummy=list%20Gartenhaus_Tuerschloss%20state&XHR=1
sieht es zwar in IE und Chrome gut aus, aber unter Debian in der Kommandozeile mit Curl kommt trotzdem die ganze Seite mit ?
curl http://192.168.178.47:8083/fhem?cmd.dummy=list%20Gartenhaus_Tuerschloss%20state&XHR=1
Antwort (nur der letzte Teil, am Ende steht das was ich eigentlich haben will:
</tr>
<tr><td><div><a href="/fhem/docs/commandref.html" >Commandref</a></div></td>
</tr>
<tr><td><div><a href="http://fhem.de/fhem.html#Documentation" >Remote doc</a></div></td>
</tr>
<tr><td><div class="menu_Edit_files"><a href="/fhem?cmd=style%20list">Edit files</a></div></td>
</tr>
<tr><td><div class="menu_Select_style"><a href="/fhem?cmd=style%20select">Select style</a></div></td>
</tr>
<tr><td><div class="menu_Event_monitor"><a href="/fhem?cmd=style%20eventMonitor">Event monitor</a></div></td>
</tr>
</table></td></tr>
</table>
</div>
</div>
<div id="hdr">
<table border="0" class="header"><tr><td style="padding:0">
<form method="post" action="/fhem">
<input type="text" name="cmd" class="maininput" size="40" value=""/>
</form>
</td></tr></table>
</div>
<div id="content">
<a href="/fhem?detail=Gartenhaus_Tuerschloss">Gartenhaus_Tuerschloss</a> 2015-10-25 15:06:20 closed
</div>
</body></html>
[2]+ Done curl http://192.168.178.47:8083/fhem?cmd.dummy=list%20Gartenhaus_Tuerschloss%20state
du musst anführungszeichen um die komplette url machen. & auf der shell bedeutet das kommando wird im Hintergrund ausgeführt und das XHR=1 abgeschnitten.
gruss
andre
Hallo. Ich hänge mich hier mal rein. Da ich ein Windows Phone habe und ich mir "Webseiten" als App ablegen kann, wie hier beschrieben:
http://forum.fhem.de/index.php?topic=27374.0
kann ich "Cortana" dazu benutzen "Webseiten" per App-Namen aufzurufen. Also könnte ich auch Cortana dazu benutzen, FHEM zu schalten ;)
Aktuell funktioniert Cortana bei mir ja schon soweit, dass ich nur sagen muss: "Öffne Home" und schwupps öffnet sich FHEM im Browser.
Jetzt möchte ich aber sowas machen wie. "Öffne Alarm" oder "Öffne Alaus".
Ich müsste nur noch irgendwie in die "/fhem?cmd.Test" HTML Ausgabe dann den Code "einschleusen".
#Windows Phone Tile Image Integration
FW_pO '<meta name="application-name" content="Home" />';
FW_pO '<meta name="msapplication-TileColor" content="#009900" />';
FW_pO '<meta name="msapplication-square70x70logo" content="/fhem/images/dark/smalltile.png" />';
FW_pO '<meta name="msapplication-square150x150logo" content="/fhem/images/dark/mediumtile.png" />';
FW_pO '<meta name="msapplication-wide310x150logo" content="/fhem/images/dark/widetile.png" />';
FW_pO '<meta name="msapplication-square310x310logo" content="/fhem/images/dark/largetile.png" />';
Könnt ihr mir sagen, wo ich das machen könnte? Ich denke in "01_FHEMWEB.pm" bloss wo. (XHR=1)
EDIT: Habs gefunden:
#If we are in XHR or json mode, execute the command directly
if($FW_XHR || $FW_jsonp) {
$FW_cmdret = $docmd ? FW_fC($cmd, $cmddev) : "";
$FW_RETTYPE = "text/plain; charset=$FW_encoding";
Ich versuch mal mein Glück
Na dann häng ich mich auch mal ran :)
Unter meinen Flügeln liegt fronthem - das ist eine fhem websocket Schnittstelle. Über fronthem wird smartVisu angebunden. (demo.smartVisu.de).
smartVisu wiederrum ist ein toolkit mit dem sich smart home Bedienoberflächen bauen lassen (jquery, html5, css), also ein Frontend.
Wenn Du sowieso gerade "auf der Suche bist". Evtl sagt Dir das Konzept zu. Man kann das jetzt schon gut aus dem wp8.1 browser herraus bedienen.
Noch schöner wäre ein wp8 app dafür:
Für Android habe ich einen POC. Da ist eine embedded webview drin (xwalk, auch Präferenz) deren Start auf die smartVisu Seite konfiguriert ist.
wss mit client cert fehlen, sind angestrebt.
Ausserdem ist eine javascript brigde drin. Mit der kann smartVisu mit den Hardware Funktionen des device (Helligkeit, Sound, voice rec, tts, notification, vibration und location) interagieren.
Könntest Du Dir so etwas als wp app vorstellen ? ;)
vg
joerg