Textdatei einlesen und in if verwenden
-
- User
- Beiträge: 13
- Registriert: Dienstag 10. Februar 2015, 23:42
Hallo,
@all
ich bin natürlich dankbar für jede Hilfe die ich bekommen kann.
Bin natürlich auch dankbar, dass es Experten gibt, die sich überhaupt mit Anfängerfragen rumschlagen, obwohl wahrscheinlich jedes Problem schon x Mal über die Suche zu finden ist.
@cofi
@Hyperion
Meintet ihr zufällig das ?
Gpio.php:
Doch wie müsste dann das Python Skript aussehen, das es die variable ($status) auch annimmt?
Schalten.py:
Wenn das allerdings nicht euer Lösungsvorschlag war, dann habe ich euern Post nicht verstanden.
mfg
Heiko
@all
ich bin natürlich dankbar für jede Hilfe die ich bekommen kann.
Bin natürlich auch dankbar, dass es Experten gibt, die sich überhaupt mit Anfängerfragen rumschlagen, obwohl wahrscheinlich jedes Problem schon x Mal über die Suche zu finden ist.
@cofi
@Hyperion
Meintet ihr zufällig das ?
Gpio.php:
Code: Alles auswählen
<?php
$licht = exec("python schalten.py $status");
<?
Schalten.py:
Code: Alles auswählen
#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
gpio = 10
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(gpio, GPIO.OUT)
p = GPIO.PWM(gpio, 50)
p.start(0)
if $status == “an” :
for dc in range(0, 100, 5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
if $status == „aus“ :
for dc in range(100, 0, -5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
if $status == “kino” :
for dc in range(100, 20, -5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
while $status ==”wieder_an”
for dc in range(20, 100, 5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
mfg
Heiko
Wenn du den Parameter per Hand verarbeiten möchtest, dann musst du das sys-Modul importieren. Mit ``sys.argv`` kannst du dann auf die Liste mit Argumenten zugreifen. Das argparse Module wurde weiter oben ja schon erwähnt
Das Leben ist wie ein Tennisball.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ja, das geht in die richtige Richtung.
Aufruf:
Und dann die relevanten Zeilen (ohne Fehlerbehandlung und als `sys.argv` Variante) im Programm:
Aufruf:
Code: Alles auswählen
program.py command status
Code: Alles auswählen
import sys
_, command, state = sys.argv
if command == "licht":
if state == "an":
turn_light_on()
else state == "aus":
turn_light_off()
elif command == "kino":
....
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- User
- Beiträge: 13
- Registriert: Dienstag 10. Februar 2015, 23:42
Hatte jetzt an
gedacht
Jetzt wollte ich das ganze mal testen, doch woher weiß denn dann das PHP Skript ob das Licht an oder aus ist, wenn ich es nicht in eine Textdatei schreibe?
Weil ich die PHP Seite ja nicht nur auf meinem Handy, sondern auch auf meinem IPad, dem Pi selber und meinem PC läuft.
Vorher konnte ich ja mit
Abfragen ob an order aus.
Durch den Wegfall der Relais musste ich ja auf eine Textdatei zugreifen.
Weil ich nur einen Button für an und aus habe.
Der Kino Button erscheint erst wenn das Licht auch an ist.
Hat da noch einer eine Idee ?
Code: Alles auswählen
#!/usr/bin/env python
import sys
if sys.argv[1] == "an":
print "an"
if sys.argv[1] == "aus":
print "aus"
Jetzt wollte ich das ganze mal testen, doch woher weiß denn dann das PHP Skript ob das Licht an oder aus ist, wenn ich es nicht in eine Textdatei schreibe?
Weil ich die PHP Seite ja nicht nur auf meinem Handy, sondern auch auf meinem IPad, dem Pi selber und meinem PC läuft.
Vorher konnte ich ja mit
Code: Alles auswählen
$a = trim(@shell_exec("/usr/local/bin/gpio -g read 27"));
Durch den Wegfall der Relais musste ich ja auf eine Textdatei zugreifen.
Weil ich nur einen Button für an und aus habe.
Der Kino Button erscheint erst wenn das Licht auch an ist.
Hat da noch einer eine Idee ?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Du müsstest Dir dann tatsächlich den Zustand persistent merken. Dies kannst Du ja nach wie vor in einer Textdatei machen, die Du von PHP Seite ausliest. Diese kann nun entweder PHP schreiben - oder eben auch das Python-Script.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
-
- User
- Beiträge: 13
- Registriert: Dienstag 10. Februar 2015, 23:42
Ja,
dann bedanke ich mich recht Herzlich für die aufschlussreiche Hilfe.
Das Script läuft so weit, dass Thema könnte als Erledigt markiert werden, ich kann nur den ersten Beitrag nicht mehr editieren.
Mfg
Heiko
dann bedanke ich mich recht Herzlich für die aufschlussreiche Hilfe.
Das Script läuft so weit, dass Thema könnte als Erledigt markiert werden, ich kann nur den ersten Beitrag nicht mehr editieren.
Mfg
Heiko
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wir schließen hier keine Themen Es ist immer möglich, daß jemand anderes das Thema erneut aufgreift. Insofern musst Du nichts "tun"
Eine letzte Anmerkung noch: Du könntest jetzt daran gehen und PHP durch Python ersetzen
Eine letzte Anmerkung noch: Du könntest jetzt daran gehen und PHP durch Python ersetzen
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert