Posts by gwaag

    Ist ja kein Geheimniss, hier die 4 scripts.


    Im script test1.py mache ich den Schalter S1 ueber Piface und rufe das script ein auf. Vor 10.25h kann man Taster S1 irgendwann druecken, starten tut es aber erst um 1925.
    Im script test2.py mache ich den Schalter S2 ueber piface und rufe script eintest auf.




    gruss
    gwaag

    Hallo,
    habe folgendes Problem:


    Habe einen Schalter S1, wenn der gedrueckt ist, startet ein scipt und macht ein Licht an um genau 19.25h. (script fuers Licht heisst, bin/ein.
    Damit das scipt vom Schalter S1 (test1)funktioniert musste ich in etc/rc.local den Eintrag /bin/test1.py
    machen. So funktioniert alles einwandfrei.
    Ohne den Eintrag muss ich zuerst in der command line /python/bin/test2.py eintragen und Enter druecken. Dann wartet das script bis S1 gedrueckt wird und die Lampe geht an.


    Jetzt musste ich noch ein script machen mit einem Schalter S2, weil beim test1.py nach dem druecken von S1 gewartet wird, bis erst um 19.25h das Licht angeht. (d.h script wird nicht vor 19.25h ausgefuehrt.


    Um den Schalter S2 (test2) als Test zu gebrauchen habe ich ein, test2.py gemacht und das auch in die etc/rc.local eingetragen. Das script fuers Licht heisst bin/eintest.


    In rc.local, mit beiden funktioniert es nicht.


    /bin/test1.py
    /bin/test2.py
    exit 0

    Wenn eines von beiden mit #/bin/test1.py nicht aufgerufen wird, funktioniert /bin/test2.py,
    anderst herum mit /bin/test1.py und #/bin/test2.py funktioniert nur /bin/test1.py
    Alle files haben chmod 755 und alle scripts funktionieren von der command line mit
    python /bin/test1.py bzw. /bin/test2.py
    bzw.
    /bin/ein bzw. /bin/eintest


    Warum geht es nicht wenn beide Eintraege eingetragen sind nach dem neu booten???


    etwas kompliziert geschrieben, hoffe ihr versteht das Problem.........


    gruss
    gwaag

    Habe es jetzt so gemacht:



    Weiss der Geier warum "#Dimmen auf half brightness" mit dem echo commando geht, aber das "#Hell auf max." mit echo commando nicht geht. Mit dem /home.......milight 1 b 1 geht es einwand frei.


    Danke fuer die Hilfe an alle die etwas zur Loesung beigetragen haben.


    gruss


    gwaag

    Danke fuer die Info, leider geht es immer noch nicht

    Code
    for i in 1 2 3 4 5 6 7 8 9 10 ; do echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1
    done


    Wenn ich es so mache funktioniert es;

    Code
    echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1
    echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1
    echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1


    So geht es mit jedem echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1
    eine Stufe runter. (brightness for light)


    Wie kann man das denn noch anderst machen`??


    So gehts immer noch nicht:





    gruss
    gwaag

    Leider geht es nicht, was habe ich falsch gemacht`?



    gruss
    gwaag

    Hallo,


    komme mit folgendem Befehl nicht weiter:


    #!/bin/sh


    Code
    for i in 10
    do
    echo -n -e  \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899
    sleep 0.1
    done


    Was es machen sollte: es soll 10 mal den Befehl echo -n -e \0x3C\0x00\0x55 | nc -u -q 1 192.168.0.6 8899 hintereinander ausfuehren.
    Zwischen jedem Befehl soll noch sleep 0.1 rein.


    Anstatt den Befehl 10 x zu schreiben und 10x sleep 0.1 dazwischen, muss das doch eleganter gehen.



    gruss
    gwaag


    Da muss ich Dir recht geben, wenn ich etwas mehr Zeit habe werde ich versuchen es selber hinzu biegen.
    gruss
    gwaag
    [hr]
    Du hattes recht, es war gar nicht so schwer.........


    Fuer den Anfang reicht das, ist mir klar dass das nicht die Loesung eines guten programmierers ist, ich bin Mechaniker.


    gruss
    gwaag

    Hallo,
    habe eben die 3 Themen als erledigt angehakt.


    Ja,laeuft jetzt alles wunderbar, das war mein aller erstes python projekt, vor einer Woche wusste ich noch nicht einmal was python ist.


    Man muesste eigentlich meinen das man in diesen foren mehr fast fertige sachen findet, na ja ich such weiter nach einem lauflicht das mit pifacedigitalio funktioniert und sonst wage ich mich selber daran.
    gruss


    gwaag

    Hallo,
    suche einen code um auf einem Piface die 8 led`s als lauflicht zu programmieren.


    Die commands muessen mit pifacedigitalio gemacht sein.
    Wenn jemand einen link hat bitte schicken.


    Danke im Voraus, habe mit google nichts gefunden.............


    gruss
    gwaag

    Rueckmeldung:

    Hallo,
    Danke an alle die mir geholfen haben.
    Dieser code funktioniert nun einwandfrei:


    Funktion:
    Wenn einer der 4 taster gedrueckt wird, blinken im 100ms Tackt alle 8 led`s 10 mal.
    Led 1 und 0 schalten auch noch die 2 relays) Man hoert jetzt auch akustisch dass einer der Taster gedrueckt wurde mit dem klicken der relays.
    Danach wechselt es zun /bin/ein und das bash script fuer die lampensteuerung startet.
    Man kann nun noch einiges anpassen, dass z.B. nur Taster 1 das programm startet und nur led 7 blinkt, oder wie man es halt will.



    Dieses script heisst: test1.py


    Das script fuer die lampensteuerung heisst ein und ist in /bin/ein



    Achtung, ich musste in etc /rc.local eintragen, dass /bin/test1.py beim booten gestartet wird, sonst geht es nicht. Weiss nicht warum



    Problem ist jetzt noch das "top" fuer test1.py 80% auslastung zeigt.
    Wie kann man das alles noch optimieren????


    gruss
    gwaag

    Hallo,
    super, so funktionierts.


    Code
    if (pfd.input_pins[3].value > 0 or pfd.input_pins[0].value > 0):


    Ich kann jetzt Schalter entweder(pfd.input_pins[0] oder pfd.input_pins[1] oder pfd.input_pins[2] oder pfd.input_pins[3] druecken und Licht geht an.


    Code
    while(True):
        if (pfd.input_pins[0].value > 0 or pfd.input_pins[1].value > 0 or pfd.input_pins[2].value > 0 or pfd.input_pins[3].value 0):
              for x in range(20):




    Danke fuer die schnelle Hilfe


    gruss
    gwaag

    Hallo,
    ich moechte gerne folgenden code zum laufen bringen, klappt aber nicht;


    Code
    while(True):
        if pfd.input_pins[3] or pfd.input_pins[0].value > 0:
            for x in range(20):


    Funktion:


    wenn pfd.input_pin 3 oder pfd.input 0 groesser 0 ist, dann for x.......


    Habe stunden lang gegoogelt und verschiedens probiert, klappt aber nicht.




    Gruss
    gwaag

    Hallo,


    Ist das so richtig eingefuegt???
    Funktioniert leider nicht und ich habe keinen Plan es anzupassen damit es funktioniert.


    Das mit dem import os geht auch nicht.


    Gruss
    gwaag

    Hallo,
    habe ein Python script
    Script heisst: test1.py


    #!usr/bin/python


    import pifacedigitalio
    from time import sleep
    pfd = pifacedigitalio.PiFaceDigital() # creates a PiFace Digtal object
    while(True):
    if pfd.input_pins[3].value > 0:
    for x in range(20):
    pfd.leds[7].toggle()
    pfd.leds[6].toggle()
    pfd.leds[5].toggle()
    pfd.leds[4].toggle()
    pfd.leds[3].toggle()
    pfmdd.leds[2].toggle()
    pfd.leds[1].toggle()
    pfd.leds[0].toggle()
    sleep(0.1)
    Dieses script funktioniert einwandfrei.

    Zudem haben ich ein #!/bin/sh script das mit cd /bin /bin/ein startet und ausgefuehrt wird.
    (ich starte es in der comandozeile mit /bin/ein)
    Wie lauten jetzt die code zeilen im ersten python script um vom python script aus (wenn pfd.input_pins[3].value > 0: ) wahr ist, das bin/ein zu starten??????


    #!/bin/sh
    #Einschalten 1, ein aus.
    cd /home/pi/Thomas/milight_sources/
    /home/pi/Thomas/milight_sources/milight 1 on
    sleep 0.8


    google hat mir in den letzten Tagen leider nicht hlefen koennen.


    Gruss
    gwaag

    Hallo,
    habe jetz in rc.local
    /bin/test1.py eingetragen. Jetzt kann ich ohne PC, einfach zu jeder Zeit den S4 Taster druecken und es funktioniert.


    Ist das die korrekte Loesung??????


    Habe gerade gesehen das mit Top die Auslastung von test1.py 80% ist, kann nach nicht sein fuers nicht tun................


    Gruss
    gwaag

    Hallo,
    habe obiges script noch ein wenig angepasst, das läuft jetzt so:


    Programm heisst test1.py

    #!usr/bin/python


    import pifacedigitalio
    from time import sleep
    pfd = pifacedigitalio.PiFaceDigital() # creates a PiFace Digtal object
    while(True):
    if pfd.input_pins[3].value > 0:
    for x in range(20):
    pfd.leds[7].toggle()
    pfd.leds[6].toggle()
    pfd.leds[5].toggle()
    pfd.leds[4].toggle()
    pfd.leds[3].toggle()
    pfd.leds[2].toggle()
    pfd.leds[1].toggle()
    pfd.leds[0].toggle()
    sleep(0.1)
    Funktion: wenn Taster S4 gedrueckt wird, wird input_pin 3 auf 1 gesetzt.
    Dann blinken alle 8 LED 20x ( 10x ein 10x aus) und das im 100ms tackt.
    Mit LED 1 und 0 gehen zusaetzlich noch die 2 relais an und aus.


    Problem ist aber immer noch dass ich zuerst "python taster1.py" in die comando zeile schreiben muss und enter drücken muss. Curser geht dann ein Zeile nach unten und bleibt da.
    Erst jetzt, wenn ich Taster S4 druecke gehen die 8 led an und blicken so wie gewollt.


    Was ist im code falsch?? Ich moecht nicht jedes mal in der comando zeile etwas machen
    sondern ohne PC, einfach Taste S4 druecken und dann blinken die 8 led` s.
    Solange der curser in der unteren Zeile verharrt, kann ich belibige male S4 druecken und die LEDs blinken immer wie gewollt 20x.
    Abstellen muss ich dann mit control C.


    Gruss
    gwaag

    Fortschritte gemacht........ jetzt halt mit python...........


    #!usr/bin/python


    from time import sleep
    import pifacedigitalio as p
    p.init()
    if p.digital_read(3):
    while(True):
    p.digital_write(7,1) #turn on
    sleep(1)
    p.digital_write(7,0) #turn off
    sleep(1)


    Mit diesem command:
    pi@raspberrypi /bin $ python test.py
    macht obiges folgendes: waehrend ich den Taster S4 druecke und in der command line enter druecke, faengt led 8 an zu blinken. Mit control C stoppt es zu blinken.



    Wer kann mir jetzt erklaeren wie ich nur mit dem Taster druecken, die LED 8 zum blinken bringe??? bzw. das programm starte??


    Gruss
    gwaag

    Hallo,
    kann obige Frage keiner von den vielen experten die ein piface haben beantworten?
    Ich keine python nicht, bin ein wenig besser unterwegs mit bash sript.


    Bin fuer jede Hilfe dankbar.
    gruss
    gwaag

    Hallo,
    danke fuer dieTipps. Bin ein wenig weiter, konnte mit python Schalter S1 testen (funktioniert)
    und einige examples laufen lassen.
    Ich moechte aber dieses laufen lassen, wenn ich Taster S1 druecke:
    #!/bin/sh


    wert=$(cat /sys/class/gpio/gpio1/value);
    while true; do


    if [ $wert = 1 ]; then
    ps -C ein &>/dev/null || ./ein
    fi
    sleep 1


    done


    Wie muss ich nun im obigen code den Taster S1 einbinden das ./ein startet???
    Zusaetzlich moechte ich auch noch dass wenn ich Taser S1 druecke die LED 1 angeht und wenn ich los lasse die LED wieder aus geht.



    Gruss
    gwaag