[Frage] Schalter für manuelle Bilderabholung über ftp von einer ipKamera(interne sd-karte)

oha0815

Neuer User
Mitglied seit
28 Jan 2015
Beiträge
84
Punkte für Reaktionen
0
Punkte
6
jetz kommt der laie wieder der weiß was er will es aber an der umsetzung scheitert... ;-)

gegeben sind eine IPcam die bilder auf eine interne sd-karte speichert da "nicht" regelmäßig am netzwerk angeschlossen,
raspi mit sas am start

der wunsch wäre ein sasschalter der bei betätigung den pi auffordert sich per ftp an der ipkamera anzumelden, alles
was nach bildern aussieht(da mehrere ordner von der cam angelegt werden) auf die pi sd (in einen ordner)kopiert
und am ende alle bilder auf der ipcam samt ordnern löscht !!

wäre soetwas in der art umsetzbar ?
google ist mal wieder absolut nicht mein freund, ich find da nix brauchbares !!

grüßle
 
Zuletzt bearbeitet:
so, ich hab jetzt selbst mal was gebastelt,

es funktioniert bisher eine getrennte Bild oder Videoabholung von der IPCam aufn raspi über folgende pseudofoscam.php

PHP:
<?php

    /*
        +---------------------------------------------------------------------+
        |                                                                     |
        |   SensorAndSwitch Automation Pro                                    |
        |   PseudoGeräte-Script                                 RaspberryPI   |
        |   ===============================================================   |
        |   Foscam Bild/Video abholung                            sashelper   |
        |   SAS läuft auf diesem Gerät                                        |
        |                                                                     |
        +---------------------------------------------------------------------+
    */

	include "include/includepseudo.php";

	$ver="V#V 3.01#";
		
			echo 'P#<div  style="position:absolute;top:-20px;font-size:14px;width:320px;"><span id="klick"><a href="doitfosvid.php"><img src="'.picdesign("schalter0.png").'"></a></span></div><div style="position:absolute;top:-20px;font-size:14px;width:265px"><span id="klick"><a href="doitfosbild.php"><img src="'.picdesign("schalterr.png").'"></a></span></div>*HTML#'.$ver;
    exit;
    
?>

jetzt hab ich zwar 2 buttons (bash scripte mit wget) um den Dateitransfer anzukurbeln allerdings keine rückmeldung ob die IPCam überhaupt Online ist,
will sagen könnte sas nen ping an die cam schicken und mir das dann optisch anzeigen ????
 
Zuletzt bearbeitet:
Hallöle

Das hier könnte bei dir auch funktionieren...
PHP:
<?php // Pingtest auf vorhandensein einer IP
error_reporting(0);
if ($_GET["info"]=="status") {
$Device='deine.kamera.ip';
$Status=shell_exec('ping -c 1 -W 1 '.$Device.' >/dev/null;[ $? -eq 1 ] && echo "P#0*<img src=\"images/mled0.png\"/>#" || echo "P#1*<img src=\"images/mled1.png\"/>#"');
}
echo $Status;
?>
Auf Version 3.00.2470
Speichere es als: pseudoIP-Kamera.php
Und du kannst es dann auch als ein Kettenstartglied mit Pseudosensorbedingung einsetzen.
Wenn da tu nichts wenn nicht da dann ALARM!
...oder so.
:rolleyes:
 
Zuletzt bearbeitet:
oki, das hat funktioniert, recht herzlichen dank ;-)

schöner wärs halt wenn alles in einer zeile stünde .

mit dem gelben schalter hol ich die bilder, mit dem roten die videos

mehr muß da nicht gehn !
 

Anhänge

  • foscam.jpg
    foscam.jpg
    22 KB · Aufrufe: 8
Zuletzt bearbeitet:
Sensor und Schalter in Einem?
Möchtest du dass nicht doch lieber getrennt behandeln?

Der Sensor reagiert nur auf: info=status

Schalter sollten aber auch auf...
schalter=an
schalter=aus
...und im Skript auf...
schalter=1
schalter=0
...reagieren können.
 
Zuletzt bearbeitet:
hab in post 4 ein bild angehängt..

was natürlich am hübschesten wär wenn die onlineanzeige der cam ganz links angezeigt würde, so wie bei den normalen schaltern in rot und grün verstehst ??
 
Klar, verstehe.
Du schaltest mit den HTML Links.
Um ein SaS Pseudoskript sinnvoll mit Bedingungsabfrage einsetzen zu können,
bedarf es ein Konzept. Info, Sensor, Schalter

Mein Skript entscheidet anhand des pings bei info=status ob es eine 0 oder 1, rot oder grün, anzeigt.

Wenn ping erfolg, dann das nach den && ausführen.
Wenn ping erfolglos, dann das nach den || ausführen.

Brauchst dein Zeug also nur mit an die richtige Stelle kopieren.
Dann ist es zwar ein Sensor, aber immerhin mit "sinnvollen" HTML Schaltern,
die, wenn du es richtig machst, nur angezeigt werden wenn die Kamera online ist.
Und Sensoren braucht man zum Schalten immer.
...das musst du verstehen. :mrgreen:
 
Zuletzt bearbeitet:
könnte es sein das da was falschherum is:
Wenn ping erfolg, dann das nach den && ausführen.
Wenn ping erfolglos, dann das nach den || ausführen.

Wenn ping erfolg, dann das nach den || ausführen
Wenn ping erfolglos, dann das nach den && ausführen. ???


da werd ich mich morgen mal dran versuchen...
 
Moin

Ja. Hast Recht, war wohl schon spät Gestern. :mrgreen:

Da in meinen Skript die Gänsefüßchen maskiert werden müssen geb ich dir noch ein Beispiel mit.
Der Sensor testet auf fritz.box und wenn online gibt es einen Button für das Webinterface...
pseudofritzbox.php
PHP:
<?php // Pingtest auf vorhandensein einer IP
error_reporting(0);
if ($_GET["info"]=="status") {
$Device='fritz.box';
$Status=shell_exec('ping -c 1 -W 1 '.$Device.' >/dev/null;[ $? -eq 1 ] && echo "P#0*<img src=\"images/mled0.png\"/>#" || echo "P#1*<div style=\"position:absolute;top:-20px;font-size:14px;width:320px;\"><a href=\"http://'.$Device.'\"><img src=\"images/schalter1.png\"></a></div>#"');
}
echo $Status;
?>
 
Wenn es bei den Schaltern eine reine ein/aus-Sache ist, dann kann man Pseudo S## mitbenutzen. Sprich, wenn es nicht an und aus gleichzeitig als Knopf geben muss. Pseudo P## noch für Sensoren und Anzeige kann man ja damit mischen. Nur so als Idee, weil ich das z. B. bei psgPI.php bzw. pseudoPI.php in den Beispiel-Scripten so gelöst habe. Auch beim Schalter (Pseudo S##) kann man ja bei schalter==1 und schalter==0 ein Shell-Script starten. ;)

Nachtrag: Der "echte" Schalter steht dann auch links.
 
Zuletzt bearbeitet:
okay, das script aus post 9 läuft korrekt, nur wie zur hölle bekomm ich dieses :
PHP:
 echo 'P#<div  style="position:absolute;top:-20px;font-size:14px;width:320px;"><span id="klick"><a href="doitfosvid.php"><img src="'.picdesign("schalter0.png").'"></a></span></div><div style="position:absolute;top:-20px;font-size:14px;width:265px"><span id="klick"><a href="doitfosbild.php"><img src="'.picdesign("schalterr.png").'"></a></span></div>*HTML#'.$ver;
    exit;

in dieses:
PHP:
 <?php // Pingtest auf vorhandensein einer IP
error_reporting(0);
if ($_GET["info"]=="status") {
$Device='fritz.box';
$Status=shell_exec('ping -c 1 -W 1 '.$Device.' >/dev/null;[ $? -eq 1 ] && echo "P#0*<img src=\"images/mled0.png\"/>#" || echo "P#1*<div style=\"position:absolute;top:-20px;font-size:14px;width:320px;\"><a href=\"http://'.$Device.'\"><img src=\"images/schalter1.png\"></a></div>#"');
}
echo $Status;
?>

integriert das mir dann wenn die cam online is ich 3 buttons nebeneinander hab ????

ich komm mit den ." ' /\ (){} überhaupt nicht zurecht, brauch erst noch nen grundkurs in php !!!!

aber irgendwas klemmt noch mit dem code aus post 9, mir zeigts meine cam daueronline obwohl sie aus ist !? <--erledigt, funktioniert

und wie füge ich einen dem standart abweichenden port ein, mit : direkt hinter der ip oder ?? <-- das war wohl falsch
habs aber hinbekommen
 
Zuletzt bearbeitet:
So, ja, du wärst nicht der Erste der graue Haare damit bekommt. :mrgreen:

Beispiele für OK
"bla"
'bla'
Ausgabe: bla

'"bla"'
Ausgabe: "bla"

"'bla'"
Ausgabe: 'bla'

...das ist komplizierter als es aussieht.

shell_exec( fängt im Skript mit einem Hochkommata an ( ' ).
...und der String darin muss auch mit Einen enden.
Einzelene Gänsefüsschen sind dann noch OK, aber jedes Weitere muss maskiert werden.
Dafür ist der Backslash da: \
Also mal als einfaches Beispiel: shell_exec('echo "\"bla\""'');
Ausgabe: "bla"

Es geht auch anders, aber der Backslash fällt einen eigentlich sofort ins Auge.
...und ist deswegen zu Empfehlen.
 
Zuletzt bearbeitet:
so, es gibt fortschritte zu verzeichnen, danke mal an koyaanisqatsi

mit diesem script:
PHP:
<?php // Pingtest auf vorhandensein einer IP
error_reporting(0);
if ($_GET["info"]=="status") {
$Device='192.168.xxx.xx';
$Status=shell_exec('ping -c 1 -W 1 '.$Device.' >/dev/null;[ $? -eq 1 ] && echo "P#0*
<div style=\"position:absolute;top:-20px;font-size:14px;width:80px;\"><img src=\"images/schalter0.png\"/></div>#" || echo "P#1*
<div style=\"position:absolute;top:-20px;font-size:14px;width:320px;\">
<a href=\"doitfosvid.php\"><img src=\"images/schalter0.png\"></a></div>
<div style=\"position:absolute;top:-20px;font-size:14px;width:210px;\">
<a href=\"doitfosbild.php\"><img src=\"images/schalterr.png\"></a></div>
<div style=\"position:absolute;top:-20px;font-size:14px;width:80px;\">
<a href=\"http://'.$Device.':xx\"><img src=\"images/schalter1.png\"></a></div>#"');
}
echo $Status;
?>

bekomm ich folgende anzeigen:

cam aus:
fosinteraus.jpg
cam ein:
fosinterein.jpg

nen kleinen schönheitsfehler hab ich noch im zustand
aus kommt ganz rechts ne 0
ein kommt ganz rechts ne 1 ??

Ich hab jetz nur noch ein heftiges problem mitm löschen der dateien und ordner auf der sd-karte der Cam.
Ich komm auf die nur per ftp und ich hab jetz noch nix gefunden das mir vom raspi aus per bash script
unbekannte ordner und unbekannte dateien darin auf einem rutsch löscht, kann mir da vielleicht einer weiterhelfen ????
 
Die 0 und die 1 sind die Sensorwerte die ausgewertet werden können.
Die sind auch nötig.
Im 2. Bild ist die 1 durchscheinend unter dem rechten Schalter kaum zu sehen.
Formatiere im ersten Bild den roten Schalter nach rechts. ;)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.