Sin querer éste fincho resulté cacharreando con esto, hace unas semanas se me dió por comprar
un smart plug en amazon, quería tener esa cosa conectada a una multitoma que básicamente provee de energía a todo mi cuarto, con la intención de medir el consumo eléctrico para saber cuanto gasta el pc en idle, minando/jugando, con el tv encendido y así, teniendo un historial melo para después a futuro ver como varía en el tiempo.
Ese coso funciona, el tema es que la aplicación movil con la que funciona es muy básica, muestra los datos de consumo, deja encender/apagar, poner un timer pa apagar/encender, configurar un horario de funcionamiento, lo normal. Lo feo es que respecto a lo que a mi me importaba (que era tener un historial detallado) era demasiado básico, solo lleva historial de los kWh diario, y además solo tiene cliente app movil, no una página web.
Después de intentar buscar alguna manera de tener un registro más detallado descubrí que el coso ese tiene un microcontrolador esp8266, al parecer es uno muy usado para temas de IoT y por eso existen firmwares opensource para esos dispositivos, el que usé se llama
tasmota, soporta
una gran cantidad de dispositivos que tengan microcontroladores famosos como ese.
Después de instalarle ese firmware a ese smartplug, el aparato levanta una interfaz web en la que uno puede controlarlo, aparte de eso tasmota soporta MQTT (un protocolo para transmitir mensajes entre dispositivos IoT) y le deja a uno configurarlo como uno se le de la gana.
Con eso ya uno puede decirle al aparato que envíe los datos que maneja a donde uno se le de la gana, para eso usé una raspberry pi 4 8gbs que tenía ya por ahí, el resumen es:
- Levantar un broker MQTT, yo usé
mosquitto, ese va a recibir y enviar datos entre dispositivos
- Apuntar el smart plug a ese broker MQTT
- Levantar una base de datos para almacenar los datos, de lo que encontré se puede usar cualquier vaina en realidad, pero en IoT como que la gente usa mucho prometheus o
influxdb, yo opté por la segunda
- Usar
telegraf, un programa/agente para recolectar datos/métricas/logs de cualquier lado, en este caso usé un plugin de telegraf que se llama "MQTT Consumer", se conecta al broker MQTT y levanta una subscripción, es como si escuchara todos los eventos que llegan al broker de los dispositivos que le envían datos. Ya después de configurar el plugin para que se jale los datos, uno le dice que envíe los datos a influxdb
- Levantar
grafana, es una plataforma de monitoreo/métricas que en resumen sirve para hacer dashboards con datos que se trae de donde uno le diga, en este caso el se conecta a la instancia de influxdb directamente
- Crear un dashboard en grafana ya para mostrar los datos, quedó algo como ésto, lo dejé conectado a la nevera por la noche:
A futuro me dan ganas de comprar más sensores, al menos otras 2 o 3 tomas, también quisiera tener sensores de temperatura y y movimiento, pero por lo poco que revisado baratos no son, todos cuestan como de 15 USD pa arriba.