IPCAM und "set ipcam pos x"

Begonnen von marc2, 24 Januar 2014, 23:22:15

Vorheriges Thema - Nächstes Thema

marc2

Moin !

Ich habe heute mal für eine meiner Webcams ein paar Positionen definiert. Per wget konnte ich sie anfahren, mit
IPCAM nicht. Das Problem liegt in folgenden Teil des Codes:

    if($cmd eq "cmd" && defined($attr{$name}{pathCmd})) {
      $camURI .= "?$camQuery";
    } elsif($cmd ne "raw") {
      $camURI .= "&$camQuery";
    }


Die Paramter werden im Falle von "pos" mit einem Ampersand angehängt, was leider nicht korrekt ist. Nach folgender
kleiner Korrektur funktioniert es wie gewünscht:

    if($cmd eq "cmd" && defined($attr{$name}{pathCmd})) {
      $camURI .= "?$camQuery";
    } elsif($cmd eq "pos" && defined($attr{$name}{pathPanTilt})) {
      $camURI .= "?$camQuery";
    } elsif($cmd ne "raw") {
      $camURI .= "&$camQuery";
    }


OK, man kann das Fragezeichen natürlich auch direkt in pathPanTilt definieren, sorry ....

Gruß, Marc

Invers

Ich beschäftige mich auch gerade damit, meine IP Cam in fhem einzubinden und zu steuern.
Leider ist das Thema hier nur spärlich vertreten und im Wiki ist nichts zu finden. Nur hier steht etwas zum Thema, was mir aber alleine auch nicht wirklich weiterhilft. http://www.fischer-net.de/hausautomation/fhem/62-fhem-modul-ipcam-ueberarbeitet.html

Könntest du vielleicht so nett sein, deinen Code hier zu posten? Du hast ja offenbar schon vollen Erfolg damit.
Das könnte die Arbeit wahrscheinlich sehr erleichtern. Vor allen Dingen ist die Positionierung für mich schwierig.

Meine Cam wurde im FHEM angezeigt und ich hatte ein Livebild, aber keine Steuerungsmöglichkeiten, mangels zugehörigem Code.

Es wäre toll, wenn ich in deinem Code schmökern kännte.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

peterk_de

#2
Ich krame das mal wieder hervor, da ich eben über das gleiche Problem gestolpert bin: Wenn man eine PANASONIC-IP-Cam (WV-SC385) so einrichtet wie es in der Commandref beschrieben steht, also in etwa so:


define webcam IPCAM 192.168.XX.XX:80
attr webcam cmdPos01 preset=1
attr webcam cmdPos02 preset=2
attr webcam pathCmd cgi-bin/camctrl
attr webcam pathPanTilt cgi-bin/camctrl



... kommt als Query-String heraus:


http://192.168.XX.XX:80/cgi-bin/camctrl?&preset=1


Da ist ein Ampersand zuviel - die Cam frisst das nicht. Mit marc2's Patch gehts prima - vielleicht sollte das also einmal eingecheckt werden!?

Edit: Nach weiterer Betrachtung betrifft das auch die Commandos pan und tilt. Der Patch müsste also lauten:


    if($cmd eq "cmd" && defined($attr{$name}{pathCmd})) {
      $camURI .= "?$camQuery";
    } elsif(($cmd eq "pos" || $cmd eq "tilt" || $cmd eq "pan")&& defined($attr{$name}{pathPanTilt})) {
      $camURI .= "?$camQuery";
    } elsif($cmd ne "raw") {
      $camURI .= "&$camQuery";
    }
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...