Beiträge von framp


    Edit2: Die Erkenntnis kam heute Nacht :)

    Glückwunsch :thumbs1: Mir kam sie heute Morgen unter der Dusche :lol:. Da habe ich mich erinnert, dass echo immer noch ein \n am Ende ausgibt - und der echo Befehl natuerlich nix im String zu suchen hat. War gestern abend auch nicht mehr so fit ...

    Zeigt sich hier mal wieder, dass man beim Programmieren bei Fehlern einfach mal eine Nacht drüber schlafen sollte anstatt sich zu verbeissen.

    drux: Editiere doch bitte Deinen Beitrag mit dem Code und bringe ihn in code tags. Einrückungen hast Du ja wohl hoffentlich auch. Denn so ist der Code anstrengend zu lesen ;)

    Was mir auffällt:

    Code
    echo 1 >/sys/class/gpio/gpio27/value | 2>/dev/null


    Das sieht sehr merkwürdig aus. Meinst Du nicht

    Code
    echo 1 >/sys/class/gpio/gpio27/value 2>/dev/null

    ?

    Was tut nicht bzw welche Fehlermeldung bekommst Du?

    War mir nicht aufgefallen, dass da auch noch teure spawns ausgeführt werden. Das kannst Du auch billiger machen (ungetestet):

    Code
    cmd = "17=" + str(rAktuell) + "\n"
    with open('/dev/pi-blaster','w') as f:
    	f.write(cmd)

    Edit: Fehler im Code korrigiert

    Einfach am Anfang die aktuelle Zeit holen und dann vor dem Sleep die schon vergangene Zeit berechnen. Dann die Differenz zu Deiner gewuenschten Zeit als Parameter zum Sleep uebergeben. Ist zwar nicht ganz exakt - sollte aber wohl in Deinem Falle genau genug sein. Natuerlich darf die vorher benoetigte Zeit nicht groeser sein als die gewuenschte Zeit. Das musst Du noch entsprechend pruefen und abfangen.

    Da sieht man mal wieder dass es schon schwer ist eine genaue Spezifikation zu erstellen. Das habe ich einfach falsch verstanden. Anbei Code der dann wohl eher passen sollte ;)

    Mit dem folgenden Code kannst Du recht einfach diverse Magnete abfragen und die entsprechenden gpios steuern. Der eigentlichen Steuercode habe ich auskommentiert, da ich keine Magnete habe.

    Kernpunkt ist eine map, die die Ids der Magnete mit den gpios verknüpft. Du kannst das Script so mal bei Dir aufrufen um eine Idee zu bekommen was es tut.

    Welchen Weg Du beschreitest mit dem Aufruf ist wohl ziemlich egal. Vermutlich wird der sleep im Script die CPU weniger belasten, aber da würde ich mir keine grossen Gedanken drum machen.

    Edit: Die folgende Seite hat ein paar Codesnippets zu assoziative Arrays in bash.

    Wie ich Dich verstehe willst Du dann von der Pi die Daten vom Handy runterladen. Wie willst Du das machen? ich denke es ist einfacher eine Android App zu schreiben, die die Daten regelmäßig auf der Pi sichert. Vermutlich gibt es so eine App sogar schon.

    Das ist meine nächste Frage. Hat Dein Android eine IP Adresse bekommen? Wenn ja kannst Du die vom Pi aus pingen? Wenn keine IP, .... das ist der Grund warum es nicht geht.

    Übrigens: Ich hoffe Du bist Admin und darfst in der Firma einen AP ins Netz hängen. Ansonsten kann Deine Aktion unangenehme arbeitsrechtliche Konsequenzen haben :-/

    Sieht eigentlich soweit OK aus. Was liefert denn

    Code
    brctl show; ping www.google.de; ping 8.8.8.8, egrep "wlan|br0" /var/log/syslog | tail -n 30

    Musst u.U. ein paar Infos maskieren ;)

    PS: Ausgaben bitte in code tags einbetten. Das liest sich leichter.

    ... Ich hätte dann ein funktionierendes Backup auf der SD-Karte. ODER?

    Jein. Du könntest mit tar alles wieder zurückspielen auf die SD Karte. Allerdings nur, wenn sich mittlerweile nicht mehr Daten auf der Platte angesammelt haben, als auf die SD Karte passen. Auch hast Du dann keinen Backup der boot Partition der SD Karte. Die müsstest Du noch separate per dd sichern.

    Wenn Du ein Backup haben möchtest, würde ich eine richtige Backuplösung wählen (Gibt im Tutorialteil Beiträge zu Backups).