Hauptmenü

Wie aus DOIF eine URL aufrufen?

Begonnen von forum-merlin, 18 März 2017, 22:53:56

Vorheriges Thema - Nächstes Thema

forum-merlin

Hallo,

Ich werte aktuell mit einem HTTPMOD eine meiner eigenen Webseiten aus und wenn dort ein Wert unter eine bestimmte Grenze kommt werde ich aktuell per Telegram benachrichtigt.
Dann muss ich mich auf eine URL verbinden, mich einloggen und dann einen Button klicken. Dieser Button ist ein Link der quasi einen Reset ausführt.

Ich würde dies nun gerne als automatische Aktion durchführen und einfach mein bestehendes DOIF erweitern welches mich momentan nur informiert.

Aber wie kann ich denn aus einem DOIF eine URL aufrufen, bzw. sozusagen den Reset Link "klicken"?

Ich habe mal testweise einen Perlaufruf gemacht und darin dann die URL untergebracht. Ich habe hier einfach mal mit einer URL hier in FHEM gearbeitet.

Interessanterweise funktioniert der Aufruf auf CMD, aber nicht aus der FHEMCMD heraus, und auch nicht aus einem DOIF heraus, und auch nicht aus einem Notify

Aufruf auf CMD = OK

/usr/bin/wget -O /dev/null -q 'http://user:password@192.168.100.101:8083/fhem?cmd.KE.Licht=set%20KE.Licht%20on'



Hier die Ausführung auf der FHEMCMD und aus dem DOIF getriggert = Not OK:

{system ("/usr/bin/wget -O /dev/null -q 'http://user:password@192.168.100.101:8083/fhem?cmd.KE.Licht=set%20KE.Licht%20on'") }


Es kommt hier einfach nur ein "-1" zurück, das Licht schaltet aber nicht.
Auch habe ich mit der URL Syntax gespielt.
ich habe das @ mit @@ probiert zu "maskieren" oder wie man das nennt, und ich habe auch ein %40 anstatt dem @ verwendet. Hat aber alles keine Lösung gebracht.


Ich habe mir aktuell beholfen indem ich ein URL.sh geschrieben habe wo ich den CMD Aufruf untergebracht habe der in der Shell funktioniert.
Und jetzt rufe ich das Script aus dem DOIF auf. Das funktioniert auch, aber gefällt mir granicht!

Kann mir jemand helfen dass der Aufruf direkt aus der FHEMCMD bzw. aus dem DOIF geht?

Danke Euch!


NOTE:
Ach ja, weil es ja eine Änderung in FHEM 5.8 gibt die da ggf. Einfluss haben könnte...
Ich bin noch auf 5.7 weil ich das mit der Änderung in 5.8 noch nicht kapiert habe wie sich das auswirkt. Irgendwas mit "CSRF Token" oder sowas.


FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

KernSani

Probier mal das @ mit \@ zu maskieren
system bringt übrigens immer -1 zurück. Wenn du die Ausgabe sehen/loggen willst solltest du mit qw oder "backticks" arbeiten, das sollte dann zumindest einen Hinweis geben, woran es liegt:


{qw("/usr/bin/wget -O /dev/null -q 'http://user:password\@192.168.100.101:8083/fhem?cmd.KE.Licht=set%20KE.Licht%20on'") }


Wegen CSRF: https://wiki.fhem.de/wiki/CsrfToken-HowTo

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

choetzu

Zitat von: KernSani am 18 März 2017, 23:04:16
system bringt übrigens immer -1 zurück. Wenn du die Ausgabe sehen/loggen willst solltest du mit qw oder "backticks" arbeiten, das sollte dann zumindest einen

genau das möchte ich machen. und zwar mit "vcgencmd measure_temp". ich möchte lediglich die temp loggen.

{qw("vcgencmd measure_temp &") }

geht aber nicht. Es gibt mir & zurück. Wenn ich dies weglasse, dann gibt es mir  measure_temp zurück
Raspi3, EnOcean, Zwave, Homematic

rr725

oder so.....


define Handy_abfrage DOIF ([Handy_erreichbar] eq "present") ("wget -q -O /dev/null http://xxx.xxx.xxx.xxx/Anwesend.php")

choetzu

Zitat von: choetzu am 20 September 2018, 11:21:56
genau das möchte ich machen. und zwar mit "vcgencmd measure_temp". ich möchte lediglich die temp loggen.

{qw("vcgencmd measure_temp &") }

geht aber nicht. Es gibt mir & zurück. Wenn ich dies weglasse, dann gibt es mir  measure_temp zurück

hallo rr725
hast du auch hier eine Antwort? wäre super, danke..
Raspi3, EnOcean, Zwave, Homematic