Python Script durch Tastendruck ausführen (Telegram Bot)

  • Guten Abend,
    zunächst möchte ich mich ggf. entschuldigen, sollte ich im falschen Bereich gelandet sein. Da ich jedoch von einer .py Datei spreche, sollte dies nicht der Fall sein :-)


    In meinem kleinen neuen Projekt, versuche ich per Telegram Bot ein Bild welches von der Raspberry Kamera gemacht wird an mich zu senden, sobald ein Taster gedrückt wird.


    Der Bot sowie das erstellen des Bildes und anschließendem senden funktioniert soweit schonmal sehr gut. Leider komme ich nicht weiter mit dem Taster. Installiert ist WiringPi.


    Hier schonmal mein bisheriges Script welches soweit funktioniert (Verbesserungsvorschläge sind erwünscht):


    DateiA.py


    Ich habe schon versucht das Script zu starten, und die Befehle dann ohne if Schleife zu starten. Leider ohne Erfolg.


    DateiB.py


    Ich danke im Voraus jeden der mir helfen kann :-)

    Edited once, last by Ph3nomic ().

  • Was heißt ohne Erfolg? Wirft das Skript n Fehler oder nicht? Ich kenne telepot nicht, aber hast du schon mal probiert, das mit lua und https://github.com/vysheng/tg/ zu machen? Klar, ist ne andere Sprache, aber für die paar Funktionen, die man braucht wirklich einfach und vor allem viel schneller als Python. So mach ich das. Wenn du Interesse daran hast, kann ich dir gerne dabei helfen

  • Zunächst mal solltest du darauf achten einheitliche Einrückungen zu verwenden. Du hast mal 3, mal 4 und mal nur 1 Leerzeichen als Einrückung. Das kann in Python Probleme verursachen da Python da sehr penibel ist. Nutze stattdessen einheitlich 4 Leerzeichen pro Einrückung. Das würde zudem die Lesbarkeit steigern.


    Dann solltest du möglichst viel direkt/nativ/pure in Python machen und so gut es geht auf externe (Konsolen) Befehle verzichten...
    Sprich, sowas wie "cp" in Python zu nutzen ist eine Todsünde :fies:
    Siehe dazu http://stackoverflow.com/quest…o-i-copy-a-file-in-python


    Das gleiche würde ich mit raspistill machen und durch das Python Module picamera ersetzen, das ist zudem mächtiger.


    Mit deiner Aussage "Leider ohne Erfolg." kann ich leider auch nicht viel anfangen - muss ich das jetzt das Script testen um herauszufinden an welcher Stelle es hapert?


    DabeiB.py macht so eigentlich auch kein Sinn. Man führt nicht ein Python Script durch ein anderes aus - auch das ist eine Todsünde :fies: Vor allem aber weil die Struktur von DateiA.py nicht erlaubt das es beendet wird und somit die while in DateiB.py kein Sinn macht - DateiB.py wird dann so lange blockiert bis DateiA.py beendet wurde was aber nie passieren wird.


    Stattdessen importiert man das andere Script und führt dann an gewünschter Stelle die Funktionen des anderen Scripts aus. Aber für Dich wäre es sinnvoller einfach beide Scripts zu einem zusammen zu fügen aber dann natürlich entsprechend anzupassen - anstatt GPIO.wait_for_edge lieber ein add_event und eine Interrupt Callback...