Buscando una plataforma Iot que me permita calcular deltas


#1

Buenas a tod@s,

Ando buscando para un proyecto personal una plataforma Iot que me permita enviar datos en formato contador acumulado, y que la propia plataforma me calcule los incrementos. Creo que se entenderá mejor con un ejemplo:

Supongamos que tengo un coche que cada cierto tiempo de marcha, es capaz de enviar a una plataforma el valor del cuentakilómetros. De este modo, se que el valor del cuentakilómetros siempre se incrementa y es el valor que quiero enviar.

En cambio, lo que quiero recibir es cuánto ha andado ese coche la última hora, o el último día, o la última semana etc… Idealmente que fuese lo más granular posible. Es decir que si ha hecho un viaje, pueda decirme cuanto anduvo el día x de las 12:00 a las 12:25…

No se si esto existe…

Y ya puestos a pedir:

  • Que pueda enviar los datos vía http
  • Que sea Software Libre
  • Y si ya es gratis…

No descarto montarlo en local (rpi o similar) pero antes de liarme a montar me gustaría probarlo on line.

Muchas gracias y ánimo con los proyectos.

Jujo


#2

Una opción es Adafruit.io. Aunque está pensando para que envíes por Mqtt. Te permite crear gráficos por horas / días y demás.

Pero no te va a hacer «la resta» que es lo que tú querrías, sino que te podría mostrar que el valor a la 12:00 era 130 y a las 13:00 fue 145, y tú tendrías que restar para sacar los 15kms.

Seguramente algo tan específico conlleve que lo tengas que hacer tú.

Si quieres enviar por HTTP, lo suyo sería montarte una API Rest (o un servidor MQTT que para IoT es lo ideal) y hacer las operaciones en los rangos oportunos.


#3

Gracias
Eso me temía, pero me extraña que el cálculo de la diferencia no sea algo que incluyan las plataformas…
A fin de cuentas los software de gestión de impresion recogen el valor del contador por SNMP periódicamente y grafican cuanto se ha impreso por unidad de tiempo… detectan “picos” de impresion etc…

las plataformas de facturación de las compañías eléctricas y de agua deben funcionar de similar forma con el dato de los contadores…

Estoy confundido…


#4

Yo lo que he visto «parecido» son gráficas que permiten sumar los valores por zonas.

Así, en vez de tener un valor acumulativo que siempre sube, en cada envío solo mandas la diferencia:

12:00 -> 20
13:00 -> 5
16:00 -> 10

Y la gráfica sumaría todos los valores en el rango -> 35

Eso es lo que hago yo por ejemplo en un proyecto de control de pasos. Envío los pasos que se han dado en X tiempo y después puedes ver en un rango cuantos pasos se han dado haciendo la suma de todos los envíos en ese intervalo.


#5

Por si acaso alguien se encuentra en la misma situación y llega hasta aquí googleando…

Al final voy a usar open energy monitor http://openenergymonitor.org instalado en una rpi (hay una imagen lista para descargarse), ya que la versión online no tiene el parámetro que hace falta que es “rate of change” con ese parámetro en el input genero un feed con la delta, que me da exactamente los datos que yo quiero para hacer el/los gráficos…
La gran ventaja es que si me quedo “desconectado” no pierdo información, simplemente me la pone inmediatamente a continuación… (si simplemente contase pulsos… sí que perdía info…)

En fin… espero que le sirva a alguien

Saludos


#6

Hola Julio:

Bienvenido al foro.

[Jujonet] Jujonet http://foro.hacklabalmeria.net/u/jujonet
25 Junio

Por si acaso alguien se encuentra en la misma situación y llega hasta
aquí googleando…

Al final voy a usar open energy monitor http://openenergymonitor.org
instalado en una rpi (hay una imagen lista para descargarse), ya que la
versión online no tiene el parámetro que hace falta que es “rate of
change” con ese parámetro en el input genero un feed con la delta, que
me da exactamente los datos que yo quiero para hacer el/los gráficos…
La gran ventaja es que si me quedo “desconectado” no pierdo información,
simplemente me la pone inmediatamente a continuación… (si simplemente
contase pulsos… sí que perdía info…)

Si vas a contar energía tenías que haber empezado por ahí. :^)

En el foro hay unos cuantos que están con ese tema, desde @Brico_Dani
hasta @pitero y @paquetekuento.

Seguro que te hubieran ayudado algo más.

Para Openenergymonitor hay muchas cosas por ahí ya preparadas, de hecho,
por ejemplo, la conexión con Arduino es bastante sencilla.

Y creo que también tienes conexión con OpenHab si vas a hacer algo de
domótica.

Suerte y si necesitas algo más, pregunta sin miedo.

Salud y Revolución.

Lobo.


#7

Muchas gracias, pero no.
No voy a contar energía, voy a contar litros de agua.
Pero es “asimilable”
Del mismo modo que la impresora o el cuentakilómetros envía el contador total, me he buscado la vida para que mi contador me envíe el total acumulado.

El no decirlo era para evitarme la discusión de por qué no le envío cada pulso: y la razón es que si el sistema se “desconecta” por cualquier razón, al enviar siempre el contador acumulado, no pierdo datos, es decir al siguiente envío calcula la diferencia del contador y lo apunta.

BTW no lo integro con ningún sistema porque tengo montada una red KNX y la lógica me la hace un vetusto thinclient con una debian 4.0 (y sigo la máxima de “no arregles aquello que te funciona”) :smiley:

Gracias


#8

ya se que no se el culmen del IoT, pero un buen graphite + grafana (o influxdb + grafana) te permite acumular datos y mas datos, y despues hacer algunas matemáticas interesantes con ellos (desde grafana). Para el caso habitual de los contadores acumulativos (por ejemplo el trafico de un interfaz) te hace derivadas, con lo que en lugar de ver una linea ascendente, ves una horizontal con picos en los momentos de crecimiento…


#9

[Jujonet] Jujonet http://foro.hacklabalmeria.net/u/jujonet
25 Junio

Muchas gracias, pero no.
No voy a contar energía, voy a contar litros de agua.
Pero es “asimilable”
Del mismo modo que la impresora o el cuentakilómetros envía el contador
total, me he buscado la vida para que mi contador me envíe el total
acumulado.

Una idea muy interesante, yo estaba pensando poner un caudalímetro en el
agua caliente para saber el consumo de la misma, pero no tengo claro
como ponerlo en el contador general.

¿Podemos preguntarte como lo has resuelto?

El no decirlo era para evitarme la discusión de por qué no le envío cada
pulso: y la razón es que si el sistema se “desconecta” por cualquier
razón, al enviar siempre el contador acumulado, no pierdo datos, es
decir al siguiente envío calcula la diferencia del contador y lo apunta.

Y es una idea excelente.

BTW no lo integro con ningún sistema porque tengo montada una red KNX y
la lógica me la hace un vetusto thinclient con una debian 4.0 (y sigo la
máxima de “no arregles aquello que te funciona”) :smiley:

OpenHab tiene conexión con KNX. De hecho ahora hay ya cosas que conectan
Arduino y KNX, hace 3 años, cuando miré por última vez no había nada.

Me voy a atrever a preguntarte otra vez, ¿como lo tienes resuelto? ¿Que
aplicación/protocolo/cosa utilizas para puentear hacia/desde KNX?

Salud y Revolución.

Lobo.


#10

Una idea muy interesante, yo estaba pensando poner un caudalímetro en el
agua caliente para saber el consumo de la misma, pero no tengo claro
como ponerlo en el contador general.

¿Podemos preguntarte como lo has resuelto?

Por partes,
Puedes poner un caudalímetro en la entrada del agua de tu vivienda (tras el contador).
Yo lo encontré más tarde porque mi entrada de agua es de un grosor un poco… elevado.
La mía es de 1.5". Pero poder puedes hacerlo.
Yo no lo hice así pero por desconocimiento, y me costó algo más de dinero. Yo me metí un contador (certificado) entre el contador de la compañía de agua y la llave de paso general de mi casa, y a este le metí un contador de pulsos KNX.
De este modo, el día 0 programé el contador de pulsos con el valor del contador de la compañía de agua. A partir de ahí mi contador da 1 pulso = 1 litro. Soy consciente de que una vez al año voy a tener que ajustar el valor de mi contador (KNX) con el del canal … pero en fin…

De este modo en una dirección de grupo KNX, siempre tengo el valor total del contador.

Para evitar el problema que os comentaba de que si se va la luz, pierda información, el contador KNX es alimentado por la propia tensión del bus KNX sin dependencia de alimentación externa.

Si el ordenador (Rpi) se resetea, se corrompe la tarjeta o para cualquier cosa, al trabajar con acumulados, simplemente a la siguiente lectura se “pone al dia”.

Mi contador de pulsos https://knxgroothandel.nl/knx-componenten/energiemeters/arcus-sk01-impz-1.html (lo encontré por 100 euros). Insisto, te lo puedes hacer tu con un arduino ya que el pulso es de 5v. te ahorras la pastita del contador pero tienes varios problemas:

  • Alimentación de arduino tolerante a fallos
  • Deberías meter módulo de tiempo real ya que arduino eso no lo maneja
  • para eviar perder pulsos deberías escribir en la eeprom a cada pulso la hora actual y el acumulado de pulsos.

Para conectar la red ethernet y la KNX tengo una pasarela: COmbridge MCG. pero te serviría cualquier pasarela. Yo loq ue hice fue montarle a una Rpì el demonio knxd que hace de interface y de este modo esa pi está constantemente escuchando los eventos de la casa.

Para leer las direcciones de grupo utilizo linknx y cada vez que hay un cambio en una de las direcciones de grupo me escribe su valor a un fichero de texto en la pi. A partir de ahí con un script lo trato sea con el openenergy monitor para el consumo de agua o con rrdtool para las temperaturas y calefacciones…

Tengo bastante de lo que uso clonado en mi repositorio de github (mi user es Jujonet)

EN fin, está bastante desordenado, pero abierto a aportar más info…

Un saludo


#11

Hola,

La solución hardware es bastante asequible y tienes multitud de opciones en el mercado (cualquier XxxPi). Por otro lado, la implementación de la lógica va más en la línea de un elasticSearch + kibana o cualquier variante tipo graylog.


#12

Este tema se cerró automáticamente 10 días después del último post. No se permiten nuevas respuestas.