Files
biblioteca_conocimiento_lab…/docs/raspberry_pi.md
2026-09-05 18:41:58 +02:00

8.0 KiB

Raspberry Pi del laboratorio

Objetivo

Centralizar la configuracion, el acceso y el mantenimiento de una flota de Raspberry Pi. La primera unidad es minipc; el mismo procedimiento debe servir para las cinco unidades previstas.

Inventario actual

Campo Valor
Hostname minipc
Sistema Raspbian GNU/Linux 13 (trixie)
Ethernet 192.168.50.187
Wi-Fi 192.168.50.251
Usuario operativo pi
Codigo /home/pi/minipc/
Servicio bot pi-bot.service
Servicio tunel autossh-tunel.service
Zona horaria Europe/Madrid
Teclado Espanol (es)

No se documentan contrasenas, tokens ni claves privadas en este fichero.

Comando unico de diagnostico

En la Raspberry:

bash /home/pi/minipc/vigilancia/raspberry_info.sh

El comando muestra identidad, red, teclado, locale, hora, servicios y recursos sin revelar secretos.

Desde el PC, pasando por el VPS:

ssh -i C:\Users\juanm\Documents\GitHub\contabo root@185.187.169.109 "ssh -i /root/.ssh/pi_deploy -p 2222 pi@127.0.0.1 'bash /home/pi/minipc/vigilancia/raspberry_info.sh'"

Configuracion aplicada en minipc

sudo raspi-config nonint do_configure_keyboard es
sudo localectl set-x11-keymap es pc105
sudo locale-gen es_ES.UTF-8
sudo localectl set-locale LANG=es_ES.UTF-8
sudo timedatectl set-timezone Europe/Madrid
sudo timedatectl set-ntp true

El cambio de idioma puede requerir cerrar la sesion y volver a entrar. El teclado de consola queda definido en /etc/default/keyboard con XKBLAYOUT="es".

Conectividad

  • Ethernet es la ruta preferida y usa la IP 192.168.50.187.
  • Wi-Fi queda disponible como respaldo en 192.168.50.251.
  • El tunel inverso publica SSH de la Pi en el VPS como 127.0.0.1:2222.
  • El acceso remoto usa la clave privada del VPS configurada para el tunel; nunca se copia ni documenta aqui.
  • Si la IP cambia, consultar hostname -I en la Pi y actualizar el inventario.

Acceso al ASUS RT-AX88U PRO

El ASUS esta detras del router principal de Digi. Para abrir su SSH desde el PC:

powershell -ExecutionPolicy Bypass -File scripts/router-ssh-tunnel.ps1
ssh -p 2222 usuario_del_router@127.0.0.1

El script mantiene el salto PC -> VPS -> Raspberry -> ASUS sin exponer el router a Internet.

Desde Telegram, el bot consulta el ASUS mediante la clave de servicio de la Raspberry:

/router estado
/router clientes
/router wifi
/router inventario
/router reservar confirmar
/router reiniciar confirmar

El reinicio exige la palabra confirmar. Las consultas actuales no cambian la configuracion.

Capacidades del RT-AX88U PRO

El router puede centralizar muchas funciones para Telegram:

  • Estado del firmware, uptime, IP LAN/WAN y radios Wi-Fi.
  • Clientes conectados y tabla ARP.
  • Estado de Internet y rutas.
  • Control de radios 2.4 GHz y 5 GHz.
  • Reservas DHCP y nombres de dispositivos.
  • Reinicio protegido y lectura de logs.
  • Estado AiMesh, si se añaden nodos.
  • QoS, control parental y perfiles de acceso.
  • VPN, DDNS, firewall y red de invitados.

Las acciones que cambian red, Wi-Fi, firewall o VPN deben tener confirmacion doble.

La reserva DHCP conserva la IP actual de cada lease y mantiene las reservas previas. Los dispositivos sin hostname quedan como pendiente-identificar hasta asignarles un nombre humano.

Inventario DHCP actual del ASUS

Reservas aplicadas para los 39 leases actuales y 3 reservas historicas conservadas. Los nombres marcados como pendiente-identificar son provisionales.

IP MAC Nombre actual
192.168.50.2 1C:FE:2B:BE:2C:D4 pendiente-identificar
192.168.50.6 D8:47:32:6E:B8:62 termo / Tapo_SmartPlug
192.168.50.8 BE:4E:C5:AF:E3:3F pendiente-identificar
192.168.50.12 4C:A9:19:4E:E8:4C pendiente-identificar
192.168.50.13 58:11:22:1B:0E:C0 pendiente-identificar
192.168.50.16 14:EA:63:1D:1B:25 Tele
192.168.50.31 00:11:32:3B:6F:4E MINGUEZ / NAS
192.168.50.54 48:43:DD:73:A2:FB pendiente-identificar
192.168.50.65 94:B8:6D:08:2A:7D NAHID_PC
192.168.50.67 62:A3:89:4A:EB:70 iPhone
192.168.50.68 AC:15:A2:89:D7:8A P110
192.168.50.69 DC:98:40:F0:7B:56 HERMES2111
192.168.50.73 04:34:F6:0C:8E:48 pendiente-identificar
192.168.50.76 58:11:22:22:AD:90 pendiente-identificar
192.168.50.77 24:DF:A7:E0:13:C7 pendiente-identificar
192.168.50.80 B0:CF:CB:D0:FD:35 AmazonAQM-009R
192.168.50.101 48:E1:E9:88:AD:FF pendiente-identificar
192.168.50.102 44:87:63:9B:07:A2 203938483430501000520018
192.168.50.104 FC:67:1F:38:24:CD pendiente-identificar
192.168.50.108 D4:AD:FC:1D:01:31 pendiente-identificar
192.168.50.112 D8:1F:12:1C:FF:29 wlan0
192.168.50.122 70:C9:32:1F:E5:65 dreame_vacuum_r2205
192.168.50.127 10:5A:17:20:84:4F pendiente-identificar
192.168.50.137 74:D6:37:D8:F2:64 amazon-a816315ca
192.168.50.143 A8:8C:3E:7C:F3:C7 XBOX
192.168.50.173 24:4C:E3:DF:6D:F4 pendiente-identificar
192.168.50.187 B8:27:EB:80:C6:0E minipc / Raspberry
192.168.50.189 D8:D6:68:BD:84:BD lwip0
192.168.50.191 E0:EF:BF:AA:CD:1E pendiente-identificar
192.168.50.192 40:A2:DB:40:C0:6E pendiente-identificar
192.168.50.203 70:B1:3D:A6:D2:40 Samsung
192.168.50.207 88:1E:5A:37:E5:52 JUANJER
192.168.50.211 84:E3:42:50:1F:1E pendiente-identificar
192.168.50.213 3A:99:2B:ED:D3:5E Caroline-tablet
192.168.50.224 D8:47:32:44:8A:79 Tapo pendiente-identificar
192.168.50.226 5A:BE:9F:4A:20:DD iPad
192.168.50.241 CE:2A:16:A6:44:7D Watch
192.168.50.247 70:EE:50:86:FB:FE pendiente-identificar
192.168.50.248 EC:5C:68:32:57:B0 MiWiFi-R4A-srv0

Siguiente prioridad

Control parental por dispositivo o grupo: horarios, bloqueo temporal, perfiles, pausas desde Telegram y registro de cambios. Se implementara despues de terminar la normalizacion de nombres del inventario.

La lectura avanzada de control parental usa asusrouter y requiere ASUS_USERNAME y ASUS_PASSWORD solo en el .env local de la Raspberry. No se guardan en el repositorio.

Despliegue

La Pi no tiene Git operativo para este flujo. El despliegue se hace por el VPS y el tunel inverso:

  1. Copiar el fichero al VPS.
  2. Copiarlo por SSH a pi@127.0.0.1:2222.
  3. Validar con python3 -m py_compile si es Python.
  4. Reiniciar el servicio correspondiente.
  5. Verificar systemctl is-active y los logs.

Escalado a cinco Raspberry

Cada unidad debe tener un registro con hostname, MAC, IP Ethernet, IP Wi-Fi, servicios, funcion y ubicacion. Se recomienda:

  • Reservas DHCP por MAC para evitar cambios de IP.
  • Ethernet como red principal.
  • Un hostname unico por unidad: minipc-01, minipc-02, etc.
  • Un servicio autossh-tunel por unidad con un puerto de tunel distinto.
  • Una clave SSH de despliegue independiente por unidad.
  • Un script de diagnostico identico en todas las unidades.

Hoja de ruta pendiente

Estas mejoras quedan apuntadas para la Raspberry actual, sin implementarlas ahora:

  • Panel Telegram de descargas y NAS con progreso, velocidad y espacio libre.
  • Pausar, reanudar y cancelar tareas de Download Station desde Telegram.
  • Aviso cuando termina o falla una descarga.
  • Estado de la NAS y sus discos.
  • Estado del VPS: CPU, RAM, disco, Docker y servicios.
  • Alertas de temperatura, disco lleno, perdida de red y servicios caidos.
  • Backups de configuracion y datos.
  • Despliegue y actualizacion remota del codigo.
  • Capturas de camaras y control de dispositivos conectados.
  • Comando /flota preparado para cuando existan varias Raspberry.

Primer dispositivo Tapo

El dispositivo termo es un Tapo Smart Wi-Fi Plug P100. El bot dispone de estos comandos directos:

/termo on
/termo off
/termo estado

La Raspberry necesita estas variables en /home/pi/minipc/vigilancia/.env, introducidas localmente y sin publicarlas:

TAPO_USERNAME=cuenta-de-tapo
TAPO_PASSWORD=contrasena-de-tapo
TAPO_TERMO_IP=192.168.50.6

El control usa python-kasa directamente desde la Raspberry y no depende de Alexa.