¿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