Python script GPIO event pushbullet notification Picam

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    wie ersichtlich bin ich im Bezug auf Python blutiger Anfänger und erbitte eure Hilfe.

    Mein Vorhaben ist, mittels PIR oder Magnetkontakt einen Event auszulösen und darauf hin eine Benachrichtigung mittels pushbullet zu erhalten. Gleichzeitig soll noch mit der Pi Cam eine Videosequenz aufgezeichnet werden. Diese per pushbullet, oder ein Standbild zu erhalten wäre schön.

    Nachdem ich mich durch, ich weiß nicht wie viele Artikel gelesen habe und verschiedene Ansatzpunkte versucht habe, habe ich es halbwegs hinbekommen.

    Besonderen Dank an meigrafd, von wo ich die Auslösung des events mittels Interrupt übernommen habe. Ich finde, das ist die eleganteste Lösung.

    Der Weg, wie ich das ganze zusammengefügt habe ist aber mit Sicherheit laienhaft und bedürfte eine Überarbeitung.

    Als erstes rufe ich pir1.py auf. Von dort wird ein subprocess (pushbullet.sh) aufgerufen um nach einem Event eine push Nachricht zu versenden. Danach wird ein weiterer subrocess (cam.py) aufgerufen um die Aufnahme zu starten und zu speichern.

    Das erste Problem ist, das nach starten von pir1.py das ganze nur einmal funktioniert. Also keine Wiederholung, ohne pir1.py neu zu starten.

    Mit dem booten sollte es im Hintergrund laufen (als Dienst / deamon) und bei jedem neuen Event von vorne beginnen.
    Die Aufnahmen werden auf einem 32 GB USB Stick gespeichert und sollten pro Event als eigenständige Datei gespeichert werden. Der Speicher sollte erst einmal groß genug sein.
    Später würde ich noch darüber nachdenken, mittels cron alle Dateien z. B. älter 3 Wochen zu löschen.

    Zum Schluss, nach Absenden der Pushnachricht, kommt ein ganzer "Psalm" vom pushbullet Server zurück auf die Konsole. Diesen würde ich gerne unterdrücken. Habe bereits versucht dies mittels >/dev/null 2>&1 am Ende des pushbullet.sh zu unterdrücken, was aber nicht ging.

    pir1.py
    Spoiler:


    Spoiler:

    cam.py
    [code=php]
    #!/usr/bin/python
    import io
    import time
    import picamera
    import RPi.GPIO as GPIO
    import signal
    import subprocess

    PIR_PIN = 24
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIR_PIN, GPIO.IN)

    with picamera.PiCamera() as camera:
    stream = picamera.PiCameraCircularIO(camera, seconds=20)
    camera.start_preview()
    camera.start_recording(stream, format='h264')
    GPIO.wait_for_edge(24, GPIO.FALLING)
    camera.stop_recording()
    camera.stop_preview()
    for frame in stream.frames:
    if frame.header:
    stream.seek(frame.position)
    break
    with io.open('/media/usbstick/cam/video.h264', 'wb') as output:
    while True:
    data = stream.read1()
    if not data:
    break
    output.write(data)
    [/php]

    Vielen Dank für eure Hilfe.

    Einmal editiert, zuletzt von rmjspa (2. April 2015 um 14:01)

  • Python script GPIO event pushbullet notification Picam? Schau mal ob du hier fündig wirst!

  • Du solltest so viel wie möglich nativ in Python machen.
    Warum du cam.py über subprocess ausführst ist also fraglich - wieso integrierst du das nicht in dein pir1.py Script oder importierst eine Funktion? :s

    Auch solltest du für einen GPIO.IN einen Pull-Up/Down einrichten, entweder Hardwareseitig mit einem externen Widerstand, oder den Internen aktivieren. Denn sonst kann sich der Zustand unvorhersehbar ändern.

    Also, pir1.py sähe wie folgt besser aus:

    [/spoiler]

    Inwiefern das aber über python zu regeln wär vermag ich grad nicht zu sagen.. Dazu gibts in den fertigen pushbullet.py Scripts aber auch Funktionen für :fies:

  • @ meigrafd

    Super, vielen Dank für die schnelle Antwort und Hilfe. Werde es so schnell wie möglich testen, bin aber überzeugt, dass Deine Veränderungen laufen werden.

    Warum ich das mit subprocess gemacht habe? Weil ich es nicht besser konnte, mir war aber klar, das es besser geht, nur wusste ich nicht wie und hatte schon alles mögliche probiert.

    Die pushbullet.py hatte ich auch schon probiert, bin aber damit gescheitert, weil etwas zu kompliziert für einen Anfänger. Hab vor knapp 40 Jahren mal kleine Programme im Hex code und in Basic auf mini Computern für Testzwecke geschrieben. Das nützt mir heute aber nichts mehr.
    Das mit dem pull-down werde ich beherzigen. Geht zwar auch ohne am PIR, ist aber die sauberere Lösung.

    Vielen dank noch mal fürs Erste.

  • Ein kleines Problem gibt es noch.

    Das

    Code
    GPIO.wait_for_edge(24, GPIO.FALLING)


    mag er nicht. Es kommt dann die Meldung:

    02.04.2015 16:30:12 -> GPIO 24 ausgeloest! Motion dedected
    Traceback (most recent call last):
    File "/usr/bin/testpir.py", line 22, in interrupt_event
    exec_cam()
    File "/usr/bin/testpir.py", line 30, in exec_cam
    GPIO.wait_for_edge(PIR_PIN, GPIO.FALLING)
    RuntimeError: Conflicting edge detection events already exist for this GPIO channel

    Ich kann zwar die Zeile mit # auskommentieren, dann läuft das script durch, aber die Videodatei hat 0kb.

    Ich dachte mit den 20 Sekunden (oben) würden auf jeden Fall auch 20 Sekunden aufgenommen. Ich könnte natürlich einen sleep (20) einbauen, anstatt des GPIO.wait_for_edge(24, GPIO.FALLING) aber vielleicht gibt es noch eine bessere Lösung. Werde mich heute Nacht noch mal dransetzen, muss jetzt erst mal weg.

    Einmal editiert, zuletzt von rmjspa (2. April 2015 um 16:39)


  • Ein kleines Problem gibt es noch.

    Das

    Code
    GPIO.wait_for_edge(24, GPIO.FALLING)


    mag er nicht.

    Ersetz mal die Zeile

    [code=php]
    #!/usr/bin/python
    #
    # v0.3 by meigrafd
    #
    import time, signal, os, glob
    import RPi.GPIO as GPIO
    import picamera
    from pushbullet import Pushbullet
    from datetime import datetime

    #---------------------------------------------------------------------
    PIR_PIN = 24
    API_KEY = "1234"

    # only one of following:
    PULL = GPIO.PUD_DOWN #GPIO -> GND
    #PULL = GPIO.PUD_UP #GPIO -> 3V3
    #---------------------------------------------------------------------

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIR_PIN, GPIO.IN, pull_up_down = PULL)

    pb = Pushbullet(API_KEY)

    def interrupt_event(pin):
    zeit = time.strftime("%d.%m.%Y %H:%M:%S")
    print "{} -> GPIO {} ausgeloest! Motion detected".format(zeit, pin)
    push = pb.push_note("Alarm", "Motion detected")
    #picam_record()
    picam_record(tofile="/media/usbstick/cam/video.h264")

    def picam_record( tofile="/tmp/video.h264", res=(1024, 768) :(
    timestamp = time.time()
    t = datetime.fromtimestamp(timestamp)
    with picamera.PiCamera() as camera:
    print 'Starting record to %s' % tofile
    camera.led = False #or True
    camera.resolution = res
    camera.framerate = 24
    camera.start_preview()
    camera.annotate_text = t.strftime('%d.%m.%Y %H:%M:%S')
    camera.start_recording(tofile, format='h264', quality=5)
    GPIO.wait_for_edge(PIR_PIN, GPIO.FALLING)
    #camera.wait_recording(20)
    print 'Captured %s' % tofile
    camera.stop_recording()
    camera.stop_preview()

    # pushbullet video file..
    with open(tofile, 'rb') as vid:
    file_data = pb.upload_file(vid, 'video.mkv')
    push = pb.push_file(**file_data)

    # rename file
    #get dirname and filename without extension
    dirName = os.path.dirname(tofile)
    fileName = os.path.basename(tofile)
    fileBasename = os.path.splitext(fileName)[0]
    fileExtension = os.path.splitext(fileName)[1]
    #rename file with timestamp
    newFile = dirName + '/' + fileBasename + '_' + t.strftime('%d%m%Y_%H%M%S') + fileExtension
    os.rename(tofile, newFile)
    print 'Renamed file to %s' % newFile


    def main():
    try:
    GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=interrupt_event, bouncetime=100)
    #keep script running
    signal.pause()
    except (KeyboardInterrupt, SystemExit):
    print "Quit"

    if __name__ == '__main__':
    main()
    GPIO.cleanup()
    [/php][/spoiler]

    //EDIT: Hab auch noch eingebaut dass das File nach Aufnahme umbenannt wird, da du ja jede Aufnahme behalten willst. Die Aufnahme ansich usw funktioniert, nur kann ich wie gesagt den push Kram nicht testen.
    Außerdem fügt er am oberen Rand des Videos ebenfalls den Zeitpunkt der Aufnahme mit ein, damit man das später auch noch nachvollziehen kann :)
    Falles es mit GPIO.wait_for_edge nicht wie gewünscht funktioniert (was ich nicht glaube, da der pin nicht betätigt bleibt sondern bei jeder Bewegung auslöst) dann sollte anstatt time.sleep lieber camera.wait_recording genutzt werden, da dann weiterhin Fehlermeldungen wie zB "out of space" registriert werden können.
    Du solltest auch noch an der 'quality=5' Stellschraube drehen, um so niedriger der Wert um so besser die Videoqualität aber auch um so größer die Datei. Das kann ein Unterschied zwischen 500kB, 2MB oder 30MB ausmachen, bei einer Aufnahmedauer von wohlgemerkt 5 Sekunden :-/
    Möglicher Wert: 1 - 40

  • @ Meigrafd Vielen Dank für all Deine Bemühungen. :danke_ATDE:

    @ Bootsmann Danke für den Link. Werde ich mir später auch genauer ansehen.

    Pushbullet läuft leider noch nicht, es kommt folgende Meldung:

    Python
    pi@SlaveGarten /usr/bin $ sudo testpir1.py
    Traceback (most recent call last):
      File "/usr/bin/testpir1.py", line 8, in <module>
        from pushbullet import Pushbullet
    ImportError: cannot import name Pushbullet
    pi@SlaveGarten /usr/bin $ 
    [code]


    Diese Meldung hatte ich vor ein paar Tagen schon mal. Zusammen mit einer InsecureRequestWarning. Diese habe ich dann mit:

    import urllib3
    urllib3.disable_warnings()

    wegbekommen. Das war die einfachste Lösung. Es geht da um unverified HTTPS requests unter Python 2.x.

    Werde mir das später, ist jetzt schon 02:00 Uhr, bezüglich der pushbullet.py alles mal durchlesen. Vielleicht liegt das auch daran, das ich die pushbullet.py schon vorher installiert habe, und jetzt noch einmal drüberbügeln wollte. Es geistern da wohl auch mehrere Versionen im Netz herum. Oder ich muss in der pushbullet.py noch Änderungen, Ergänzungen, oder Parameter setzen.

    Übrigens, Pushbullet macht nicht nur auf dem "smartdreck" Sinn. Man kann bis zu 7500 push's pro Monat kostenlos versenden, und zwar platformübergreifend.

    Also z. B. vom Pi zum Mac, Windows PC, Mac, Linux PC und "smartdreck" und zwar auch, vice versa.

    Die Nachrichten können Text, Files, Links etc. enthalten.

    Es gibt also tausende von Möglichkeiten sich so über Ereignisse auf anderen Rechnern informieren zu lassen, oder mal schnell Daten auszutauschen.

    Einmal editiert, zuletzt von rmjspa (3. April 2015 um 02:19)

  • Hast du denn vorher pushbullet.py installiert? Achte mal genau auf die Ausgabe wenn du's versuchst zu installieren.

    Die InsecurePlatformWarning Ausgaben sind nicht allzu tragisch, da es nur ein Hinweis ist dass man eine nicht verifizierte HTTPS url anspricht. Siehe hier: https://urllib3.readthedocs.org/en/latest/secu…platformwarning

    Soweit ich das beurteilen kann funktioniert nun alles:

    &quot;v0.4&quot;

    [code=php]#!/usr/bin/python
    #
    # v0.4 by meigrafd
    #
    import time, signal, os, glob
    import RPi.GPIO as GPIO
    import picamera
    from pushbullet import Pushbullet
    from datetime import datetime
    import urllib3

    #---------------------------------------------------------------------
    PIR_PIN = 24
    API_KEY = 'xyz'

    # only one of following:
    PULL = GPIO.PUD_DOWN #GPIO -> GND
    #PULL = GPIO.PUD_UP #GPIO -> 3V3
    #---------------------------------------------------------------------

    def picam_record( ToFile='/tmp/video.mkv', Resolution=(1024,768), Format='h264', Recordtime=10, Quality=5, Framerate=24, Led=False :(
    timestamp = time.time()
    t = datetime.fromtimestamp(timestamp)
    try:
    with picamera.PiCamera() as camera:
    print 'Starting record to %s' % tofile
    camera.led = Led
    camera.resolution = Resolution
    camera.framerate = Framerate
    camera.start_preview()
    camera.annotate_text = t.strftime('%d.%m.%Y %H:%M:%S')
    camera.start_recording(ToFile, format=Format, quality=Quality)
    camera.wait_recording(Recordtime)
    print 'Captured %s' % ToFile
    camera.stop_recording()
    camera.stop_preview()
    # pushbullet video file..
    urllib3.disable_warnings()
    print "push-uploading file.."
    with open(ToFile, 'rb') as vid:
    file_data = pb.upload_file(vid, 'video.mkv')
    push = pb.push_file(**file_data)
    # rename file
    #get dirname and filename without extension
    dirName = os.path.dirname(ToFile)
    fileName = os.path.basename(ToFile)
    fileBasename = os.path.splitext(fileName)[0]
    fileExtension = os.path.splitext(fileName)[1]
    #rename file with timestamp
    newFile = dirName + '/' + fileBasename + '_' + t.strftime('%d%m%Y_%H%M%S') + fileExtension
    os.rename(ToFile, newFile)
    print 'Renamed file to %s' % newFile
    # only for debug:
    #pushes = pb.get_pushes()
    #latest = pushes[0]
    #print latest
    except Exception, error:
    print "Error in picam_record: " + str(error)

    def interrupt_event(pin):
    zeit = time.strftime('%d.%m.%Y %H:%M:%S')
    print '{} -> GPIO {} ausgeloest! Motion detected'.format(zeit, pin)
    push = pb.push_note('Alarm', 'Motion detected')
    #picam_record()
    picam_record(ToFile='/media/usbstick/cam/video.h264', Recordtime=20)


    if __name__ == '__main__':
    try:
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIR_PIN, GPIO.IN, pull_up_down = PULL)
    urllib3.disable_warnings()
    pb = Pushbullet(API_KEY)
    GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=interrupt_event, bouncetime=100)
    #keep script running
    signal.pause()
    except (KeyboardInterrupt, SystemExit):
    print 'Quit'
    GPIO.cleanup()
    [/php]

  • pb ist außerhalb der Funktion definiert...


    &quot;v0.5&quot;

    [code=php]#!/usr/bin/python
    #
    # v0.5 by meigrafd
    #
    import time, signal, os, glob
    import RPi.GPIO as GPIO
    import picamera
    from pushbullet import Pushbullet
    from datetime import datetime
    import urllib3

    #---------------------------------------------------------------------
    PIR_PIN = 24
    API_KEY = 'xyzabc'

    # only one of following:
    PULL = GPIO.PUD_DOWN #GPIO -> GND
    #PULL = GPIO.PUD_UP #GPIO -> 3V3
    #---------------------------------------------------------------------


    def send_push(file):
    try:
    urllib3.disable_warnings()
    pb = Pushbullet(API_KEY)
    push = pb.push_note('Alarm', 'Motion detected')
    print "push-uploading file.."
    with open(file, 'rb') as vid:
    file_data = pb.upload_file(vid, 'video.mkv')
    push = pb.push_file(**file_data)
    # only for debug:
    #pushes = pb.get_pushes()
    #latest = pushes[0]
    #print latest
    except Exception, error:
    print "Error in send_push: " + str(error)

    def picam_record( ToFile='/tmp/video.mkv', Resolution=(1024,768), Format='h264', Recordtime=10, Quality=20, Framerate=24, Led=False :(
    timestamp = time.time()
    t = datetime.fromtimestamp(timestamp)
    try:
    with picamera.PiCamera() as camera:
    print 'Starting record to %s' % ToFile
    camera.led = Led
    camera.resolution = Resolution
    camera.framerate = Framerate
    camera.start_preview()
    camera.annotate_text = t.strftime('%d.%m.%Y %H:%M:%S')
    camera.start_recording(ToFile, format=Format, quality=Quality)
    camera.wait_recording(Recordtime)
    print 'Captured %s' % ToFile
    camera.stop_recording()
    camera.stop_preview()
    # send push message and file
    send_push(ToFile)
    # rename file
    #get dirname and filename without extension
    dirName = os.path.dirname(ToFile)
    fileName = os.path.basename(ToFile)
    fileBasename = os.path.splitext(fileName)[0]
    fileExtension = os.path.splitext(fileName)[1]
    #rename file with timestamp
    newFile = dirName + '/' + fileBasename + '_' + t.strftime('%d%m%Y_%H%M%S') + fileExtension
    os.rename(ToFile, newFile)
    print 'Renamed file to %s' % newFile
    except Exception, error:
    print "Error in picam_record: " + str(error)

    def interrupt_event(pin):
    zeit = time.strftime('%d.%m.%Y %H:%M:%S')
    print '{} -> GPIO {} ausgeloest! Motion detected'.format(zeit, pin)
    #picam_record()
    picam_record(ToFile='/media/usbstick/cam/video.h264', Recordtime=20)


    if __name__ == '__main__':
    try:
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIR_PIN, GPIO.IN, pull_up_down = PULL)
    GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=interrupt_event, bouncetime=100)
    #keep script running
    signal.pause()
    except (KeyboardInterrupt, SystemExit):
    print 'Quit'
    GPIO.cleanup()[/php]

    Jetzt zufrieden?

  • Habe gerade mit Freude gesehen, wie ihr euch für mein kleines Projekt angagiert. :danke_ATDE:

    Ich war auch nicht ganz untätig, was für mich sehr lehrreich war, und werde auch gleich die neue Version mal probieren.

    Vorher möchte ich noch kurz schreiben, mit was ich so gekämpft habe und wo ich gerade stehe.

    Was ich nicht verstehe ist, obwohl ich mit "alles markieren" und einfügen den Code übernommen hebe, wurden mir ein paar Fehler reingehauen.

    Das erste war:
    from pushbullet import PushBullet
    Fehler: ImportError: cannot import name Pushbullet

    Zeile im Terminal neu geschrieben und der Fehler war weg. :s
    Dann:
    import urllib3
    ImportError: No module named urllib3

    Fehlende urllib3 nachinstalliert mit:
    sudo pip install urllib3

    Änderung: push = pb.push_Note ändern in push = pb.pushNote

    Danach Fehler: TypeError: pushNote() takes at least 4 arguments (3 given)

    Fehler beseitigt mit:
    devices = pb.getDevices()
    push = pb.pushNote(devices[3]["iden"],'Alarm', 'Motion detected')
    Hier muss ich noch mal ran, da der push nur zum device 3 geht und nicht an alle. Habe es aber jetzt nur so hinbekommen.

    Error in picam_record: global name 'tofile' is not defined
    tofile in ToFile geändert

    Dann verschiedene Tests, mit verschiedenen Qualitätsstufen
    Video erstellt und gespeichert Quality= 5 File = 106 MB
    Quality= 20 File = 9 MB
    Quality= 30 File = 1,5 MB Qualität ist ausreichend!!!

    Jetzt hänge ich im Augenblick bei:
    Captured /media/usbstick/cam/video.h264
    push-uploading file..
    Error in picam_record: PushBullet instance has no attribute 'upload_file'

    Habe auch ein paar Lösungsansätze gefunden, werde jetzt aber erst die neue Version ausprobieren.

    Meinen Respekt und Dank noch mal an meigrafd, ohne die Möglichkeit das script zu testen, solch ein Umfangreiches Script zu schreiben.

  • rmjspa

    Vielleicht solltest du mal das offizielle Python-Tutorial durcharbeiten.
    http://py-tutorial-de.readthedocs.org/de/python-3.3/

    Danach würde ich Stück für Stück nach dem EVA-Prinzip kleine einfache Funktionen schreiben. Also einfach mal ein Video aufnehmen a la:
    http://picamera.readthedocs.org/en/release-1.1…video-to-a-file

    Wenn dies geht, die nächste Funktion etc...

  • bootsmann

    Da hast Du sicher Recht. Das "kraxeln" sollte man nicht gleich am Mont Everest üben.
    Mit eurer Hilfe bin ich aber jetzt bereits sehr weit gekommen, und werde hier nicht aufgeben.

    Warum immer noch beim Kopieren des Codes etwa 3 Zeilen falsch übernommen werden, bleibt mir ein Rätsel. Es sind auch immer die gleichen, in denen das Wort "Pushbullet" vorkommt.

    Ich habe die entsprechenden Zeilen, bei denen er gemeckert hat manuel noch mal geschrieben und dann waren die Fehler weg, obwohl es genau der gleiche Text war.

    Die Definition vom pb habe ich noch eingefügt und ein paar Änderungen für die Pushnotification.

    Bis auf, das der push des Files noch nicht geht, geht ja alles soweit. Darüber lese ich gerade, was ich da noch wie einbauen muss.

    Auch den ganzen "psalm" bezüglich der urllib3 Geschichte hab ich noch nicht wegbekommen.

    Die soweit laufende testpir3.py füge ich mal ein.

  • Du hast da leider etwas geändert ohne den Rest zu beachten.
    Guck dir mal die 'send_push' Funktion an. Dort soll eigentlich erst der ganze push Kram erledigt werden, aber nicht bereits in 'interrupt_event' wie du es nun aber nachträglich eingefügt hast - dort gibt es aber noch kein 'pb' objekt, das wird erst in 'send_push' erzeugt...
    Von daher verständlich das du einen Error kriegst :fies:

    Ich versteh aber auch nicht wieso es bei dir kein ' push_note ' gibt :s Auf github in Zeile 212 gibt es die Funktion: https://github.com/randomchars/pu…t/pushbullet.py
    Und in dem von mir über pip installiert Module ebenfalls:

    Code
    root@RoPi:~# grep 'push_note' /usr/local/lib/python2.7/dist-packages/pushbullet.py-0.8.1-py2.7.egg/pushbullet/pushbullet.py
        def push_note(self, title, body, device=None, contact=None, email=None):
    root@RoPi:~#
  • meigrafd

    Das Problem ist, ich hatte ja vor ein paar Tagen bereits eine pushbullet.py installiert.

    Es gibt da anscheinend mehre im Netz!

    Dadurch wurde die von Dir vorgeschlagene nicht mehr installiert.

    Die pushbullet.py die jetzt wie ein Parasit auf meinem Raspi sitzt benutzt z.B PushNote anstatt von push_note.

    Das ist nur ein Beispiel von vielen.

    Werde jetzt versuchen, die alte pushbullet.py zu löschen, bzw. zu deinstallieren.

    EDIT://04.04.15
    Nachdem sich die beiden pushbullet.py 's nicht mehr sauber haben deinstallieren und trennen lassen, habe ich das System neu aufgesetzt.

    Es gibt wie ich schon geschrieben habe, mindestens 2 pushbullet.py in github.

    https://github.com/randomchars/pushbullet.py

    https://github.com/Azelphur/pyPushBullet

    Werde mich jetzt erst einmal einlesen, welche besser passt und auch besser gepflegt wird und welche sich auch später einfacher updaten lässt. Es kommt auch darauf an, ob in beiden die die kürzlich an der API von pushbullet vorgenommenen Änderungen eingearbeitet sind.

    EDIT:// 05.04.15

    Zu erst: Das von meigraft geschriebene Script läuft fantastisch!!!!!! :thumbs1::bravo2:

    Der steinige Weg ist die pushbullet.py. Die pushbullet.py nach https://github.com/randomchars/pushbullet.py macht beim installieren Probleme. Dies ist auch unter issue's nachzulesen, mit Lösung.

    Dann habe ich mir selbst ein "Ei" gelegt. Da in der vers. 5 von meigraft bereits ein API_Key eingetragen ist und ich für kurze Zeit abgelenkt war, habe ich nicht bemerkt, das ich meinen persönlichen noch nicht eingetragen habe. Dann lief zwar das Script, habe aber keinen Push bekommen. Was ja auch logisch ist. Dann habe ich noch die pushbullet.py nach Azelphur versucht, bis mir mein Missgeschick auffiel.

    Das einzige was noch bleibt ist, dass das Iphone und Ipad mit dem mkv Container nicht zurecht kommt. Auch das h264 Format macht bei diesen Geräten Probleme. Hier muss ich noch eine Lösung finden. EDIT:// MKV und VLC Player geht auf dem Mac nicht. Elmedia Player läuft perfekt! Auf dem Iphone / Ipad geht es mit MoliPlayer HD einwandfrei. Bei der Qualitätseinstellung der Picam bietet sich ein Wert zwischen 20 und 30 an.

    Vielen Dank nochmals an meigrafd :thumbs1: für das tolle voll lauffähige script, welches so, für viele Anwendungen direkt übernommen werden kann.

    Einmal editiert, zuletzt von rmjspa (5. April 2015 um 09:55)

Jetzt mitmachen!

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