Beautiful Soup ... o como 'scrapear' WEBs para tu Home Assistant
Datos del producto
Nombre del producto: Beautiful Soup ... o como 'scrapear' WEBs para tu Home Assistant

Venta: Todo "open source".
Comentarios: En nuestro FORO
Soporte: Desde aquí mismo, por ejemplo ¿por qué no?

Datos de la "revisión"
Revisado por: Pedro Hernández (Pharizna)
Fecha revisión: 15 de abril de 2018




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!.


CONTAMINANCION / 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 :(



Este artículo proviene de PcDeMaNo
http://www.pcdemano.com

La dirección de esta noticia es:
http://www.pcdemano.com/modules.php?name=Sections&op=viewarticle&artid=1786