einfach nur einen HTML Befehl absetzten

Begonnen von christian-ruh, 24 April 2020, 22:33:39

Vorheriges Thema - Nächstes Thema

christian-ruh

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
Gruß Christian
 >>> BY <<<

Otto123

#1
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

KernSani

@Otto: "wegt" funktioniert nicht, @Christian: das sollte "wget" heissen
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

christian-ruh

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
Gruß Christian
 >>> BY <<<

marvin78

Ja. Die Anführungszeichen nicht weg lassen, Doku lesen.

Es gibt im Übrigen keine HTML Befehle.

christian-ruh

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.
Gruß Christian
 >>> BY <<<

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

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
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

christian-ruh

#9
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
Gruß Christian
 >>> BY <<<

Christoph Morrison

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. Diese ist aber mit mehr Aufwand verbunden.