¿Porque lo instalo?

Lo instalo para asi ver el estado del Robot dentro de mis sistemas domoticos.

En este caso explicare como me lie la manta a la cabeza y de una forma facil consegui que esto funcionara, entonces vamos al lio.

Requisitos

Se necesitan los siguientes pasos para una instalacion limpia con el sistema domotico Domoticz.

  • Tenemos que descubrir el Token.
  • Instalar el plugin para Domoticz.
  • Instalar MiRobo.

Descubrir Tokens Xiaomi

Todo lo que digan no sirve de nada, lo mejor y muy fácil.
He probado varias soluciones, en red, Linux, Backups, etc… 2 días perdidos y en el grupo de telegram me comentaron que instalara un MiHome inferior a la 5.0.29, un tal benito_kamela
Se necesita:
Ordenador con MiToolkit.1.6b.
Para esto, he utilizado Java 8.0.310.
Requisitos es no tener más versiones de java, solo la 8 que sea.
Móvil con MiHome 5.0.12.

Entonces, instalamos MiHome y configuramos el dispositivo.

Despues en el ordenador instalamos MiToolkit y ya nos dara el Token.

P.D. algun dia si es necesario subire fotos y esas cosas…. de momento como son mis apuntes….

Instalar Plugin

Antes del plugin de instalación, comprobar que python3. python3-dev, pip3 está instalado:

sudo apt-get install python3 python3-dev python3-pip

Asegúrarse de tener instalados los encabezados libffi y openssl:

sudo apt-get install libffi-dev libssl-dev

También, actualizar setuptools e instalar virtualenv:

sudo pip3 install -U setuptools.
sudo pip3 install -U virtualenv.

Luego ir a la carpeta de complementos y al repositorio de clones:

cd domoticz/plugins
git clone https://github.com/mrin/domoticz-mirobot-plugin.git xiaomi-mirobot
cd xiaomi-mirobot
virtualenv -p python3 .env
source .env/bin/activate

# y tambien:

Sudo pip3 install -r pip_req.txt
# o sudo pip3 install gevent msgpack-python python-miio==0.3.1

Editar miio_server.sh por vi o nano:

nano miio_server.sh

Escribir lo siguiente exceptuando “192.168.1.12 476e6b70343055483230644c53707a12” que hay que poner la ip y el token sacado antes

# 1. Check and update absolute path to miio_server.py
# 2. Update IP and TOKEN for robot
# 3. Optional. Change MIIO server host-port bindings if need it
# file miio_server.sh
DAEMON_USER=root
DAEMON=/home/pi/domoticz/plugins/xiaomi-mirobot/miio_server.py
DAEMON_ARGS="192.168.1.12 476e6b70343055483230644c53707a12"
DAEMON_ARGS="$DAEMON_ARGS --host 127.0.0.1 --port 22222"

2. Compruebe la ruta a python3 “which python3”. Por defecto es “/usr/bin/python3”. Si su ruta es diferente a la predeterminada, actualice “miio_server.py” escribiendo en la primera línea con:

#!/usr/bin/python3

Para ejecutar como servicio del sistema:

sudo chmod +x miio_server.py
sudo chmod +x miio_server.sh
# check your path here:
sudo ln -s /home/pi/domoticz/plugins/xiaomi-mirobot/miio_server.sh /etc/init.d/miio_server
# add to startup
sudo update-rc.d miio_server defaults
sudo systemctl daemon-reload
# if you want to remove from startup
sudo update-rc.d -f miio_server remove

Ejecutar script de prueba y servidor:

sudo service miio_server start
sudo chmod +x test.py
sudo ./test.py
# to stop miio server service
sudo service miio_server stop

También se puede ejecutar MIIO Server de forma manual y ver el resultado del registro:

sudo ./miio_server.py 192.168.1.12 476e6b70343055483230644c53707a12 --host 127.0.0.1 --port 22222
# then you can run test
sudo ./test.py

Si el servidor y la prueba están bien, es hora de reiniciar Domoticz:

sudo service domoticz.sh restart

Instalar MiRobo

Esto es para hacer comprobaciones, y se instala de forma facil

sudo pip3 install python-mirobo

En caso de que obtenga un error similar al de ImportError: No module named ‘packaging’la instalación, debe actualizar las herramientas pip y setup:

sudo pip3 install -U pip setuptools
sudo apt-get install python-construct
mirobo --ip 192.168.1.12 --token 476e6b70343055483230644c53707a12

Errores conocidos

Traceback (most recent call last):
File “./test.py”, line 22, in <module>
client = socket.create_connection((args.host, args.port))
File “/usr/lib/python3.4/socket.py”, line 509, in create_connection
raise err
File “/usr/lib/python3.4/socket.py”, line 500, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

En el proximo post configuraremos una WebCam USB

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *