• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
telegram uso da foto di ip x camera

[RISOLTO] Uso di telegram x foto da IP CAMERA
#1
Ciao, sto sbattendo la testa da ore ma non riesco a fare quello che vorrei,
ho trovato degli script di esempio (guide) dove viene usato il bot RpiNotify e riesco ad usarlo senza problemi x mandare messaggi, adesso lo step successivo è quello di allegare un immagine dalla IP CAM, la suddetta la visualizzo su una pagina web con il comando: http://ilmiodyndns.org:porta/snapshot.cgi?user=xxxx&pwd=xxxx

Quindi vorrei spedire questa immagine allo smartphone per fare un controllo visivo degli accessi, ho provato a cercare se esiste un API di RpiNotify ma non ho trovato niente, non mi serve salvarla sul RB ma solo "girarla" allo smartphone, mi aiutate ?

Grazie
Maurizio
Risposta
#2
Ho trovato la soluzione cercando in rete, l'ho applicata alla mia IP camera ed altre, basta trovare la stringa giusta che richiami lo screenshot corretto, potete aiutarvi guardando il primo sito di questa ricerca << china IP camera URL >>

Lo script python che permette di mandare sia un messaggio che una foto è il seguente, nel mio caso ho usato un PIR per la rilevazione ed un LED per l'allarme (può essere sostituito da altro), il Bot è stato creato dal sottoscritto, i "Print" mi sono serviti per verificare i passaggi, potete anche commentarli

[ code ]
#!/usr/bin/python
import telepot
import commands
import subprocess
import gpiozero
from gpiozero import MotionSensor,LED

sensore = MotionSensor(4)
led5 = LED(5)
chat_id = 'xxxxxxxxxxxx'  ## la fornisce il Bot al momento della creazione
bot = telepot.Bot('xxxxxxxxxxxxxxxxxxxxxxxxxxxxx')  ## token ... come sopra

def allarme():
       print"Motion detected!"
       bot.sendMessage(chat_id,"Allarme PIR")
       bashCommand = 'wget --output-document snapshot.jpg http://indirizzo di rete:porta/snapshot.cgi?user=xxxxxx\&pwd=xxxxxx'
       subprocess.check_output(bashCommand, shell=True)
       print ('downloaded photo')
       bot.sendPhoto(chat_id, open('snapshot.jpg','rb'))
       print ('sent photo')
       bashCommand = 'rm snapshot.jpg'
       subprocess.check_output(bashCommand, shell=True)
       print ('removed photo')
       led5.on()

def no_allarme():
       print"Riposo"
       led5.off()

sensore.when_motion = allarme
sensore.when_no_motion = no_allarme

[ /code ]
Risposta
#3
ottimo.

posso consigliarti di postare il codice nei tag [ code ] [ /code] gentilmente?
migliora la leggibilità Smile



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#4
(12/10/2017, 09:46)Painbrain Ha scritto: ottimo.

posso consigliarti di postare il codice nei tag [ code ] [ /code] gentilmente?
migliora la leggibilità Smile

Scusa Big Grin
Risposta
#5
e niente da fare il problema sono le telecamere foscam che a quanto pare non salvano le immagini.
ho provato con immagini prese su internet e lo script funziona perfettamente.
Qui sotto si può vedere come un immagine presa da un sito internet la scarica tranquillamente e la riconosce come image/jpeg
-----------------------------------------------------------------------------------------------------------------------
pi@raspberrypi:~ $ wget --output-document snapshot.jpg http://www.iz0bav.it/new.JPG
--2017-10-30 22:30:23--  http://www.iz0bav.it/new.JPG
Risoluzione di www.iz0bav.it (www.iz0bav.it)... 217.64.202.205, 2001:4b78:1001::101
Connessione a www.iz0bav.it (www.iz0bav.it)|217.64.202.205|:80... connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: 167903 (164K) [image/jpeg]
Salvataggio in: "snapshot.jpg"

snapshot.jpg        100%[===================>] 163,97K   208KB/s    in 0,8s    

2017-10-30 22:30:24 (208 KB/s) - "snapshot.jpg" salvato [167903/167903]
-------------------------------------------------------------------------------------------------------------------------

Mentre qui invece non la scarica completamente e la riconosce come text/plain

--------------------------------------------------------------------------------------------------------------------------------------
pi@raspberrypi:~ $ wget --output-document snapshot.jpg http://172.xx.xx.xx:xx//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxxxx&pwd=xxxx
[1] 23354
[2] 23355
pi@raspberrypi:~ $ --2017-10-30 22:31:11--  http://172.xx.xxx.xxx:xxx//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2
Connessione a 172.xx.xxx.xxx:xxx...connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: non specificato [text/plain]
Salvataggio in: "snapshot.jpg"

snapshot.jpg            [ <=>                ]      51  --.-KB/s    in 0s      

2017-10-30 22:31:11 (1,02 MB/s) - "snapshot.jpg" salvato [51]


--------------------------------------------------------------------------------------------------
Peccato , che telecamere ip avete usato????
Risposta
#6
Secondo me devi provare come ho scritto nella prima riga del msg e cioè trovare la stringa adatta alla telecamera
(basta trovare la stringa giusta che richiami lo screenshot corretto, potete aiutarvi guardando il primo sito di questa ricerca << china IP camera URL >>)

Devi fare delle prove, io ho provato solo con una Wanscam, ho anche una Foscam ma non ho ancora avuto il tempo di fare le prove, credo che tutte le ipcam possano creare degli snapshot

Fammi sapere che poi serve anche a me
Risposta
#7
Grazie per la gentile risposta
La stringa per foscam è corretta ossia  http://172.xx.xx.xx:xx//cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxxxx&pwd=xxxxxxxxx
Vedo tranquillamente lo snapshot ,però non me la salva.
Eventualmente visto che ne possiedi una ,quando hai tempo puoi fare una prova?
Grazie a presto
Risposta
#8
Se vedi lo snapshot allora funziona, tu hai necessità di conservare l'immagine, io no, hai visto che nella riga successiva si cancella ?
<< bashCommand = 'rm snapshot.jpg' >>
hai commentato la riga ?

E poi non mi torna una cosa, il doppio slash " // " dopo l'IP (quindi prima di cgi-bin), sei sicuro che non ce ne voglia solo uno ?
Risposta
#9
sia con un solo slash e con il doppio riesco tranquillamente a vedere lo snapshot , ho provato pure con le altre foscam (ne ho 4 con ip differenti ovviamente)e riesco ad ottenere le immagini che posso salvare con il tasto destro del mouse.
se però provo a salvarle con wget --output-document snapshot.jpg ......ecc ecc non le salva, o meglio salva il file snapshot.jpg ma è come se fosse vuoto e non lo apre , ovviamente essendo il file vuoto non lo invia su telegram e lo script restituisce un errore ,ossia questo:

Riposo

Motion detected!

downloaded photo



Traceback (most recent call last):

  File "/home/pi/ipcam.py", line 27, in <module>

    bot.sendPhoto(chat_id, open('snapshot.jpg','rb'))

  File "/usr/local/lib/python2.7/dist-packages/telepot/__init__.py", line 483, in sendPhoto

    return self._api_request_with_file('sendPhoto', _rectify(p), 'photo', photo)

  File "/usr/local/lib/python2.7/dist-packages/telepot/__init__.py", line 442, in _api_request_with_file

    return self._api_request(method, _rectify(params), files, **kwargs)

  File "/usr/local/lib/python2.7/dist-packages/telepot/__init__.py", line 434, in _api_request

    return api.request((self._token, method, params, files), **kwargs)

  File "/usr/local/lib/python2.7/dist-packages/telepot/api.py", line 155, in request

    return _parse®

  File "/usr/local/lib/python2.7/dist-packages/telepot/api.py", line 150, in _parse

    raise exception.TelegramError(description, error_code, data)

TelegramError: (u'Bad Request: IMAGE_PROCESS_FAILED', 400, {u'error_code': 400, u'ok': False, u'description': u'Bad Request: IMAGE_PROCESS_FAILED'})
>>> 

se al posto della ip cam metto una webcam ,ovviamente cambiando lo script in bashCommand = ('fswebcam -r 1280x720 --no-banner /home/pi/snapshot.jpg')
Funziona perfettamente 


Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170124] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> 
========================= RESTART: /home/pi/ipcam.py =========================
Riposo
Motion detected!
downloaded photo
sent photo
removed photo
Riposo
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect