Controladores domóticos por Hardware => eedomus => Mensaje iniciado por: tuket32 en Agosto 22, 2018, 14:16:04 pm

Título: Integrar Sonoff en Eedomus con firmware modificado
Publicado por: tuket32 en Agosto 22, 2018, 14:16:04 pm
Primero saludos a todos, comentaros que no podemos realizar esta operación sin modificar nuestros Sonoff, voy a usar la versión básica y he reutilizado un código muy básico adaptado para Sonoff para integrarlo un poco mas con eedomus.

Lo primero es soldar unos header pin female a nuestro sonoff a si nos quedara mas profesional.

Necesitamos un adaptador USB a serie que podemos encontrar fácilmente entre los 7 / 10 Euros.

Descargamos Arduino en nuestro pc y también tenemos que descargar las librerías del microcontrolador ESP2688 para incluirlas en nuestro Arduino.

Una vez hecho esto se compila el código y se sube al microcontrolador y ya tendríamos nuestro sonoff listo e integrado con eedomus.

Voy a preparar unas fotos y el código, no es muy difícil  realizarlo, si acaso lo mas difícil sería soldar los pines.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Agosto 22, 2018, 15:03:16 pm
Yo he desarrollado un firmware para Sonoff Basic que se integra con eedomus mediante la API eedomus.

Permite no sólo controlar el Sonoff desde eedomus, sino obtener retorno de estado en eedomus en el mismo periférico. De esta forma, eedomus sabe el estado también si se pulsa el pulsador físico.

Ese firmware va de la mano de un plugin para la Store eedomus que he desarrollado, para crear automáticamente el periférico necesario en eedomus. El plugin no está publicado aún. Estoy finalizando todo.

Es estupendo que hayas hecho tu otro firmware para eedomus, seguro que nos sirve para mejorar ambos desarrollos.

En efecto, no es complicado con IDE Arduino, ya sea en PC o en Mac.

Yo he optado por usar el gpio0, es decir el pulsador físico que trae el Sonoff, y le he soldado dos cables para poder conectarlo a uno o varios pulsador para poder controlar conmutadas, ya que en el Sonoff Basic el gpio14, que sería la otra alternativa, tiene un comportamiento errático en mi caso. No sé si será el Sonoff que estoy usando o son todos, pero no se comporta como el gpio0.

¿Como has enfocado tu esto del pulsador físico?

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: tuket32 en Agosto 22, 2018, 18:01:42 pm
Del pulsador físico aún no le he metido mano, ahora mismo en resumidas cuentas cambio el estado de sonoff con un actuador http , cuando esté cambia el estado del relé se encarga de devolver el estado a eedomus atraves del API , tengo 4 valores en el actuador on off encendido y apagado. Además de poder ver tb el estado atraves de xml o en la web de labio de sonoff. Estoy esperando recibir una sonda de temperatura para integrarla en el gpio libre y poder conocer la temperatura de la misma envía dosela a eedomus y en mi caso ejecutar una escena.

La verdad que el botón aún no lo he probado pero  entiendo que podemos encender y apagar el relé. Por otra parte estaría muy bien cambiar el led por uno RGB y mostrarnos más información.

Voy a probarlo y te digo.

Enviado desde mi Nexus 5X mediante Tapatalk

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: tuket32 en Agosto 22, 2018, 19:58:57 pm
Bueno aun me queda pulir mas el código pero ya es funcional, he incluido el propio boton de sonoff, a ver si puedes explicarme un poco mas que querías phroc hacer con los cables que soldaste.

Código: [Seleccionar]
/*
  Simple Wifi Switch
*/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESP8266HTTPClient.h>
MDNSResponder mdns;

// Replace with your network credentials
 const char* ssid = "TU_RED_WIFI";
 const char* password = "CLAVE_WIFI";

const char* device = "LED COCINA";

ESP8266WebServer server(80);

String web_on_html = "<h1>SONOFF switch is ON</h1><p><a href=\"on\"><button>ON</button></a>&nbsp;<a href=\"off\"><button>OFF</button></a></p>";
String web_off_html = "<h1>SONOFF switch is OFF</h1><p><a href=\"on\"><button>ON</button></a>&nbsp;<a href=\"off\"><button>OFF</button></a></p>";
String web_on_xml = "<?xml version='1.0'?><sonoff><estado>100</estado></sonoff>";
String web_off_xml = "<?xml version='1.0'?><sonoff><estado>0</estado></sonoff>";
String config_on_html = "<html> <title>Tuknet Wifi Rele</title> <div style='vertical-align:middle; position: absolute; left: 50%; top: 50%;  transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%);'  > <table style='margin: 0 auto;'   border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td style='padding: 10px 0 30px 0;'> <table align='center' border='0' cellpadding='0' cellspacing='0' width='600' style='border: 1px solid #cccccc; border-collapse: collapse;'> <tr> <td align='center' style='padding: 20px 0px 20px 0;'> <img src='https://www.tuknet.es/wp-content/uploads/2018/07/logo-tuknet_small.png' srcset='https://www.tuknet.es/wp-content/uploads/2018/07/logo-tuknet_small.png' alt='Tuknet 2018' width='203' height='55'  /> </td> </tr> <tr> <td bgcolor='#ffffff' style='padding: 40px 30px 40px 30px;'> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <p style='font-size:20px;text-align:center;'>El LED COCINA esta <b>encendido</b></p></table> </td> </tr> </table> </td> </tr> <tr> <td bgcolor='#2a70d3' style='padding: 30px 30px 30px 30px;'> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td style='text-align:center;color: #ffffff; font-family: Arial, sans-serif; font-size: 14px;' > &reg; Tuknet 2018 <br/></td></tr> </table> </td> </tr> </table> </div> </td> </tr> </table> </div> </html>";
String config_off_html = "<html> <title>Tuknet Wifi Rele</title> <div style='vertical-align:middle; position: absolute; left: 50%; top: 50%;  transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%);'  > <table style='margin: 0 auto;'   border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td style='padding: 10px 0 30px 0;'> <table align='center' border='0' cellpadding='0' cellspacing='0' width='600' style='border: 1px solid #cccccc; border-collapse: collapse;'> <tr> <td align='center' style='padding: 20px 0px 20px 0;'> <img src='https://www.tuknet.es/wp-content/uploads/2018/07/logo-tuknet_small.png' srcset='https://www.tuknet.es/wp-content/uploads/2018/07/logo-tuknet_small.png' alt='Tuknet 2018' width='203' height='55'  /> </td> </tr> <tr> <td bgcolor='#ffffff' style='padding: 40px 30px 40px 30px;'> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <p style='font-size:20px;text-align:center;'>El LED COCINA esta <b>apagado</b></p></table> </td> </tr> </table> </td> </tr> <tr> <td bgcolor='#2a70d3' style='padding: 30px 30px 30px 30px;'> <table border='0' cellpadding='0' cellspacing='0' width='100%'> <tr> <td style='text-align:center;color: #ffffff; font-family: Arial, sans-serif; font-size: 14px;' > &reg; Tuknet 2018 <br/></td></tr> </table> </td> </tr> </table> </div> </td> </tr> </table> </div> </html>";
int gpio_13_led = 13;
int gpio_12_relay = 12;
int gpio_0_button = 0;
int value = 0;
int estado = 0;

void setup(void){ 
  //  Init
  pinMode(gpio_13_led, OUTPUT);
  digitalWrite(gpio_13_led, LOW);
 
  pinMode(gpio_12_relay, OUTPUT);
  digitalWrite(gpio_12_relay, LOW);

  HTTPClient http;
  http.begin("http://api.eedomus.com/set?api_user=[TU_API_USER]&api_secret=[TU_API_SECRET]&action=periph.value&periph_id=[TU_ID_PERIFERICO]8&value=101");
 
  Serial.begin(115200);
  delay(5000);
  pinMode(gpio_0_button, INPUT);
 
  WiFi.begin(ssid, password);
  Serial.println("Connecting to wifi..");
     
   
  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    digitalWrite(gpio_13_led, LOW);
    delay(500);
    Serial.print(".");
    Serial.println(WiFi.localIP());
    Serial.println(WiFi.status());
    digitalWrite(gpio_13_led, HIGH);
    delay(500);
  }
 
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  Serial.print("Dispositivo: ");
  Serial.println(device);
 
  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
 
  server.on("/", [](){
    if(digitalRead(gpio_12_relay)==HIGH) {
      server.send(200, "text/html", config_on_html);
    } else {
      server.send(200, "text/html", config_off_html);
    }
  });
  //Inicio prueba
  server.on("/xml", [](){
    if(digitalRead(gpio_12_relay)==HIGH) {
      server.send(200, "text/html", web_on_xml);
    } else {
      server.send(200, "text/html", web_off_xml);
    }
  });
  //Fin de prueba
 
  server.on("/onapi[HASH_API]", [](){
    server.send(200, "text/html", config_on_html);
    digitalWrite(gpio_13_led, LOW);
    digitalWrite(gpio_12_relay, HIGH);
    HTTPClient http;
    http.begin("http://api.eedomus.com/set?api_user=[TU_API_USER]&api_secret=[TU_API_SECRET]&action=periph.value&periph_id=[TU_ID_PERIFERICO]8&value=101");
    int httpCode = http.GET();
    delay(1000);
  });
 
  server.on("/offapi[HASH_API]", [](){
    server.send(200, "text/html", config_off_html);
    digitalWrite(gpio_13_led, HIGH);
    digitalWrite(gpio_12_relay, LOW);
     HTTPClient http;
    http.begin("http://api.eedomus.com/set?api_user=[TU_API_USER]&api_secret=[TU_API_SECRET]&action=periph.value&periph_id=[TU_ID_PERIFERICO]8&value=102");
    int httpCode = http.GET();
    delay(1000);
  });
 
  server.begin();
  Serial.println("Server ready..");
}
 
void loop(void){
  value = digitalRead(gpio_0_button);
   if (value == HIGH) {
      Serial.println("Suelto");
  }
  else {
      Serial.println("Pulsado");

      estado = digitalRead(gpio_12_relay);
      if (estado == 1){
       
        Serial.println("El rele estaba encendido lo apago");
        digitalWrite(gpio_13_led, HIGH);
        digitalWrite(gpio_12_relay, LOW);
        HTTPClient http;
        http.begin("http://api.eedomus.com/set?api_user=[TU_API_USER]&api_secret=[TU_API_SECRET]&action=periph.value&periph_id=[TU_ID_PERIFERICO]8&value=102");
        int httpCode = http.GET();
        delay(1000);
        }
     else{
        Serial.println("El rele estaba apagado lo enciendo");
        digitalWrite(gpio_13_led, LOW);
        digitalWrite(gpio_12_relay, HIGH);
        HTTPClient http;
        http.begin("http://api.eedomus.com/set?api_user=[TU_API_USER]&api_secret=[TU_API_SECRET]&action=periph.value&periph_id=[TU_ID_PERIFERICO]8&value=101");
        int httpCode = http.GET();
        delay(1000);
     
     
      }   
  }
  delay(1000);
  server.handleClient();
 
}
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: tuket32 en Agosto 22, 2018, 20:00:51 pm
Sería bueno hacer un tutorial completo para configurar el arduino y subir el código.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Agosto 22, 2018, 21:40:54 pm
Fantástico.

Sí, sería bueno un tutorial completo. Podemos publicarlo en el blog.

Vamos a avanzar si te parece con los firmware y cuando lo tengamos todo lo documentamos paso a paso.

Voy a subir mi firmware aquí por si sirve. Así a bote pronto, el plugin que he hecho para la eedomus Store creo que valdría tanto para mi firmware como para el tuyo.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Agosto 22, 2018, 21:48:19 pm
Este es el firmware que he desarrollado yo. Muy parecido al tuyo en algunas cosas, y un enfoque distinto en otras.

Se puede controlar tanto desde eedomus como desde el pulsador del Sonoff, con reporte de estado en eedomus en ambos casos. Como te comentaba, lo he hecho con el pulsador porque el gpio14 tiene un comportamiento errático configurado como input. No sé en tu caso.


[EDITO: He modificado un poco el código. Lo que viene a continuación en la última versión]

Código: [Seleccionar]
/*********

  ESPeedomus v1.0
 
  Sketch para controlar módulos Sonoff desde eedomus

  Puede usarse, copiarse, distribuirse y modificarse libremente,
  siempre que se mencione su origen y su autor.

  Se proporciona sin ningún tipo de garantía, expresa o implícita,
  sobre su funcionamiento y uso.

  Desarrollado por Philippe Rochette
  Web: http://pr-domotica.es
  mail: contacto@pr-domotica.es
 
*********/

// Librerías que necesitamos

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>


MDNSResponder mdns;
//--------------------------------------------------------------------
// En este apartado, el usuario debe indicar los datos de conexión
// a su red Wifi:
const char* ssid = "NOMBRE_DE_TU_RED_WIFI";
const char* password = "CONTRASEÑA_WIFI";
//--------------------------------------------------------------------

//--------------------------------------------------------------------
// En la siguiente cadena, el usuario debe sustituir los datos
// entre corchetes por los suyos propios (los corchetes deben
// suprimirse):
String http_request = "http://[IP_LOCAL_EEDOMUS]/api/set?api_user=[TU_API_USER_EEDOMUS]&api_secret=[TU_API_SECRET_EEDOMUS]&action=periph.value&periph_id=[CODIGO_API_PERIFERICO_SONOFF]&value=";
//--------------------------------------------------------------------

// Puerto del servidor http
ESP8266WebServer server(80);

// GPIO's usados
int gpio13Led = 13;
int gpio12Relay = 12;
int gpio0Switch = 0;


void setup(void) {

  // Configuración de los GPIO's
  pinMode(gpio13Led, OUTPUT);
  digitalWrite(gpio13Led, HIGH);

  pinMode(gpio12Relay, OUTPUT);
  digitalWrite(gpio12Relay, HIGH);

  pinMode(gpio0Switch, INPUT);

  Serial.begin(115200);
  delay(5000);
  WiFi.begin(ssid, password);
  Serial.println("");


  // Delay hasta conexión a Wifi
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Conectado a la red Wifi ");
  Serial.println(ssid);
  Serial.print("Dirección IP: ");
  Serial.println(WiFi.localIP());

  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder operativo");
  }
 
  // Servidor http
  server.on("/sonoff/espeedomus/", []() {
  });
  server.on("/sonoff/espeedomus/100", []() {
    server.send(200, "text/html", "Sonoff ON");
    digitalWrite(gpio13Led, LOW);
    digitalWrite(gpio12Relay, HIGH);
    delay(1000);
  });
  server.on("/sonoff/espeedomus/10", []() {
    server.send(200, "text/html", "Sonoff OFF");
    digitalWrite(gpio13Led, HIGH);
    digitalWrite(gpio12Relay, LOW);
    delay(1000);
  });

  server.begin();
  Serial.println("Servidor HTTP operativo");
}

void loop(void) {
  server.handleClient();

  // Condiciones en caso de que el pulsador esté pulsado
  if ((digitalRead(gpio0Switch)==LOW) && (digitalRead(gpio12Relay)==HIGH)) {
  digitalWrite(gpio13Led, HIGH);
  digitalWrite(gpio12Relay, LOW);
  HTTPClient Post;
  Post.begin(http_request + 0);
  Post.POST(http_request + 0);
  Post.end();
  delay(350);
  };

 if ((digitalRead(gpio0Switch)==LOW) && (digitalRead(gpio12Relay)==LOW)) {
  digitalWrite(gpio13Led, LOW);
  digitalWrite(gpio12Relay, HIGH);
  HTTPClient Post;
  Post.begin(http_request + 1);
  Post.POST(http_request + 1);
  Post.end();
  delay(350);
  };
}
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: rauljerico en Septiembre 03, 2018, 16:40:24 pm
Espero impaciente este tutorial para comprarme 5 ó 6 :P

Prefieres tener una red mallada dedicada como Z-Wave o abrazas las bondades de wifi? Al tener otros dispositivos no domóticos en la red wifi, no podría llegar a dar algún problema?

Gracias Philip
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Septiembre 03, 2018, 18:22:37 pm
El tutorial de como falshear los Sonoff llegará, lo prometo, pero no puedo decir cuando aún porque tengo muchas cosas entre manos...

En cualquier caso, hay tutoriales sobre eso en la red y en español para los impacientes ;)


Por lo general no me gustan los periféricos domóticos Wifi, entre otras cosas porque las redes wifi, desde mi experiencia, son mucho menos estables que las redes Z-Wave. Lo que ocurre es que hoy en día no te puedes mantener al margen de lo que sucede en el mercado. El Wifi tiene su cuota de mercado en la domótica, y más ahora con los asistentes de voz como Google Home, ya que la integración con éstos se hace por Wifi y API.

En cuanto a los Sonoff, era más por investigar y cacharrear que otra cosa, y porque sé que estos dispositivos tienen mucho éxito por su precio y por tanto interesan a mucha gente. Están basados en el chip ESP8266, que es un must ahora mismo en el campo del IoT. Muchísimos dispositivos los usan y está bien saber qué es, cómo funciona, cómo programarlo... Pero no todo es oro lo que reluce ni en Sonoff ni en el ESP8266. La conexión Wifi que ofrecen puede llegar a fallar con cierta frecuencia según tu red Wifi y el router que uses. A mi me han dado quebraderos de cabeza con un router concreto de Asus y en cambio van como la seda con un Airport Extreme "viejito" de Apple. Ahora que tengo la fibra recién instalada, los volveré a probar con el router de fibra de Movistar, a ver qué estabilidad ofrecen.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Ayalaman en Septiembre 03, 2018, 18:43:10 pm
Tendremos que esperar! Gracias phroc


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Ayalaman en Septiembre 03, 2018, 20:28:40 pm
Por cierto que sonoff me recomendáis comprar para integrar en eedomus un calefactor que tengo en el baño de 1000/2000w. Quiero que se active y se apague con el interruptor y así nunca me lo dejo encendido.... gracias!


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Septiembre 03, 2018, 20:36:14 pm
Si quieres flashearlo con el firmware ESPeedomus, de momento tiene que ser el SonOff Basic, es el único compatible.

Si lo flasheas con ESPurna o Tasmota, tienes más para elegir. Quizá el que reporta consumo te interese.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Ayalaman en Septiembre 03, 2018, 20:39:55 pm
Cualquiera se puede integrar en eedomus?


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Bull en Septiembre 03, 2018, 20:42:04 pm
Sonos son 10A máximo de carga, me da que vas un poco justo para manejar un calentador, si tienes zwave yo tiraría a por un schuko Aeon labs S3 que aguanta 16A 3500w.

http://amzn.eu/d/1f5CRps (http://amzn.eu/d/1f5CRps)

Por cierto que sonoff me recomendáis comprar para integrar en eedomus un calefactor que tengo en el baño de 1000/2000w. Quiero que se active y se apague con el interruptor y así nunca me lo dejo encendido.... gracias!


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Septiembre 03, 2018, 20:56:44 pm
Sonos son 10A máximo de carga, me da que vas un poco justo para manejar un calentador, si tienes zwave yo tiraría a por un schuko Aeon labs S3 que aguanta 16A 3500w.

http://amzn.eu/d/1f5CRps (http://amzn.eu/d/1f5CRps)

Por cierto que sonoff me recomendáis comprar para integrar en eedomus un calefactor que tengo en el baño de 1000/2000w. Quiero que se active y se apague con el interruptor y así nunca me lo dejo encendido.... gracias!


Enviado desde mi iPhone utilizando Tapatalk

Tienes toda la razón, no hay que llevar estar plaquitas a extremos... Mejor ser conservador en ese sentido y no llegar a los 10A.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Ayalaman en Septiembre 04, 2018, 09:16:33 am
Me pareció ver que había de sonoff de 16a puede ser?


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: Ayalaman en Septiembre 04, 2018, 09:22:33 am
Efectivamente se llama sonoff pow r2 16a se puede integrar con Alexis, ifttt. Asíq se podrá integrar por api en eedomus? Gracias por la ayuda


Enviado desde mi iPhone utilizando Tapatalk
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Septiembre 04, 2018, 10:07:00 am
Por API no. Esa API que tiene no es pública, es para IFTTT.

Si no lo flasheas, lo puedes integrar por IFTTT. Expliqué aquí como hacerlo:

http://www.domoticadomestica.com/como-integrar-los-productos-sonoff-en-eedomus-a-traves-de-ifttt/

Eso sí, para usarlo con un pulsador de pared, tendrás que soldar dos cables donde el pulsador del Sonoff.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Octubre 27, 2018, 08:39:27 am
Definitivamente solo se puede usar con pulsador?.
No hay forma de usarlo con interruptor o conmutador?
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Octubre 27, 2018, 11:33:06 am
Si quieres poder usarlo en conmutadas, en efecto tienes que usar pulsadores conectados en paralelo. De hecho, con esa configuración puedes tener el número de pulsadores que quieras en un mismo circuito: dos, tres o más...

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Octubre 29, 2018, 09:54:30 am
Los pulsadores los tengo que descartar porque a "la jefa" no le molan ... es muy tradicional.

Voy a darle una oportunidad al gpio14 para ver si también me va errático como a tí o se queda fiable ... updatearé por aquí los resultados.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Octubre 29, 2018, 10:30:04 am
Los pulsadores los tengo que descartar porque a "la jefa" no le molan ... es muy tradicional.

Voy a darle una oportunidad al gpio14 para ver si también me va errático como a tí o se queda fiable ... updatearé por aquí los resultados.

Debería funcionar con el gpio 14, para eso está. Ya nos cuentas.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 16, 2018, 15:21:59 pm
Algo hay raro  :(
Puenteando GPIO14 y GND no funciona en absoluto.

Entiendo que esto es algo físico, que no depende del firmware ...¿es correcto?
¿Alguien ha usado el GPIO14? ... además de Phroc

He visto este post en el que usan un capacitador para evitar los falsos on/off, pero sin él debería funcionar también, al menos para pruebas --> https://community.home-assistant.io/t/sonoff-flickering-with-gpio14-and-gnd-connected/72403/2
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 16, 2018, 15:31:20 pm
La explicación de los falsos on/off está muy explicada aquí (instrucciones de Tasmota):

Código: [Seleccionar]
Electrical considerations
When you switch a GPIO pin to an input and hang a long wire off of it, that wire can pick up stray signals and cause the voltage on the GPIO pin to vary. This can cause the system to think the switch has changed.

To fix this, there are several things you can do.

add a pull-up resistor
add a bypass capacitor
shielding on the wire
use twisted pair wiring
A pull-up resistor is a resistor connected between the GPIO pin and 3.3v. The exact value of this is not critical, 4.7k is a common value to use, as is 10k. This ensures that when the switch it open, the GPIO pin will go high.

A bypass capacitor is a small (pF range) capacitor that is connected between the GPIO and ground. This provides a path for any radio signals that are picked up by the wire to go to ground and not confuse the system.

Shielding or using twisted pair wiring are other ways to reduce the effect of radio signals on the system.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Noviembre 16, 2018, 17:44:10 pm
Para usar el GPIO habría que modificar ligeramente mi script. Pero es muy sencillo, de hecho el script inicial contemplaba esa posibilidad pero al comprobar que no iba bien opté por el pulsador físico del módulo nada más.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 16, 2018, 19:20:50 pm
Para usar el GPIO habría que modificar ligeramente mi script. Pero es muy sencillo, de hecho el script inicial contemplaba esa posibilidad pero al comprobar que no iba bien opté por el pulsador físico del módulo nada más.
Pues si tienes esas líneas de código en el repositorio y me las pegas te lo agradezco.

Yo hago pruebas y te confirmo como va tal cual y si no va bien hago pruebas con el capacitador y vemos.

Gracias!!

Enviado desde mi Redmi 4X mediante Tapatalk

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Noviembre 17, 2018, 11:10:11 am
Acabo de mirar y ya no tengo ese código, pero es muy sencillo el cambio:

- Donde pone: int gpio0Switch = 0; pon: int gpio14Switch = 14;

- Y luego donde pone: gpio0Switch pon gpio14Switch (en varios sitios)

Así debería "funcionar" si el comportamiento del gpio 14 es el esperado.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 17, 2018, 11:57:04 am
Mil gracias, lo pruebo y os cuento que tal ;)
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 19, 2018, 15:59:02 pm
Bueno, pues después de algunas pruebas estoy en un loop infinito ...  ::)

He conseguido que mientras el interruptor esté ON (los dos polos del interruptor están unidos) se mantenga encendido y cuando el interruptor está OFF (se separan los dos polos) se apague.

El problema es que al encenderlo desde Eedomus pero estar el interruptor en OFF enseguida se apaga porque entra en la regla de "Si el relé está ON pero el interruptor está OFF lo apagas" (que es la que uso para apagarlo desde el interruptor).

Entonces ando sin ideas para decirle que si lo enciendo desde Eedomus da igual cómo esté el interruptor, que lo encienda y mantenga encendido :(

Alguna idea?
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 19, 2018, 16:45:10 pm
Bueno, pues más o menos tengo eso resuelto también, cambiando el estado del gpio14 mediante la petición de Eedomus (luego comparto el código cuando esté más limpio).

El problema que veo es que si enciendo desde Eedomus, al usar el interruptor físico debería apagar, pero como realmente lo que haces es unir los dos polos (estaba apagado físicamente y al pulsar el interruptor lo enciendo) vuelve a encenderlo. Entonces la sensación es que al usar el interruptor físico no funciona.
No sé si me explico porque es un poco lío, pero básicamente si lo uso solo desde Eedomus va bien, si lo uso solo desde el interruptor va bien ... pero si enciendo de uno y apago de otro es el problema.

Se que estos casos con un pulsador se resolverían, pero mi mujer "necesita" un interruptor.

Así que tengo que seguir rompiéndome la cabeza para ver cómo saber cómo se encendió/apagó e intentar adaptarme.
Si alguien ya ha pasado con esto y tiene la solución rápida se lo agradezco .... si no yo la publicaré cuando lo consiga  ;)
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Noviembre 19, 2018, 18:56:05 pm
En efecto, el firmware está previsto para pulsador...

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 20, 2018, 09:59:03 am
Ya estoy cerca ... solo me falta que si está encendido desde Eedomus y se usa el interruptor se apague.

En cuanto lo tenga subo el código
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: richi en Noviembre 27, 2018, 14:15:56 pm
Pues listo, ya lo tengo conseguido.

Se puede usar el GPIO14 con un interruptor.
Me enfoqué mucho en hacer que estuviese ON cuando el interruptor une los cables y que estuviese OFF cuando los cables se separan al pulsar de nuevo el interruptor y eso fue el problema.

Lo que he hecho es que da igual si en el interruptor el cable está unido (on) o separado (off). Cada vez que cambia de estado yo cambio el estado del Sonoff. Entonces da igual si se encendió por Eedomus y se apaga por el interruptor, etc. Al pulsar el interruptor cambio el estado ... y funciona !!

El código es bastante cutre porque ando sin tiempo y sin conocimientos ... pero como funciona, si alguien lo quiere lo subo y se puede mejorar seguro seguro.

Solo hay algo que no he conseguido solucionar y es la lentitud de las llamadas http post.
Si no hago esas llamadas (y por tanto no actualizo el estado en Eedomus) el interruptor es instantáneo y puedo pulsar y despulsar sin problemas. Si le añado el http post tengo que esperar a que se complete para pulsar de nuevo y esto no creo que va a ser "wife compatible".

¿Hay forma de agilizar esas llamadas http post?
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Noviembre 27, 2018, 16:03:55 pm
Es que como lo diseñe yo las llamadas http eran una "bifurcación" del código por así decirlo.

Quizá haya que repensarlo todo.

Genial que lo hayas conseguido!!!

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: arielxp en Febrero 22, 2021, 00:01:39 am
Hola amigos tengo un sonoff basic R3 y no le quiero poner Tasmota prefiero el ESPeedomus pero no se de donde descargarlo, estoy leyendo y buscando en los fotos pero no logro dar con la descarga.
Muchas gracias
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Febrero 22, 2021, 13:05:46 pm
En este hilo, en el primer mensaje, está enlazado espeedomus:

http://www.domoticadomestica.com/foro/index.php?topic=3333.msg32293#msg32293

Lo que no te puedo asegurar es que sea compatible con el R3. Ese firmware lo hice pasa los Sonoff Basic de entonces.

Saludos.
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: arielxp en Febrero 23, 2021, 02:36:20 am
En este hilo, en el primer mensaje, está enlazado espeedomus:

http://www.domoticadomestica.com/foro/index.php?topic=3333.msg32293#msg32293

Lo que no te puedo asegurar es que sea compatible con el R3. Ese firmware lo hice pasa los Sonoff Basic de entonces.

Saludos.

Excelente muchas gracias

lo pruebo y aviso para que todos sepan
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: arielxp en Febrero 23, 2021, 02:43:07 am
En este hilo, en el primer mensaje, está enlazado espeedomus:

http://www.domoticadomestica.com/foro/index.php?topic=3333.msg32293#msg32293

Lo que no te puedo asegurar es que sea compatible con el R3. Ese firmware lo hice pasa los Sonoff Basic de entonces.

Saludos.

Perdon pero ese hilo lleva al firmare de jeedom
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: miki en Febrero 23, 2021, 05:52:41 am
Hola Arielxp
Es esta:
http://www.domoticadomestica.com/foro/index.php?topic=3326.0
Saludos
Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: phroc en Febrero 23, 2021, 08:03:34 am
Hola Arielxp
Es esta:
http://www.domoticadomestica.com/foro/index.php?topic=3326.0
Saludos

En efecto, el hilo correcto es éste. Gracias por poner el enlace correcto.

Título: Re:Integrar Sonoff en Eedomus con firmware modificado
Publicado por: miki en Febrero 26, 2021, 05:52:46 am
De nada Phroc!!! ;)