Posts by whitechristmas

    Hallo noisefloor,


    das Niveau Deiner Skripte unterscheidet sich aber signifikant von meinem Niveau. Ich beschäftige mich jetzt ungefähr seit 1 Jahr mit dem Raspberry und hatte vorher noch keine einzige Zeile Python programmiert. Darf ich fragen, wie man als Hobbyprogrammierer ein derartiges Niveau erreichen kann?


    Du und die anderen haben natürlich recht mit den Tipps. Ich muss aber zu meiner Verteidigung sagen, dass ich nicht alle Tipps direkt eins zu eins umsetzen kann, weil mir schlichtweg die Kenntnisse manchmal fehlen. Ich arbeite aber daran und werde auch Deine Tipps beherzigen und in die Steuerung der Pumpe aufnehmen. Ist halt ein wenig Arbeit, aber nur so kann man "sauberen" Code schreiben.


    Herzlichen Dank an Dich und die anderen die mir geholfen haben.


    Viele Grüße


    whitechristmas

    Hallo noisefloor,


    vielen Dank für Deine Rückmeldung, die mich als Hobbyprogrammierer weitergebracht hat. Ich kann sehr viel aus Deinem Skript lernen und werde es auch leicht angepasst für meine Heizungssteuerung, um genau zu sein für meine Pumpe, übernehmen. Aber dass ich aus den obigen Dingen vieles ignoriert habe, dem widerspreche ich. In Deinem Skript erkennt man natürlich eine Qualität auf einer höheren und professionellen Stufe.


    Herzlichen Dank und einen sonnigen Abend.


    whitechristmas

    Hallo,


    was haltet Ihr von diesem Vorschlag?



    Das müsste so klappen.


    VG whitechristmas

    Hallo,


    das hier müsste funktionieren, allerdings weiß ich nicht woran ich erkenne, ob ich einen Tag dazurechnen muss?


    aktuell=time.strftime("%H:%M:%S")
    jetzt=datetime.datetime.strptime("23:30:00", format) #Uhrzeit wird später durch aktuell ersetzt
    startzeit=datetime.datetime.strptime("23:00:00", format)
    endzeit=datetime.datetime.strptime("01:00:00", format)+ datetime.timedelta(days=1)


    Vergleich:
    jetzt>startzeit und jetzt<endzeit
    Wenn diese Bedingung erfüllt, dann innerhalb des Zeitfensters, ansonsten nicht.


    Vielen Dank.


    whitechristmas

    @ noisefloor: Klar könnte ich 3 Werte übergeben. Hab ich in diesem Fall nicht gemacht, weil die Eingabe vom Benutzer aus einer tkinter-entry kommt. Ich hätte es an dieser Stelle vor der Übergabe zerlegen sollten.


    Viele Grüße


    whitechristmas

    Hallo meigrafd,


    woran mache ist fest, ob ich eine Stunde dazurechnen muss oder nicht? Es geht nicht nur darum, ob die Startzeit vor oder nach der Endzeit liegt, sondern ob die aktuelle Uhrzeit (Uhrzeit der Überprüfung) innerhalb des Zeitfensters liegt. Oder hab ich was übersehen? Den Wochentag könnte ich ja wie in meinem Skript überprüfen.


    Wie sieht der Ansatz von Andreas mit timestamp aus? Kann man die Start-/Endzeit und die aktuelle Uhrzeit in Sekunden umrechnen und überprüfen, ob das Zeitfenster erfüllt ist?


    Vielen Dank.


    whitechristmas

    Hallo zusammen,


    das unten aufgeführte Skript soll herausfinden, ob die aktuelle Uhrzeit/Wochentag sich innerhalb des Zeitfensters befindet oder nicht. Funktioniert im Prinzip so lange, bis das Zeitfenster über 24:00:00 Uhr hinaus geht. Dann funktioniert es nicht mehr. Hat jemand einen Lösung oder einen Ansatz für mich, wie ich das Problem beseitigen kann?




    Hier ein Beispiel wann es nicht funktioniert:
    Funktionsaufruf zeitfenster("23:00:00,01:00:00,Mo,Di,Mi,Do,Fr,Sa,So"),
    aktuelle Uhrzeit ist 23:30:00 Uhr, also im Zeitfenster enthalten, es wird aber False zurückgemeldet


    Vielen Dank und sonnige Grüße.


    whitechristmas

    Das ist wirklich eine sehr gute Anleitung für Motion. Maskieren funktioniert doch.
    Ich stelle mir die Frage, was passiert mit dem maskierten Bereich, wenn die Kamera verrutscht? Kann man dann die Kamera mit einer Hilfe wieder ausrichten oder muss dann auf die neue Einstellung ein neues Bild mit Maske angelegt werden?


    Danke für den Hinweis.

    Hallo Burnz84,


    dass könnte ich machen. Es wird Dir aber nicht viel bringen, weil ich keine Dokumentation habe und Du Dich nicht mit Python auskennst. Ein paar Anpassungen ans System müssen gemacht werden (Pfad, Überwachungseinstellungen), damit es vernünftig läuft und Fehlalarme vermieden werden.


    VG whitechristmas

    Hallo Burnz84,


    soweit mir bekannt ist, kann man keine Masken in Motion verwenden. Dies ist aber aus rechtlicher Sicht ein wichtiger Bestandteil. Den öffentlichen Raum oder den des Nachbarn darf man nach deutschem Gesetz nicht ohne Weiteres per Videokamera überwachen. Ich verwende anstelle einer USB-CAM die PiCamera. Relativ einfach kann man sich ein Programm erstellen, dass zwei Bilder auf Veränderungen miteinander vergleicht und eine Aufnahme als Datei abspeichert, falls ein Schwellwert überschritten wird. Mit einem Pythonscript ist eine Maske schnell in das Bild einprogrammiert (PIL) und damit rechtlich sauber. Dennoch muss man auf dem Privatgrund ein Schild mit Videoüberwachung hinstellen, wenn es sich um den offiziellen Zugang zum Briefkasten oder der Haustür handelt.


    Das Problem mit der Unschärfe habe ich bei meiner NOIR-Kamera nicht.


    VG whitechristmas

    Guten Morgen meigrafd,


    hab jetzt Dein Script am laufen. Funktioniert super. Habe auch einen Verwendungszweck dafür. Ist aber leider nicht das was ich haben wollte.
    Anstelle eines einzelnen Bildes aus einer Datei in einem Canvas darzustellen, wollte ich das aufgenommenen Bild direkt aus dem Speicher in Canvas darstellen und nicht den Umweg über eine Datei im GIF-Format. Ich wollte das über die Bibliothek BytesIO machen.


    Vielen Dank.


    whitechristmas

    Hallo meigrafd,


    ich habe Dein Script getestet. Bei mir erscheint immer einer Fehlermeldung:


    [font="Courier New"]Traceback (most recent call last):
    File "/home/pi/python/stream_meigrafd.py", line 12, in <module>
    from PIL import Image, ImageTk
    ImportError: cannot import name ImageTk
    [/font]
    Würde Dein Script auch unter Pyhton3 laufen?


    Da die Kamera alle paar Sekunden ein Bild machen soll, wollte ich mit dem stream vermeiden, dass die SD-Karte stark belastet wird und möglicherweise nach ein paar Monaten den Geist aufgibt. Ansonsten funktioniert mein Script wunderbar.


    Vielen dank.


    whitechristmas

    Guten Morgen meigrafd,


    ich möchte ein Bild von der Kamera nicht zuerst in eine Datei (z.B. gif) abspeichern und dann in Canvas laden, sondern den stream im Canvas darstellen. Mit einem Bild in Dateiform funktioniert es super, nur halt nicht mit dem stream. Die Zeit spielt hier keine Rolle.


    Vielen Dank.


    whitechristmas

    Guten Abend,


    ich nehme eine Bild mit der Pi Kamera auf und möchte es als stream (wenn Bild in Datei geschrieben wird, funktioniert es) in einem Canvas (TKinter) darstellen:




    Es erscheint immer eine Fehlermeldung wie folgt:


    [font="Courier New"]Exception in Tkinter callback
    Traceback (most recent call last):
    File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__
    return self.func(*args)
    File "/home/pi/python/kamera/konfiguration_11_01.pyw", line 142, in takepicture
    picshow()
    File "/home/pi/python/kamera/konfiguration_11_01.pyw", line 150, in picshow
    pic=PhotoImage(file=stream, format="gif")
    File "/usr/lib/python3.4/tkinter/__init__.py", line 3419, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
    File "/usr/lib/python3.4/tkinter/__init__.py", line 3375, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
    _tkinter.TclError: couldn't open "<_io.BytesIO object at 0x7466f538>": no such file or directory[/font]


    Kann mir jemand weiterhelfen?


    Vielen Dank.


    whitechristmas

    Hallo meigrafd,


    mit dem Terminalfenster ist kein Missverständnis. Zum einen sehe ich, dass das Skript läuft und zum anderen werden dann fortlaufend Informationen angezeigt. Ich habe es mit einem Testscript versucht, geht auch nicht:


    Code
    import time
    
    
    while True:
         print("test")
         time.sleep(1)


    Viele Grüße


    whitechristmas