На основе on_picture_save документации вы можете использовать %f
в команде
on_picture_save home/pi/Documents/on_picture_save.py %f
, и она должна отправить имя файла с полным путем в качестве аргумента, который вы можете получить как sys.argv[1]
import sys
print(sys.argv[1])
Вы также можете использовать другие Спецификаторы преобразования для отправки другой информации.
Кстати: в документации для snapshot_filename вы также можете видеть
символьная c ссылка с именем lastsnap.jpg создается в target_dir и всегда будет указывать на последний снимок , если имя снимка_файла точно не равно 'lastsnap'
, поэтому вы можете получить последнее изображение как lastsnap.jpg
EDIT: Кажется, у вас есть команда curl
curl -X POST api.link.com/here -F 'files=@/path/to/file/here.jpg;type=image.jpg'
, которая может быть преобразована в Python запросы на http://curl.trillworks.com
и с sys.argv[1]
это может быть
import sys
import requests
files = {'files': (sys.argv[1], open(sys.argv[1], 'rb'))}
response = requests.post('http://api.link.com/here', files=files)
data = response.json()
print(data)
#print(data["???"])
Но у него не будет доступа к вашему экрану, и вы его не увидите. Вы можете только сохранить его в файл и создать другую программу (которую вы запускаете на рабочем столе вручную), чтобы прочитать и отобразить ее.
Я использовал очередь MQTT вместо файла.
on_picture_save
отправлял данные в очередь, а другие локальные компьютеры дома выполняли сценарий на рабочем столе, который периодически получал данные из очереди и отображал на рабочем столе.
mosquitto в качестве сервера / брокера и клиента командной строки для тестов (или для использования со скриптами bash
)
и Paho MQTT в качестве модуля Python для работы с MQTT.
import sys
import requests
import paho.mqtt.client as mqtt
files = {'files': (sys.argv[1], open(sys.argv[1], 'rb'))}
response = requests.post('http://api.link.com/here', files=files)
data = response.json()
client = mqtt.Client()
client.connect('localhost') # or IP of other computer with MQTT server/broker
client.publish('last', sys.argv[1], retain=True)
#client.publish('data', str(data["???"]), retain=True)