Revisando lo que hemos publicado en los últimos tiempos hemos visto que el último producto que ha pasado por nuestro «laboratorio» fue el ratón COMODUS a primeros de marzo por lo que quizás los que no nos conozcan piensan que nos hemos cansado de la página… o simplemente que somos unos vagos. Nada más lejos de la realidad ya que hemos estado descubriendo nuevas posibilidades de la plataforma domótica Home Assistant que no para de sorprendernos.
En nuestro caso por «deformación» profesional más que las posibilidades (que no son pocas) para automatizar ciertas tareas de tu hogar estamos centrados en utilizarlo como una plataforma de captura de datos y poco a poco ir teniendo un «Big data» casero que oportunamente integraremos para definir indicadores de más alto nivel que el puede dar tan solo un «dispositivo chino» que aparte de indicarte si se abre una puerta o se cierra… a poco más llega su sabiduría.
Si por nuestra parte ya tenemos funcionando la medida del consumo eléctrico en estas últimas semanas nos hemos centrado en la integración de más interesantes «cacharritos» que hace años revisamos en PcDeMaNo como este FOOBOT que, os recordamos, es capaz de medir la presencia de contaminantes en tu casa… y que ya tenemos integrado en nuestra HA.
El paso lógico despues de conocer la contaminación en casa es saber la que hay en la calle ¿no? y eso nos propusimos!.
CONTAMINACION / POLUCION
Teniendo en cuenta lo mucho que uno «lucha» por el uso de herramientas Open Source en su trabajo…lógicamente el primer intento para integrar los datos de contaminación (y visto que todavía no había ningún componente para HA) fue buscar fuentes de datos «open source» que se pudiesen integrar mediantes las correspondientes APIs. Desgraciadamente y a pesar de que son datos de los ciudadanos los ayuntamientos y comunicades autónomas van muy retrasadas en esto de compartir información. Con un poco de suerte hemos encontrado y después de muchas búsquedas hemos encontrado, al menos, que la Consejería de Medio Ambiente, Administración Local y Ordenación del Territorio de Madrid se publican dichos datos con una frecuencia horaria. Solo queda acceder de forma periódica a dicha página web y extraer los datos en HA. ¿Fácil, no?.
Afortunadamente en HA existe el componente SCRAPE SENSOR capaz de extraer «cualquier» tipo de información de una web… y que es más fácil de lo que parece inicialmente siempre que alguien te lo haya explicado antes… y para eso estamos nosotros
Lo que hay detrás de SCRAPE es BeautifulSoup un increible módulo para Python capaz de «bucear» por el código HTML de cualquier página que te ayuda a buscar «donde» está el valor que andas buscando.
A pesar de las instrucciones del sensor no he sido capaz de hacerme una idea de la mejor manera de encontrar lo que andaba buscando ya no todo está tan fácil encontrar como la información sobre la version más actual del HASSIO.
Por ejemplo, en el caso de las «tablas» de los contaminantes una forma de encontrar lo que andas buscando es inspeccionar (botón derecho del ratón sobre el valor) y ver que, en este caso, la búsqueda la tenemos que hacer por < td > como al utilizar un id de color que no es único habrá que buscarlo entre muchos td.
Para haceros (hacernos) más sencilla la búsqueda os hemos dejado un notebook para ejecutar en Jupyter que sirve de ayuda para localizar el número del objeto a utilizar en el selector del correspondiente sensor. En nuestro caso, para el ozono es el 27 de los «td«.
Si no fuera por un pequeño detalles ya estaria listo y nuestro sensor estaría recibiendo los valores del O3. El «problemilla» es que el sistema que utilizan en la Comunidad de Madrid entre el minuto 0 y el 9-10 de cada hora pone «estrellitas» en lugar de número y nuestro sistema los sustituye por ceros … lo que no queda nada bien ¿no?
De ahí la necesidad del «template» que complementa este sensor para que en caso de que el valor sea cero (o sea estrella) lo sustituye por -100
De esa forma cuando luego se filtre
se quede como sería de esperar «manteniendo» el ultimo dato valido hasta que venga uno nuevo . ¿Lógico, no?
En el sensor filtrado también hemos incluido un template para asegurarnos que nunca hay valores negativos aunque la verdad sea dicha no creo que se haya disparado en ningun momento dicho calculo.
El unico / problema limitación del actual SCRAPE SENSOR es que tan solo puede traer un dato cada vez por lo que hemos tenido que darle tres veces al copy/paste para tener medidas de tres componentes.Puesto en contacto con el creador de este sensor nos ha confirmado esta limitación y que la única alternativa sería crea un componente propio capaz de recoger de forma simultánea varias medidas por llamada. Nos lo apuntamo y lo intentaremos hacer cuando tengamos más tiempo y necesidad para hacerlo
POLENES
Una vez asimilada (y optimizada) la técnica para extraer info interesante de páginas web e intregarla en HA nos hemos lanzado a un tema que en los próximos días será del máximo interés a los alérgicos… como el menda.
Si los datos de polución no estaban accesibles vía APS aunque sí «tabulados» los de alergia de la Consejería de Sanidad de Madrid se actualizan diariamente (excepto en fines de semana) y vienen en un formato un tanto rudimentario, por decir algo
Todavía no tenemos claro del todo el formato y tendremos que esperar a la próxima semana a ver si se mantiene la estructura de datos que contiene la «especie culpable» asi como su concentración viniendo separados todos los datos tan solo por por lo que hay que hacer uso de posteriores «templates» para limpiar los datos… aunque no en todos los casos
Por si las moscas y para ayudarnos en nuestro seguimiento de esta aplicacion hemos incluido también un «gráfico» que envían con los mismos datos.
En RESUMEN, gracias a este sensor SCRAPE es posible integrar en HA información de muchas fuentes sin necesidad de que dispongan de APIs y la única dependencia de la «profesionalidad» con que se hayan realizado las correspondientes páginas.
Aparte de seguir buscando info interesante a integrar en nuestro HA (como, por ejemplo, el número de usuarios on-line que visitan nuestra página) vamos a empezar a integrar aplicaciones vía API como por ejemplo Automile que mediante el OBD podrá darnos todos los datos de localización de nuestro coche, etc.
Pharizna… que está celebrando su cumple con un buen catarrazo
4905
Muy buen artículo, lo he seguido al pie de la letra pero en el punto del notebook para localizar el numero del objeto me he quedado atascado, he tenido que ir probando números aproximados y es una locura.
Agradecería si me pudieses indicar como se usa ese notebook en Jupiter (donde se pone la página, el elemento a buscar…)
Un saludo y gracias por tu trabajo el que aprendemos mucho los demás.
Hola Jose. Ahora mismo estoy con un notebook para la predicción / forecast del precio del BTC (bitcoin)
Pásame la URL de la página de donde quieres sacar tu info de interés y te lo explico sobre «tu» notebook
Quería monitorizar varios precios de la luz, de la página https://tarifaluzhora.es/ ahora los tengo monitorizados (max, min y actual) pero me ha costado muchísimo dar con los números correctos jajajaja
Agradecería esa explicación sobre lo que hay que cambiar en el notebook para adaptarlo a la página de la que quieres sacar la información y como hacerlo funcionar en Júpiter, ya que pegue el tuyo y le di al play pero nada, supongo que tendrá su cosa.
Espero también un tutorial cuando termines el proyecto, se ve muy interesante para aprender.
Un saludo y gracias de nuevo
Por cierto ¿conoces COLAB de Google? Es donde yo ejecuto mis Jupyter para no tener que instalar ná de ná en mi PC, ni Python ni Conda … ni ná de ná
Si te refieres al proyecto de BITCOIN es uno de los que voy a utilizar mañana y pasado en el curso que sobre Machine Learning y Deep Learning voy a impartir en el mayor Centro de Investigación de España… por cierto de una petrolera de la que salí hace un par de años.
El valor medio del dia (0.12571) es el elemento 50º del span
como se puede ver aquí:
Que Bueno, probé el Jupiter on-line de la propia página pero ahora veo mas claro el proceso, voy a implementar algun dato mas de la página e implementare tu ejemplo del polen y la calidad del aire.
Muchisimas gracias por tu tiempo y por el gran trabajo que haces al compartir tus conocimientos.
Busca algo distinto al polen ya que la Comunidad de Madrid ha pensado que en esta época (más bien desde septiembre) no hay problemas de pólenes en Madrid por lo que no publican dato de este tipo hasta la próxima primavera,
Los de calidad del aire siguen funcionando aunque de la hora en punto hasta los siguientes 10-12 minutos los valores se sustituyen por «***» que no gustan demasiado a Home Assistant. Estás avisado.
La semana próxima tenemos previsto retomar nuestros proyectos de «scrapeo» para integrar la información bancaria en nuestro HA.
Lo primero que haremos claro está será volver a utilizar COLLAB de Google para no tener que instalar Python (o Anaconda) en nuestro MAC.
Hablando de Python, AQUí «me» dejo un interesante enlace donde explican muy bien como crear un sistema de detección de movimiento simplemente utilizando OpenCV y Pandas.