IPCAM - Liveansicht mit Steuerung

Begonnen von docb, 17 Juli 2013, 21:50:50

Vorheriges Thema - Nächstes Thema

docb

Hallo Leute,
bislang habe ich Martin Fischer's Modul IPCAM benutzt um meine IPCAM zu steuern. Um ein Livebild zu sehen hatte ich schon immer eine "eigene Lösung". Nachdem meine neue Instar IN-6012 allerdings neue/komplett andere Befehlssätze hat, kann ich das IPCAM Modul nicht mehr nutzen. Daher habe ich mir jetzt zur Steuerung inkl. Livebildansicht ein eigenes "Skript" gebastelt. Ihr müsst ggf. eure Befehlssätze anpassen / user und passwort ändern, aber nachdem ich mir schon die Arbeit gemacht habe, teile ich gerne ;-)

Das hier in die fhem.cfg:

define IPC_WZ_Videotest weblink htmlCode <table><tr><td valign="middle"><a target="IPC_WZ" onclick="window.open('/fhem/images/ipcam.html','IPCam Wohnzimmer', 'width=720,height=480,scrollbars=no,toolbar=no,status=no,resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')" href=''><img src="/fhem/icons/it_camera.svg" border="0" height="32" width="32">Videostream Wohnzimmer anzeigen</a></td></tr></table>
attr IPC_WZ_Videotest room IP-Camera


Nachdem ich es nicht geschafft habe, die zur Ansicht/Steuerung notwendige html-datei in einem vernünftigen Pfad abzulegen, so dass ich direkt von fhem darauf zugreifen kann, müsst ihr folgenden Code in ein leeres Textdokument kopieren und als ipcam.html im ordner fhem/www/images ablegen (nicht so schön vom Pfad her, aber hilft nix ;-).

Und hier der Quälcode:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>IPCAM...by docb</title>
<style type="text/css">
 body {font-family: arial, verdana, sans-serif;}
 a {color:#CC0000; text-decoration: none; font-weight: bold;}
   .invisible { visibility:hidden; }
   .visible { visibility:visible; }
</style>
<script type="text/javascript" language="JavaScript">
function sichtbar()
{
 if (document.getElementById('hd1').className == "invisible"){document.getElementById('hd1').className = "visible";}else{document.getElementById('hd1').className = "invisible";}
 if (document.getElementById('hd2').className == "invisible"){document.getElementById('hd2').className = "visible";}else{document.getElementById('hd2').className = "invisible";}
 if (document.getElementById('hd3').className == "invisible"){document.getElementById('hd3').className = "visible";}else{document.getElementById('hd3').className = "invisible";}
}

</script>
</head>
<body>

<h1>IP-CAM</h1>

<iframe src="http://admin:passwort@192.168.x.x/cgi-bin/hi3510/mjpegstream.cgi?-chn=12" width="640" height="352" name="Video" border="0" style="border:1px black solid"></iframe><br>
<iframe src="" width="80" height="30" name="Message" style="visibility:hidden;display:none"></iframe>
<table width="640">
<tr>
<td>Manuelle Steuerung </td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=ptzctrl&-step=1&-act=up&-speed=2&-usr=admin&-pwd=passwort" target="Message">Hoch</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=ptzctrl&-step=1&-act=down&-speed=2&-usr=admin&-pwd=passwort" target="Message">Runter</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=ptzctrl&-step=1&-act=left&-speed=2&-usr=admin&-pwd=passwort" target="Message">Links</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=ptzctrl&-step=1&-act=right&-speed=2&-usr=admin&-pwd=passwort" target="Message">Rechts</a></td>
</tr><tr>
<td>Positionssteuerung </td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=1&-usr=admin&-pwd=passwort" target="Message">Position 1</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=2&-usr=admin&-pwd=passwort" target="Message">Position 2</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-number=3&-usr=admin&-pwd=passwort" target="Message">Position 3</a></td>
<td></td>
</tr><tr>
<td><a  onclick="sichtbar()" style="font-weight: normal">Positionsspeicherung</a> </td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=set&-status=1&-number=1&-usr=admin&-pwd=passwort" target="Message" class="invisible" id="hd1">Position 1</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=set&-status=1&-number=2&-usr=admin&-pwd=passwort" target="Message" class="invisible" id="hd2">Position 2</a></td>
<td><a href="http://192.168.x.x/cgi-bin/hi3510/param.cgi?cmd=preset&-act=set&-status=1&-number=3&-usr=admin&-pwd=passwort" target="Message" class="invisible" id="hd3">Position 3</a></td>
<td></td>
</tr>

</table>

</body>
</html>


Für Verbesserungsvorschläge bin ich offen ;-)
Viele Grüße
Doc
I love FHEM!

Alcamar

Ist das hier beschriebene Vorgehen immer noch der empfohlene modus operandi für die Einbindung von live-Bilder einer webcam?

AET_FHEM

Hey,

also bei mir sieht das so aus in der fhem.cfg

define ipcamI weblink htmlCode <img width="640" height="480" src="http://xxxxxxxxxx/videostream.cgi?user=XXXX&pwd=XXXX&resolution=64&rate=0">
attr ipcamI room 02_Security

die x und X muss man natürlich anpassen aber das zeigt bei meiner Instar ein Live Bild an

=> das ganze hab ich noch in der Tablet UI => wo ich die Cam auch steuern kann

das sieht dann ungefähr so aus:

<li class="halbTransparent" data-row="2" data-col="5" data-sizex="3" data-sizey="2">
   <header>CAM I</header> 
   <img src="http://xxxxxxx/videostream.cgi?user=XXXXX&pwd=XXXXX&resolution=64&rate=0" height="90%" wight="100%" border="0">
    </img src>
</li>

<li class="halbTransparent" data-row="2" data-col="8" data-sizex="1" data-sizey="2">
<header>CAM I</header>
        <div class="centered container">
      <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 1">1</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 2">2</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 3">3</div>
       <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 4">4</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 5">5</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 6">6</div>
       <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 7">7</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 8">8</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 9">9</div>
       <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 10">10</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 11">11</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 12">12</div>
       <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 13">13</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 14">14</div>
        <div data-type="push" data-icon="" data-device="CAM_I" data-set-on="pos 15">15</div>
    </div>
</li>

accessburn

Zitat von: AET_FHEM am 26 Juli 2016, 15:26:56
=> das ganze hab ich noch in der Tablet UI => wo ich die Cam auch steuern kann

Das entzieht sich meinem Horizont... Wie gibst du die Kommandos zur Steuerung weiter?
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

AET_FHEM

Hey,

die CAM_I ist im FHEM ganz normal
mit dem Modul IPCAM angelegt
define CAM_I IPCAM XXX.XXX.XXX.XXX

in dem Modul kann man die Positionen definieren mit dem Attribut cmdPos01 - 15 :-)
und schon klappts ;-) => meine Cams Instar und Foscam

cmdPos01 command=31
cmdPos02 command=33
cmdPos03 command=35
cmdPos04 command=37
cmdPos05 command=39
cmdPos06 command=41
cmdPos07 command=43
cmdPos08 command=45
cmdPos09 command=47
cmdPos10 command=49
cmdPos11 command=51
cmdPos12 command=53
cmdPos13 command=55
cmdPos14 command=57
cmdPos15 command=59

Alcamar

define ipcamI weblink htmlCode <img width="640" height="480" src="http://xxxxxxxxxx/videostream.cgi?user=XXXX&pwd=XXXX&resolution=64&rate=0">
Obwohl ich mein User und Passwort eingegeben habe, fragt meine INSTAR 6012 trotzdem nochmal User+Passwort in einem Fenster ab. Nach deren Eingabe sehe ich nur einen Platzhalter für eine Graphik. Aber weder ein Bild der Kamera geschweige ein Stream.  :-\

Alcamar


Michael

Moin Alcamar

Sehe mal hier : http://www.instar.de/faq_cgi (Liste aller CGI Befehle (HD)/Liste aller CGI Befehle (VGA))
Vllt Hilft es dir weiter.
Denn was ich beim überfliegen gesehen habe ist die Reihenfolgen http://xxxxxxxxxx/videostream.cgi?user=XXXX&pwd=XXXX anders.
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Navigator

Kann mir jemand eine Info geben wie ich das Bild um 90 Grad drehen kann? Die Kamera selbst dreht nur um 180. Vielleicht ein passendes HTML Attribute?