Introducción a python científico


Muchas áreas de carácter científico-técnico la adecuada elección del software y/o lenguaje de programación empleado es determinante, de cara a la potencia, versatilidad, facilidad de uso y acceso por parte de todos los usuarios en sus propios dispositivos, de manera generalizada y gratuita.

Dentro del software libre, uno de los que últimamente ha tenido una mejora sustancial, con la inclusión de potentes y versátiles nuevos módulos de cálculo simbólico (SymPy), numérico (NumPy, SciPy) y gráfico (PyPlot y Matplotlib) ha sido sin duda Python, y de ahí su vertiginosa evolución y expansión a nivel mundial, no sólo en el ámbito académico, sino también en el científico e industrial. De hecho, basta con echar un vistazo a las numerosas propuestas, tanto de comunidades de desarrolladores como de empresas privadas, surgidas a raíz de la versión de base inicial de Python, como por ejemplo IPython (interface interactivo de fácil uso, que gracias a Jupyter Notebook permite una versión HTML similar a los notebooks de Mathematica o Mapple) o Spyder (entorno integrado para cálculo científico parecido al de Matlab u Octave).

Por otro lado existen versiones completas de desarrollo, integrando Python como soporte de cálculo, pero con editores avanzados de texto para la programación y la depuración de código, ventanas de gráficos y datos, etc. La mayoría de estas plataformas integradas están disponibles para los distintos sistemas operativos Linux, MacOS X y Windows. Entre ellas cabría destacar Enthought Python Distribution (EPD), PyCharm y Anaconda CE (de Continuum Analytics).

Aunque no podamos abarcar todos los aspectos «básicos» del python científico, intentaremos en este resumen dar una idea de las principales librerías un funciones que podemos usar para NILM (Non-Intrusive Load Monitoring) sin olvidar los fundamentos de :Matplotlib y Numpy

Matplotlib: visualización con Python 

Matplotlib es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python haciendo que las cosas fáciles sean fáciles y las difíciles posibles.

Nos permite crear :

  • Desarrollando gráficos de calidad de publicación con solo unas pocas líneas de código
  • Utilizando figuras interactivas que puedan hacer zoom, desplazarse, actualizar …

Personalizar

  • Tomando el control total de los estilos de línea, las propiedades de la fuente, las propiedades de los ejes …
  • Exportando e incrustando en varios formatos de archivo y entornos interactivos

Ampliar

  • Explorando la funcionalidad personalizada proporcionada por paquetes de terceros
  • Obteniendo más información sobre Matplotlib a través de los numerosos recursos de aprendizaje externos

Matplotlib es en resumen la librería de python para dibujar (equivalente al plot en matlab).

Puede encontrar mas información en el sitio oficial https://matplotlib.org/

Numpy

NumPy es una biblioteca para el lenguaje de programación Python que da soporte para crear vectores y matrices grandes multidimensionales, junto con una gran colección de funciones matemáticas de alto nivel para operar con ellas.

Numpy es pues una librería especializada para operaciones con matrices y vectores

Puede encontrar mas información en l sitio oficial https://numpy.org/

La imagen tiene un atributo ALT vacío; su nombre de archivo es image-11.png

Primeros pasos

Primero, es necesario importarlas al workspace

import numpy as np
import matplotlib.pyplot as plt

Opciones de visualizacion de matplotlib para un notebook

%matplotlib inline
plt.rcParams['figure.figsize'] = (13, 6)
plt.style.use('ggplot')

Otras importaciones:

import warnings
warnings.filterwarnings('ignore')

Crear arrays en python es muy sencillo y se puede hacer de forma nativa usando un tipo list. Sin embargo, aquí consideramos arrays del tipo numpy pues esto arrays incluyen funciones que facilitan las operaciones matemáticas y su manipulación

v=[1,2,3] # tipo list
v=np.array([1,2,3]) # array numpy
print (v)
print ("Dimensiones: " + str(v.ndim)) # numero de dimensiones
print ("Elementos: " + str(v.size)) # numero de elementos
print ("Longitud de las dimensiones: " + str(v.shape)) # longitud de cada dimensión
[1 2 3]
Dimensiones: 1
Elementos: 3
Longitud de las dimensiones: (3,)

Crear una matriz de 2 x 3:

v=np.array([[1,2,3], [4,5,6]])
print (v)
print ('Dimensiones: ' + str(v.ndim)) # numero de dimensiones
print ('Elementos: '+str(v.size)) # numero de elementos
print ('Longitud de las dimensiones: '+str(v.shape)) # longitud de cada dimensión
[[1 2 3]
 [4 5 6]]
Dimensiones: 2
Elementos: 6
Longitud de las dimensiones: (2, 3)

Crear una Matriz triple de 2 x 3 x 2 :

v=np.array([[[1,2], [3,4]],[[5,6],  [7,8]]])
print (v)
print ("Dimensiones: " + str(v.ndim)) # numero de dimensiones
print ("Elementos: "+str(v.size)) # numero de elementos
print ("Longitud de las dimensiones: "+str(v.shape) )# longitud de cada dimensión

[[[1 2], 
      [3 4]],

 [[5 6], 
      [7 8]]]
Dimensiones: 3
Elementos: 8
Longitud de las dimensiones: (2, 2, 2)

Utilizamos la función reshape para redimensionar los arrays

1 dimension

print (v.reshape(8,))
[1 2 3 4 5 6 7 8]

2 dimensiones

print (v.reshape(2,4))
[[1 2 3 4]
 [5 6 7 8]]

Matriz Identidad de 5×5

print (np.identity(5))
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]

Matriz de unos de 5×5

print ( np.ones([5,5]))
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]

Matriz de ceros de 5×5:

print (np.zeros([5,5]))
[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]

Las operaciones por definición son elementwise

a=np.arange(5)
b=10*np.ones(5)
print ("vector a: "+str(a))
print ("vector b: "+str(b))
print ("suma b+a: "+str(b-a))
print ("resta b-a: "+str(b+a))
print ("producto b*a: "+str(b*a))
vector a: [0 1 2 3 4]
vector b: [10. 10. 10. 10. 10.]
suma b+a: [10.  9.  8.  7.  6.]
resta b-a: [10. 11. 12. 13. 14.]
producto b*a: [ 0. 10. 20. 30. 40.]

El producto de los vectores es:

a.dot(b)
100.0

Para las matrices tenemos que:

a=np.identity(3)
b=np.array([[1,2,3],[4,5,6],[7,8,9]])
print ("matriz a:\n"+str(a))
print ("matriz b:\n"+str(b))
print ("producto a*b:\n"+str(a.dot(b)))
print ("producto elementwise a.*b:\n"+str(a*b))
matriz a:
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
matriz b:
[[1 2 3]
 [4 5 6]
 [7 8 9]]
producto a*b:
[[1. 2. 3.]
 [4. 5. 6.]
 [7. 8. 9.]]
producto elementwise a.*b:
[[1. 0. 0.]
 [0. 5. 0.]
 [0. 0. 9.]]

Vector formado por un rango de valores:

print ("De 0 a 10: " + str(np.arange(10)))
print ("De 10 a 20 de paso 0.5: "+str(np.arange(10,20,0.5)))
De 0 a 10: [0 1 2 3 4 5 6 7 8 9]
De 10 a 20 de paso 0.5: [10.  10.5 11.  11.5 12.  12.5 13.  13.5 14.  14.5 15.  15.5 16.  16.5
 17.  17.5 18.  18.5 19.  19.5]

Función linspace:

np.linspace(0,2*np.pi,10) # de 0 a 2*pi en 10 puntos equidistantes
array([0.        , 0.6981317 , 1.3962634 , 2.0943951 , 2.7925268 ,
       3.4906585 , 4.1887902 , 4.88692191, 5.58505361, 6.28318531])

función random:

np.random.rand(10)
array([0.63623588, 0.83924558, 0.35833155, 0.33835148, 0.53247758,
       0.0950348 , 0.2805706 , 0.47285484, 0.8696919 , 0.78361161])

Dibujar una función seno

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
plt.plot(t, s)
plt.xlabel('time (s)')
plt.ylabel('voltage (mV)')
plt.title('Sinusoidal')
plt.grid(True)

Dibujar una función chirp

x=np.linspace(0,3*np.pi,500)
plt.plot(x,np.sin(x**2))
plt.title("A simple chirp")
Text(0.5, 1.0, 'A simple chirp')

Definir una función en Python

En python, las funciones pueden estar definidas en cualquier parte pero siempre antes de su llamada. En python, las anidaciones (bucles, if conditions, functions, etc.) se realizan mediante indentación, no existe el statement end. Las funciones se definen así:

def funcion_suma(x): 
    suma=0
    for i in x: 
        suma=suma+i
    return suma 
v=np.arange(10)
print (funcion_suma(v))
45

Aunque, como hemos dicho antes, numpy facilita las operaciones matemáticas y ya incluye una serie de operaciones:

print (v.sum())
print (v.cumsum())
print (v.mean())
45
[ 0  1  3  6 10 15 21 28 36 45]
4.5

Para saber más sobre numpy:

https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

http://www.sam.math.ethz.ch/~raoulb/teaching/PythonTutorial/intro_numpy.html

(O simplemente «googleando»: numpy tutorial)

Pandas

Pandas (Python Data Analysis Library) es una librería de python para el análisis y manipulación de una gran cantidad de datos. También facilita el uso de «timeseries»

La llamada a la librería es:

import pandas as pd

Dado un archivo csv, la función read_csv carga los datos en un dataframe

# El parámetro parse_dates indica a pandas que al cargar este csv la primera columna [0] es de tipo datetime
df=pd.read_csv('data/events.csv',parse_dates=[0])

Las primeras N filas del dataFrame se puede visualizar de la siguiente forma

N=4
df.head(N)
timestamplabelphase
02011-10-20 12:22:01.473111A
12011-10-20 12:37:40.507111A
22011-10-20 13:23:55.390111A
32011-10-20 13:39:08.157111A

Y las N últimas columnas

df.tail(N)
timestamplabelphase
24812011-10-27 12:57:17.079111A
24822011-10-27 13:10:45.112111A
24832011-10-27 13:54:08.862111A
24842011-10-27 14:07:21.612111A

Podemos filtar por un cierto valor

df[df.phase=='B'].head()
timestamplabelphase
122011-10-20 15:45:54.590204B
132011-10-20 15:47:31.223204B
142011-10-20 16:09:00.424204B
182011-10-20 17:42:00.657155B
192011-10-20 17:42:04.407157B

Y hacer agrupaciones

df2=df.sort_values(['label','phase']).groupby(['label','phase']).count()
df2
timestamp
labelphase
101B26
102B25
103B24
108A16
111A619
1125A1
1126A1
1127A1
1200A1
1201A1

161 rows × 1 columns

Las nuevas columnas se crean fácilmente. Compatible con numpy.

df['x']=25*np.random.rand(len(df))
df['y']=100*np.sin(2*np.pi*np.linspace(0,2*np.pi,len(df)))
df['z']=df.x+df.y
df.head(5)
timestamplabelphasexyz
02011-10-20 12:22:01.473111A0.0167760.0000000.016776
12011-10-20 12:37:40.507111A5.6400571.5892417.229298
22011-10-20 13:23:55.390111A5.6322523.1780818.810333
32011-10-20 13:39:08.157111A9.2871414.76611914.053259
42011-10-20 14:25:51.473111A9.3135696.35295215.666521

Para dibujar sólo necesitamos usar la función plot

df.z.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e3ba88080>

Existen ciertas funciones predefinidas que facilitan los cálculos

df.z.cumsum().plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e3b801e80>

Y se pueden concatenar

# Si integramos y derivamos obtenemos la misma señal
df.z.cumsum().diff().plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e32625320>

Unas de las herramientas más potentes de pandas es la manipulación de timeseries

df.index=df.timestamp
df.z.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e325e6518>

Podemos filtar por fechas

d1='2011-10-21'
d2='2011-10-23'
df[(df.index>d1)&(df.index<d2)].z.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e325d5588>

Existe una gran flexibilidad a la hora de resamplear un dataframe

# Cada día 
df.resample('1D',how='sum')
labelxyz
timestamp
2011-10-20233182044.60316112047.56801914092.171180
2011-10-21507894364.168081-4531.116500-166.948419
2011-10-221356456971.7315141811.9787858783.710300
2011-10-231021845445.726210-4029.5292421416.196968
2011-10-24462593554.5631237284.89716310839.460286
2011-10-25525523933.715959-4712.890577-779.174618
2011-10-26590843503.958137-7682.254604-4178.296467
2011-10-27181921325.9193697454.6146868780.534055
# Cada 6 horas
df.resample('6H',how='count')
timestamplabelphasexyz
timestamp
2011-10-20 12:00:00373737373737
2011-10-20 18:00:00135135135135135135
2011-10-21 00:00:00160160160160160160
2011-10-21 06:00:00676767676767
2011-10-21 12:00:00262626262626
2011-10-21 18:00:00828282828282
2011-10-22 00:00:00242424242424
2011-10-22 06:00:00107107107107107107
2011-10-22 12:00:00215215215215215215
2011-10-22 18:00:00203203203203203203
2011-10-23 00:00:00636363636363
2011-10-23 06:00:00646464646464
2011-10-23 12:00:00737373737373
2011-10-23 18:00:00237237237237237237
2011-10-24 00:00:00363636363636
2011-10-24 06:00:00393939393939
2011-10-24 12:00:00494949494949
2011-10-24 18:00:00162162162162162162
2011-10-25 00:00:00333333333333
2011-10-25 06:00:00919191919191
2011-10-25 12:00:00373737373737
2011-10-25 18:00:00152152152152152152
2011-10-26 00:00:00232323232323
2011-10-26 06:00:00616161616161
2011-10-26 12:00:00161616161616
2011-10-26 18:00:00196196196196196196
2011-10-27 00:00:00363636363636
2011-10-27 06:00:00555555555555
2011-10-27 12:00:00666666

Para aprender más sobre pandas:

http://pandas.pydata.org/pandas-docs/stable/tutorials.html

http://pandas.pydata.org/pandas-docs/stable/10min.html

Detector de eventos

Vamos a crear un detector de eventos.

Dado el consumo eléctrico de una vivienda (voltage y corriente) queremos detectar en que momento se produce una conexión de un dispositivo. Para ello, filtraremos la señal sinusoidal obteniendo el valor eficaz de la corriente cada cierto intervalo. Los cambios en el valor eficaz van a determinar las conexiones y desconexiones de los distintos dispositivos. Derivando este valor eficaz, obtenemos picos en los que existe un cambio en el valor eficaz y, por lo tanto, posibles candidatos a eventos de conexión/desconexión. Finalmente, usando un detector de picos filtraremos los eventos reales del resto.

Mediremos nuestros resultados usando métricas estándar de NILM.

Paso por paso

Importar pandas, numpy y matplotlib tal y como se ha visto anteriormente

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Definir una funcion llamada rms_function que devuelva un valor rms y que tenga como parámetro de entrada un vector de valores

# función rms 
def rms_function(x): 
    return np.sqrt(np.mean(np.square(x)))

Usar el siguiente path para cargar los datos en un dataframe df de pandas. Como parámetros: el índice es la columna 0 (index_col) y la fecha está en la columna 1 (parse_dates)

path='data/smart_meter_data.csv'
df= ...
path='data/smart_meter_data.csv'
df=pd.read_csv(path, parse_dates=[1],index_col=[0])

Mostrar las 5 primeras columnas del dataframe

df.head(5)
datetimeivlabelappl_namephase
02011-10-20 12:21:58.9730000.444955159.194375111RefrigeratorA
12011-10-20 12:21:58.9730830.402501160.677554111RefrigeratorA
22011-10-20 12:21:58.9731660.444955161.845163111RefrigeratorA
32011-10-20 12:21:58.9732491.102993163.107443111RefrigeratorA
42011-10-20 12:21:58.9733321.952074164.243495111RefrigeratorA

Imprimir mínimo y máximo de datetime y la diferencia de ambos

print (df.datetime.min())
print (df.datetime.max())
print (df.datetime.max()-df.datetime.min())
2011-10-20 12:21:58.973000
2011-10-20 12:23:03.713996
0 days 00:01:04.740996

Seleccionar datetime como índice del dataframe df

df.index=df.datetime

Periodo y frequencia de muestreo

# frecuencia
ts=df.datetime.diff().mean().total_seconds()
print (str(ts)+' seconds')
fs=1/ts
print ( str(fs)+' Hz')
8.3e-05 seconds
12048.192771084337 Hz

Dibujar Voltage (v) haciendo zoom en el intervalo de 100ms (6 periodos aproximadamente)

d1='2011-10-20 12:22:29.9'
d2='2011-10-20 12:22:30'
df[(df.index>d1)&(df.index<d2)].v.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e2b9f86d8>
df.i.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e2e274d30>

Resamplear mediante la función resample de pandas a 50ms (’50L’). La función rms_function se pasará como parámetro para obtener cada valor del resampleado. El resultado debe de guardarse en un dataframe nuevo llamado rms . Dibujar el resultado.

rms=pd.DataFrame(df.i.resample(....))
rms=pd.DataFrame(df.i.resample('50L',how=rms_function))
rms.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e2f8848d0>

Hacer la derivada del dataframe rms y guardar el resultado en rms_diff.

rms_diff=rms.diff()

Dibujar el resultado (rms_diff)

rms_diff.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e2f7f9fd0>

Guardar los valores de la columna «i» en una variable «y» en forma de array

y=rms_diff.i.values
Modifica los parámetros th_noise y dist de la función detect_peaks para obener los índices de los eventos y evaluar las métricas. Realizar el proceso 3 veces. ¿ Con qué valores de th_noise y dist se obtienen mejores resultados en las métricas?
th_noise=5
dist=5
from detect_peaks import detect_peaks
indexes=detect_peaks(y,mph=th_noise,mpd=dist)
dates=rms_diff.ix[indexes].index

Cuantos eventos hemos detectado

print (str(len(indexes))+' eventos detectados')
8 eventos detectados

Dibujamos los eventos y la corriente en una misma gráfica

plt.vlines(dates,-80,80)
df.i.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x7f6e2f79ca58>

Métricas

from IPython.display import Image
Image(filename='metricas1.png')
Image(filename='metricas2.png')

Obtener las métricas: recall, precision y F1

FP=0.
P=9.
N=len(df)-P
TN=N-FP
P=9.
N=len(df)-P
TP=8.
FP=0.
FN=1.
TN=N-FP
recall=TP/(TP+FN)
precision=TP/(TP+FP)
F1=2*precision*recall/(precision+recall)
print (recall)
print (precision)
print (F1)
0.8888888888888888
1.0
0.9411764705882353

*Parámetros optimizados: * th_noise=0.1 y dist=5

*Con esto obtenemos : * recall=1, precision=1 y F1=1;

Cómo resucitar un Pebble


El Pebble fue un reloj inteligente que presume de ser uno de los primeros relojes inteligentes que usaba pantalla de tinta electronica (primero en tonos de grises y luego mas adelante con pantalla a color ).

Este pionero reloj inteligente fue desarrollado por Pebble Technology Corporation, empresa que por cierto recaudó U$ 10.3 millones de dólares a través de una campaña de crowfonding (micromecenazgo) en Kickstarter; la cual comenzó el 11 de abril de 2012 y finalizó el 18 de mayo de 2012.

Todos los relojes Pebble podían conectarse a teléfonos tanto Android como iOS para mostrar notificaciones del teléfono ( mensajes de texto , llamadas entrantes, entradas en redes sociales ,etc ) desde la propia pantalla del reloj a modo de segunda pantalla.

En su momento existia una tienda de aplicaciones distribuia apps compatibles con Pebble de terceros desarrolladores tales como ESPN, Uber, Runkeeper y GoPro.

La empresa Best Buy inició la venta del reloj inteligente Pebble en julio del 2013 y este se agotó a los cinco días de iniciada la venta.Asimismo este reloj se siguió vendiendo en otras tiendas físicas así como en el sitio de Amazon a nivel global . Tal fue el exito del reloj que el 31 de diciembre de 2014 Pebble había alcanzado la venta de un millón de relojes inteligentes. En el 2015 Pebble lanzó al mercado el Pebble Time y el Pebble Time Steel en Kickstarter, recaudando U$ 20.3 millones de dólares de más de 75.000 patrocinadores; rompiendo récords de recaudación para ambos productos. En el 2016 Pebble canceló la fabricación del Peeble Time 2 y reembolsó a sus patrocinadores; citando problemas financieros.

El 7 de diciembre de 2016, Pebble anunció el cierre del compañía y que por tanto no proveería soporte oficial ni garantía a ningún dispositivo existente.​ Tanto la fuerza laboral como la propiedad intelectual de Pebble fueron adquiridas por Fitbit, una empresa de tecnología corporal especializada en fitness. El 14 de diciembre de 2016 se publicó el blog Pebble Dev para aclarar el cronograma de transición y los esfuerzos por hacer a Pebble OS y sus apps auto suficientes.​ La compra de Pebble Technology Corp. por parte de Fitbit se completó en diciembre de 2016 por un valor de U$ 23 millones de dólares. ​ Desgraciadamente Fitbit no tubo ningún interés en continuar con la fabricación y venta del smartwatch Pebble y este fantástico reloj fue abandonado a su suerte y actualmente no esta disponible la tienda de aplicaciones no hay posibilidad de ninguna actualización desde sus sitios «originales oficiales», pero afortunadamente existen opciones que vamos a a ver en este post.

ideas para poner en marcha un viejo Pebble

Por qué Rebble Web Services?

Parte de la inteligencia del Pebble se incorporaba al reloj y parte de ella se entregaba a través de servicios web. Originalmente, estos servicios web eran proporcionados por Pebble Technology, Corp. Sin embargo, Pebble Technology, Corp. detuvo sus operaciones y, después de algún tiempo, estos servicios web también desaparecieron. , lo cual hizo que los Pebble no funcionase dejandolo casi como un relojjnormal, pues las cosas que antes eran posibles, ya no son posibles. ¿Es hora de deshacerse de su Pebble ?

Pues no gracias a The Rebble Alliance que ha creado Rebble Web Services, para llenar el vacío dejado por la desaparición de Pebble Technology, Corp. La mayoría de los servicios que han desaparecido tienen reemplazos ahora. Sin embargo, hay una cosa que The Rebble Alliance no puede hacer: cambiar todos los Pebble para que utilicen los servicios web de Rebble. Esto necesita alguna acción por parte del usuario. No se preocupe porque vamos a ver cómo hacerlo …

Introducción a los servicios web de Rebble

Entonces, si tiene un reloj Pebble y quiere volver a comenzar a usarlo. ¡pues veamos como reanimarlo!

iOS

Primera parte: conecte el reloj al teléfono.

Nota: puede omitir esta parte si ya es usuario de Pebble. En su lugar, debe verificar si tiene la última versión de la aplicación Pebble instalada en su teléfono.

  • Conecte su Pebble al cable de carga USB enchufado. ¡Realmente no querrás que pierda energía en medio de una actualización de firmware! El reloj se enciende. Presione el botón izquierdo para cerrar la pantalla de carga.
  • Si ahora ve una esfera de reloj, significa que su Pebble todavía está configurado, tal vez por el propietario anterior, tal vez por usted. Si lo usó antes, ahora es el momento de anotar las carátulas del reloj y las aplicaciones que desea reinstalar después de que finalice este procedimiento.
  • Si ve un reloj, presione el botón central derecho, vaya a Configuración , luego a Sistema y elija Restablecimiento de fábrica . Esto puede tardar unos minutos.
  • Obtenga su iPhone e instale la aplicación Pebble de la tienda de aplicaciones . Luego, abre la aplicación.
  • Serás recibido por una página de Pebble Account . Simplemente toque Omitir en la esquina superior izquierda para continuar.
  • Elija su idioma para la entrada de voz.
  • Elige el tipo de Pebble que tienes. iOS luego solicita permiso para usar Bluetooth, toque Aceptar .
  • La aplicación comienza a buscar Guijarros cercanos. En breve debería ver su Guijarro, como Guijarroxxxx . Esta misma cuerda se puede ver en el Pebble, por lo que sabe que el teléfono ve el reloj correcto. Tócalo.
  • El reloj pide emparejarse. Presione el botón superior derecho. Toque Emparejar en el teléfono.
  • Si el Pebble tiene un firmware antiguo, ahora se actualizará automáticamente. Mantenga el reloj en el cable de carga y cerca del teléfono. Esto tardará unos minutos en completarse, después de eso, el reloj se reiniciará.
  • En la aplicación Pebble, elija el idioma de los menús, notificaciones y mensajes del reloj.
  • Muchos Pebbles necesitan usar una segunda conexión Bluetooth. Si tiene uno de esos, la aplicación ahora le pide que vuelva a emparejar el reloj. Toque Habilitar , presione el botón superior derecho del reloj para emparejar y toque emparejar en el teléfono.
  • Toque otorgar acceso y toque aceptar si desea que las notificaciones de su teléfono se envíen a su reloj.
  • Toque otorgar acceso y toque aceptar siempre si desea que su reloj y sus aplicaciones sepan dónde se encuentra.
  • Toque otorgar acceso y toque aceptar si desea que los elementos del calendario de los próximos días aparezcan en su reloj.
  • Si tiene un Pebble Time o más reciente: para habilitar la salud, toque Habilitar . Luego, toca Aceptar .
  • Si tienes un Pebble Time o más reciente: elige tu configuración de salud, luego toca Continuar , luego ingresa tu información y toca Completar .
  • Ya terminaste. Bueno, la parte de Pebble está lista. Toque listo .

Parte dos: conecte la aplicación Pebble a Rebble Web Services.

  • En el teléfono, abre la aplicación Pebble, toca Configuración , Ayuda y ACTUALIZA TU PEBBLE para asegurarte de que tu Pebble tenga el firmware más reciente.
  • En el teléfono, abra Safari y vaya a auth.rebble.io .
  • Se le recibe con varias formas de iniciar sesión. Elija una e inicie sesión. ¡ Recuerde sus credenciales de inicio de sesión! Volverá al sitio de Rebble y le dará la bienvenida. ¡ Ya está todo listo! Lea la página, luego toque el enlace Comenzar ahora en el primer párrafo.
  • Se le redirige a boot.rebble.io y se le saluda con ¡ Aquí vamos! Lea la página, luego toque el botón para cambiar a Rebble . Safari te pregunta si quieres abrirlo con Pebble. Toque Abrir .
  • Se abre la aplicación Pebble y muestra un cambio de configuración emergente . Toque Cambiar .
  • Ahora, espere al menos 15 segundos antes de continuar con el siguiente paso.
  • Mientras tanto, en la esquina superior izquierda, apareció un signo de exclamación amarillo. Tócalo.
  • Llega a una pantalla titulada Correcciones y Cierre de sesión . Toque iniciar sesión .
  • Llegas a una cuenta de Pebble en pantalla y te damos la bienvenida a Rebble . Toca ES HORA DE REBBLEAR .
  • ¡Listo! Vaya a Watchfaces , elija Get Watchfaces y busque e instale los watchfaces que le gusten en la tienda Rebble.

Android

Primera parte: conecte el reloj al teléfono.

Nota: puede omitir esta parte si ya es usuario de Pebble. En su lugar, debe verificar si tiene la última versión de la aplicación Pebble instalada en su teléfono.

  • Conecte su Pebble al cable de carga USB enchufado. ¡Realmente no querrás que pierda energía en medio de una actualización de firmware! El reloj se enciende. Presione el botón izquierdo para cerrar la pantalla de carga.
  • Si ahora ve una esfera de reloj, significa que su Pebble todavía está configurado, tal vez por el propietario anterior, tal vez por usted. Si lo usó antes, ahora es el momento de anotar las carátulas del reloj y las aplicaciones que desea reinstalar después de que finalice este procedimiento.
  • Si ve un reloj, presione el botón central derecho, vaya a Configuración , luego a Sistema y elija Restablecimiento de fábrica . Esto puede tardar unos minutos.
  • Obtén tu teléfono y descargue la aplicación Pebble de APKMirror . Abra el APK y habilite la instalación desde fuentes desconocidas si se lo solicita. Toque instalar en el cuadro de diálogo. Luego, abre la aplicación.
  • Serás recibido por una página de Pebble Account . Simplemente toque Omitir inicio de sesión dos veces para continuar.
  • Elige el tipo de Pebble que tienes.
  • La aplicación comienza a buscar Guijarros cercanos. En breve debería ver su Guijarro, como Guijarroxxxx . Esta misma cuerda se puede ver en el Pebble, por lo que sabe que el teléfono ve el reloj correcto. Tócalo.
  • Si el Pebble no aparece y estás en Android 10, ve a la página de configuración de bluetooth del teléfono, empareja el reloj y vuelve a intentarlo. (Si eso no ayuda, desemparejarlo allí nuevamente).
  • El reloj pide emparejarse. Presione el botón superior derecho. Toque Emparejar en el teléfono.
  • Si el Pebble tiene un firmware antiguo, buscará actualizaciones. Toque Continuar . Mantenga el reloj en el cable de carga y cerca del teléfono. Esto tardará unos minutos en completarse, después de eso, el reloj se reiniciará.
  • En la aplicación Pebble, elija el idioma de los menús, notificaciones y mensajes del reloj.
  • Para recibir notificaciones en su Pebble, toque Abrir pantalla de configuración . Habilita Pebble . Toque Permitir .
  • Si tiene un Pebble Time o más reciente: para habilitar la salud, toque Habilitar . Luego, toca Aceptar .
  • Si tienes un Pebble Time o más reciente: elige tu configuración de salud, luego toca Continuar , luego ingresa tu información y toca Completar .
  • Elige una esfera de reloj. luego toque la flecha en la esquina superior derecha.
  • No tomes aplicaciones todavía, toca la flecha en la esquina superior derecha.
  • Ya terminaste. Bueno, la parte de Pebble está lista. Toque listo .

Parte dos: conecte la aplicación Pebble a Rebble Web Services.

  • En el teléfono, abra un navegador decente (como Chrome) y vaya a auth.rebble.io .
  • Se le recibe con varias formas de iniciar sesión. Elija una e inicie sesión. ¡ Recuerde sus credenciales de inicio de sesión! Volverá al sitio de Rebble y le dará la bienvenida. ¡ Ya está todo listo! Lea la página, luego toque el enlace Comenzar ahora en el primer párrafo.
  • Se le redirige a boot.rebble.io y se le saluda con ¡ Aquí vamos! Lea la página, luego toque el botón para cambiar a Rebble . El navegador le pregunta si desea abrirlo con Pebble. Toque Abrir .
  • Si no se abre con Pebble, deberá usar otro navegador y reiniciar desde la primera viñeta de esta segunda parte.
  • Se abre la aplicación Pebble. Entonces sucederá una de tres cosas:
    • Aparecerá una pantalla de Rebble. Puede tener una ruleta naranja encima; puede ignorar esto con seguridad.
    • Aparecerá la antigua pantalla de inicio de sesión de Pebble. Si esto sucede, cierre la aplicación desde el conmutador de aplicaciones y ábrala nuevamente. Ahora debería aparecer una pantalla de Rebble.
    • Nada. Si esto sucede, toque «⋮» en la esquina superior derecha, luego toque Configuración . En este punto, ya sea:
      • Aparecerá una pantalla de Rebble, o
      • Nada interesante. En este caso, desplácese hacia abajo hasta CUENTA y asegúrese de haber cerrado la sesión. Si no es así, tóquelo para cerrar la sesión. Ahora, toque para iniciar sesión. Debería aparecer una pantalla de Rebble.
  • En cualquier caso, una vez que toque el botón en la pantalla Bienvenido a Rebble de la aplicación Pebble, ¡habrá terminado!
  • Si su Pebble se desconecta, simplemente toque el botón de conexión habitual.
  • ¡Listo! Ve a Watchfaces , toca el gran » + » rojo en la esquina inferior derecha y busca e instala los watchfaces que te gusten de la tienda Rebble.

Servicios meteorológicos y de dictado

Entonces, comenzó a usar los servicios web de Rebble, pero desea agregar el plan pago para los servicios de dictado y clima. Hay algunas cosas a considerar antes de ordenarlo:

  • En iOS, no es posible responder a los mensajes de texto. Esta es una limitación de iOS. Por lo tanto, el dictado NO agregará respuestas habladas a los mensajes de texto. A menos que hagas jailbreak a tu teléfono …
  • Los servicios meteorológicos son únicamente para la aplicación meteorológica nativa Pebble y para la información meteorológica en la línea de tiempo. Las pantallas de reloj y las aplicaciones de terceros que ofrecen información meteorológica tienen sus propios medios para obtener información meteorológica. No necesitas el plan pago de Rebble para ellos.
  • El pago lo gestiona Stripe, que solo ofrece el pago con tarjeta de crédito.
  • Su dinero ayudará a Rebble Alliance a mantener en funcionamiento todos los servicios web de Rebble (incluidos los gratuitos).

Dicho esto, estos son los pasos para agregar el plan:

  • En el teléfono, abra su navegador (Safari en iOS o Chrome en Android) y diríjase a Rebble Account .
  • Muy importante: ¡asegúrate de haber iniciado sesión con la misma cuenta que usaste cuando te cambiaste a Rebble por primera vez!
  • Elija su plan ($ 3.00 / mes o $ 33 / año).
  • Se le reenvía a Stripe. Ingrese la información de su tarjeta y finalice el pago.
  • Se le redirige al sitio de Rebble. La suscripción a Voice / Weather ahora debería estar activa .
  • En el último párrafo, toque repetir el enlace de configuración inicial . Luego, siga el resto del procedimiento de la parte 2 anterior.
  • Gracias por apoyar a Rebble. ¡En realidad!

En la aplicación Pebble, en Aplicaciones , la aplicación The Weather Channel ahora debería estar allí. Toque el botón de engranaje para configurarlo según sus necesidades.

Carga lateral de aplicaciones o esferas de reloj

En muy raras circunstancias, la instalación de esferas de reloj o aplicaciones a través de la tienda de aplicaciones dentro de la aplicación Pebble no funciona. En este caso, puede probar si la carga lateral de la esfera del reloj funciona.

  • En el teléfono, abra su navegador (Safari en iOS o Chrome en Android) y diríjase a la tienda de aplicaciones Rebble en la web .
  • Encuentra la esfera del reloj o la aplicación y tócala.
  • En la parte inferior, toca descargar pwb .
  • Abra el archivo con la aplicación Pebble.
  • Se abre la aplicación Pebble y solicita instalar la esfera del reloj o la aplicación. Toque Aceptar .

Ahora, la esfera del reloj o la aplicación se instala en el teléfono y en el reloj.

Resumen de pasos a seguir

En resumen para reanimar nuestro Pebble vamos a necesitar 4 apps:

  • Pebble AppStore BACKUP
  • Sideloader
  • Pebble
  • Pebble-Rebble

Peble AppStore Backup

Este programa no es mas que un repositorio donde poder descargar gratuitamente todas las esferas y aplicaciones disponibles que en su dia estuvieron disponibles para el Pebble.

Su mecánica de uso es bien sencilla: buscamos las app o esfera qeu nos interesa .Nos aseguramos que nos es compatible con nuestro modelo de Pebble , y en caso afirmativo nos la descargamos en local mediante el enlace «download PBW» que tendremos disponible al final de la explicación de cada app/esfera

Sideloader

Si la app anterior nos permitía descargar un fichero de esfera o app gracias a esta otra aplicación podemos instalar dicho archivo en nuestro reloj

Esta aplicación pues nos ayuda a abrir archivos .pbw, .pbl y .pbz en la aplicación oficial Pebble. Para comenzar, presione el botón Examinar archivos a continuación o abra un archivo Pebble compatible en su aplicación Archivos.

Pebble

Es la antigua aplicación que ya no esta disponible en google play y que por tanto habrá que descargarla como una apk desde un repositorio como por ejemplo https://pebble-time.uptodown.com/android

Esta app la necesitamos para sincronizar por bluetooth con el telefono aunque el resto de servicios ya no estén disponibles.

Peebble-Rebble

Gracias a The Rebble Alliance que ha creado Rebble Web Services, para llenar el vacío dejado por la desaparición de Pebble Technology, Corp. La mayoría de los servicios que han desaparecido tienen reemplazos ahora. 

Problemas comunes

No se puede agregar la esfera del reloj, la tienda dice que se agregó, pero no está en el teléfono del reloj

A veces, el casillero puede perder la sincronización con la realidad. Aunque esta situación debería resolverse por sí sola con el tiempo, es fácil de solucionar. Simplemente cargue la esfera del reloj (ver arriba). El casillero ahora ya no está desincronizado para esta esfera de reloj. Es posible que deba repetir esto para cada esfera de reloj o aplicación que muestre este comportamiento.

En Android (9.0+), las llamadas entrantes se muestran en el reloj como «Llamada desconocida»

Para corregir el «Llamador desconocido» o las notificaciones que faltan por completo en las llamadas entrantes para Pebble emparejadas con dispositivos Android 9.0, existe una solución con la aplicación Dialer for Pebble:

  • Instale la aplicación complementaria Dialer for Pebble y una aplicación respectiva para Pebble.
  • Abra la aplicación Pebble en su teléfono y vaya a Notificaciones . Luego, desactive las notificaciones para llamadas telefónicas.
  • Abra la aplicación Dialer for Pebble en su teléfono y habilite Call Popup para llamadas entrantes y salientes.
  • Asegúrese de que la aplicación Dialer for Pebble tenga permisos del sistema para acceder a Contactos, Registro de llamadas, Marcador y SMS en su teléfono.

Esto debería solucionar el problema. En caso de que Marcador para Pebble funcione de manera inconsistente, asegúrese de que se ejecute en segundo plano tanto en su Pebble ( Configuración y luego en la Aplicación en segundo plano ) como en su teléfono.

Me suscribí al plan de servicios Weather and Dictation, pero la aplicación Weather Channel y el dictado no están disponibles

Verifique su cuenta de Rebble y la información de pago.

  • Dirígete a la cuenta de Rebble
  • Mire la suscripción a la línea Voice / Weather . Si está activo , vuelva a pasar por boot.rebble.io .
  • Si está vencida, es posible que la tarjeta de crédito utilizada durante la suscripción no sea válida. Simplemente puede suscribirse nuevamente.
  • Si no está activo, es posible que haya iniciado sesión con una cuenta diferente a la que tenía cuando se suscribió por primera vez. Elimine las cookies de su navegador (por lo tanto, cierre la sesión) e inicie sesión en la cuenta de Rebble con la cuenta correcta. Luego, verifique su cuenta y la información de pago nuevamente.

Esta esfera del reloj ya no muestra información meteorológica o la información es incorrecta

Desafortunadamente, algunos servicios meteorológicos de uso frecuente se han retirado o han cambiado su API. Las esferas de reloj que usan esas API ahora ya no pueden obtener su información meteorológica. Vea si la esfera del reloj puede cambiar de API o elija otra esfera. Tenga en cuenta que esto no está relacionado con el plan de servicios de dictado y meteorología de Rebble.

El dictado no funciona: “Se produjo un error. Intentar otra vez.»

Abra la aplicación Pebble en su teléfono y vaya a Configuración . Toque Idioma de voz . Cámbielo a cualquier otro idioma. Luego, cámbielo de nuevo a su idioma preferido.

Necesito cambiar de cuenta, o eliminé y reinstalé la aplicación Pebble

Para cerrar sesión en el sitio web de Rebble, debe eliminar las cookies (para .rebble.io y auth.rebble.io ) de su navegador. Cómo hacerlo, depende del navegador. Ahora dirígete a la autenticación de Rebble e inicia sesión con la cuenta correcta.

Para configurar la aplicación Pebble para usar la cuenta en la que acaba de iniciar sesión, vuelva a pasar por boot.rebble.io .

Los eventos de mis calendarios no aparecen en la línea de tiempo ni en la vista rápida

Abra la aplicación Pebble en su teléfono y vaya a Aplicaciones . Toca el engranaje junto a Calendario . Aquí, puede elegir los calendarios desde los que aparecerán los eventos en su línea de tiempo.

Quiero agregar un Pebble o Pebble Steel original, pero el paso de actualización del firmware muestra «Migration Failed»

La pantalla de actualización también muestra No se pudo encontrar ningún firmware de migración para instalar. Para resolver esto, necesita un dispositivo con una aplicación Pebble que no se haya cambiado a Rebble. Puede usar otro dispositivo o eliminar Rebble de la aplicación Pebble visitando pebble://custom-boot-config/defaultdesde el navegador, o puede eliminar la aplicación Pebble de su teléfono y reinstalarla. Cuando vuelva a emparejar el reloj, ahora debería completar la actualización del firmware. Después de eso, puede comenzar a usar Rebble Web Services nuevamente, siguiendo la parte 2 anterior.

Cuando comienzo a cargar mi reloj, la pantalla comienza a encender y apagar la luz de fondo

Mientras está conectado al cable de carga, mantenga presionado cualquier botón del reloj hasta que aparezca un código de error en la pantalla. Suelta el botón. Ahora, deje que el reloj se cargue durante algún tiempo (al menos una hora). Finalmente, presione un botón para salir del código de error.

Consejos generales

  • Como muchos servicios en el reloj se implementan en el teléfono y en los servicios web, muchos problemas también se encuentran allí. Un reinicio de su teléfono tiene más posibilidades de solucionar problemas que un reinicio de su reloj. Casi nunca es necesario restaurar su reloj a la configuración de fábrica.
  • Si tiene problemas con el dictado, debe consultar el servicio meteorológico para descartar problemas con su suscripción. Si el clima funciona en Timeline oa través de la aplicación The Weather Channel, entonces su suscripción está funcionando bien.