FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Klaus0815 am 28 Oktober 2015, 20:06:07

Titel: FHEM per HTTP steuern
Beitrag von: Klaus0815 am 28 Oktober 2015, 20:06:07
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 ?




Titel: Antw:FHEM per HTTP steuern
Beitrag von: marvin78 am 28 Oktober 2015, 20:14:21
Hänge mal &XHR=1 an die URLs
Titel: Antw:FHEM per HTTP steuern
Beitrag von: justme1968 am 28 Oktober 2015, 20:16:20
und statt get Lampe status wie per telnet list Lampe state.

gruss
  andre
Titel: Antw:FHEM per HTTP steuern
Beitrag von: viegener am 28 Oktober 2015, 20:19:55
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


Titel: Antw:FHEM per HTTP steuern
Beitrag von: Klaus0815 am 28 Oktober 2015, 20:49:09
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






Titel: Antw:FHEM per HTTP steuern
Beitrag von: justme1968 am 28 Oktober 2015, 21:01:26
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
Titel: Antw:FHEM per HTTP steuern
Beitrag von: Adriano am 09 Februar 2016, 10:20:27
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
Titel: Antw:FHEM per HTTP steuern
Beitrag von: herrmannj am 10 Februar 2016, 12:04:15
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