ラズベリーパイ – 新しいメールとカレンダーの予定を通知する

Hace tiempo que quería pasaros un par de scripts que suelo usar para que una Raspberry Pi que tengo conectada a un altavoz me hable; en este documento únicamente veremos cómo configurar la Pi para que nos hable por el altavoz y nos diga si hemos recibido algún correo electrónico, y si es así nos indicará el remitente y el asunto del correo; así como si tenemos alguna cita en el calendario en los próximos 5 議事録, nos lo recordará por el altavoz!

Raspberry Calendario Mail 01 ブハラ

 

Convirtiendo el texto en voz,

Empezamos montando el sistema que nos hablará, mediante un conversor de texto a voz, un Text-to-Speech (TTSの) usaremos el sintetizador de voz ‘festival’, lo instalaremos en nuestra Raspberry Pi, que es compatible con cualquier idioma, posteriormente nos bajaremos los dífonos en castellano desde la forja de guadalinex, tendremos dos voces, una femenina (Silvia) y otra masculina (Pedro), cada cual que use la que más le guste 😉

 

Instalamos festival en nuestras Raspberry Pi:

[ソースコード language=”平地”]sudo apt-get -y install festival[/ソースコード]

Si queremos usar&アンプ;nbsp;la salida 3,5 del jack de audio para el sonido en vez del HDMI ejecutaremos:

[ソースコード language=”平地”]amixer cset numid=3 1[/ソースコード]

 

Será interesante poner bien el volumen que queremos oir, y grabamos los cambios:

[ソースコード language=”平地”]alsamixer
sudo alsactl store[/ソースコード]

 

悪くありません, ahora descargaremos los idiomas que nos interesen, poner el que queráis, os dejo en orden primero voz femenina y el otro la masculina. Además los instalamos e indicamos en el fichero de configuración cual usar:

[ソースコード language=”平地”]
wgetのhttps://github.com/guadalinex-archive/hispavoces/raw/master/packages/festvox-sflpc16k_1.0-1_all.deb
wgetのhttps://github.com/guadalinex-archive/hispavoces/raw/master/packages/festvox-palpc16k_1.0-1_all.deb
sudo dpkg -i festvox-sflpc16k_1.0-1_all.deb
sudo dpkg -i festvox-palpc16k_1.0-1_all.deb
sudo vim /etc/festival.scm [/ソースコード]

 

Al final añadimos la que nos interese, y comentamos las demás:

[ソースコード language=”平地”];(set! voice_default ‘voice_JuntaDeAndalucia_es_pa_diphone)
(set! voice_default ‘voice_JuntaDeAndalucia_es_sf_diphone)[/ソースコード]

 

Y ya podremos probar a convertir un texto en audio con:

[ソースコード language=”平地”]echo Hola manolo que tal estas | festival –TTSの[/ソースコード]

 

興味があれば, podremos generar un script que al ejecutarlo con un parámetro nos lea dicho parámetro, más útil para luego llamarlo desde otros scripts, en mi caso le llamotextoAvoz.sh’:

[ソースコード language=”平地”]エコー $1 | festival –TTSの[/ソースコード]

 

Leer calendario desde la Raspberry Pi,

Si queremos leer nuestro calendario, la mejor experiencia la he tenido con ‘gcalcli’, ya que se puede gestionar cualquier calendario, podremos agregar tantos calendarios a nuestra cuenta de Gmail que nos interesen, sean de nuestros Exchange u otros sistemas, así como suscribirnos a calendarios que nos interesen

 

Instalamos gcalcli o Google Calendar Command Line Interface:

[ソースコード language=”平地”]sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
sudo pip install gcalcli[/ソースコード]

 

インストールしたら, ejecutaremos el siguiente comando para obtener la URL que nos permita obtener el código de activación y darle permisos en nuestra cuenta de Gmail. Ejecutamos el siguiente comando y abrimos la URL en un navegador, pegaremos el código y listo!

[ソースコード language=”平地”]gcalcli listnoauth_local_webserver[/ソースコード]

 

Probamos a ver si vemos los calendarios de nuestra cuenta:

[ソースコード language=”平地”]gcalcli list[/ソースコード]

 

Y probamos a que nos muestre si tenemos eventos en los próximos 15 議事録:

[ソースコード language=”平地”]gcalcli remind 15 ‘echo %s'[/ソースコード]

 

Creamos el siguiente scriptlee_calendario.sh’ そしてそれを実行可能にします:

[ソースコード language=”平地”]
#!/ビン/バッシュ

CITA=`/usr/local/bin/gcalcli remind 4 ‘echo %s’ –cal=Personal`
echo $CITA

もし [ "$CITA" == "" ]; そうしたら
echo "No hay citas"
然も無くば
echo "Hay citas"
HORA=$(cut -c-7 &アンプ;中尉;&アンプ;中尉;&アンプ;中尉; "$CITA")
echo $HORA
ASUNTO=${CITA:7:1000}
FRASE1="Hector, en cinco minutos, で "
FRASE2=" acuerdate de "
FRASE="$FRASE1 $HORA $FRASE2 $ASUNTO"
echo $FRASE
echo $FRASE | /usr/bin/festival –TTSの
FIの
[/ソースコード]

そして、私たちはそれを実行しようとしました!

[ソースコード language=”平地”]./lee_calendario.sh[/ソースコード]

Lo ponemos en crontab para que se ejecute cada 5 minutos y listo!

[ソースコード language=”平地”]*/5 * * * * /home/pi/lee_calendario.sh[/ソースコード]

Leer el mail desde la Raspberry Pi,

Con este sencillo script de python podremos obtener los mails no leidos mediante una conexión IMAP a nuestro servidor de correo, nos leerá el remitente y el asunto de cada correo. Creamos el archivo ‘lee_mail.py’:

[ソースコード language=”平地”]
import imaplib
from email.header import decode_header

mail = imaplib.IMAP4_SSL(‘FQDN_SERVIDOR_CORREO’)
mail.login(‘USUARIO@DOMINIO’, ‘CONTRASEÑA’)
mail.select(‘INBOX’, readonly=True)
typ, new = mail.search(何一つ, "UNSEEN")
new = new[0].割る()

len の場合(新機能) > 1:
Mails = ‘Tienes ‘ + str(レン(新機能)) + ‘ correos nuevos
import サブプロセス
subprocess.call を呼び出します。(["/home/pi/textoAvoz.sh", メール])
elif len(新機能) == 1:
Mails = ‘Tienes un correo nuevo
import サブプロセス
subprocess.call を呼び出します。(["/home/pi/textoAvoz.sh", メール])

もし (レン(新機能) > 0):
res = list()
res1 = list()
for msg in new:
typ, data = mail.fetch(メッセージ(Msg), ‘(BODY[HEADER.FIELDS (SUBJECT)])’) # 差出人, 日付, 等
data = data[0][1].strip()
decoded = decode_header(日付[9:])[0] # "Subject: " です 9 characters long
text = decoded[0].取り替える("\r\n", "")
もし (decoded[1] != None):
text = unicode(テキスト, decoded[1])
res.append(text.encode(‘utf-8’))

typ, data1 = mail.fetch(メッセージ(Msg), ‘(BODY[HEADER.FIELDS (差出人)])’) # 差出人, 日付, 等
data1 = data1[0][1].strip()
Arroba = data1.index(‘<‘)
decoded1 = decode_header(data1[6:Arroba-1])[0] # "Subject: " です 9 characters long
text1 = decoded1[0].取り替える(‘"’, "")
もし (decoded1[1] != None):
text1 = unicode(text1, decoded1[1])
res1.append(text1.encode(‘utf-8’))
text1 = unicode(text1)
text = unicode(テキスト)
import unicodedata
text1output = unicodedata.normalize(‘NFKD’, text1).encode(‘ascii’,’ignore’)
textoutput = unicodedata.normalize(‘NFKD’, テキスト).encode(‘ascii’,’ignore’)
Texto = ‘"Correo de ‘ + text1output + ‘, con asunto: ‘ + textoutput + ‘"
プリント (テキスト)
import サブプロセス
subprocess.call を呼び出します。(["/home/pi/textoAvoz.sh", テキスト])
[/ソースコード]

Recordamos hacerlo ejecutable, ponerlo en el cron igualmente si nos interesa con la programación que nos interese.

Fácil y sencillo cómo saber si tenemos citas en el calendario o mails y queremos que una dulce voz nos lo indique! Espero que lo disfrutéis!

おすすめの投稿

著者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 私に連絡することを躊躇しないでください, できる限りお手伝いします, シェアリングは生きていること ;) . ドキュメントを楽しむ!!!