Seite 1 von 1
cgi Befehl ausführen ???
Verfasst: 4. Jul 2019 05:46
von Orakel
Hallo Community,
wenn ich in meinen WebBrowser folgenden Befehl einfüge
http://ipadresse:88/cgi-bin/CGIProxy.fc ... d=passwort
kann ich die Bewegungserkennung meiner Foscam ausschalten, leider verstehe ich noch nicht wie ich diesen Befehl über einen Schalter oder eine Regel nutzen kann um die Bewegungserkennung über openhab und nicht mehr über die Foscam App schalten zukönnen.
Ziel des ganzen ist die Erkennung über einen Eintrag im Googlekalender automatisch ein und auszuschalten wenn ich in Urlaub fahre.
Also ich hätte gerne einen Switch mit dem ich die Bewegungserkennung EIN bzw. AUS schalten kann, nur wie muss ich diesen cgi-Befehl ausführen ?
gruß
Orakel
Re: cgi Befehl ausführen ???
Verfasst: 4. Jul 2019 21:34
von heiko74
Hallo,
meiner Meinung nach geht es nur über eine Regel. Ich würde es (habe es aber noch nie probiert) wie folgt machen:
Für Regeln gibt es folgenden Befehl:
Hier wird auf eine Datei im Ordner "/scripts" zugegriffen. Es müßte ein Script mit dem entsprechenden Aufruf erstellt werden.
Re: cgi Befehl ausführen ???
Verfasst: 4. Jan 2020 13:35
von alkaline
Ich mache das über folgende Regel:
Code: Alles auswählen
rule "Bewegungsmelder und Sounddetection der Kameras einschalten" // wird beim Verlassen des Hauses getriggert
when
Item Bewegungsmelder received command ON
then
Kueche_enable_MotionAlert.sendCommand(ON) // IP Cam Küche Bewegungsalarm an
Kueche_enable_AudioAlert.sendCommand(ON) // IP Cam Küche Audioalarm an
logInfo(filename, "Sicherheit: Bewegungsmelder an")
end
rule "Bewegungsmelder und Sounddetection der Kameras ausschalten" // wird beim Zurückkommen getriggert
when
Item Bewegungsmelder received command OFF
then
Kueche_enable_MotionAlert.sendCommand(OFF) // IP Cam Küche Bewegungsalarm aus
Kueche_enable_AudioAlert.sendCommand(OFF) // IP Cam Küche Audioalarm aus
logInfo(filename, "Sicherheit: Bewegungsmelder aus")
end
*.items:
Code: Alles auswählen
Group CameraEvent
Group CameraGif
Group CameraStatus
Switch Kueche_UpdateImage "Bildupdate" (CameraEvent) { channel="ipcamera:FOSCAM:ipcamkueche:updateImageNow" }
Image Kueche_Image { channel="ipcamera:FOSCAM:ipcamkueche:image" }
String Kueche_VideoUrl "url" { channel="ipcamera:FOSCAM:ipcamkueche:videourl"}
Switch Kueche_UpdateImage_Camera_UpdateGif "Animiertes Gif" (CameraGif) {channel="ipcamera:FOSCAM:ipcamkueche:updateGif"}
Switch Kueche_enable_MotionAlert "Bewegungsalarm an/aus" {channel="ipcamera:FOSCAM:ipcamkueche:enableMotionAlarm"}
Switch Kueche_Camera_Motion_Alert "Bewegungsalarm" (CameraEvent) {channel="ipcamera:FOSCAM:ipcamkueche:motionAlarm"}
Switch Kueche_enable_AudioAlert "Audioalarm an/aus" {channel="ipcamera:FOSCAM:ipcamkueche:enableAudioAlarm"}
Switch Kueche_Audio_Alert "Audioalarm" {channel="ipcamera:FOSCAM:ipcamkueche:audioAlarm"}
Switch Kueche_Control_IRLED "LED" {channel="ipcamera:FOSCAM:ipcamkueche:autoLED"}
Dimmer Kueche_enable_AudioThres "Empfindlichkeit LED " {channel="ipcamera:FOSCAM:ipcamkueche:thresholdAudioAlarm"}
Dimmer Kueche_enable_LED "Empfindlichkeit" {channel="ipcamera:FOSCAM:ipcamkueche:enableLED"}
String Kueche_MPEG_Url "MPEG Url" {channel="ipcamera:FOSCAM:ipcamkueche:streamUrl"}
String Kueche_RTSP_Url "RTSP Url" {channel="ipcamera:FOSCAM:ipcamkueche:rtspUrl"}
String Kueche_Image_Url "Image Url" {channel="ipcamera:FOSCAM:ipcamkueche:imageUrl"}
String Kueche_HLS_Url "HLS Url" {channel="ipcamera:FOSCAM:ipcamkueche:hlsUrl"}
String Kueche_Motiontype "Typ Bewegung" {channel="ipcamera:FOSCAM:ipcamkueche:lastMotionType"}
DateTime Kueche_Camera_LastMotion "Letzte Bewegung [%1$tH:%1$tM %1$tY-%1$tm-%1$td]"
Re: cgi Befehl ausführen ???
Verfasst: 27. Jan 2020 23:15
von magoo85
Hallo Zusammen,
Ich denke ich stehe gerade vor dem gleichen Problem mit einer Foscam C2M (Openhab 2.5, Foscam mit IP Camera Binding eingebunden), in meinen Augen ist das Problem aber folgendes:
Mittels Enable Commands kann man die Bewegungs und Geräuscharlamierung ein/ausschaltern -> das funktioniert auch!
Jedoch gibt es über das Foscam WebInterface oder die App Einstellungen zum Detektionsbereich und Zeitprogramm, wann detektiert werden soll, und diese Eingaben werden nach dem deaktivieren und wieder neu-aktivieren der Detektionen zurückgesetzt.
Man müsste also mittels cgi befehl wieder die z.B. setMotionDetectConfig setzen z.b wäre der Befehl dazu folgender:
Code: Alles auswählen
http://IPAdresse:Port/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=12&s
napInterval=3&sensitivity=0&triggerInterval=0&isMovAlarmEnable=1&isPirAla
rmEnable=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3
=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&are
a1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&
area7=1023&area7=1023&area8=1023&area9=1023&usr=username&pwd=passwort
die rules für das Aktivieren der Alarme würden dann lauten:
Code: Alles auswählen
rule "Alarme aktivieren"
when
Item Alarm_aktiv_Openhab changed from OFF to ON then
logInfo("Alarm", "Alarme Bewegung und Audio sind aktiviert")
Cam1_enableMotionAlarm.sendCommand(ON)
Cam1_enableAudioAlarm.sendCommand(ON)
end
rule "Alarme deaktivieren"
when
Item Alarm_aktiv_Openhab changed from ON to OFF then
Cam1_enableMotionAlarm.sendCommand(OFF)
Cam1_enableAudioAlarm.sendCommand(OFF)
logInfo("Alarm", "Alarme Bewegung und Audio sind deaktiviert")
end
Hat jemand eine Idee wie ich in diese Rules den http cgi-bin command einbetten kann??
Was sehr nice ist und auch funktioniert, bei Bewegungsdetektion kann man dann einfach ein Email mit Schnappschuss oder Telegram Nachricht etc versenden.
Besten Dank vorab,
LG
Matthias
Re: cgi Befehl ausführen ???
Verfasst: 27. Jan 2020 23:51
von magoo85
kann mir wiedermal selbst die Antwort geben,
gelöst mittels http binding,
items:
Code: Alles auswählen
Switch Cam1_Bewegungsparameter "Kamera Bewegungsalarmparameter setzen" <camera> { http=">[*:POST:http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=12&snapInterval=3&sensitivity=0&triggerInterval=0&isMovAlarmEnable=1&isPirAlarmEnable=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area7=1023&area8=1023&area9=1023&usr=username&pwd=passwort] }
und in der Rule dann:
Code: Alles auswählen
rule "Alarme aktivieren"
when
Item Alarm_aktiv_Openhab changed from OFF to ON then
logInfo("Alarm", "Alarme Bewegung und Audio sind aktiviert")
Cam1_enableMotionAlarm.sendCommand(ON)
Cam1_enableAudioAlarm.sendCommand(ON)
Cam1_Bewegungsparameter.sendCommand(ON)
end
ich hoffe das hilft auch jemand anderem weiter
Re: cgi Befehl ausführen ???
Verfasst: 28. Jan 2020 20:52
von alkaline
Klasse, das hat mir gefehlt, vielen Dank dafür, es fehlt nur ein ":
Code: Alles auswählen
Switch Cam1_Bewegungsparameter "Kamera Bewegungsalarmparameter setzen" <camera> { http=">[*:POST:http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=12&snapInterval=3&sensitivity=0&triggerInterval=0&isMovAlarmEnable=1&isPirAlarmEnable=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area7=1023&area8=1023&area9=1023&usr=username&pwd=passwort]" }
Ich setze ebenfalls eine C2M ein und habe es bisher lediglich geschafft, HLS intern zu streamen, daher die Frage, ob du es geschafft hast, MJPG oder snapshot zu streamen? Ich bin der Meinung, das die C2M zwar SubStream kann, aber eben kein MJPG.
Hast du Interesse, mir da auf die Sprünge zu helfen?
Gruß
Marcus
Re: cgi Befehl ausführen ???
Verfasst: 29. Jan 2020 16:27
von magoo85
Die Geschichte funktioniert doch nicht so ganz richtig,
Wenn ich denk CGI Befehl per Brower starte funktioniert alles normal
Code: Alles auswählen
http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=12&snapInterval=3&sensitivity=0&triggerInterval=0&isMovAlarmEnable=1&isPirAlarmEnable=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area7=1023&area8=1023&area9=1023&usr=username&pwd=passwort
Jedoch mittels oben angeführten Items und Rules startet sich die Cam einmal komplett neu, danach sind zwar die Einstellungen ok aber eben dieser Neustart ist mir ein Rätsel und da ich gleichzeitig auch die Audioalarmparameter setzen möchte kann ich so nicht mit dem Aktivieren der Alarmanlage gleich beide Parameter einstellen.
Woran kann es liegen, dass mittels
Code: Alles auswählen
http=">[ON:POST:http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&linkage=12&snapInterval=3&sensitivity=0&triggerInterval=0&isMovAlarmEnable=1&isPirAlarmEnable=0&schedule0=281474976710655&schedule1=281474976710655&schedule2=281474976710655&schedule3=281474976710655&schedule4=281474976710655&schedule5=281474976710655&schedule6=281474976710655&area0=1023&area1=1023&area2=1023&area3=1023&area4=1023&area5=1023&area6=1023&area7=1023&area7=1023&area8=1023&area9=1023&usr=username&pwd=passwort]"
die Kamera neu startet und direkt über den Browser nicht?
Zur Frage von alkaline:
Bis jetzt habe ich realisiert, dass bei Bewegungsalarm ein Snapshot gemacht wird und diesen sende ich mir dann per Email oder Telegram aufs Handy. Zusätzlich gibt es eine Pushover-Nachricht (High Priority) aufs Handy.
Ich denke aber schon, dass auch das streamen funktionieren müsste, hatte aber noch keine Zeit mit damit zu beschäftigen (die letzte Nacht ist für das ansteuerun von 2 Tasmota-geflashten Shellys mittels MQTT draufgegangen und funktionierte dann endlich.
Gern kannst du mir da Bescheid geben sobald du etwas zum video streamen oder über das HTTP posten weisst.
LG
Matthias
Re: cgi Befehl ausführen ???
Verfasst: 29. Jan 2020 17:07
von magoo85
ok, gebe wieder mal selbst die Antwort
habe die http methode von POST auf GET geändert und es funktioniert ohne Neustart der Camera, jipee!
so sieht meine Rule aus (Zeitverzögerung zwischen den Parameter-GET-Requests damit es auch klappt:
Code: Alles auswählen
rule "Alarme aktivieren"
when Item Alarm_aktiv_Openhab changed from OFF to ON then
logInfo("Alarm", "Alarme Bewegung und Audio sind aktiviert")
Cam1_enableMotionAlarm.sendCommand(ON)
Cam1_enableAudioAlarm.sendCommand(ON)
Thread::sleep(3000) // Eingestellte Zeitdauer in ms
logInfo("Alarm", "Alarme Bewegung und Audio sind aktiviert -> setzen der Parameter für Bewegungsalarm")
Cam1_Bewegungsparameter.sendCommand(ON)
Thread::sleep(3000) // Eingestellte Zeitdauer in ms
logInfo("Alarm", "Alarme Bewegung und Audio sind aktiviert -> setzen der Parameter für Audioalarm")
Cam1_Audioparameter.sendCommand(ON)
end
Und hier noch die rule für das Benachrichtigung bei Auslösung Bewegungsalarm:
Code: Alles auswählen
rule "Bewegungsalarm"
when Item Cam1_motionAlarm changed from OFF to ON then
logInfo("myRule", "Alarmanlagenstatus ist " + Alarm_aktiv_Openhab.state + " vor der if Anweisung")
sendPushoverMessage(pushoverBuilder("Bewegungsalarm aktiv!!").withEmergencyPriority()) }
sendTelegramPhoto("bot1", "http://IP:Port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxx",
"Openhab Bewegungsalarm")
val mailActions = getActions("mail","mail:smtp:gmailsmtp")
mailActions.sendHtmlMail("xxx@xxx.com", "Bewegungsalarm Wohnküche xxx", "<h1>Alarm</h1>Achtung - Bewegungsalarm", attachmentUrlList)
end
Was ich mir noch ansehen will, vielleicht hat jemand einen Rat, ist die Maskierung des Passworts (per Mail wird sonst am Anhang sofort der Username und Passwort ersichtlich)
Re: cgi Befehl ausführen ???
Verfasst: 31. Mär 2020 19:35
von alkaline
Habe es heute, nach einigen Wochen des "Nichts-tuns", mal wieder angegangen und das aktuelle Binding installiert, die Anleitungen und Foren gelesen und einige Änderungen in der Things als auch Rules gemacht und siehe da, Streaming läuft auch von unterwegs.
Jetzt spiele ich noch mit dem FTP Binding, damit ich auf den Pi sichern kann.....mal schauen, ob das auch noch klappt.
Gruß
Marcus
Re: cgi Befehl ausführen ???
Verfasst: 24. Jun 2020 09:13
von alkaline
Eine Verständnisfrage:
Wie kommst du denn auf den o.g. String? Woher kommen denn die Parameter bzw. wie werden die aneinander gereiht?
Aus der Foscam Doku werde ich mal gar nicht schlau...