Action url_call

  • Hallo, erstmal vielen Dank für die super Seite und das Forum.


    Ich möchte gerne bei einem Keydown (Klingeltaster an Pin 40) eine URL aufrufen.
    Die URL sendet eine Nachicht "dingdong" an meinen Telegram Bot...


    Die URL (Id geändert) funktioniert wenn ich diese über den Browser aufrufe. Nun möchte ich dies wie gesagt bei einem Keydown aufrufen.


    hier die Config:



    hier der Log-Auszug:


    was mache ich falsch?
    Email wird korrekt gesendet ... nur die Url nicht aufgerufen.


    Ich wäre sehr dankbar wenn mir jemand helfen könnte.


    Gruß

  • Hi,
    am besten packst du den Aufruf in eine Datei und rufst diese dann auf


    Code
    curl -s -k "https://api.telegram.org/bot00000000:xxxxxxxxxxxxxxxxxxxxxxxx/sendMessage" -d text="Bla Bla" -d chat_id=12345678


    Aufruf:


    Code
    40=os_execute:/usr/local/etc/DoorPi/scripts/TelegramPush.sh

    So klappt's bei mir

  • Die in der früheren DoorPi-Distribution mitgelieferte Datei url_call.py hatte einen Fehler. Obwohl der eigentlich behoben sein sollte, schlage ich vor, mal die hier auszuprobieren:


    https://github.com/mhop/fhem-m…aster/fhem/contrib/DoorPi


    Dazu einfach die alte url_call.py sicher woanders abspeichern, die oben gelistete stattdessen in das alte Verzeichnis kopieren und DoorPi komplett neu starten.


    LG


    pah

  • Hallo, danke für die Hilfe.
    mit der .sh hat es geklappt. Zumindest mit der SendMessage...


    Ich habe versucht die .sh um SendPhoto zu erweitern.


    Das erstellen des Photos mit Datum und Uhrzeit als Dateinamen klappt.
    Das Bild wird korrekt gespeichert.
    Dann die Textnachicht versenden.
    Nur leider das Senden mit lokalem Bild funktioniert nicht


    (hier die funktionierende .sh vom ersten Teil)

    Bash
    #!/bin/bash
    DATE=$(date +"%Y-%m-%d_%H%M%S")
    raspistill -vf -hf -o /home/pi/camera/$DATE.jpg
    Token=00000 
    ChatId=00000 
    curl -s -k "https://api.telegram.org/bot${Token}/sendMessage" -d text="dingdong_$DATE" -d chat_id=$ChatId
    exit 0


    Zusatz für das senden von Photo der nicht funktioniert:

    Code
    curl -s -k "https://api.telegram.org/bot${Token}/sendPhoto" -d photo="/home/pi/camera/$DATE.jpg" -d chat_id=$ChatId




    Ich habe zum Test mal die curl direkt in der Statusleiste im SSH Zugriff eingegeben um direkt die Rückmeldung zusehen.
    Erst mit Onlinebild:
    curl -s -k "https://api.telegram.org/bot0000000/sendPhoto" -d photo="https://telegram.org/img/t_logo.png" -d chat_id=00000


    Rückmeldung(Bild ist angekommen):

    Code
    {"ok":true,"result":{"message_id":47,"from":{"id":000000,"first_name":"000","username":"000"},"chat":{"id":000,"first_name":"0000","last_name":"0000","type":"private"},"date":100000,"photo":[{"file_id":"AgADBAADdAk1GxAcZAdMTbdrMfeiCvRaYRkABO-xritknmVMCQADAg","file_size":1529,"width":90,"height":90},{"file_id":"AgADBAADdAk1GxAcZAdMTbdrMfeiCvRaYRkABFF1S4rqjfqnCAADAg","file_size":7433,"width":236,"height":236}]}}

    dann mit lokalem:
    curl -s -k "https://api.telegram.org/bot0000000/sendPhoto" -d photo="/home/pi/camera/2016-11-02_13:27:48.jpg" -d chat_id=00000


    Ergebnis:
    {"ok":false,"error_code":400,"description":"Bad Request: URL host is empty"}


    Das Bild 2016-11-02_13:27:48.jpg existiert aber ganz sicher in /home/pi/camera/


    Wie müsste der curl abgeändert werden das ich auch dateien auf dem Raspberry versenden kann?



    Update.... 17Uhr
    ein Test hat soeben funktioniert.
    mit Fileziller Bild in home/pi/camera geladen
    und dann:
    sudo curl -X POST "https://api.telegram.org/bot000000/sendPhoto" -F chat_id=0000000 -F photo="@/home/pi/camera/DSC02096.JPG"



    Code
    {"ok":true,"result":{"message_id":51,"from":{"id":00000000,"first_name":"0000","username":"0000"},"chat":{"id":00000,"first_name":"0000","last_name":"000","type":"private"},"date":1478104615,"photo":[{"file_id":"AgADAgADq6cxGxVPCBFraRtQkX9xX8LNgQ0ABOX1n4IKIn1DRM0BAAEC","file_size":796,"width":90,"height":67},{"file_id":"AgADAgADq6cxGxVPCBFraRtQkX9xX8LNgQ0ABG5x9vAcc4M-Rc0BAAEC","file_size":11717,"width":320,"height":240},{"file_id":"AgADAgADq6cxGxVPCBFraRtQkX9xX8LNgQ0ABD7gcleXdyRQRs0BAAEC","file_size":56993,"width":800,"height":600},{"file_id":"AgADAgADq6cxGxVPCBFraRtQkX9xX8LNgQ0ABDQ9B05erwABvkfNAQABAg","file_size":124811,"width":1280,"height":960},{"file_id":"AgADAgADq6cxGxVPCBFraRtQkX9xX8LNgQ0ABO257zlGrSSaSM0BAAEC","file_size":390230,"width":2560,"height":1920}]}}


    aber mit mit raspistill -vf -hf -o /home/pi/camera/test.jpg erstelltes bild
    und
    sudo curl -X POST "https://api.telegram.org/bot00000/sendPhoto" -F chat_id=000000 -F photo="@/home/pi/camera/test.JPG"


    kommt die Fehehlermeldung:


    curl: (26) couldn't open file "/home/pi/camera/test.JPG"
    die Rechte des Ordners habe ich auf 775 sitzen auch 777 ändert nichts.


    Wenn ich ein Raspistill Bild mit Fileziller auf den Laptop ziehe umbenenne in Test2 und zurück in den Ordner bekomme ich bei curl die gleiche Meldung.


    Liegt es an den Raspistill Bildern? Was ist hier anders?

  • raspistill --width 2592 --height 1944 --quality 100 --timeout 500 --encoding jpg -sh 0 -co 0 -br 50 -sa 0 -ev 0 --exposure snow --awb sun --ISO 100 --metering average --nopreview --output /home/pi/camera/$DATE.JPG


    nun geht auch das versenden :) verstehen tue ich es aber nicht