Kbsa Cómo configurar y usar Shelly AWS IoT Core


Cómo configurar y usar el script de aprovisionamiento de Shelly para AWS IoT Core.png

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

  1. Abre la terminal y accede al directorio donde quieras descargar el script.

  2. Descarga el script desde este enlace.

  3. Verifica que el script se haya descargado.

Configuración de permisos

Para ejecutar el script, debes hacerlo ejecutable:

  1. Cambia los permisos del script:

Bash
sudo chmod +x shelly-aws-provision.sh 

Ejecución del script

El script debe ejecutarse con privilegios de root:

  1. Ejecuta el script como root:

Bash
sudo ./shelly-aws-provision.sh 
  1. Resultado inicial del script:

Al ejecutar el script, verás un resultado similar a:

Bash
[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, y jq.

  • Si falta alguno, solicitará instalarlo mediante apt.

Ejemplo de salida:
1.jpg

Instalación de AWS CLI

El script detectará si AWS CLI ya está instalado en tu sistema.

Si AWS CLI está instalado:
  • Aviso:

Bash
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:
2.jpg
  1. Descarga de AWS CLI:

  • El script descargará el instalador de AWS CLI.

  • El progreso se mostrará en el terminal.

  1. Descompresión e instalación de AWS CLI:

  • El instalador se descomprimirá.

  • Se instalará o actualizará AWS CLI.

  1. Prueba de la instalación de AWS CLI:

  • El script verifica la instalación de AWS CLI .

  • Muestra la versión instalada.

  1. 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:


image-20241106-133700.png


  1. 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:
4.jpg

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:
5.jpg

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:
6.jpg

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:
7.jpg

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:
8.jpg

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:
9.jpg

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:
10.jpg

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:

Integration@shelly.com


Dispositivos utilizados: