• 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
help rpinotify

help rpinotify
#1
Salve a tutti

Sto seguendo la guida per inviare una notifica dal raspberry a telegram premendo un pulsante fisico 
La guida è questa https://rpinotify.it/uses/buttonpressed.php 
Ho copiato lo script pari pari inserendo il mio token 
Solo che quando lo avvio mi dice questo :


>>> %Run rpinotify.py
Traceback (most recent call last):
  File "/home/pi/rpinotify.py", line 13, in <module>
    GPIO.setup(pin, GPIO.IN,pull_up_down=GPIO.PUD_UP)
ValueError: Channel must be an integer or list/tuple of integers
>>> 

lo script è il seguente

#!/usr/bin/env python
# -*- coding: utf-8 -*-
token="TOKEN"
testonoti="PROVA INVIO MESSAGGIO"
pin="18"

import RPi.GPIO as GPIO
import time
import requests


GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.IN,pull_up_down=GPIO.PUD_UP)


while True:
    inputValue = GPIO.input(pin)
    if (inputValue == False):
        requests.get('https://api.rpinotify.it/existencerequest/{}/text/{}'.format(token, testonoti))
    time.sleep(0.3)

Dove sbaglio?

Grazie
Risposta
#2
Prova con pin=18 ( senza i doppi apici). Probabilmente lo script si aspetta un intero, ma con i doppi apici gli passi una stringa

Inviato dal mio XT1039 utilizzando Tapatalk
Risposta
#3
più modernamente, lo riscriverei così (non lo ho provato):
Codice:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# impostazioni:
token="TOKEN"                                                  # il token RpiNotify
testonoti="PROVA INVIO MESSAGGIO"      # testo della notifica
pin=18                                                                   # pin GPIO a cui è connesso il pulsante

# importazione librerie:
import requests
from gpiozero import Button

#programma:
button = Button(pin)
button.when_pressed = requests.get('https://api.rpinotify.it/existencerequest/{}/text/{}'.format(token, testonoti))
Risposta
#4
Sad 
(21/07/2017, 23:03)Zzed Ha scritto: più modernamente, lo riscriverei così (non lo ho provato):
Codice:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# impostazioni:
token="TOKEN"                                                  # il token RpiNotify
testonoti="PROVA INVIO MESSAGGIO"      # testo della notifica
pin=18                                                                   # pin GPIO a cui è connesso il pulsante

# importazione librerie:
import requests
from gpiozero import Button

#programma:
button = Button(pin)
button.when_pressed = requests.get('https://api.rpinotify.it/existencerequest/{}/text/{}'.format(token, testonoti))

Ciao e di nuovo grazie

Provo e riprovo ma non va 

Ho copiato il tuo script ,inserito dentro python 2 ,cambiato il token , salvato il file , poi da python 2 premo run per vedere cosa succede e mi escono queste scritte :

Traceback (most recent call last):
  File "/home/pi/rpi.py", line 15, in <module>
    button.when_pressed = requests.get('https://api.rpinotify.it/existencerequest/{}/text/{}'.format(token, testonoti))
  File "/usr/lib/python2.7/dist-packages/gpiozero/devices.py", line 159, in __setattr__
    return super(GPIOBase, self).__setattr__(name, value)
  File "/usr/lib/python2.7/dist-packages/gpiozero/mixins.py", line 209, in when_activated
    self._when_activated = self._wrap_callback(value)
  File "/usr/lib/python2.7/dist-packages/gpiozero/mixins.py", line 257, in _wrap_callback
    raise BadEventHandler('value must be None or a callable')
BadEventHandler: value must be None or a callable


Non capisco proprio
Risposta
#5
ho fatto qualche piccolo errore, credo.
Comunque perchè funzioni, ovviamente devi esserti registrato al bot di rpinotify.

riproviamoci:
Codice:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# impostazioni:
token="TOKEN"                                                  # il token RpiNotify
testonoti="PROVA INVIO MESSAGGIO"      # testo della notifica
pin=18                                                                   # pin GPIO a cui è connesso il pulsante

# importazione librerie:
import requests
from gpiozero import Button

#programma:
button = Button(pin)
button.when_pressed = requests.get('http://api.rpinotify.it/notification/{}/text/{}'.format(token, testonoti))
Risposta
#6
Il bot funziona, in Bash funziona perfettamente, in python non mi da errori però non invia le notifiche
Risposta
#7
In realtà c'era un 404 perché l'indirizzo che ho copiato era errato. Prova quest'ultima dovrebbe andare

Ps: evita di quotare per intero i messaggi precedenti se non utile alla discussione : per leggerli basta alzare lo sguardo altrimenti sono inutili ripetizioni che rendono la discussione difficile da seguire.
Risposta
#8
salve a tutti , mi ricollego a questo post perchè ho un problema con lo stesso progetto . ho creato uno script sulla base anche di quanto scritto qui pero' dopo che lo lancio ottengo questo errore

pi@raspberrypi:~ $ sudo python telegram18
Traceback (most recent call last):
 File "telegram18", line 11, in <module>
   from gpiozero import Button
ImportError: No module named gpiozero

telegram18 è il nome dello script che ho fatto cosi
Codice:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# impostazioni:
token="eyJhbGciOiJ....................u6FWIDoA$"
testonoti="PROVA INVIO MESSAGGIO"      # testo della notifica
pin=18                                                                   # pin $

# importazione librerie:
import requests
from gpiozero import Button

#programma:
button = Button(pin)
button.when_pressed = requests.get('http://api.rpinotify.it/notification/{}/tex$

ho messo i puntini dentro il Token per non incollarlo tutto .
dove sto sbagliando ?
Risposta
#9
Python è abbastanza chiaro nei messaggi di errore:
"ImportError: No module named gpiozero"
Non puoi importare gpiozero perchè non è installato sul tuo sistema.
Gpiozero è preinstallato in Raspbian, quindi probabilmente stai usando Raspbian Lite o un altro sistema che non lo ha preinstallato.
Per installarlo:
aggiorna la lista dei repository con
Codice:
sudo apt-get update
poi installalo per Python 3:
Codice:
sudo apt-get install python3-gpiozero
o per Python 2:
Codice:
sudo apt-get install python-gpiozero

Se non dovesse funzionare, devi installarlo tramite pip.
Per installare PIP, nel caso tu non lo abbia già:
Per Python 3:
Codice:
sudo apt-get install python3-pip
mentre per Python 2:
Codice:
sudo apt-get install python-pip

ora finalmente, installiamo Gpiozero:
Per Python 3:
Codice:
sudo pip3 install gpiozero
Per Python 2:
Codice:
sudo pip install gpiozero
Risposta
#10
grazie molte Zzed , ora ho installato gpiozero che sulla lite infatti non c'era . appena lancio il comando
sudo python telegram18
per renderlo attivo , dato che non è ancora sui cron lo devo fare per ora a "manina" . ottengo questa risposta e ricevo la notifica immediatamente
Traceback (most recent call last):
File "telegram18", line 15, in <module>
button.when_pressed = requests.get('http://api.rpinotify.it/notification/{}/text/{}'.format(token, testonoti))
File "/usr/lib/python2.7/dist-packages/gpiozero/devices.py", line 119, in __setattr__
return super(GPIOBase, self).__setattr__(name, value)
File "/usr/lib/python2.7/dist-packages/gpiozero/mixins.py", line 212, in when_activated
self._when_activated = self._wrap_callback(value)
File "/usr/lib/python2.7/dist-packages/gpiozero/mixins.py", line 260, in _wrap_callback
raise BadEventHandler('value must be None or a callable')
gpiozero.exc.BadEventHandler: value must be None or a callable
però dovrei ricevere la notifica solo se il GPIO18 si chiude fisicamente verso GND cosa che non accade
Risposta
  


Vai al forum:


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