Wie sage ich es in Python ? (Einsteigerfragen)


  • Jetzt wollte ich einfach nur abfrage ob eine Zahl in der solo2.txt steht oder nicht.


    Was liefert denn

    Code
    cat /proc/stb/sensors/temp0/value


    zurueck wenn kein Ergebnis vorliegt? Die Frage ist wie 'es liegt kein Wert vor' erkannt werden kann.

    Zitat


    Wenn der Receiver nicht an ist, dann sollte eigentlich keine Zahl reingeschrieben werden.


    'Sollte' ist hier schlecht. Dass musst Du genau wissen, denn davon hängt ab wie das geprüft werden muss.

    Zitat


    Muss ich wirklich dir temp-daten.txt abfragen? Kann ich das nicht schon vorher bei der solo2.txt machen?


    Sorry, die Frage verstehe ich nicht.

    Deine Abfrage nach file > 0 ist so auch nicht OK. Ich habe mal ein paar kleine Tests in der Pythonconsole vorgenommen, die das Problem zeigen:

    Code
    >>> file="4711"
    >>> print file >0
    True
    >>> file=""
    >>> print file>0
    True
    >>> file="0"
    >>> print file>0
    True


    Die Ergebnisse in der Datei sind Zeichen, keine Zahlen. Anbei ein paar Tests, die veranschaulichen wie es funktionieren koennte sofern feststeht was im Falle eines keinen Ergebnisses eine 0 zurueckgeliefert wird.

  • Hallo,
    bin in Python ein absoluter Neuling und in google finde ich kein konkretes Bsp. mit den GPIOs

    Ich möchte den GPIO 4 auf 1 setzen wenn GPIO 17 eine 1 bekommt. Dabei soll der GPIO 4 eine Sek ein Signal ausgeben und dan wieder 0 werden.

    Kann mir jemand da weiter Helfen?


  • ...bin in Python ein absoluter Neuling


    Das ist jeder einmal gewesen ;)

    Zitat


    Ich möchte den GPIO 4 auf 1 setzen wenn GPIO 17 eine 1 bekommt. Dabei soll der GPIO 4 eine Sek ein Signal ausgeben und dan wieder 0 werden.


    Was für einen Code hast Du denn bislang erstellt?
    Was meinst Du genau mit 'dabei soll GPIO 4 eine Sek ein Signal ausgeben' ?

  • In diesem Forum gibt es eine Menge Code wo mit dem GPIO gespielt wird den Du als Basis bei Dir nehmen nehmen kannst. U.A. habe ich eben mal
    diesen Thread gefunden. Da werden andere Pins benutzt aber es beinhaltet auch einen Input Pin und einen Output Pin wie Du es brauchst. Du kannst also den Code kopieren und musst ihn ein wenig anpassen. Z.B. die Pin Nummern und und den sleep anpassen sowie das ein paarmal zwischen high und low Wechseln von Pin 7 entfernen.

  • Versuche es dann mal hier:

    Wollte mal wissen, wie man IR-Empfänger-Befehle in Python auswertet.

    Habe hier schon gesucht wie blöde, auch mal Google gefragt, aber was man mit den Befehlen macht,
    die in meinem Fall auf GPIO 18 (PIN 12) zur Verfügung stehen, kann ich nichts finden.

    mit:

    Code
    mode2 -d /dev/lirc0


    sichtbar gemacht.

    Genutzte lircd.conf:


    Brauche z.Z. nur "Power" und "A/B" Taste.

    "Power" für "Poweroff" is klar ne und

    "A/B" für die Umschaltung GPIO 25 (PIN 22) High/Low im Wechsel, also wenn High wechsel zu Low und wenn Low wechsel zu High.

    Würde mich Freuen, wenn man mir helfen kann.


  • Was liefert denn

    Code
    cat /proc/stb/sensors/temp0/value


    zurueck wenn kein Ergebnis vorliegt? Die Frage ist wie 'es liegt kein Wert vor' erkannt werden kann.


    'Sollte' ist hier schlecht. Dass musst Du genau wissen, denn davon hängt ab wie das geprüft werden muss.

    Framp du hast recht.. "Sollte" war hier echt der falsche Ansatz.
    Der Pfad liefert "No Route to host."


    Zitat


    [font="Tahoma, Verdana, Arial, sans-serif"]Muss ich wirklich dir temp-daten.txt abfragen? Kann ich das nicht schon vorher bei der solo2.txt machen?[/font]


    [font="Tahoma, Verdana, Arial, sans-serif"]Sorry, die Frage verstehe ich nicht.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Das war auf die Ausgabe von dem oberen Pfad bezogen, ob ich nicht die abfrage schon früher machen muss. Aber jetzt muss ich das ganze anders angehen, weil kein wert zurück kommt.[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Kann ich mit Python auch auf "no Route to host" reagieren ? Wenn die Rückmeldung kommt, dass er 0 in die Datei schreibt?
    oder sollte ich das vielleicht komplett anders angehen?[/font]

    Edit:
    Ich habe mal bisschen im Internet gesucht. Evtl. lässt sich das per Bash und nmap lösen?
    Python hat ja von Haus aus keine SSH Möglichkeit.


  • Framp du hast recht.. "Sollte" war hier echt der falsche Ansatz.
    Der Pfad liefert "No Route to host."

    Dann ist es jetzt kein Problem mehr danach abzufragen.

    Zitat


    [font="Tahoma, Verdana, Arial, sans-serif"]Sorry, die Frage verstehe ich nicht.[/font]

    Meine Frage ist ob Du in einem separaten Script

    Code
    ssh solo2@192.168.7.40 cat /proc/stb/sensors/temp0/value > solo2.txt

    ausfuehren musst. Das koenntest Du auch im aktuellen Script aufrufen und den Wert auslesen. Damit sparts Du Dir die Datei solo2.txt

    Zitat


    [font="Tahoma, Verdana, Arial, sans-serif"]Kann ich mit Python auch auf "no Route to host" reagieren ? Wenn die Rückmeldung kommt, dass er 0 in die Datei schreibt?
    oder sollte ich das vielleicht komplett anders angehen?[/font]

    Anbei habe ich Dir mal ein kleines Codebeispiel erstellt wo Du sehen kannst wie man das machen koennte. Dort findest Du auch Links auf entsprechende Doku zu der Syntax. Hast Du Dir schon mal dieses Tutorial durchgelesen? Kann ich nur zum Einsteigen empfehlen.


    Link vergessen?


    Nein. Dieser Thread steht im Programmierungsforum und dort sollte Dein neuer Thread ja auch rein. Eben nur mit einem aussagekraeftigen Titel der dann nicht in diesem Einsteigerfragen Thread untergeht.

  • Danke framp für deine Hilfe.
    Allerdings würde ich das ganze gerne nochmal vielleicht etwas ausführlicher Beschreiben.

    ich rufe eine Bash-Datei auf, in der ich die Abfrage starte.

    Code
    process = subprocess.Popen("/home/pi/programme/solo2.sh")

    Dann liefert mir aber weder Python noch Bash den Fehler zurück wenn der Receiver nicht AN ist, sonder die Konsole direkt. Die Fehlermeldung wird mir nur angezeigt, und nicht in eine Datei geschrieben.
    Kann ich die Konsolen-Fehlermeldung auch mit Python abfragen?

    Danke framp für deine Hilfe.
    Allerdings würde ich das ganze gerne nochmal vielleicht etwas ausführlicher Beschreiben.

    ich rufe eine Bash-Datei auf, in der ich die Abfrage starte.

    Code
    process = subprocess.Popen("/home/pi/programme/solo2.sh")
    
    
    [code]#!/bin/sh
    
    
    ssh solo2@192.168.7.40 cat /proc/stb/sensors/temp0/value > solo2.txt

    [/code]

    Dann liefert mir aber weder Python noch Bash den Fehler zurück wenn der Receiver nicht AN ist, sonder die Konsole direkt. Die Fehlermeldung wird mir nur angezeigt, und nicht in eine Datei geschrieben.
    Kann ich die Konsolen-Fehlermeldung auch mit Python abfragen?

  • Probiere doch mal den folgenden Code aus:

    Das liefert bei mir:

  • Hallo Servus, vielleicht kann mir ja we helfen.
    Ich bin grad am tüfteln für mein erstes Project und dazu müsste ich mit einem Taster 3 Led´s (RGB Streifen) ansteuern. Das Problem is jetzt aber das ich nicht alle 3 auf einmal ansteuern möchte sondern das ich wenn ich den Taster drücke das erste led für 0,5s leuchten soll. dann soll das led wieder ausgehen. wenn ich dann wieder drücke soll das 2 led auch wieder für die selbe zeit angehen und dann wieder ausgehen. Das ist beim 3 led das selbe und dann solls wieder von vorne anfangen. Hätte da jemand eine Idee wie ich das machen soll? :D

  • Hallo, wie weit bist du denn bereits? Hast du schon angefangen dir Gedanken um den Code zu machen? Beginne doch erst einmal damit eine normale LED zum leuchten zu bringen und erweitere das dann. Wege gibt es viele.

    Ein Paar Schlagwörter könnten dann folgende sein:

    -Variablen
    -switch-case
    -if-Anweisung
    -Schleifen
    -Zähler
    -RPi.GPIO

    Ich würde die RPi.GPIO library benutzen und dann mit dem Taster einen Zähler hoch zählen und in Abhängigkeit des Zählerstandes den jeweiligen GPIO-Port schalten.

    Beachte aber die elektrotechnischen Hintergründe bei der Verwendung der RGB - Streifen. Wie viel Strom wird gezogen, Vorwiderstand, ...

    ____________________________________________________________________
    EDIT:
    Ich hab da glaube was falsch verstanden. Welche RGB-Streifen willst du verwenden?

    Einmal editiert, zuletzt von PinQin (22. Februar 2014 um 16:39)

  • Ok danke! Nen zähler zu verwenden klingt echt sehr passend :)
    Ja elektrisch bin ich e gut drauf als von der schaltung her e alles kein problem, bin halt einsteiger mit dem programmieren.
    Ich werds morgen mal versuchen. Danke mal!

  • Hätte da jemand zufälligerweise ein gutes Beispiel wie son ein Programm mit einem Zähler den ich per Tastenimpulsen raufzählen lassen kann aussehen könnte. Das ich mich da mal ein bisschen einlesen kann. :)

  • Hallo zusammen,

    ich besitze seit Anfang der Woche nun auch einen Pi. Zunächst soll dieser nur als Webradio bzw. Mediaplayer genutzt werden.

    Ich deshalb ein Python Script mir zusammen gebastelt, welche den MPD startet und eine Playlists automatisch wiedergibt.

    Nun möchte ich gern, dass eine GPIO schalten lassen, solange der MPC Musik spielt. Damit will ich dann später mal Boxen automatisch abschalten, wenn keine Musik spielt (bei Pause, Stop, bzw. Pi aus)

    Kann mir jemand kurz die Codebausteine nennen?
    Sollte ich dies als einzelnes Script laufen lassen oder kann ich dies im Start Script lassen?

    Danke im Voraus

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!