Kamera über HTTPMOD steuern

Begonnen von Markus-Mech, 10 April 2021, 23:38:36

Vorheriges Thema - Nächstes Thema

Markus-Mech

Hallo,

ich versuche gerade bei einer IP-Kamera die Helligkeit und den Kontrast über Fhem zu setzen. Ich versuche das über HTTPMOD, bekomme es aber nicht hin. An sich kann ich die Kamera mit diesem Link "http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=1&value=130" die Helligkeit ändern. Dabei steht der param 1 für die Helligkeit und 2 wäre dann den Kontrast, hinter der value kommt dann der Wert dieser liegt zwischen 0 und 255.

Das habe ich definiert:
defmod KameraSt HTTPMOD http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=1&value= 0
attr KameraSt userattr set01Data set01Hint set01Name set01URL
attr KameraSt room Kamera
attr KameraSt set01Data $val
attr KameraSt set01Hint 70,80,90,100,110,120,130
attr KameraSt set01Name Helligkeit
attr KameraSt set01URL http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=1&value=
attr KameraSt verbose 5


Und das steht im Log wenn ich einen Wert setze:
2021.04.10 23:37:01 5: KameraSt: set called with Helligkeit 100
2021.04.10 23:37:01 5: KameraSt: set found option Helligkeit in attribute set01Name
2021.04.10 23:37:01 4: KameraSt: set will now set Helligkeit -> 100
2021.04.10 23:37:01 5: KameraSt: AddToQueue adds type set01 to URL http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=¶m=1&value=, data $val, no headers, retry 0, initial queue len: 0
2021.04.10 23:37:01 5: KameraSt: HandleSendQueue called, qlen = 1
2021.04.10 23:37:01 4: KameraSt: HandleSendQueue sends set01 with timeout 2 to http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=¶m=1&value=,
data: 100, No Header
2021.04.10 23:37:01 5: HttpUtils url=http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=¶m=1&value=
2021.04.10 23:37:01 4: IP: 192.168.178.25 -> 192.168.178.25
2021.04.10 23:37:01 5: HttpUtils request header:
POST /camera_control.cgi?loginuse=admin&loginpas=¶m=1&value= HTTP/1.0
Host: 192.168.178.25
User-Agent: fhem
Accept-Encoding: gzip,deflate
Content-Length: 3
Content-Type: application/x-www-form-urlencoded

2021.04.10 23:37:01 4: http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=¶m=1&value=: HTTP response code 200
2021.04.10 23:37:01 5: HttpUtils http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=¶m=1&value=: Got data, length: 18
2021.04.10 23:37:01 5: HttpUtils response header:
HTTP/1.1 200 OK
Date: Sat Apr 10 21:37:01 2021
Server: GoAhead-Webs
Last-modified: Sat Mar  7 12:43:20 1970
Content-type: text/html
Cache-Control:no-cache
Content-length: 18
Connection: close
2021.04.10 23:37:01 4: KameraSt: Read callback: request type was set01 retry 0,
header: HTTP/1.1 200 OK
Date: Sat Apr 10 21:37:01 2021
Server: GoAhead-Webs
Last-modified: Sat Mar  7 12:43:20 1970
Content-type: text/html
Cache-Control:no-cache
Content-length: 18
Connection: close, body length 18
2021.04.10 23:37:01 5: KameraSt: Read callback: body
var result="ok";

2021.04.10 23:37:01 4: KameraSt: Read found no charset header (bodyDecode was set to auto)
2021.04.10 23:37:01 5: KameraSt: GetCookies is looking for Cookies
2021.04.10 23:37:01 5: KameraSt: ExtractSid called, context set, num 01
2021.04.10 23:37:01 4: KameraSt: checking for redirects, code=200, ignore=0
2021.04.10 23:37:01 4: KameraSt: no redirects to handle
2021.04.10 23:37:01 5: KameraSt: CheckAuth decided no authentication required


Wo liegt der Fehler ich komme irgendwie nicht drauf.

MadMax-FHEM

#1
Schau dir doch mal das IPCAM Modul an: https://forum.fhem.de/index.php/topic,10772.msg61667.html#msg61667 bzw. https://wiki.fhem.de/wiki/IPCAM

Da kannst du über cmd-Attribute auch eigene Kommados hinterlegen...

Allerdings etwas schwierig mit dem aktuellen Stand "variable Werte" mit zu übergeben.
Aber das Modul wird eh grad "überarbeitet", vielleicht kann das noch mit eingebaut werden...
Fragen kostet ja nix ;)

Ansonsten wüsste ich jetzt leider auch nicht wie das mit HTTPMOD ginge.
Evtl. per Shell-Script mittels curl/wget und dann per "Script Wert1 Wert2" in fhem aufrufen: https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Markus-Mech

Hallo,

das Modul IPCAM habe ich mir angeschaut, damit bin ich aber auch nicht ans Ziel gekommen. Allerdings habe ich es geschaft über das Moul HTTPMOD die Helligkeit und Kontrast zu steuern.
defmod KameraSt HTTPMOD http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=1&value=$val 0
attr KameraSt userattr set01Data set01Hint set01Name set01URL set02Hint set02Name set02URL
attr KameraSt room Kamera
attr KameraSt set01Hint slider,70,10,130
attr KameraSt set01Name Helligkeit
attr KameraSt set01URL http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=1&value=$val
attr KameraSt set02Hint slider,70,10,130
attr KameraSt set02Name Kontrast
attr KameraSt set02URL http://192.168.178.25/camera_control.cgi?loginuse=admin&loginpas=&param=2&value=$val
attr KameraSt verbose 5
attr KameraSt webCmd Helligkeit Kontrast
attr KameraSt widgetOverride Kamera:Helligkeit,slider,70,10,130

Damit kann ich jetzt auf den Definitionsseite mittels Slider den wert einstellen und dann mit Set übergeben.
Jetzt möchte ich aber die Slider schon im room haben, dass habe ich mit den letzten beiden Zeilen versucht. Leider hat das damit noch nicht geklappt - Irgendwelche vorschläge?