Motion / Webcam und meine Index.php

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Motion / Webcam und meine Index.php

    Grüezi Wohl

    Ich bin ein ziemlicher Neuling was php/html im zusammenspiel angeht und habe seit 2 Tagen ein Problem, jetzt ist der zeitpunkt wo ich nicht weiterkomme und damit an die Öffentlichkeit muss.

    Folgenden, ich mache eig. nur eine Homepage die aus einer Seite besteht und man LED's am Raspberry PI steuern kann. Ich habe einen Apache2 Server auf einem Rechner mit der seite drauf und auf dem Raspi habe ich Motion laufen und die Webcam natürlich angeschlossen.
    Für den Raspy habe ich noch einen kleinen Server in Python geschrieben, der die Daten vom php Script empfängt und die LED dann gwünscht steuert.

    Dieses nenne ich meine Index Datei: [PHP] <?php error_reporting(E_ALL); error_reporting(-1); /* GPIO 17 = BLUE - Pastebin.com

    Ich hoffe es ist so korrekt in dem <form> kein Action zu haben, aber so bleib ich auf der STartseite und es funktioniert auch so eig. gut. Bis auf folgendes Webcam Problem.

    Das problem ist:

    Einmal funktiert es, dannach hängt es nur noch, aber trotz des unendlichen ladens der Seite, kann man noch wunderbar die LED von der index.php aus steuern, die am Raspy angeschlossen sind.
    Aber wen das ein ausenstehender macht, habe nur ich was davon, ich seh dann die Farben.

    Ich hoffe ihr könnt mir ein bisschen unter die Arme greiffen. Ich denke eben, es habt irgendwas Mit dem PHP teil zu tun, das nach einmaliger ausführung das "streamen" der Webcam nicht mehr funktioniert.
    Auf dem Raspy läuft die Cam natürlich noch einwandfrei, es ist nur der "Stream" auf der index.php ..

    Freundlichst Grüsse ich Euch

    Fichtl
    Zuletzt geändert von fichtl; 04.01.2014, 02:41.

  • #2
    Zitat von fichtl Beitrag anzeigen
    Grüezi Wohl

    Ich bin ein ziemlicher Neuling was php/html im zusammenspiel angeht und habe seit 2 Tagen ein Problem, jetzt ist der zeitpunkt wo ich nicht weiterkomme und damit an die Öffentlichkeit muss.

    ...

    Für den Raspy habe ich noch einen kleinen Server in Python geschrieben, der die Daten vom php Script empfängt und die LED dann gwünscht steuert.
    Wenn du dich in Python besser auskennst, dann wäre es doch sinnvoller, eine Python-basierte Website fürs HTML-Formular zu benutzen. Das kostet auch nicht mehr als irgendein 08/15-Massen-PHP-Hosting-Paket.

    ... Ich hoffe es ist so korrekt in dem <form> kein Action zu haben, aber so bleib ich auf der STartseite und es funktioniert auch so eig. gut.
    Ich hab mich lange nicht mehr mit solchen HTML-Interna beschäftigen müssen, aber falls irgendein Browser damit Probleme haben sollte, baust du halt das Action-Attribut ein und lässt den entsprechenden Wert leer:
    Code:
    action=""
    Der Nachteil d(ein)er Methode ist, dass der aktuelle Status der LEDS beim nächsten Aufruf des Formulars weg ist.

    Bis auf folgendes Webcam Problem.
    Webcam? Welche Webcam? Das, was man über die img-URL abrufen kann?

    Einmal funktiert es, dannach hängt es nur noch, aber trotz des unendlichen ladens der Seite, kann man noch wunderbar die LED von der index.php aus steuern, die am Raspy angeschlossen sind.
    Was hängt? Der einzige Teil in dem Script, der "hängen" könnte, ist das fsockopen(). Da gibts einen Parameter für Timeouts, den man möglichst klein einstellen sollte, da die Funktion im "Blocking"-Modus arbeitet. Ist der angesteuerte Server nicht erreichtbar, kehrt fsockopen() erst dann zurück, wenn dieser Zeitraum verstrichen ist.

    Ich hoffe ihr könnt mir ein bisschen unter die Arme greiffen. Ich denke eben, es habt irgendwas Mit dem PHP teil zu tun, das nach einmaliger ausführung das "streamen" der Webcam nicht mehr funktioniert.
    Auf dem Raspy läuft die Cam natürlich noch einwandfrei, es ist nur der "Stream" auf der index.php
    Was verstehst du unter Stream? Ich sehe nur das img-Tag mit einer potenziellen Webcam-URL. Wenn das regelmäßig aktualisiert werden soll, musst du dein HTML um diese komischen Auto-Weiterleitungs-Meta-Tags erweitern.

    Allerdings sollte es reichen, wenn nach jedem "Formular-Abschicken" das dann aktuelle Foto sichtbar ist. Wenn du immer das gleiche siehst, liegt das am Browsercache. Einem Browser das Cachen zu verbieten, ist nahezu unmöglich. Die diversen Pseudo-Cache-HTTP-Header sind für andere Zwecke gedacht. Die einzige Methode die immer hilft, ist eine neue URL für jedes neue Bild, was abrufbar ist. Bspw. tut das ein Timestamp, den du an die IMG-URL anhängst. Das geht natürlich nicht in HTML alleine, sondern benötigt PHP-Script-Hilfe:

    Code:
    <img src="http://subdomain.example.org:myport?<?php echo dechex($timestamp); ?>" />
    Was mir noch aufgefallen ist: Du schickst die Daten per fwrite($server, $wert), wobei du entweder die Zahl 0 (Typ: Integer) oder den vom Formular gesendeten Wert (vom Typ String) einsetzt. Fwrite() kann nur mit (Binär-)Strings. Du solltest also die Formulareingaben entsprechend umwandeln.
    Code:
    $mycolor = (bool)(int)@$_POST['mycolor'];
    macht vernünftige (und gegen unerwünschte Benutzereingaben sichere) Boolesche Werte aus den Benutzereingaben. Die musst du für fwrite() noch in dein gewünschtes String-Format wandeln, das sich mir aber nicht aus deinem Quellcode erschließt. Vermutlich Strings mit ASCII-Ziffern? Dann tut es:
    PHP-Code:
    fwrite($server, (string)(int) $mycolor); 
    Zuletzt geändert von fireweasel; 24.01.2014, 13:08.
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar

    Lädt...
    X