Tienes que acceder para crear publicaciones y debates.

Desarrollo colaborativo Integración sonoff MQTT ExControl , usando Controlador Arduino mqtt

Páginas:123

Juan Ramon, yo lo tengo como dice Roberto , y con node-red para Alexa todo por Mqtt

 

Roberto e cambiado el inst con el generador y todo ok, el programa megaMqtt funcina perfectamente

 

 

Hola, yo no he podido probar, me compré un enchufe sonoff  pero ahora estoy de vacaciones....

Muchas gracias.

Marcos, hoy cambiare software y realizare pruebas.

Muy buenas tardes.

Comento algo mas sobre lo probado, el tema de estados no lo tengo muy claro, pero me gustaría oír vuestros comentarios para decidirme por uno o por otro.

Tengo creado estos topic en el MQTTMKR2

TopicCircuit[Number_Circuit]={"Enchufe/Entrada","Lamparilla/Entrada","Lamparilla/Salon"};   "Lamparilla/Salon" es el que controlo con tasmota

TopicSensors[Number_Sensor]={"Sensor/Matrimonio","Sensor/Mirador","Sensor/Pablo","Sensor/Entrada","Sensor/Invitados","Sensor/Salon","Sensor/Cocina"}

TopicEstado[Number_Circuit]={};

Tasmota lo veo muy fácil de implementar por MQTT, node red tiene nodo para tasmota, lo que observo que para el control de encendido o apagado se envían 5 paquetes MQTT.

MQTT MessageReceived Lamparilla/Salon-ON

MQTT MessageReceived cmnd/Lamparilla/Salon/power-ON

MQTT MessageReceived stat/Lamparilla/Salon/RESULT-{"POWER":"ON"}

MQTT MessageReceived stat/Lamparilla/Salon/POWER-ON

MQTT MessageReceived tele/Lamparilla/Salon/STATE-

Mas los que envía dispositivo sonoff cada 5 minutos con sus datos.

En espurna la comunicación la realizo por HTTP, por MQTT no he sido capaz de controlarlos,  los topic que uso para ello son "Enchufe/Entrada","Lamparilla/Entrada"

Cuando enciendo un dispositivo solo recibo.

MQTT MessageReceived Enchufe/Entrada-ON    y cuando apago  MQTT MessageReceived Enchufe/Entrada-OFF

(de esta forma no recibo datos del dispositivo, tengo desactivado MQTT)

El tema de estados para cuando se controla el dispositivo desde su botón o desde alexa no lo tengo implementado, marcos comento que lo visualizaba correctamente desde la app y server.

Imagino que seria desde el ExServer, puesto que en mi caso con el MQTT-MKR2 no se conecta con el servidor, solo con ExServer.

Esto es así o estoy haciendo algo mal.

Disculpad que me extienda tanto, pero me gustaría lanzarme por el camino correcto.

Muchas gracias.

Hola Juan Ramón.

La librería que usas no la hemos usado, pero tanto paquete para un solo circuito parece demasiado.

 

Ahora tienes un circuito... Pero, y cuando sean cien?

 

Creo que se debería optimizar.

 

 

Sobre el programa.... tienes que tener en cuenta dos tipos de topic diferentes.

TopicEstado

TopicCircuit

Estos estan declarados de la siguiente manera.

const String   TopicCircuit[Number_Circuit]={"cmnd/luz/pergola/POWER","cmnd/luz/cocina/POWER","cmnd/luz/encimera/POWER","cmnd/luz/pc/POWER","cmnd/luz/impresoras/POWER","cmnd/navidad/POWER","cmnd/recupe/POWER" };
const String   TopicEstado[Number_Circuit]={"stat/luz/pergola/POWER","stat/luz/cocina/POWER","stat/luz/encimera/POWER","stat/luz/pc/POWER","stat/luz/impresoras/POWER","stat/navidad/POWER","stat/recupe/POWER" };

 

El primero ... TopicEstado, se usa para recepcionar los cambios desde el esp... desde las entradas.

El segundo ...TopicCircuit, se usa para modificar el esp desde el arduino.

Vamos que topic estado es al que nos subscribimos para ver los cambios, y recepciona cambios desde las entradas del esp.

El segundo es para modificar ... escribir un nuevo valor en el esp.

A partir de esto... se tiene que configurar el programa.

Gracias por la respuesta.

TopicEstado, TopicCircuit lo tengo claro, solo que no lo puse por tratar de ir poco a poco.

Afinando un poco mas sobre lo dicho anteriormente.

Tengo 3 sonoff-basic, tanto tasmota como espurna,  emiten cada 5 minutos los datos del dispositivo por MQTT, cosa que no me convence, si dispones de varios y todos coinciden en el envió no sé los efectos, pienso que alguna función pueda perderse en ese momento. Eso pienso yo.

Con espurna lo controlo por HTTP correctamente, no emite nada mas que el dato preciso, para saber el estado no he localizado como recibirlo por HTTP.

Para las pruebas de estado si que he activado el MQTT en el espurna y se controla correctamente, pero estamos en lo mismo, cada 5 minutos datos al servidor.

Sobre el tema de configuración lo tengo claro, pero veo una cosa que no me gusta. (ya sabes como soy) no me gusta ver en el server o en la aplicación un exceso de objetos.

En la parte de saber el valor de los sensores de temperatura, para que alexa nos lo dicte, tengo creados los sensores en la central MQTT como genéricos por supuesto, en el archivo inst, la central que correspondería con MQTT-MEGA (no pongo los sensores) para no verlos duplicados en el servidor ni en la app

Pienso no poner los topic de estado para evitar el duplicado ya que no se controlan directamente, solo ponerlos en el MQTT.xml

Que opinas sobre esto.

Muchas gracias.

Hola.. muy buenas.

 

Lo de los sensores lo veo mas que correcto... un buen planteamiento.

En cuanto a lo de los cinco minutos creo que es algo que no creo que sea realmente malo.. no esta mal mandar un paquete de refresco de los datos...

 

 

Al igual que los sensores tampoco tengo puesto en el inst.xml los circuitos de estados, solo en mqtt.xml

Por el momento dejare tasmota y espurna, este ultimo se puede utilizar perfectamente con alexa sin usar exserver.

Todo controlado por app. server y alexa

Archivos subidos:
  • Persianas-y-escenas.png
  • Sensores-temperatura.png
  • Sonof-tasmota.png
  • Sonoff-espurna.png

Eso si que es sacar provecho de node red y mqtt... enhora buena... se ve muy limpio y muy ordenado todo... da gusto verlo.

Páginas:123