Http Request an Kameras

Begonnen von h-man-kl, 13 Juli 2016, 07:54:58

Vorheriges Thema - Nächstes Thema

h-man-kl

Hallo zusammen,

und schon hab ich ein neues "Problem" :-) Mich nervt es, dass meine Kameras auch aufzeichen, wenn wir daheim sind. Sprich ich laufe im Garten herum und bekommen 1000 emails :-(
Mein Plan ist es jetzt, via Anwesenhetserkennung oder erstmal einfach nur mit einem Knopf in der Weboberfläche meine Kameraaufzeichnung ein und auschalten zu können. Den Befehl dafür habe ich.
Leider finde ich immer nur den umgekehrten Weg, also wie ich FHEM per http steuerun kann.

Kann mit jeamd mal uf die Sprünge helfen wie ich einen Knopf oder notfy bauen muss, damit das z.b. Http://IP/Befehl versendet?

Vielen vielen Dank!

Gruß
H-Man
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

reibuehl

Probier mal:

define KameraOn notify DummyKamerastatus:on { system ("curl -s https://<IP>/Befehl") }

Gruß,
Reiner
Reiner.

rudolfkoenig

#2
define myDummy dummy
attr myDummy setList on off
define myNotify notify myDummy { GetFileFromURL("http://myCamera?cmd=$EVTPART0") }


Fuer Details an dummy/setList/notify/$EVTPART0 siehe das commandref.
Statt notify kann man das FHEM-Modul HTTPMOD auch verwenden, ich kenne es nur nicht gut genug.
Wuerde mich wundern, wenn sowas im Forum oder Wiki nicht dokumentiert waere.

P.S. reibuehl war schneller, ich wollte mein Text aber nicht wegschmeissen

P.P.S: @reibuehl: ich frage mich, wieso so viele Leute { system("...") } verwenden, statt "...". Letzteres protokolliert die Ausgabe in fhem.log, und blockiert FHEM nicht. Vmtl. liest keiner das commandref.

reibuehl

Hallo Rudolf,

Zitat von: rudolfkoenig am 13 Juli 2016, 09:09:41
P.P.S: @reibuehl: ich frage mich, wieso so viele Leute { system("...") } verwenden, statt "...". Letzteres protokolliert die Ausgabe in fhem.log, und blockiert FHEM nicht. Vmtl. liest keiner das commandref.

Vielleicht weil man die Stelle in der Commandref auf die schnelle nicht findet? Die Commandref ist meiner Meinung nach inzwischen etwas zu groß und unübersichtlich geworden. Ich habe zum Beispiel die von dir für diesen Fall vorgeschlagene Funktion GetFileFromURL dort nicht gefunden und bin nur über eine Google Suche dazu auf den HttpUtils Artikel im Wiki gestoßen. HttpUtils wird in der Commandref (Version von http://fhem.de/commandref_DE.html) aber auch nur in einem Nebensatz in der Beschreibung des Moduls SSCam erwähnt.

Und dann schaut man halt auf Perl und sieht da system("...")  :)

Gruß,
Reiner
Reiner.

rudolfkoenig

Dass die HttpUtils.pm Funktionen in commandref nicht dokumentiert sind, ist wahr, und eine ganz andere Baustelle: wie weit sollte man FHEM interne oder Perl Funktionen in commandref dokumentieren, wo ist die Grenze zwischen Entwickler- und Benutzerdoku.

Es geht mir hier um {} vs. "", und da wo {} dokumentiert ist (http://fhem.de/commandref.html#command), ist auch "" beschrieben. Es ist ziemlich am Anfang des Dokumentes, "" kommt sogar vor {}. Ich war am Anfang ueberzeugt, dass viel mehr Leute "" verwenden werden, um eigene Logik in Shell-Skripten (oder anderen Programmen) zu implementieren, so wie das unter Unix ueblich ist. Ich lag wohl falsch.

h-man-kl

Hallo,
das ging ja mal schnell!
ich habs (dank euch) jetzt so (teil)gelöst:
einen Dummy wie oben geschrieben. und dann zwei Notify mit folgendem Inhalt:
Für AN: d_Kameraaufzeichnung.An { GetFileFromURL("http://IP/control/control?set&section=settings&edactiv=enable") }
Für AUS: d_Kameraaufzeichnung.Aus { GetFileFromURL("http://IP/control/control?set&section=settings&edactiv=disable") }

dann ein AT damit abends auf jeden Fall die Aufzeichnung wieder dan geht.

Jetzt fehlt nur noch die Automatik.  Was schon geht ist, dass die Aufzichnung aus geht wenn einer von uns heimkommt. Aber ich hab den programmtechnschen Part noch nicht hinbekommen, dass sie erst wieder gestartet wird wenn alle weg sind.

Nochmals VIELEN DANK!

Gruß
H-MAN
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

h-man-kl

Ic hmuss mich nochmal melden.
Nach etlichen Versuchen und Änderungen klappt jetzt der Aufruf nicht mehr.
Im Log sehe ich nur dass der dummy geschaltet wird und wenn ich mir die Readings ansehe, dann ist die Zeitangabe immer in Rot. D.h. soviel wie dass nichts gesendet wird, oder?
mein notify ist 1:1 noch s wie vorhin, aber keines der beiden funktoinert mehr

Ich versteh das einfach nich..... :-(
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

rudolfkoenig

Rot bedeutet Aenderung, in diesem Fall wurde das dummy geschaltet.
Versuch mal "attr global verbose 5" zu setzen, und schau ins fhem-Log.
Oder Event Monitor mit angehakten FHEM Log.

h-man-kl

#8
Danke für den Hinweis.
das hier ist die einzige Zeile die etwas mi der Kamera zu tun hat:
2016.07.13 13:13:35 4 : name: /fhem?cmd.d_Kameraaufzeichnung=set%20d_Kameraaufzeichnung%20on&room=Kameras&XHR=1&fw_id=550 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip  /
aber nirgends ist zu erkennen dass etwas gesendet wird

Habe eben einen neuen Dummy erstellt mit identischem Inhalt => geht
WEB_192.168.20.114_54907 POST /fhem?cmd.d_Kamera=set%20d_Kamera%20on&XHR=1&fw_id=575; BUFLEN:0
2016.07.13 13:19:35 5 : Cmd: >set d_Kamera on<
2016.07.13 13:19:35 4 : dummy set d_Kamera on
2016.07.13 13:19:35 5 : Triggering d_Kamera (1 changes)
2016.07.13 13:19:35 5 : Starting notify loop for d_Kamera, first event on
2016.07.13 13:19:35 5 : culRSSI: not on any display, ignoring notify
2016.07.13 13:19:35 5 : Triggering n_Kamera
2016.07.13 13:19:35 4 : n_Kamera exec { GetFileFromURL("http://192.168.10.12/control/control?set&section=settings&edactiv=enable") }
2016.07.13 13:19:35 5 : Cmd: >{ GetFileFromURL("http://192.168.10.12/control/control?set&section=settings&edactiv=enable") }<
2016.07.13 13:19:35 4 : HttpUtils url=http://192.168.10.12/control/control?set&section=settings&edactiv=enable
2016.07.13 13:19:35 4 : http://192.168.10.12/control/control?set&section=settings&edactiv=enable: HTTP response code 200
2016.07.13 13:19:35 4 : HttpUtils http://192.168.10.12/control/control?set&section=settings
&edactiv=enable: Got data, length: 152016.07.13 13:19:35 3 : n_Kamera return value: edactiv=enable 2016.07.13 13:19:35 5 : rg_battery: not on any display, ignoring notify2016-07-13 13:19:35 dummy d_Kamera on
2016.07.13 13:19:35 4 : name: /fhem?cmd.d_Kamera=set%20d_Kamera%20on&XHR=1&fw_id=575 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip  /


leider erschließt sich mir nicht wo mein Feler herkommt.
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....