FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: christian-ruh am 24 April 2020, 22:33:39

Titel: einfach nur einen HTML Befehl absetzten
Beitrag von: christian-ruh am 24 April 2020, 22:33:39
Sorry für die Anfrage aber entweder ich bin blind oder ich suche falsch.
Ich möchte einfach nur mit DoIf einen HTML Befehl absetzten der bei einer bestimmten Bedingung (das ist soweit fertig und ich schalte eine Lampe damit) einen HTML Befehl sendet.
Es geht darum bei eine INSTAR Cam die AlarmAktion auszuschalten wenn die Türe (Reed.Kontakt) länger als 10 Min. offen ist, damit nicht hunderte Alarmvideos generiert werden wenn wir im garten sitzen.
Der HTML Befehl lautet: http://admin:PASSWORD@192.168.1.XXXX/cgi-bin/hi3510/param.cgi?cmd=setmdalarm&-aname=ftprec&-switch=off.
Ich bekomme das einfach nicht hin.
Kann da bitte jemand helfen.
Wäre super.
Vielen Dank schon mal.
Lieben Gruß an alle daheimsitzenden
Christian
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: Otto123 am 24 April 2020, 22:58:19
Hallo Christian,

geht es denn mit
"wget  http://admin:PASSWORD@192.168.1.XXXX/cgi-bin/hi3510/param.cgi?cmd=setmdalarm&-aname=ftprec&-switch=off"in der FHEM Kommandozeile?

Wenn ja hast Du den Befehl fürs DOIF.

Gruß Otto
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: KernSani am 24 April 2020, 23:03:51
@Otto: "wegt" funktioniert nicht, @Christian: das sollte "wget" heissen
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: Otto123 am 24 April 2020, 23:05:51
Danke - habs korrigiert :)
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: christian-ruh am 25 April 2020, 09:15:25
Vielen Dank schon mal.
Wenn ich das in der Kommandozeile eingebe kommt die Fehlermeldung: "Unknown command wget, try help.".
Im Browser kommt nach der HTML-Eingabe (natürlich ohne wget) die Antwort "[Succeed]set ok."
Noch eine Idee?
Schönen Gruß
Christian
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: marvin78 am 25 April 2020, 09:20:13
Ja. Die Anführungszeichen nicht weg lassen, Doku lesen.

Es gibt im Übrigen keine HTML Befehle.
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: christian-ruh am 25 April 2020, 12:31:46
Danke für den Tipp marvin,
Ich weis natürlich dass es keine HTML Befehle gibt aber so konnte ich es gut erklären ;-)
Nun kommt keine Fehlermeldung, allerdings funktioniert es nicht, die AlarmAction der Cam ist weiter auf "on" :-(
Gruß
Christian.
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: Otto123 am 25 April 2020, 12:36:21
Hast Du ne Meldung dazu im Log?

Oder: anderer Versuch
{qx(wget  http://admin:PASSWORD@192.168.1.XXXX/cgi-bin/hi3510/param.cgi?cmd=setmdalarm&-aname=ftprec&-switch=off)}

Gruß Otto
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: Wernieman am 25 April 2020, 12:38:48
Also .. der obengenannte Befehl funktioniert im Browser?

Wenn ja ... geh mal in die "Kommandozeile" Deines FHEM-Servers und gebe ein
whereis wget

Wenn nichts rauskommt, musst Du wget nachinstallieren, unter Debian und Derivate:
apt-get install wget

Anstelle von wget kannst Du auch mal curl probieren. Allerdings kann es auch sein, das DU das nachinstallieren mußt, Anleitung siehe oben
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: christian-ruh am 25 April 2020, 19:49:22
So, ich habs.
Danke Otto, ich hatte das Logfile nicht richtig analysiert. Der HTML String wurde nicht komplett als String weitergegeben.
Habe nun den HTML "Befehl" in Hochkommas gesetzt. Funktioniert  :)

"wget 'http://admin:Passwort@192.168.1.xxx/cgi-bin/hi3510/param.cgi?cmd=setmdalarm&-aname=ftprec&-switch=off'"

Vielen Dank Euch für die Hilfe und schönen Tag noch.
Gruß Christian
Titel: Antw:einfach nur einen HTML Befehl absetzten
Beitrag von: Christoph Morrison am 29 April 2020, 12:35:32
Vielleicht noch eine Anmerkung: qx{} wird dein FHEM bei der Ausführung blockieren, d.h. insbesondere wenn die URL irgendwie nicht erreichbar ist, wird dein FHEM eine gewisse Zeit (bis zum Timeout) stehen. Ich habe ein ähnliches Problem gehabt: Mit einem Feinstaubsensor mit miesem Wif am Ende des Gartens.

Gelöst habe ich es, in dem ich ein HTTPMOD-Device mit Intervall 0 (keine automatische Aktualisierung) und der URL angelegt habe - in einem DOIF triggere ich dann nur ein reread des HTTPMOD und der Befehl wird non-blocking abgesetzt.

Das könnte bei dir so aussehen:

defmod cam_disable HTTPMOD http://192.168.1.XXXX/cgi-bin/hi3510/param.cgi?cmd=setmdalarm&-aname=ftprec&-switch=off 0


Dazu muss du dann noch die BasicAuth entsprechend in Attribute packen.

Alternativ gibt es noch eine Lösung von CoolTux (https://forum.fhem.de/index.php/topic,28753.msg501336.html#msg501336). Diese ist aber mit mehr Aufwand verbunden.