Sehr geehrte Damen und Herren,
Servus,
Mein Problem ist folgendes:
Ich spreche einen MCP23017 über I2C an.
Dieser wiederum schaltet eine Relaisplatte mit 16 Relais.
Diese schalten dann die Rollo meines Hauses (naja, eigentlich noch nicht, aber ich bin kurz davor
Das ganze läuft folgendermaßen,
Ich erhalte eine html Seite auf meinem Handy wenn ich eine meinen Apache2 auf dem Raspberry anfordere.
auf dieser Seite kann ich auswählen welche Rollo fahren sollen.
Dieses html-Skript sendet dann die entsprechenden mit Häckchen versehenen variablen an ein php-Skript.
Das php-Skript wertet diese aus und beschreibt den MCP23017 mit den entsprechenden 1en und 0en.
Nun dauert es eine weile bis die Rollo runtergefahren sind. ca. 20s
soweit würde es funktionieren.
Aber ich würde gerne die Rollo/Relais nach dieser Zeit wieder auf "nicht geschaltet" setzen und während der Rollofahrt auch noch die fahrt unterbrechen können, falls z.B. ein Gegenstand im weg ist.
Also sleep() scheidet daher aus, weil der Browser dann keine Befehle mehr annimmt.
Kann ich das php skript irgendwie so gestalten, dass eine Zeit abläuft in der die Rollo fahren und gleichzeitig über die html-Seite einen Stop schicken?
Das wäre dann die Lösung meines Problems.
Ich hatte es schon mit Shell_exec("/var.../pytonprogramm.py")
und dann im pythonprogramm über
#!/usr/bin/env python
import thread
import time
import os
time.sleep(5)
os.system ("sudo i2cset -y 1 0x20 0x00 0xFF")
os.system ("sudo i2cset -y 1 0x20 0x01 0xFF")
versucht, aber das führt PHP wohl nicht aus.
Im Shell über Putty funktioniert das Pythonprogramm einwandfrei.
Aber eben nicht über das PHP-skript.
Danke
Gruß Ben