Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Kamerabild nach Event....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kamerabild nach Event....

    Hier mal, auf Nachfrage, meine Logik zum Speichern und senden eines Bildes einer Hikvision IP-Cam nach einem Event:

    Code:
    import urllib.request
    import shutil
    import time
    
    from urllib.request import Request, urlopen
    
    
    
        bild_url = 'http://192.168.178.100/streaming/channels/1/picture/?auth=XYZ' # Kamera URL für ein Einzelbild
        bild_dateiname1 = '_EG_Flur01.jpg'                    # Dateiname für die erste Datei
        bild_dateiname2 = '_EG_Flur02.jpg'                    # Dateiname für die zweite Datei
        bild_body = 'EG Flur'                                # Beschreibung für Pushbullet
    
        # Download ein file von einer `url` und lokales speichern unter einem file_name - Und mit Pushbullet senden:
        with urllib.request.urlopen(bild_url) as response, open('/tmp/cam'+bild_dateiname1, 'wb') as out_file:
            shutil.copyfileobj(response, out_file)
        filename1 = time.strftime('%Y%m%d_%H%M%S') + bild_dateiname1
        time.sleep(2)
        with urllib.request.urlopen(bild_url) as response, open('/tmp/cam'+bild_dateiname2, 'wb') as out_file:
            shutil.copyfileobj(response, out_file)
        filename2 = time.strftime('%Y%m%d_%H%M%S') + bild_dateiname2
        logger.info("Zwei Bilder von der Kamera geholt...")
        sh.pushbullet.file('/tmp/cam'+bild_dateiname1, body=bild_body)
        sh.pushbullet.file('/tmp/cam'+bild_dateiname2, body=bild_body)
    Die Logik dann einfach mit dem Event triggern....

    Grüße, Marc


    #2
    Super. Funktioniert !!!

    Kommentar


      #3
      Danke, funktioniert.

      bisher habe ich immer ein Script gehabt mit dem Inhalt:
      Code:
      curl "http://KAMERAIP/snapshot.cgi?user=XXXX&pwd=XXXXX" > /tmp/klingel.jpg
      welches dann beim drücken des Klingeltasters folgendermaßen aufgerufen wird:
      Code:
         # Bild von Klingel holen
         os.system('sh /usr/local/smarthome/bin/klingelimage.sh')
         sh.pushbullet.file("/tmp/klingel.jpg", body="Es hat geklingelt")
      aber deine Lösung ohne Medienbruch finde ich eleganter.

      Grüße Andreas
      Zuletzt geändert von McTao; 23.03.2018, 12:05. Grund: Schreibfehler

      Kommentar

      Lädt...
      X