Beiträge von noisefloor

    Hallo,


    also ich sehe jetzt keine offensichtlichen Fehler (aber viele veraltete Sache...) ... Also würde ich mal vermuten, dass warum auch immer der GPIO aus "reset" gesetzt ist - sonst würde der Reboot ja nicht ausgeführt werden...


    Gruß, noisefloor

    Hallo,


    Zitat

    Ja, aber das Bild ist dann zu groß oder zu klein, wenn ich es auf einen der Bildschirme anpasse.

    Genau das war einen Ausgangsfrage... In deine Ausgangspost steht auch nichts davon, dass die verschiedene Fenstergrößen hast.


    Wenn du nicht alle relevanten Infos lieferst, dann ist das mit dem Helfen auch eher schwierig.


    Gruß, noisefloor

    Hallo,


    anpassen = an die Ausgangsgröße des Fenster anpassen oder anpassen = das Bild anpassen, wenn die Fenstergröße verändert wird?


    Der place-Packer hat den entscheidenden Nachteil, dass bei einer Größenänderung des Fensters nicht mehr an der richtigen Position ist, weil die absoluten Werte der Positionen nicht zur Fenstergröße passen. Von daher macht der Einsatz einer der beiden Packer mit relativer Positionierung in der Regel mehr Sinn.


    Abgesehen davon: Pack' deine direkt in eine Klasse. Das macht _immer_ Sinn außer bei Mega-trivialen GUIs. Ohne Klasse kommst du sonst sehr schnell an den Punkt, wo der Code unübersichtlich und nicht erweiterbar ist.


    Und natürlich keine *-Importe verwenden, sondern `import tkinter as tk` und dann alle Methoden etc. von Tkinter über den `tk` Namensraum referenzieren.


    Gruß, noisefloor

    Hallo,


    in Zeile 14 wirst du auch einen Fehler bekommen.


    Und statt das alte / veraltete RPI.GPIO zu nutzen, solltest du direkt das neuere / schönerer / bessere gpiozero Modul nutzen. Damit kann der Fehler, den du gemacht hast, auch gar nicht erst auftreten ;-)


    Dein Schleife ist endlos und läuft auch weiter, wenn das Rennen nach 10 Runden zu Ende ist. Allerdings wirft dann Zeile 10 einen Fehler. Tipp: pack' die Abbruchbedingung in while-Anweisung, nicht in eine if-Bedingung innerhalb der while-Schleife.


    Statt das `time` Modul zu nutzen, möchtest du vielleicht lieber das `datetime` Modul nutzen. Das hat auch die schönere API.

    Wenn du `time` bleibst, dann nimm' lieber `time.monotonic()`. `time.time()` kann theoretisch auch rückwärts laufen (unwahrscheinlich, aber nicht unmöglich).


    Gruß, noisefloor

    Hallo,


    schnitzlig : Nochmal - lies' das offizielle Python-Tutorial. Das ist a) kostenlos, b) 1. Wahl zum lernen, c) frei von Fehlern. Ja, es ist zwar auf englisch - aber ohne Englisch kommst du auch als Hobby-Programmierer so oder so oder so nicht aus.


    Die drei Kriterien erfüllt kaum ein Buch. Ansonsten ist der Tipp mit der öffentlichen Bibliothek auch gut. Python ist ja so "mainstream", dass man da normalerweise was bekommt.


    Gruß, noisefloor

    Hallo,


    Zitat

    Ich möchte gerne Python für den Raspberry Pi lernen.

    Es gibt kein "Python für den Raspberry Pi". Es gibt Python, dass auf ziemlichen vielen Plattformen läuft, inkl. dem Raspi. Aber grundsätzlich ist Python auf Windows das gleiche wie auf MacOS wie auf Linux wie auf...


    BTW: Python ist sehr strikt gesehen "nur" eine Definition der Sprache, von der es mehrere Implementierungen gibt. Der de-facto Standard, der im allgemeinen mit "Python" gleichgesetzt wird (auch hier im Forum) ist CPython. Das ist auch das, was auf unter Raspbian installiert ist.


    Was sich von System zu System unterscheiden kann, sind die Module, die du nutzen kannst. Im Fall des Raspi ist das z.B. das gpiozero Modul zum Ansteuern der GPIOs. Aber letztendlich sind Module ja nur eine Sammlung von Klassen, Funktionen und ggf. Konstanten.


    Zum Lernen: du solltest als erstes das offizielle Python Tutorial auf docs.python.org durcharbeiten. Das hat alles, was man für den Anfang braucht, zeigt idomatisches Python und ist fehlerfrei (was man von vielen anderen Tutorials leider nicht sagen kann...)


    Und natürlich Python 3 nutzen, da Python 2 Ende diesen Jahres EOL ist.


    Gruß, noisefloor

    Hallo,


    Zitat

    Nur das Zusammenspiel kriege ich noch nicht hin...

    Was hast du denn schon probiert? Ich hatte das so verstanden, dass du bist jetzt "nur" das Skript kopiert hast.

    Und nochmal: wenn du kein Python kannst, dann kannst du auch kein Python-Skript anpassen.

    Programmieren ist nun mal nicht Copy&Paste, da gehört mehr dazu. Und wenn du ein Python-Skript nutzen möchtest, solltest du nun mal ein Grundverständnis von Python haben bzw. willig sein, es dir anzueignen.


    Zitat

    Gebt mir lieber Info's wie ich zu meinem Ziel komme,

    Haben wir doch. Dazu gehört halt auch, dass von dir genannten Skript _nicht_ zu nehmen.


    Zitat

    wollte ich mal in einem professionellem Forum (dachte zumindest es sei professionell) nachfragen, wie das funktioniert....

    Was auch immer "professionell" nach deiner Ansicht ist... Nein, niemand macht das hier beruflich (also im Forum supporten), dass ist Freizeitbeschäftigen. Was aber mal grundsätzlich nicht mit der Qualität der Antworten zu tun hat.


    Gruß, noisefloor

    Hallo,


    1. ist das Skript von 2015, das ist nicht mehr der Stand, wie man das heute machen würde. hyle hat ja schon gpiozero als besseres / aktuelleres Modul in den Raum geworfen.


    2. Und so eine Zeile wie `os.system("echo \"Bewegung erkannt\"")` im Skript ist auch echt gruselig und zeigt, dass der Autor der jetzt nicht wirklich weiß, was er tut. Wie kommt man auf so eine Idee? Zumal im Skript auch noch (richtigerweise) `print` verwendet wird...


    Gruß, noisefloor

    Hallo,


    Zitat

    Wie kann ich nun den Bewegungsmelder programmieren damit auch Bilder und Videos aufgezeichnet werden?

    In dem du abfragst, ob eine Bewegung erkannt wurde und wenn ja die nötige Aktion an der Kamera auslöst. Dazu wäre es wahrscheinlich hilfreich, erst mal ein bisschen Python zu lernen. Geht z.B. ganz hervorragend mit dem offiziellen Python Tutorial auf docs.python.org


    Um mehr zu sagen, müsstest du mal ein bisschen konkreter werden, wie z.B. wie sieht dein Skript aus? Was hast du schon selber probiert? Was funktioniert nicht?


    Dein Skript läuft offensichtlich unter Python 2 -> nicht so der Hit, weil Python 2 Ende des Jahres EOL ist. Nimm' besser direkt Python 3.

    Und warum braucht das Skript Root-Rechte? Sollte eher nicht notwendig sein...


    Gruß, noisefloor

    Hallo,


    das hast grundsätzlich bei Python einen globalen Namensraum. Immer. Kannst du gar nicht vermeiden - willst du auch gar nicht ;-) Da liegen z.B. auch die Build-In Funktionen von Python.


    Was da drin ist, kann man sich mit der Build-In Funktion `globals()` anzeigen lassen. Und diesen Namensraum sinnvoll nutzen ist auch vollkommen ok.


    `global foo` in einer Funktionen "hebt" die Variable foo aus dem lokalen Namensraum der Funktion in den globalen - das ist das, was gemeinhin "pfui" ist, weil es in 99% der Fälle falsch = schlecht programmiert ist.


    Gruß, noisefloor

    Hallo,


    simon.giesen : Dann definiere mal "einfach" bzw. "noch einfacher".


    IMHO ist auch der NetworkManager einfach. Auf's Symbol klicken, WLAN auswählen, fertig. Einfacher geht's nicht, weil weniger Schritte geht eigentlich nicht. Das WLAN-Modul des Raspi sollte nach der Installation von Raspbian ja korrekt installiert sein, was Treiber etc. angeht.


    Nachtrag: und warum muss das überhaupt in Python geschrieben sein? Dazu gibt es es doch IMHO nullkommanull Grund. Das kann doch auch in jeder beliebigen anderen Programmiersprache erstellt sein.


    Gruß, noisefloor

    Hallo,


    wie bootsmann schon sagt: `DB` steht auf oberster Modulebene und das ist gut so. Bzw. das macht man so, auch z.B. bei SQLAlchemy. Bei Django liegt die Konfiguration der DB auch in einer globalen Konfigurationsdatei. "Global verfügbar" impliziert ja nicht, dass man das doofe `global` benutzt.


    Zitat

    Grundsätzlich um das oben genannte zu erfüllen muss DB in eine eigene Funktion.

    Nee - wieso? Ungetestet:


    config.py:

    Python
    1. DB_CONFIG = {
    2. engine: 'sqlite',
    3. database: 'tollesachen.db',
    4. user = 'spamegg',
    5. password = 'foobar'
    6. }


    datenbankmodell.py:

    Gruß, noisefloor

    Hallo,


    Zitat

    Ich selber poste regelmäßigin zwei verschiedenen Waffenforen

    Wenn man eine doppelläufige Schrottflinte sucht ist das auch legitim *SCNR*


    Zitat

    Wo liegt eigentlich das Problem dabei?

    Da ich gegen Doppelposts bin, muss du das im Python-Forum nachlesen...


    Gruß, noisefloor

    Bin ich voll bei dir!


    Einziger kleiner Hinweis von mir, das ist schon im Eingangspost indirekt ersichtlich, bei "Alles Auswählen" ist das andere Forum verlinkt

    Hm... habe ich nicht drauf geklickt. Wobei sich auch der Sinn stellt, warum das "Code:" steht und "Alles auswählen" ein Link auf's Python-Forum ist. Sieht mehr nach "Unfall" ist als nach Absicht...


    Gruß, noisefloor