Manejo del Broadlink RM Mini 3 desde eedomus

Manejo del Broadlink RM Mini 3 desde eedomus
« en: Julio 04, 2017, 19:47:36 pm »
Tras un poco de investigación, os explico cómo poder controlar el Broadlink RM Mini desde la interfaz de vuestros eedomus.

Está escrito e 2 pdfs para poder colgar toda la información en este post, si necesitáis ayuda con algo, sin problema

Saludos
« Última modificación: Julio 22, 2017, 10:44:15 am por vinagrillo »

nix

  • *****
  • 546
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #1 en: Julio 05, 2017, 12:04:38 pm »
Grande!

Muchas gracias.

phroc

  • *
  • 5703
  • Belle époque
    • Ver Perfil
    • PR-DOMOTICA
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #2 en: Julio 05, 2017, 18:38:49 pm »
¡¡Gracias!!
https://pr-domotica.es/

Communication Manager & Business Manager Spain at  NodOn
Consultoría en domótica inalámbrica e IoT
Formación Oficial Jeedom
Formación LoRa

Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #3 en: Julio 05, 2017, 19:14:21 pm »
Muy currado vinagrillo, ¡Impresionante!

Tras un poco de investigación, os explico cómo poder controlar el Broadlink RM Mini desde la interfaz de vuestros eedomus.

Está escrito e 2 pdfs para poder colgar toda la información en este post, si necesitáis ayuda con algo, sin problema

Saludos

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #4 en: Julio 14, 2017, 21:16:32 pm »
Menudo curro Vinagrillo, gracias por compatirlo !!!

Pensaba que se podría hacer más sencillo con comandos http tipo http://ipdelbroalink/send?xxxxxxxxxxx
¿No es posible?

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #5 en: Julio 14, 2017, 21:27:41 pm »
Me refería a sniffar el comando que envía el móvil al RM mini y luego usar ese mismo comando como actuador http en eedomus

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #6 en: Julio 14, 2017, 21:31:18 pm »
Nada, no me hagas caso, que no había leído con calma tus instrucciones.
Está claro y de verdad que mola un montón que lo hayas compartido !!

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #7 en: Julio 15, 2017, 00:18:33 am »
Vinagrillo, a ver si me puedes echar una mano que estoy a punto de conseguirlo.

Todo ok con la instalación. Ejecuto correctamente el BlackBeanControl.py .... pero no hay output en consola.
En __init__.py he añadido las líneas y las he recomprobado.

Se generan los comandos en BlackBeanControl.ini.
Te adjunto un pantallazo con los comandos generados.

He añadido un print simple en la 276 solo para ver si entraba en el while True y no se imprime, por lo que parece que no está entrando.

El tema es que si dejo que llegue al timeout me muestra un Command not received mientras que si le envío una orden con el mando a distancia no muestra eso y además añade el command al ini.
Parece que la parte BlackBeanControl está ok pero algo no termino de encontrar en la parte Python-Broadlink.

¿Te pasó algo parecido durante tus pruebas?






Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #8 en: Julio 15, 2017, 09:52:14 am »
Hola richi,

si te fijas en el script de mjg59 (broadlink/__init__.py), solo tiene 3 'sendto', 2 que se envían a la ip de broadcast 255.255.255.255, en las líneas 113 y 547,
 113 cs.sendto(packet, ('255.255.255.255', 80))
 547 sock.sendto(payload, ('255.255.255.255', 80))

y una tercera en la 277

274 with self.lock:
275      while True:
276        try:
277          self.cs.sendto(packet, self.host)
278          self.cs.settimeout(1)
279          response = self.cs.recvfrom(1024)
280          break
281        except socket.timeout:
282          if (time.time() - starttime) > self.timeout:
283            raise
284 return bytearray(response[0])

por lo que debe ser en esta línea donde se envía el comando al RM. Con un simple


print ('AQUI')

antes y despues de

   self.cs.sendto(packet, self.host)

para que quede

print ('AQUI')
self.cs.sendto(packet, self.host)
print ('AQUI')

y habiendo puesto previamente en la línea 14 el

import binascii

deberías de tener un output

AQUI
AQUI

en la consola en la que estés lanzando el comando

BlackBeanControl.py -c test1

por lo que cambiando cualquiera de los dos (o ambos)
print ('AQUI')
por
print ('Encoded:', binascii.b2a_base64(packet) )

deberías de obtener el comando encriptado y firmado por pantalla.

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #9 en: Julio 15, 2017, 10:20:14 am »
Gracias Vinagrillo.

Definitivamente algo está mal.
No me imprime nada, ni siquiera poniendo un print al inicio del archivo. Parece que algo no está funcionando en la comunicación entre BlackBeanControl y Broadlink-Master.

¿Hay forma de hacer algo de debug?

Estoy haciendo las pruebas con una máquina virtual y Xubuntu (una distribución ligera)

Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #10 en: Julio 15, 2017, 11:23:06 am »
¿Es posible que tengas el archivo __init__.py en mas de un sitio y que estés modificando el que no está usando?

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #11 en: Julio 15, 2017, 19:40:51 pm »
Hay 2 archivos, pero modifiqué los 2 añadiendo prints para comprobar y no parece que entra a ninguno:

~/python-broadlink-master/broadlink/__init__.py
~/python-broadlink-master/build/lib.linux-x86_64-2.7/broadlink/__init__.py

Pregunta tonta ... ¿el equipo donde hago esta configuración tiene que tener wifi? Estoy conectado solo por red cableada

Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #12 en: Julio 17, 2017, 17:55:57 pm »
Richi, el equipo que estés usando tiene que tener conectividad con la red en la que tengas dado de alta el RM. Lo normal es que el equipo esté cableado y conecte hacia la WIFI por el router.

Si has conseguido grabar comandos y que te aparezcan el  BlackBeanControl.ini te debería de funcionar sin problemas.

Yo el __init__.py lo tengo en el directorio BlackBeanControl-master/broadlink siendo BlackBeanControl-master el directorio donde está BlackBeanControl.py

richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #13 en: Julio 18, 2017, 09:21:17 am »
Gracias Vinagrillo.

Efectivamente, estoy por red hasta el router y luego ahí wifi. Como dices, si tengo dados en el .ini es porque me comunico bien con el RM3.

Lo de las rutas no parece que sea tampoco el tema porque de hecho en las instrucciones de BlackBeanControl dice literalmente que lo pongas donde quieras.

Te paso mis directorios por si te da alguna pista, aunque no parece que vaya por aquí la cosa.

Ya desesperado estoy por instalar un Ubuntu en lugar de Xubuntu ... por si acaso.
Si esto no funciona intentaré hacerlo en una máquina en sí en lugar de en una VM.
Y si todo eso no funciona ... ya me rindo :(


richi

  • ***
  • 166
    • Ver Perfil
Re:Manejo del Broadlink RM Mini 3 desde eedomus
« Respuesta #14 en: Julio 18, 2017, 09:34:47 am »
Éxito !!!
Añadiendo el directorio broadlink dentro de BlanBeanControl si funciona.
Parece que la ruta si es importante.

Al menos tanto lío ha servido para dejar en el hilo una ayuda para alguien que tenga el mismo problema.

Así que confirmo que se puede hacer con una máquina virtual sin que esa máquina tenga wifi.

Muchísimas gracias Vinagrillo, por el super curro desarrollando esto y por la ayuda. Espero no dar más el coñazo ;)