Descripción general
Esta guía te explicará el proceso para descargar, configurar y ejecutar el script de aprovisionamiento de Shelly para AWS. Este script automatiza la configuración de AWS CLI y los recursos de AWS IoT Core, y configura tu dispositivo Shelly para conectarse de forma segura a AWS IoT Core.
Requisitos previos
-
Una account de AWS gratuita con el servicio IoT Core habilitado, también gratuito por el momento.
-
Un dispositivo Shelly Gen2+ (por ejemplo, Shelly 1 G3) conectado a una red con acceso a Internet.
-
Conocimientos básicos de AWS IoT Core y MQTT.
-
Asegúrate de que tu dispositivo Shelly tenga instalado el firmware más reciente.
-
Un ordenador con Ubuntu o Linux basado en Debian.
-
Acceso administrativo (
root) a tu sistema. -
Un dispositivo Shelly conectado a tu red local.
Instrucciones paso a paso
Descarga y configuración del script
Descarga del script
-
Abre la terminal y accede al directorio donde quieras descargar el script.
-
Descarga el script desde este enlace.
-
Verifica que el script se haya descargado.
Configuración de permisos
Para ejecutar el script, debes hacerlo ejecutable:
-
Cambia los permisos del script:
sudo chmod +x shelly-aws-provision.sh Ejecución del script
El script debe ejecutarse con privilegios de root:
-
Ejecuta el script como root:
sudo ./shelly-aws-provision.sh -
Resultado inicial del script:
Al ejecutar el script, verás un resultado similar a:
[INFO] Archivo de log establecido en: /path/to/your/directory/shelly-aws-provision.log ----------- ############################| Fase 1 |############################ ----------- Fase 1: Configuración de AWS CLI
Comprobación e instalación de requisitos previos
Comportamiento del script:
-
El script comprueba si cada paquete está instalado:
curl,unzip,python3, yjq. -
Si falta alguno, solicitará instalarlo mediante apt.
Ejemplo de salida:
Instalación de AWS CLI
El script detectará si AWS CLI ya está instalado en tu sistema.
Si AWS CLI está instalado:
-
Aviso:
AWS CLI ya está instalado. ¿Quieres continuar con una instalación desde cero o una actualización? (y/n): -
Opciones:
-
Sí (y): Continúa con la instalación desde cero o la actualización.
-
No (n): Omite la instalación y continúa con la configuración de AWS CLI .
-
Si vas a continuar con la instalación o la actualización:
-
Solicitud del directorio de instalación:
-
Pulsa Enter para aceptar el valor predeterminado o especifica otro directorio.
-
El script establecerá el directorio base para los archivos de instalación de AWS CLI y el almacenamiento de certificados.
Ejemplo de salida:
-
Descarga de AWS CLI:
-
El script descargará el instalador de AWS CLI.
-
El progreso se mostrará en el terminal.
-
Descompresión e instalación de AWS CLI:
-
El instalador se descomprimirá.
-
Se instalará o actualizará AWS CLI.
-
Prueba de la instalación de AWS CLI:
-
El script verifica la instalación de AWS CLI .
-
Muestra la versión instalada.
-
Limpieza de los archivos de instalación:
-
El script limpia los archivos de AWS CLI descargados y descomprimidos.
-
Solo quedan directorios de certificados en el directorio base.
Ejemplo de salida:
-
Elige el método de autenticación:
-
Opción 1: SSO
-
Si eliges SSO, sigue las indicaciones para configurar AWS SSO.
-
Puede que tengas que abrir un navegador e iniciar sesión en tu AWS account.
-
-
Opción 2: Credenciales de corta duración
-
Si eliges credenciales de corta duración, introduce tu AWS Access Key ID y Secret Access Key cuando se te solicite.
-
Especifica la región y el formato de salida predeterminados.
-
Ejemplo de salida:
Ten en cuenta que, como ya hemos estado utilizando la CLI, hemos iniciado sesión; por eso solo tenemos que aceptar los valores sugeridos pulsando Enter. Si es la primera vez que lo haces, debes introducir los valores manualmente.
Fase 2: Configuración de AWS IoT Core
Crear un IoT Thing
Mostrar los Thing Types existentes
-
El script muestra los Thing Types existentes recuperados de AWS IoT Core.
-
Si no tiene ninguna, debe crear una nueva.
Si vas a crear un Thing Type nuevo
-
Introduce n para crear un nuevo Thing Type.
-
El script crea el nuevo Thing Type y lo utiliza para el nuevo IoT Thing durante la ejecución actual del script.
Introduce el nombre del Thing
-
El script crea el IoT Thing con el name especificado que has proporcionado y el Thing Type que has elegido/creado.
Ejemplo de salida:
Gestión de políticas
Mostrar políticas existentes
-
El script muestra las políticas de IoT existentes.
-
Si no tiene ninguna, debe crear una nueva.
Si crea una política nueva
-
Introduzca n para crear una política nueva.
-
Introduzca un nombre
-
El script crea una política nueva con permisos predeterminados (permite todas las acciones de IoT en todos los recursos).
Ejemplo de salida:
Generación y vinculación del certificado
Generar certificados
-
El script genera un certificado y una clave privada nuevos para la Thing de IoT.
-
Los certificados se almacenan en un directorio con el nombre de la Thing en
/aws/</current_directory> thing_name>-cert.
Archivos creados:
-
Certificado del dispositivo: deviceCert_
.pem -
Clave privada: privateKey_
.pem -
CA raíz: rootCA.pem
Vincular la política al certificado:
-
El script vincula la política seleccionada o creada al certificado.
Vincular el certificado a la Thing:
-
El script vincula el certificado a la Thing de IoT.
Ejemplo de salida:
Recuperar información del cliente MQTT
-
El script recupera los detalles esenciales de conexión MQTT del dispositivo Shelly.
Detalles proporcionados:
-
Punto de conexión de AWS IoT Core/MQTT
-
ID del cliente (nombre de Thing)
-
Rutas de la clave privada, el certificado y la CA raíz
Ejemplo de salida:
Fase 3: Configuración del dispositivo Shelly
Proporcionar la IP del dispositivo Shelly
-
Introduzca la IP de su dispositivo Shelly.
-
El script valida el formato de la dirección IP.
-
Intenta conectarse al dispositivo Shelly mediante la IP proporcionada.
-
Si no tiene éxito, solicita volver a introducir la dirección IP.
-
Comprobación y actualización del firmware
-
Comprobación de la versión:
-
El script comprueba la versión actual del firmware del dispositivo Shelly.
-
La versión mínima requerida es 1.4.2.
-
-
Proceso de actualización:
-
Si el firmware está desactualizado, el script inicia una actualización del firmware.
-
Es posible que el dispositivo se reinicie durante este proceso.
-
Ejemplo de salida:
Cargar certificados en el dispositivo Shelly
-
El script carga los certificados que se descargaron en Fase 2: Configuración de AWS IoT Core (paso: Generación y vinculación del certificado) en el dispositivo Shelly.
Configurar MQTT en el dispositivo Shelly
-
El script configura el dispositivo Shelly para conectarse a AWS IoT Core mediante MQTT sobre TLS.
Configuración:
-
Endpoint del servidor: endpoint de AWS IoT Core MQTT .
-
ID de cliente: Nombre de la entidad IoT.
-
Configuración de SSL/TLS: Utiliza los certificados cargados.
Reiniciar dispositivo Shelly
-
El script reinicia el dispositivo Shelly para aplicar las nuevas configuraciones.
-
Espera a que el dispositivo vuelva a estar en línea y realiza comprobaciones periódicas.
Ejemplo de salida:
Conclusión
Ha configurado correctamente su dispositivo Shelly para conectarse de forma segura a AWS IoT Core mediante el script de aprovisionamiento. Su dispositivo ya está configurado para comunicarse con AWS IoT Core y puede comenzar a supervisarlo y controlarlo mediante los servicios de AWS.
Notas
Registros:
-
El script genera un archivo de log shelly-aws-provision.log en el directorio desde el que lo ejecuta.
-
Revise este archivo para consultar los registros detallados de la ejecución del script.
Directorio de certificados
-
Mantenga sus certificados seguros.
-
No comparta la clave privada.
-
Los certificados se encuentran en el directorio: /path/to/aws/
-cert .
Solución de problemas
Errores de permisos:
-
Asegúrese de ejecutar el script con sudo.
-
Verifique que los directorios utilizados por el script tengan permisos de escritura.
Problemas de conectividad:
-
Asegúrese de que su computadora y el dispositivo Shelly estén en la misma red.
-
Verifique que la dirección IP del dispositivo Shelly sea correcta.
-
Compruebe su conexión a Internet.
Permisos de AWS:
-
Asegúrese de que su usuario de AWS tenga los permisos necesarios.
-
Si utiliza AWS SSO o roles, compruebe que los permisos estén asignados correctamente.
Fallos en la actualización del firmware:
-
Si la actualización del firmware falla, intente actualizar manualmente el dispositivo Shelly mediante su interfaz web.
-
Asegúrese de que el dispositivo esté encendido y conectado a Internet.
Errores del script:
-
Consulte el archivo shelly-aws-provision.log para ver mensajes de error detallados.
-
Asegúrese de cumplir todos los requisitos previos.
¡Valoramos sus comentarios!
¡Gracias por tomarse el tiempo de leer nuestro artículo! ¿Le resultó útil o interesante?
Sus comentarios pueden ayudarnos a mejorar. Le agradeceríamos cualquier opinión. Si tiene un momento,
compártala con nosotros en el siguiente correo electrónico:
Dispositivos utilizados:

