Ext API ( Weblink ) aufrufen

Begonnen von ChrisW, 13 Januar 2013, 20:18:51

Vorheriges Thema - Nächstes Thema

ChrisW

Hallo,
habe lokal ein tool auf einem anderen rechner.
Diese API kann ich ansteuern per http://ip:Port/api/shutdown

Wie kann ich das nun in Fhem so aufrufen das es ausgefügrt wird ??
Jemand eine idee?
Raspberry PI3 mit allem möglichen.

Dirk

Hi Chris,

Das ginge z.B. mit wget.

Hier ein Beispiel als FS20 Schaltbefehl. xxxxxxxx und yyyy muss dann durch den entsprechenden FS20 Housecode und Taster-Code ersetzt werden.
Beim Ausschalten per FS20 Befehl wird deine API dann angesprochen.


### apishutdown ###
define api_shutdown FS20 xxxxxxxx yyyy
define notify_apishutdown notify apishutdown:off* "/usr/bin/wget http://ip:Port/api/shutdown"

Dirk

Sorry, hab grade erst gesehen das du ein Windows System hast, dann muss der Path "/usr/bin/wget" natürlich gegen den Path von wget auf deinem Windows-System getauscht werden.

Und FS20 war nur ein Beispiel. Das geht mit deinem System auf 433Mhz genau so. Die Zeichenfolge auf die das Notify reagieren soll kannst du dann dem EventMonitor entnehmen..

ChrisW

okay danke dann guck ich mal wie ich wget nutze unter Win ;)
Schalter brauche ich nicht es wird für meine Abwesenheits Erkennung benötigt ;)
Will somit nur meinem HTPC abschalten :D
Raspberry PI3 mit allem möglichen.

ChrisW

Hallo,
kann ich das auch ähnlich einfach wie "set Licht_1 on" einbauen ? Also quasi 1 Zeile die ich auch manuell oben eintragen kann und ENTER Drücke ?
Raspberry PI3 mit allem möglichen.

ChrisW

hab eine wget64.exe nun auch richtig abgelegt per CMD funktioniert diese aber nicht in FHEM .. muss ich wget vielleicht in Pearl irgendwie nachinstallieren ?
Raspberry PI3 mit allem möglichen.

Dirk

Ja, wenn du dir orher ein entsprechendes Notify definierst.
Siehe mein Beispiel oben. Abgeändert sehe das dann so aus:

define notify_Licht1 notify Licht_1:on* "/usr/bin/wget http://ip:Port/api/shutdown"

Wenn du dann "set Licht_1 on" eingibst, dann reagiert das Notify darauf und startet wget.

Gruß
Dirk

Dirk

Zitat von: Chris schrieb am Mo, 14 Januar 2013 08:57hab eine wget64.exe nun auch richtig abgelegt per CMD funktioniert diese aber nicht in FHEM .. muss ich wget vielleicht in Pearl irgendwie nachinstallieren ?
Stimmt der Path? Sind leerzeichen im Path?

ChrisW

hmm also der Pfad ist :
c:\windows\system32\wget64.exe
Der kennt den Befehl nur nicht. Das wird auch sicher anders gehen vielleicht muss ich wie wget64.exe im fhem irgendwo ablegen?
Raspberry PI3 mit allem möglichen.

Dirk

Zitat von: Chris schrieb am Mo, 14 Januar 2013 09:06...vielleicht muss ich wie wget64.exe im fhem irgendwo ablegen?
Das kannst du auch machen.


define notify_Licht1 notify Licht_1:on* "c:/windows/system32/wget64.exe http://ip:Port/api/shutdown"
Sollte aber funktionieren.

ChrisW

ok ich glaube bei mir hängt es noch wo anders
Oben folgendes EIngetragen ENTER und auch SAVE schon versucht
define notify_HTPC notify HTPC:on* "c:/wget64.exe http://ip:Port/api/shutdown"

set HTPC on folgt: Please define HTPC first

Habs mal unter C: direkt abgelegt.
Raspberry PI3 mit allem möglichen.

ChrisW

Was ist den mit dem befehl: GetHttpFile($host, $uri) Ist das vielleicht einfacher ?
Raspberry PI3 mit allem möglichen.

Dirk

stimmt, das sollte auch funktionieren. Das ist eine FHEM Funktion. Da brauchst du dann kein wget wenn das klappt.

ChrisW

hm selbes Problem bekomme es nicht geschaltet :
define HTPCAPI notify HTPCAPI:on { GetHttpFile("192.168.2.1:81", "/API/shutdown toggle") }

bekomme es mit set HTPCAPI on nicht an ...
Manuell GetHttpFile("192.168.2.1:81", "/API/shutdown toggle") geht auch nicht kennt er kein getHttpFile ........ unter help ist der befehl auch nicht drin
KOMISCH
Raspberry PI3 mit allem möglichen.

Dirk

Mit Help findest du GetHttpFile nicht. Ist eine interne Funktion definiert in HttpUtils.pm.

Im deinem Browser funktioniert "http://192.168.2.1:81/API/shutdown toggle"?

dann Versuch das mal so:
define HTPCAPI notify HTPCAPI:on { GetHttpFile("192.168.2.1:81", "/API/shutdown%20toggle") }