Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Sensores REST y JSON: Integración y Configuración en Home Assistant

12 noviembre, 2024

Hoy hablaremos de los sensores REST, JSON REST y cómo añadirlos a Home Assistant.

Imaginemos que tenemos un API publica tipo: autobuses urbanos, farmacias, etc... para saber datos en el momento de Instituciones publicas o simplemente al json que nos proporcione datos que queremos añadirlos a HA. Pues con estos sensores se pueden agregar fácilmente. En este tutorial vamos a crear sensores para las frecuencias de autobuses como ejemplo.

La diferencia entre REST y JSONrest reside en el que el primero se sacan los valores individuales con peticiones individuales de HTTP, es decir, tenemos que generar un sensor por cada dato a extraer de ese JSON mientras que si queremos sacar varios valores y generar solo un sensor (con una sola petición de HTTP)  nos servirá el ultimo de todos.

Vamos por partes. Este tutorial lo vamos a realizar con un json de información sobre frecuencias de autobuses urbanos pero puede servir cualquiera. Empezamos con el sensor REST.

Lo primero de todo deberemos instalarnos un addon para el navegador chrome llamado Json editor. Podemos descargarlo desde este enlace: Editor JSON

Una vez instalado podremos acceder a el poniendo en la barra de direcciones: chrome://apps y clicando sobre la extension correspondiente.

Tenemos ya el json correspondiente a la parada de autobús de la que queremos sacar los datos, en este caso el link seria este: https://www.zaragoza.es/sede/servicio/urbanismo-infraestructuras/transporte-urbano/poste-autobus/tuzsa-340.json

Tenemos que abrir este enlace en la extensión de chrome en la opción OPEN/OPEN URL. Nos tiene que quedar la pantalla así:

A simple vista no salen todos los datos, para verlos todos tendremos que ir a las flechas que tenemos hacia la derecha y clicarle, empezaremos a ver como se despliegan como las ramas de un árbol:

Imaginemos que de todos estos datos solo queremos sacar 1 para lo que usaríamos solo el sensor REST. En este caso queremos sacar la frecuencia del primer autobus de la linea 39.

Crearemos un sensor tal que así:

Explicación de las configuraciones:

  • resource: aquí le pondríamos el link del json para extraer los datos.
  • name: nombre que le queramos poner al sensor
  • scan_interval: cada cuantos segundos queremos que actualice ese valor.
  • value template (Importante): siempre empezaría por '{{ value_json.xxx.xxx.xxx}}' En el arbol de los datos tendremos que ir siguiendo la lógica de la pantalla siguiente. El object lo obviamos. Veremos como ponemos el primer dato (destinos) la rama siguiente seria el dato (1) y por ultimo el dato (primero).

Una vez realizado la configuración, lo agregaremos al frontend y nos saldría un sensor tipo así:

Pues hasta aquí ya hemos sabido usar el sensor REST y como sacar los datos de un JSON. Pues ahora toca el momento de explicar como seria con un JSONRest que es mas o menos igual que el anterior, con la diferencia que al no generar una petición de datos (http) por cada sensor sino que 4 o mas sensores cogen la información de 1 principal no generaremos tanto trafico para actualizarlos.

Lo primero es descargarnos este custom_components, donde dentro del mismo viene varios archivos. Lo tendremos que copiar en la carpeta custom_components/jsonrest/

Una vez realizado el paso anterior deberemos crearnos un sensor tal que así:

Vemos que parece idéntico al REST pero cambia la plataforma y generaremos justo debajo de este sensor varios templates donde sacaremos los datos del sensor principal que seria el de arriba. El value template recoge los attributes (datos) del sensor principal, por eso la coletilla es la misma que para el REST.

Por ultimo añadiríamos estos sensores al frontend y nos quedaría tal que así:

Escrito por Noel

Buenas, me llamo Noel, soy un divulgador y amante del software libre y Gnu Linux.
Usuario inquieto por ver las novedades y dar a conocer a todos las grandes ventajas del software libre y Gnu Linux.

Suscribirse
Notificarme las
guest
0 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram