× Benvenuti sul nostro forum su Sint Wind PI!

Postate qui domande o segnalate problemi / bug che riscontrate,

map-pin Telegram Plugin

Di più
8 Anni 4 Mesi fa - 7 Anni 9 Mesi fa #7162 da seven
Telegram Plugin è stato creato da seven
Aloha ragazzi, rieccomi qua dopo un po' di assenza (tra vacanze e magagne varie). Allegato a questo messaggio c'è il mio bot per Telegram, secondo me non è venuto malaccio... :cheer:
Ricordo per chi si fosse sintonizzato solo ora che si tratta di un bot per Telegram, piattaforma di messaggistica gratuita alternativa a WhatsApp.

Le funzioni del bot ricalcano quelle del plugin WhatsApp, con l'aggiunta del supporto vocale, una -abbastanza pratica- gestione utenti (si può restringere l'accesso ad utenti selezionati oppure aprirlo a chiunque), si può chiedere l'immagine webcam, si può controllare lo stato del sistema (temperatura cpu, spazio disco libero...), si può anche rebootare la Raspberry (solo Admin).


Mentre su WhatsApp l'utilizzo di bot è vietato (e può portare al ban del numero di cellulare associato al bot), per quanto riguarda Telegram l'utilizzo dei bot è addirittura incoraggiato, con tanto di messa a disposizione di API dedicate. Il qui presente usa le API fornite dalla libreria python-telegram-bot versione 3.4. Attenzione: NON credo funzioni con le versioni più recenti, ecco perché la libreria da installare la fornisco io allegata a questo messaggio.
Allego inoltre il pacchetto da installare per la generazione vocale (pico2wave.deb).


Nell'immagine 3 di SWPI la libreria python-telegram-bot-3.4 è già installata; saltare quindi la parte relativa e passare all'installazione di pico2wave.deb e del bot stesso.

Chi invece sta usando la versione 2 deve fare così:



- sistema in rw

- copiare i files python-telegram-bot-3.4.tar e pico2wave.tgz in /home/pi


poi:

cd /home/pi

sudo apt-get update

sudo apt-get install libpopt-dev vorbis-tools



### INSTALLAZIONE LIBRERIA TELEGRAM (solo V.2)

tar -zxvf python-telegram-bot-3.4.tar.gz

cd python-telegram-bot-3.4

sudo python setup.py install



### INSTALLAZIONE SUPPORTO VOCALE (tutte le versioni)


tar -zxvf ./pico2wave.tgz

sudo dpkg --install ./pico2wave.deb



Se tutto è andato bene avremo installato il supporto per il bot. E' tempo di installare il bot stesso:

- decomprimere il file SWPIBot.zip in /swpi/plugins

- Modificare il file SWPIBot_ITA.py: incollare il token del proprio bot nella riga 172 del file, sovrascrivendo le 'xxxxxxxx' che ivi si trovano.


Riavviare SWPI e attendere una quindicina di secondi, quindi da Telegram inviare al proprio bot la parola 'sysadmin' (escluse virgolette).
A questo punto si è amministratore del bot e seguendo le istruzioni che trovate commentate nel file SWPIBot_ITA.py dovreste riuscire a farlo funzionare abbastanza facilmente. Altrimenti l'ufficio magagne è qui, sempre aperto. :lol:

Infine una nota: come già accennato il bot può essere messo in modalità "rispondo solo agli utenti autorizzati", oppure in modalità "accesso libero" (freeaccess). Se qualcuno lo lascia in quest'ultima modalità sarebbe -secondo me- carino se postasse in questo thread il nome del proprio bot, così da renderlo accessibile a chiunque lo desideri (tranquilli, i comandi amministratore (es.: reboot) NON sono accessibili agli utenti ma solo agli Admin :lol: :lol: :lol: )


Ciaoo

Nik (Seven)


EDIT 21/02/2017: Di seguito la versione 0.9.4, che arrotonda i valori di pressione e temperatura forniti da alcuni tipi di sensore a valori più 'umani' (sia la parte testuale che quella vocale) :P
A fine post invece le librerie citate e la versione 0.9.2 di SWPIBot, meno recente.
Per aggiornare da 0.9.2 a 0.9.4 basta sovrascrivere in /swpi/plugins il file SWPIBot_ITA.py, ma PRIMA ASSICURARSI DI ESSERSI COPIATI IL TOKEN in modo da poterlo incollare nel nuovo file.



File allegato:

Nome del file: SWPIBot.0.9.4.zip
Dimensione del file:11 KB





----
Ultima Modifica 7 Anni 9 Mesi fa da seven.
Ringraziano per il messaggio: tony, Bigo

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7650 da andreajvc
Risposta da andreajvc al topic Telegram Plugin
Ciao,
posso aggiungere queste informazioni sul wiki? se si, come posso farlo se il wiki mi dice che non ho i permessi per modificare le pagine?

Ciao e grazie per questo progetto!
Andrea

Si prega Accedi a partecipare alla conversazione.

  • ispanico
  • Avatar di ispanico
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa #7653 da ispanico
Risposta da ispanico al topic Telegram Plugin
Ciao, dove lo trovo il token? Grazie

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7654 da seven
Risposta da seven al topic Telegram Plugin
Ciao!

@andreajvc: devi chiedere a Tony che ti sblocchi l'accesso in editing al wiki.
Grazie a te, è un'ottima idea integrare il wiki!


@ispanico: devi cercare in Telegram l'utente BotFather (è lui stesso un bot!) ed inviargli il comando /newbot .
Ti chederà il nome che vuoi dare al bot che stai creando. Indicaglielo, poi lui ti chiederà l'username del nuovo bot (puoi usare lo stesso nome, ma dovrà terminare in _bot).

Ad esempio se il nome da te scelto per il tuo bot è "MioSWPIBot", potrai indicare come username "MioSWPIBot_bot".

Quello che apparirà nella lista degli utenti è il nome, mentre l'username è quello che contraddistinguerà il tuo bot a livello di sistema (per assurdo potresti usare come username "xfjlwergif5_bot" ma nell'elenco contatti vedresti come nome MioSWPIBot).

Se l'username da te scelto è disponibile ti risponderà che la creazione del bot è andata a buon fine e tra le altre cose ti dirà:

Use this token to access the HTTP API:
xxxXXxXXXxxxXXXXXX.....


dove al posto delle xxx ci sarà il tuo token. Quella è la "password" che dovrai inserire in swpibot.



Se invece l'username da te scelto non è disponibile dovrai ovviamente indicarne un altro finché non ne troverai uno libero.
Ultima Modifica 7 Anni 9 Mesi fa da seven.

Si prega Accedi a partecipare alla conversazione.

  • ispanico
  • Avatar di ispanico
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa #7655 da ispanico
Risposta da ispanico al topic Telegram Plugin
Ciao, grazie per la risposta, ottimo plugin, ti volevo chiedere se e possibile far inviare un messaggio dalla centralina ad una determinata condizione meteo, grazie

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7659 da andreajvc
Risposta da andreajvc al topic Telegram Plugin
Ciao Seven,
potresti far in modo che i dati di temperatura e pressione abbiano una sola cifra decimale? 10 cifre sono veramente troppe :)

Ciao e grazie,
Andrea

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7663 da seven
Risposta da seven al topic Telegram Plugin
@ispanico: grazie! E' una buona idea, ma penso converrà implementarla con un plugin ex-novo (magari chiamandolo EVENTI), perchè il plugin Telegram da sé non prende iniziative (come quelle che dovrebbe prendere in caso di eventi particolari), risponde soltanto all'input utente. Ci penso un po' e vediamo, potrebbe essere utile anche per interagire con altre funzioni di SWPI.


@andreajvc: non mi ero accorto della magagna perchè i sensori che utilizzo sputano fuori i dati coi decimali già giusti. Ho editato il primo post, verso la fine ho uppato la nuova versione 0.9.3 che arrotonda. Dimmi come va.

Ciaoo!
Ringraziano per il messaggio: ispanico

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7664 da andreajvc
Risposta da andreajvc al topic Telegram Plugin
Ciao Seven,
grazie per il supporto!
sto facendo prove a banco e sto usando come sensori un DHT22 e un BMP280. I dati comunicati dal bot vengono presi da quest'ultimo.
La risposta Dati del bot ora è perfetta, con un decimale per la temperatura e 2 decimali per la pressione.
Se riesci sarebbe da sistemare ancora la Voce che legge sempre 10 decimali :)
Ciao e grazie,
Andrea

Si prega Accedi a partecipare alla conversazione.

  • ispanico
  • Avatar di ispanico
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa #7665 da ispanico
Risposta da ispanico al topic Telegram Plugin
Ciao, grazie per la risposta, guardando in rete ho visto che non è difficile implementare il bot per fargli inviare i messaggi, volevo sapere se posso utilizzare il solito Token oppure bisogna crearlo un altro?, comunque questa sera provo a fare delle prove...

Si prega Accedi a partecipare alla conversazione.

  • ispanico
  • Avatar di ispanico
  • Visitatori
  • Visitatori
7 Anni 9 Mesi fa #7667 da ispanico
Risposta da ispanico al topic Telegram Plugin
Ho trovato una libreria chiamata telepot, con questa di può inviare messaggi, basta sapere id chat, non mi riesce a trovare L id della chat ,sapere come trovarlo?

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa - 7 Anni 9 Mesi fa #7669 da seven
Risposta da seven al topic Telegram Plugin
@andreajvc: hai ragione :P Uppata al solito posto la 0.9.4 che dovrebbe risolvere.


@ispanico: telepot in sé è appunto solo una libreria, così come python-telegram-bot, già installata se stai usando SWPIBot.

Se hai un minimo di dimestichezza con Python ti conviene secondo me partire da SWPIBot, visto che è già fatto, e vedere come funziona per poi modificarlo ed adattarlo alle tue esigenze.
Nel tuo caso specifico ti serve a mio avviso un thread separato che periodicamente confronti i parametri meteo con le soglie di segnalazione da te impostate e se vengono superate 'obblighi' il tuo Bot a comunicartelo.

Non è impossibile farlo all'interno di SWPIBot stesso, ma credo sia un 'lavoro' che conviene far fare ad un plugin pensato appositamente, esterno a SWPIBot.


Ti do' una dritta per fare qualche prova, creiamo un file python che ogni volta che lo lanci manda un messaggio al tuo ID Telegram (tu). Per prima cosa dobbiamo conoscere il tuo ID e per questo ci serviremo di SWPIBot : modifica SWPIBot.py,

esattamente sotto la riga 849 che inizia per:
txtmessage = (update.message.text).encode('utf-8') #<---


crea una riga nuova con questo comando (ripeto, SOTTO la precedente):

print update


Salva il file e riavvia SWPI. Se tutto è andato bene e SWPIBot è in esecuzione, tieni d'occhio la console di SWPI e scrivi qualcosa in Telegram al tuo bot: in console ti apparirà un (lungo) messaggio in formato json che contiene tra le altre cose il nome di chi ha inviato il messaggio (tu), il testo del messaggio e soprattutto il tuo ID.

Ora puoi creare un file python (con il sistema in rw) in /home/pi chiamandolo ad esempio test.py ed incolla al suo interno quanto segue:

#!/usr/bin/env python
# encoding: utf-8

import telegram

bot = telegram.Bot(token='xxxxxxxxxxxxxxxxxxxxxx')
ispanico = '12345678'
bot.sendMessage(ispanico, text='Ciao, sono il tuo splendido Bot!')


Ovviamente sostituisci le xxxx con il token del tuo bot, ed '12345678' con il tuo vero ID che avrai rilevato prima tramite SWPIBot.

Per lanciare il file usa 'python test.py', ogni volta che lo lancerai il tuo bot ti saluterà. :)
Ultima Modifica 7 Anni 9 Mesi fa da seven.
Ringraziano per il messaggio: andreajvc, ispanico

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7674 da andreajvc
Risposta da andreajvc al topic Telegram Plugin
Gli arrotondamenti di temperatura e umidità ora sono perfetti sia per i Dati che per la Voce, grazie!!!
Andrea
Ringraziano per il messaggio: seven

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 9 Mesi fa #7676 da seven
Risposta da seven al topic Telegram Plugin
Ottimo, grazie a te per il feedback!

Si prega Accedi a partecipare alla conversazione.

  • Campo
  • Avatar di Campo
  • Visitatori
  • Visitatori
7 Anni 6 Mesi fa #7850 da Campo
Risposta da Campo al topic Telegram Plugin
Ciao, ho provato per l'invio dell'ultima immagine della webcam e ci sono riuscito, unico problema l'anteprima non c'è sul mio server remoto, c'è un trucco per questo.
Per l'invio degli ultimi dati non riesco a scrivere il codice, non sono esperto in python, ho forse capito dove sono le righe che rispondono hai dati meteo, ma non so come richiamarle con il risponditore automatico.
ecco il codice per la webcam:
#!/usr/bin/env python
# encoding: utf-8
import telegram
bot = telegram.Bot(token='xxxxxxxxxxxxxxxxxxxxxx')
ispanico = 'xxxxxxxxxxxxx'
bot.sendMessage(ispanico, text= 'ecco l\'immagine \n www.cusighe.it/public/webcam/agg_camera_1.jpg ')

E' possibile che il messaggio venga inviato a tutti gli utenti del bot?

grazie a chiunque mi aiuta.

Si prega Accedi a partecipare alla conversazione.

Di più
7 Anni 1 Settimana fa #8004 da tony
Risposta da tony al topic Telegram Plugin
Seguendo gli ottimi lavori di Nicola e Roberto ho realizzato anche io un bot ma che fosse generale e per tutte le stazioni SWPI.

SintWindPI
@SintWindPI_bot

L'utilizzo dovrebbe essere chiaro e semplice.

TT

Si prega Accedi a partecipare alla conversazione.

Di più
6 Anni 8 Mesi fa - 6 Anni 8 Mesi fa #8180 da SkizZO
Risposta da SkizZO al topic Telegram Plugin
Ragazzi scusate, ma come faccio ad inserirlo anche in un gruppo?
Ho pensato che mi serve l'ID del gruppo, e potrei ricostruire il messaggio da inoltrare al bot per abilitarlo (mica il bot conserva anche "la richiesta del'utente" ?)

Sarebbe carino averlo in un gruppo;
Inoltre non c'è modo di fargli scattare la foto, anzichè prelevarla dal web o swpi?

Edit: Ho aggiunto con successo il bot al gruppo, impostandolo con /free, e disattivando la privacy mode del bot.

Tramite il comando nel gruppo:
#ciao#
Il bot mi ha risposto con il nome vuoto, ma con l'id gruppo (negativo)
Ho inoltrato il messaggio al bot e me lo ha aggiunto alla lista, ma non è modificabile (non ha nome, e l'ID non è cliccabile).

Ho impostato di nuovo il bot a /nofree e tutto va a meraviglia, ma vorrei risolvere la faccenda del nome, prima di popolare il db.....

Intanto ho fatto un plugin per SWPI che invia un messaggio telegram al gruppo quando il vento supera "1" (nodi, km/h, dipende da voi)... funziona alla grande, è da perfezionare perchè così com'è rompe le scatole ogni minuto.
Ultima Modifica 6 Anni 8 Mesi fa da SkizZO.

Si prega Accedi a partecipare alla conversazione.

Di più
6 Anni 8 Mesi fa - 6 Anni 8 Mesi fa #8186 da SkizZO
Risposta da SkizZO al topic Telegram Plugin
...vi aggiorno, ho corretto il nome vuoto nel file swpibot.db, ma ancora quando chiedo la lista degli utenti, l'ID gruppo non è tappabile... forse dipende dal fatto che è negativo.

Il plugin per avvisare del vento l'ho quasi finito, ecco la parte dedicata al config (scusate le e non accentate, ma dava errore anche se commentate... booo ;)
###########################   VARIABILI DA EDITARE     ##################################################

bot = telegram.Bot(token='5Y') # tokenbot
gruppotelegram = '-' # ID  gruppo o utente da avvisare
winddiroffset = 0 # se hai impostato una correzione della direzione sulla centralina (usa i gradi per impostare l'alert )
windalert = 12 # velocita minima del vento per ALERT
winddelta = 2 # delta vento applicato a windalert per calcolare SOLO se STA aumentando o diminuendo (riduce comunicazioni bot, non su confronto ON/OFF vento)
numletture = 5 #numero letture consecutive "giuste" prima di inviare gli alert (riduce comunicazioni bot)
directions = ['SSW','SW','WSW','W','WNW','NW','NNW'] # direzioni ammesse per ALERT; disattiva con ["Z"]; tutte le direzioni: ['N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW']
dirdegrees = [1000,2000] # range in gradi direzione vento, da impostare se hai un offset della direzione, al posto di directions (da lasciare Z); per tutte le dir [0,360]
Ultima Modifica 6 Anni 8 Mesi fa da SkizZO.

Si prega Accedi a partecipare alla conversazione.

Tempo creazione pagina: 1.005 secondi