Brico Medidor de consumo Shelly EM

Jesús

SuperNergizo
Registrado
9 Dic 2015
Mensajes
3.372
Ubicación
Mallorca
Wh
5.139
Buenas

Lo prometido es deuda, y si el otro día andaba preguntando sobre la mejor manera de sacar corriente del cuadro para alimentar un medidor de consumo, ahora que ya lo tengo montado y en marcha aquí está la review del aparatejo.

Veamos, el aparato en cuestión es este:

Shelly EM - Shelly Cloud

Se llama Shelly EM, y lo fabrica una empresa llamada Allterco robotics. Son de Bulgaria, y bajo la marca Shelly tienen un montón de aparatos domóticos de este estilo: monitores de consumo, relés wifi muy al estilo de los Sonoff, y todo tipo de cosas. Realmente vale la pena pasarse por su web y consultar el catálogo. Tienen precios muy razonables (el pack de aparato más pinzas me ha costado en torno a los 50 eur), y al hacerse los envíos desde Bulgaria los gastos de envío son bastante bajos.

Por lo que respecta al Shelly EM, es un monitor de consumo que hace las mediciones con una pinza amperimétrica. En concreto, el EM soporta hasta dos pinzas, que hay que comprar aparte del aparato. A continuación pongo unas fotos de la caja, y el típico unboxing:
caja_shellyem_1.jpg caja_shellyem_2.jpg unboxing.jpg
El aparato en sí es muy, muy pequeño, pongo la foto en la palma de la mano para poder tener una referencia:
shelly_em_mano.jpg
Por lo que respecta al conexionado, tiene un par de conectores para cada pinza amperimétrica, otros dos para la corriente y un conector final por si se quiere usar el EM como relé wifi. El etiquetado es muy claro, y en las instrucciones se explica muy bien cómo conectar:

shelly_em_front.jpg

Por la otra cara, un detalle a agradecer a la gente de Shelly es que han dejado libre el puerto del ESP8266 interno, con la idea de poder actualizar el firmware y poner un firmware libre tipo ESPurna o Tasmota. Todo un detalle que ya deja ver que la gente de Shelly está sensibilizada con la comunidad, e intenta ofrecer productos abiertos:

shelly_em_back.jpg

Sobre la pinza amperimétrica, únicamente comentar que el Shelly EM acepta dos tipos posibles, una de 50A y otra de 120A. Con la de 50A a mí me sobran amperios por las orejas, pero quizá alguien pueda darle uso a la de 120A (aunque a ver quién es el guapo que tiene un circuito de 26 kW :) ), siempre está bien tener la posibilidad:

caja_pinza_1.jpg caja_pinza_2.jpg pinza_1.jpg

Y una vez todo listo, toca abrir el cuadro eléctrico y hacer las conexiones oportunas, que son básicamente acoplar las pinzas a los circuitos que queramos medir, siempre siguiendo el sentido de la corriente que marca la pinza con una flecha:

pinza_2.jpg

Y finalmente conectar la corriente, tanto para alimentar el aparato como para corregir la fase y que el medidor dé datos precisos sin que la reactiva afecte a las medidas. Al ser tan canijo, el medidor se puede dejar en el cuadro con algún tipo de fijación más o menos artesanal:

cuadro.jpg

Mis disculpas por la cinta adhesiva tope cutre, fue una medida temporal de emergencia. De hecho en esta foto sólo tenía una pinza conectada y aún no había hecho la conexión para la corriente y simplemente tiraba cable hasta el enchufe más cercano. Ahora ya lo tengo todo bien conectado (subiré foto cuando pueda), y en breve me imprimiré con la impresora 3D y quedará todo "niquelao".

Una vez todo conectado, la puesta en marcha es la típica en los productos de este tipo: instalarse la app, darle corriente, asociarse a la wifi temporal que expone el cacharro, configurar los datos de nuestra wifi y ya funciona todo. La aplicación de Shelly no es la más bonita del mundo y en ocasiones es un poco confusa, pero cumple su función, y total no me importa demasiado porque mi idea es integrarlo con mi Home Assistant y mirarlo todo desde allí. Por eso tampoco he activado el cloud de Shelly, que permite subir los consumos y guardar históricos. Pero vamos, que la opción está ahí.

Una vez está todo funcionando, empezamos a ver las diferencias con los medidores de consumo "normales". Donde otros medidores te obligan a usar su app para ver los consumos, en Shelly todo es abierto: además de verlos en la app, el Shelly EM puede publicar los consumos vía MQTT (que es un protocolo muy ligero y muy chulo para cosas domóticas), o tiene también una API que permite acceder a todos los datos vía HTTP. Mi idea inicial era usar MQTT, ya que ya lo utilizo para otras cosas en mi red doméstica, pero no sé si por desconocimiento o porque el soporte está un poco verde aún, no he conseguido hacer que funcione bien. Sólo se publicaba el consumo de uno de los dos medidores, y ni siquiera en el "topic" que indicaba la documentación. Quizá se hubiera solucionado con una actualización de firmware o similar, pero finalmente accedo a los consumos vía la API, y listos. Aunque esto de usar una API REST suene muy técnico, al final es acceder a una URL, que te devuelve un numerito.

Por ejemplo, accediendo a la URL:



me devuelve algo como esto:

{
"power": 0.00,
"reactive":-141.45,
"voltage":236.40,
"is_valid":true,
"timestamp":1569510362,
"counters":[0.000, 0.000, 0.000],
"total"
:52947
}

Que en términos informáticos es una representación JSON de lo que esté midiendo el monitor (potencia, voltaje, reactiva, etc.). El JSON es algo que "entiende" prácticamente cualquier programa o sistema domótico, con lo que la integración con prácticamente cualquier cosa es trivial.

Ahora tendría que explicar cómo he integrado esto con mi Home Assistant, cómo uso Node-Red para exportar los consumos a una base de datos InfluxDB y poder hacer gráficas con Grafana... pero eso da para otro post entero, por lo que casi que lo dejo aquí :). Dejo simplemente un pantallazo del resultado final, que son básicamente gráficas chulas, actualizadas en tiempo real con el consumo eléctrico de la casa, desglosado al máximo posible y con estadísticas sobre consumo horario y diario. El consumo global y la bomba de calor los mido con el Shelly EM, el termo eléctrico con un TP-Link HS-110 que tengo puesto desde hace tiempo:

grafana_general.png grafana_semanal.png

Para concluir, decir que estoy muy satisfecho con el Shelly EM, y me parece una compra excelente a un precio muy razonable. Además, el hecho de usar tecnologías abiertas da garantía de que el fabricante no nos va a dejar tirados pasado mañana cuando decidan que ya no nos quieren dar soporte. Aunque mañana la gente de Shelly se vayan a la quiebra (que espero que no :) ), nuestros aparatos van a funcionar exactamente igual, porque el control lo tenemos nosotros.
 
Por cierto, que al postear sólo me dejaba escoger entre "Brico" o "Consulta", no me aparecía "Review". Si algún administrador lo quiere añadir, quedará bastante mejor la cosa...
 
Siguiendo este brico,yo tambien compre el cacharro por sus posibilidades.
Tengo montado ya el entorno con Node red, Influxdb y Grafana.
He hecho andar el MQTT en el Shelly, pero finalmente lo he dejado estar porque queria recoger todos los campos con un solo mensaje...por lo que he pasado a utilizar la http api de forma periodica.
Y aqui me he quedado atascado. Necesito extraer el json de las medidas para poder pasarlo al influxdb en modo batch.
 
Yo ahora mismo lo tengo configurado para leer por HTTP con Home Assistant, y luego Node Red lo lee de allí, y lo envía a influxdb. De todas formas desde Node Red se podría leer perfectamente directo desde el Shelly, tanto por HTTP como por MQTT. Me pillas de viaje y ahora mismo no lo tengo a mano, en unos días lo miro.

De todas formas te recomiendo que lo hagas por MQTT, más que nada porque así es el dispositivo el que decide cuándo tomar las medidas. Leyendo por HTTP tienes que decidir tú cada cuánto leer, y si lees cada 30 segundos y entre medias hay fluctuaciones, te las pierdes. Con MQTT, si hay muchas variaciones el Shelly te las envía todas, y si hay pocas (por ejemplo cuando no haya consumo) pues no te envía ninguna, y eso que ahorras en espacio.
 
Hola @Jesús,
la verdad es que este miniproyecto personal queria servir para:
1) comparar los consumos con los de la comercializadora
2) poder aprender un poco de nodered, influx y grafana

Ya he conseguido inyectar los valores desde la HTTP API en el Grafana y queria replicar la curva de carga de Wh de la distribuidora.

La HTTP API me da potencia(W) entre otros:
"{"power":75.93,"reactive":-145.14,"voltage":229.96,"is_valid":true,"total":40783.2,"total_returned":0.0}"

Con el MQTT tienes opciones con valores de energia:
  • shellies/shellyem-<deviceid>/emeter/<i>/energy an incrementing energy counter in Watt-minute
  • shellies/shellyem-<deviceid>/emeter/<i>/returned_energy energy returned to the grid in Watt-minute
  • shellies/shellyem-<deviceid>/emeter/<i>/power instantaneous active power in Watts
  • shellies/shellyem-<deviceid>/emeter/<i>/reactive_power instantaneous reactive power in Watts
  • shellies/shellyem-<deviceid>/emeter/<i>/voltage grid voltage in Volts
  • shellies/shellyem-<deviceid>/relay/0 the state of the internal relay

Y por ultimo, menos practico, el CSV que exportas desde la web del Shelly, que te da estos campos:
Date/time UTC,Active energy Wh,Returned energy Wh,Min V,Max V


Para sacar los Wh, se me ocurre integrar la curva de potencia o ir haciendo diferencias en la de total. No veo cual puede ser la manera de hacerlo.
No tendras demasiados datos por MQTT? Yo queria guardar todos los campos juntos de un instante y por eso utilice la http api.
Si quieres hacerlo con MQTT, no tendras demasiados registros? Quiero decir muy dispersos.....diferentes magnitudes y cada una con su timestamp.
Por otro lado, tener MQTT activo te obliga a desconectarlo del cloud de Shelly, lo que no puedo hacer por el momento hasta tener mis graficas.
 
Yo lo cojo todo por MQTT, lo cargo en Influxdb, y luego en Grafana muestro las gráficas. Efectivamente, para sacar los Wh a partir del consumo instantáneo hay que integrar, que suena muy complicado pero es básicamente usar una función que se llama "integrate()" y palante :). Cacharreando un poco quedan gráficas muy chulas, pongo un pantallazo de cómo lo tengo ahora:


upload_2019-11-15_16-8-59.png


El espacio en disco no me preocupa demasiado. Justamente InfluxDB está optimizada para guardar series temporales, resumiendo mucho sólo guarda las diferencias entre un valor y el siguiente y así no ocupa apenas nada en comparación con guardar lo mismo en una base de datos convencional. Acabo de mirar, y en los 3 meses que llevo monitorizando consumos de 3 sensores diferentes, apenas me ocupa 17 MB. Me parece bastante razonable, la verdad, y de hecho ya estoy pensando comprarme más Shellys para monitorizar diferentes circuitos independientemente.
 
Me parece muy interesante este medidor de consumo.
El que sea con código abierto y que no tengas que depender de que cierren, es una gran ventaja, pero ¿No tiene una Web similar a la de Wibeee en la que poder ver todas esas gráficas de consumo por días, meses años... sin necesidad de trastear mucho con protocolos?
 
Me parece muy interesante este medidor de consumo.
El que sea con código abierto y que no tengas que depender de que cierren, es una gran ventaja, pero ¿No tiene una Web similar a la de Wibeee en la que poder ver todas esas gráficas de consumo por días, meses años... sin necesidad de trastear mucho con protocolos?

Yo la verdad es que no lo uso, pero los cacharros Shelly tienen la opción de subir los consumos a la nube (de Shelly), y así desde la app puedes ver gráficas, estadísticas y demás, Supongo que también deben tener una web, pero no sé muy bien cómo es.
 
Yo tengo 3 Shelly 1 montados por casa y que yo sepa no hay ninguna web desde la que poder manejarlos, sólo desde la app.
Precisamente estaba buscando si es posible integrar un Shelly EM en Home Assistant, acabo de empezar en el mundo de la Raspberry y no tengo mucha idea, pero ya he conseguido integrar los Shellys que tengo en ella, asi que, viendo que es posible hacerlo también con el EM, no va a tardar mucho en que llegue a casa para poder "cacharrear".
Actualmente tengo placas fotovoltaicas de SMA y para poder monitorizar la producción hay que tener el Energy Meter que sale por unos 400€ y como que no estoy dispuesto a gastarme ese dineral.
Gracias por vuestras aportaciones, pero amenazo con volver para preguntar sobre como integrarlo en HA :D
Por cierto @Jesús yo que tengo placas fotovoltaicas debo comprar dos pinzas no? Una para la producción de las placas y otra para la corriente de la distribuidora?
 
Última edición:
Integrar cualquier Shelly con Home Assistant es muy fácil. En realidad, hay varias formas:
  1. Leer los consumos por HTTP, usando un nodo de tipo REST y poniendo la URL del shelly.
  2. Configurar el Shelly para que envíe los consumos por MQTT (requiere que tengas un servidorcillo MQTT), y luego configuras en Home Assistant un nodo MQTT.
La opción 2 es la mejor, ya que cada vez que el Shelly tiene un consumo nuevo notificará al nodo de Home Assistant, y estará siempre actualizado. Leyendo por HTTP tienes que establecer tú con qué frecuencia consultarás el estado del Shelly, y tanto te puedes pasar de frecuencia, leyendo más veces de las necesarias, como quedarte corto y perder valores. El inconveniente del MQTT es, primero, que tienes que tener un servidor MQTT en casa (aunque es instalar un paquete en cualquier linux/raspberry), y segundo que por algún extraño motivo, si activas el MQTT en los Shelly, pierdes la posibilidad de usar su nube. Que teniendo Home Assistant igual ya no te hace falta, pero allá cada cual.

Sobre las placas, efectivamente si quieres monitorizar las placas por separado te hará falta otra pinza aparte de la general (el Shelly EM soporta un máximo de dos pinzas). En realidad yo me volví un poco loco en el Black Friday, y me pegó por monitorizar el consumo de toda la casa, por lo que compré tantos trastos como circuitos tengo en el cuadro eléctrico :). De momento tengo puestos 2 Shelly EM (cuatro circuitos en total para general, bomba de calor, horno y vitro), 4 Shelly 1PM para iluminación, or poner, y 2 Shelly Plug para monitorizar cosas que no tienen circuito dedicado o que es más fácil hacerlo así (calefactores del baño, lavaplatos, lavadora, termo...).
 
Uf! Me quedan muchas horas por leer, pero lo haré. Ahora mismo estoy intentando poner el Home Assistant con conexión de datos, ya que sin wifi, no puedo manejarlo desde el móvil. Y entonces si pierdo la conexión de la nube de la app de Shelly me quedaré sin poder usarla desde fuera de casa, jeje.
Por cierto, no me deja comprar la web de Shelly el EM, me dice no se qué y que contacte con ellos, hace un par de días les envíe un mail y aún no han contestado.
Muchas gracias.
 
Me ha llegado ayer un Shelly EM que he integrado a través de rest en Home Assistant. El problema es que los contadores de los totales de energía consumida no se ponen a cero y de esa manera no puedo saber el consumo diario de casa. Alguien sabe como se podría solucionar esto?
 
Atrás
Arriba